A dual-board hybrid analog–digital computing prototype using op-amp integrators and a Raspberry Pi Pico controller.
About • Key Features • Quick Start • Should You Build This? • Learn More
This project is a proof-of-concept hybrid computing system built from two PCBs: an integrator array board with 18 analog op-amp integrators, and a controller board built around a Raspberry Pi Pico, high‑precision ADC/DACs, and multiplexers. The intent is to represent three particles in 3D space (acceleration → velocity → position per dimension), with the Pico reading integrator outputs, computing forces, and writing updated accelerations back into the analog system.
It was developed as part of research into analog computing for molecular dynamics and is deliberately documented as an example of what doesn't work when trying to control many fast analog elements with a single microcontroller.
- Dual-board architecture – Separate integrator array and controller boards connected via a 14‑pin header
- 18 op-amp integrators – 3 particles × 3 dimensions × 2 integration stages (acceleration → velocity → position)
- High‑precision data converters – 16‑bit ADC (AD7689) and 16‑bit DAC (AD5689) with op‑amp scaling to ±5V
- Hierarchical multiplexing – Two‑level 74HC4051 cascade to address 18 channels with 6 control lines
- Sample‑and‑hold buffers – Buffer each integrator input for multiplexed operation
- Calibration support – Switchable paths and test points for ADC/DAC calibration
- Educational value – Real hardware illustrating bandwidth limits, multiplexer artefacts, and IC challenges in hybrid systems
Important: This design has fundamental architectural flaws for high‑speed applications. Treat it as an educational/experimental platform, not a recommended solution.
To manufacture and experiment with the boards:
- Clone or download this repository.
- For each board, go to its
production/directory (controller/production/andintegrator_array/production/). - Upload the
.zipfile plusbom.csvandpositions.csvto JLCPCB. - Order a Raspberry Pi Pico and programme it with one of the example firmwares.
- Connect the dual‑rail supplies (V+/V− and ±5V), link the two boards via the 14‑pin header, and dock the Pico.
- Power the system and monitor USB serial output while exercising the ADC/DAC and multiplexers.
Detailed manufacturing, pin mapping, and example‑code usage are described in DOCUMENTATION.md.
Probably not for any performance‑critical application:
- The integrator time constants are far too fast relative to the microcontroller's update loop.
- The tiny sample‑and‑hold capacitors are badly affected by multiplexer charge injection.
- A single Pico cannot read, compute, and write fast enough to keep 18 integrators in a stable closed loop.
The project is best used as:
- A reference design for op‑amp integrator arrays, mixed‑signal interfacing, and multiplexed ADC/DAC architectures
- A cautionary example of bandwidth mismatch between analog and digital domains
- A starting point if you plan to redesign around distributed control (e.g. one microcontroller per particle or per interaction)
For in‑depth documentation, including:
- Full system architecture and signal‑flow description
- Schematics, component choices, and power/IO specifications
- C and MicroPython example projects for the Pico
- Calibration procedures and SPI configuration notes
- A detailed analysis of the critical failure modes and what a better architecture would look like
See DOCUMENTATION.md.
This project is complete as a proof‑of‑concept and educational resource and is not under active development. It is licensed under the CC BY-NC-SA 4.0 Licence.
