Yue (Mike) YuAll projects
Embedded systems · Software integration

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.

8electrode channels
4operating modes
Benchverification complete

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.

01Electrode interfaceEight channels; tank tests pending
02ADC / DACADS1278 acquisition and AD5676R playback
03STM32 firmwareMode switching and data transfer
04Computer interfaceLive plots, CSV recording, and replay

The hardware behind the software

CAD rendering of the eight-channel Efish PCB
PCB CAD rendering from Huaiqian (Bill) Guo’s Introduction to the E-Fish Project. The summary describes a four-layer, 24 × 10 cm design. This is the hardware context for my software integration work.

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

Efish system topology showing relay routing, input conditioning, ADC, DAC, current driver, and STM32
Hardware topology from Bill Guo’s project summary. My contribution focuses on operating these paths through firmware and the computer interface.

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.

Next: connect electrodes and evaluate the prototype in water. Effects on fish behavior have not been established.

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.

Explore further