Analog Computing Analog Computing

Modular Analog Computing

CONTINUUM is a fully modular analog computer. Each computational element is on an own board, so that the system is fully scalable. You can begin with a simple configuration and build the system up as the complexity of the calculation increases, virtually without limit.

The modularity makes it also possible to release new computational elements at any time: the range of possibilities can be expanded, and the value of the initial investment is preserved.

This project has been generously sponsored by PCBWay PCBWay.com. A fast, highly qualitative and cost-effective supplier of PCBs of any kind, from the simplest to the most sophisticated. PCBWay offer also a large number of services: layout design, assembly of prototypes and series, and a wide range of mechanical prototyping capabilities.


About analog computing
For an overview of the theory and to download the supporting software, look here .

Video
A quick overview of the computer in this video on YouTube .



General features
The modules are bare PCBA boards provided with magnetic pads: this makes it possible to assemble the system on a magnetic whiteboard (or just a metal plate), on which annotations can be written if wished (e.g. the name given to the variables).
The size of the boards is the same - about 60 x 40 mm - with exception of the control module, which is made slightly bigger to ensure the buttons and switches can be accessed easily.
The circuit is realized by interconnecting the boards by means of simple jumper wires. The modules are configurable to provide different functions, jumpers are used for that purpose.
Text is placed besides all connectors to describe each pin. All inputs and outputs are protected against wrong connection.
connectors pads
The modules operate with a power supply of ±15V provided by two adapters and filtered by the control module, or by batteries if preferred.
The range of the variables is ±10V with ±15V supply.

Software applications written in Python are made available to:
- facilitate setting up the computer to solve equations;
- acquire and save in files the data collected through the controller unit, via WiFi.
All Python software applications can be downloaded, as well as the code for the ESP32 embedded in the controller.

About of the software applications to setup the computer and the underlying theory.

Summer / Inverter / Open loop amp
summer
The summer is able to adds up to three signals. It yields both the sum and the sign-inverted sum. It can be therefore used as sign inversion module too. The inputs which are not used can be left unconnected.
Moreover, the module can be configured as open loop amplifier, by means of a jumper. Both inverted and non-inverted feedback available, to adapt to different feedback networks.
This makes it possible to realize inverted functions, e.g. in combination with a multiplier it yields the division of a variable by another.


Integrator / Summer
integratorPCBA
The integrator can be initialized to a specific value set on the dedicated input (0 if the input is left unconnected). The initialization occurs over a time set by the controller, and repeated at the beginning of each cyle when cyclical mode is used (refer to the information about controller).
The operation can be paused and restarted: this makes it possible to freeze the status and observe the value of the variables at any time even by means of a simple voltmeter.
Three inputs are available, whose effect is summed. Unused inputs can be left unconnected. Two inputs have 100 msec time constant, the third has 10 msec. Short integration time is particularly useful when the variables are visualized cyclically by means of an oscilloscope.


Constant / Divide by constant (potentiometer)
potentiometer
This module can perform two functions: divide a variable by a constant value, and generate a constant value.
This is determined by the position of a jumper. The output and the sign inverted output are available at the same time.



Multiplier with subtractor
multiplier
Multipies two variables by each other. Inputs - X and Y - can be used as single-ended (normal mode) or differential (each input becoming the subtraction of two signals). It includes an additional subtraction function (input Z, 0 if left unconnected). In combination with an open loop amplifier, division of a variable by another is achieved.

Controller
controller
It controls the operation of the integrators and of any other module whose operation requires synchronization. The controller features various user inputs.
- Start and stop buttons.
- Pause switch. Pauses the operation freezing the values, and resumes from the same point.
- Mode switch. Single run and cyclical mode.
- Cycle time knob. Determines the duration of the cycle.
In cyclical mode, the operation is carried out for the length of time set by the dedicated knob. After the initialization, the operation continues for the predetermined time, and can be paused at any time - or stopped.
Two LEDs visualize the status of the operation.
The power source can be two mains adapters or batteries (AA size in holders). The power source is filtered, fuses and diodes are included to protect the circuits in case of polarity inversion.
The absolute maximum allowed supply voltage is ±18V. With ±12V supply, the modules still operate correctly but the multiplier range is slightly limited.
The control signals to the integrators (3.3V) can be picked up to trigger the operation of an oscilloscope.
This module provides two data acquisition channels. Two signal are continuously sampled and sent via WiFi to any receiving device via TCP sockets.
The operation can be modified by reprogramming the device: source code for Arduino IDE is made available. E.g. the sampling frequency, 500 Hz by default, can be reduced or raised to much higher values thanks to the DMA operation).



Half wave / full wave rectifier and summer
rectifierPCB
It performs full wave rectification (absolute value, out = |x|) or half wave rectification (out = x if x > 0 / if x < 0). The operation is determined by jumpers.
Two inputs are available, whose value is summed.