Efish: eight-channel record & playback
An STM32 instrument for acquiring and replaying electric-fish signals, with a desktop interface and a bench-tested control loop.
Recording and replaying electric-fish signals
This instrument is intended to help researchers record and reproduce the electrical signals used by weakly electric fish. The project summary identifies Gnathonemus petersii as the target species, with experiments focused on electrolocation and social signaling. Eight channels will connect to electrode pairs in a tank. I worked on the software for an existing STM32 Nucleo-H753ZI and extension-board design.
The hardware behind the software

The board repeats the electrode interface across eight bidirectional channels. Relay routing selects isolation, a shunt connection, recording, or playback. Shared ADC and DAC devices connect those analog paths to the STM32 controller.
Four operating modes
Safe
The default idle state isolates the electrode paths.
Conductor
Connects the two sides of each electrode channel through the switching network.
Recording
Routes input signals to the ADC for acquisition, live visualization, and storage.
Playback
Sends stored recordings through the DAC and output path.
Recording and playback paths

Acquisition
The documented voltage-recording path routes the electrode signal through buffering, differential conditioning, and an anti-aliasing filter to the ADS1278 ADC. Firmware transfers the digitized channels to the computer.
Replay
Stored samples drive the AD5676R DAC. The analog output stage conditions the signal and feeds a Howland current driver before the switching network routes it to the electrode interface.
Software integration and debugging
My contribution centers on firmware and the host-side interface, including acquisition, playback, and board-mode control. Debugging the ADC and DAC took the most effort.
Project notes document work on converter clocking, serial transfer, relay routing, and command handling. The computer interface provides eight-channel plots and recording/playback controls.
Bench-tested; tank validation next
I checked the software and control loop with an oscilloscope and multimeter. This completed milestone is electrical bench verification. No electrodes were attached to the test setup, and the system has not yet been validated in water or with fish.
Project context and attribution
The hardware illustrations and design context come from Huaiqian (Bill) Guo’s Introduction to the E-Fish Project, supplied as E-Fish Summary. That report also includes separate electrode-in-water tests. Those tests belong to the broader project and are not the electrode-free software bench verification described here.