check in
Completed

Bio-ADDAC

PROBio-ADDAC

tag

143
0
0
5
Mode:OSHWLab Stars
OSHWLab Stars
Reproduction cost: $80

License

Public Domain

Creation time:2025-07-20 15:06:29Update time:2025-08-05 09:49:47

Description

Biosignal : Analog->Digital : Digital->Analog : Convertor

A prototype board to read extremely low amplitude bio electrical signals such as EEG, ECG, EMG. The analog frontend is based on the bioamp EXG board by upsidedown labs.

Additionally this board also has a 15-bit voltage control DAC module and 12-bit current control DAC to produce electrical signals for bio-stimulation.

!!! Be careful when using the stimulation functions, intended for experimental use only !!!

 

 

 

Board Details:

BioAmp:

This is derived from BioAmp EXG Pill, the open source Analog Frontend for measuring biopotential signals. This is based on the TL074 Jfet-input low-noise quad amplifier.
The main difference is how we measure the reading from this; Instead of being directly connected to the MCU's ADC pin, it is connected to the input of the ADS1015 ADC.

 

ADC:

An I2C (0x48 address) based 12-bit ADC is used for the analog measurements. The main advantage of this approach is the Programmable Gain, it allows us to dynamically adjust the gain depending on the signal type and amplitude. While the 12-bit (0-4096) may seem low, the PGA allows us to maximize the effective resolution for all types of bio signals.

 

Voltage - DAC:

The GP8413 is voltage control DAC, This can effectively output 0V-10V according to the I2C input (0x59 address).

Caution: As this is a voltage DAC, can easily exceed the 100mA.

 

Current - DAC:

The GP8302 is a current control DAC (0x58 address). While this can output a range of 0mA to 20mA, for our application - the maximum current is scaled to ~2.3mA for Safety reasons (using 22K RSET).

This is the maximum current output ~2.3mA. So it has to be calibrated for this current range (0~2.3mA).

 

Power Supplies:

  1. 3.3V LDO - Powers the ESP32-C3 module
  2. 5V LDO - Powers the ADS1015 and the Bio Amp
  3. 12V Boost convertor - Power the GP8413 DAC, GP8302 DAC and also the 5V LDO
  4. Li-ion Cell - This powers the 3.3V LDO and 12V Boost convertor

 

Power Control:

The board can be powered on by pressing the PWR Button. To keep the board powered ON, the PWR_IO has to be set HIGH - this latches the power mosfet to ON state.
To power off the board, the PWR_IO can be set to LOW.

Note: The power button presses can also be detected even when the board is in ON state.

 

Battery Charging:

The TP4056 is used for lithium cell charging control. The charging current is set to ~500mA

The CHRG and STBY are open drain outputs - they are connected to the MCU for detecting charging state.

 

Board wiring:

ESP32-C3 pin mapping:

Function Pin Notes
PWR_IO IO0 set this HIGH to keep the device powered ON
PWR_BTN IO1 also used as a User button, (INPUT_PULLUP)
TP4056_STBY IO21 refer table below,  (INPUT_PULLUP)
TP4056_CHRG IO20 refer table below,  (INPUT_PULLUP)
LED1 IO Indicator LED
LED2 IO4 Indicator LED
I2C_SDA IO7 pulled up to 3.3V with 5.1K resistor
I2C_SCL IO8 pulled up to 3.3V with 5.1K resistor
ADS1015_ALERT IO6 can be used for ADS1015 comparator alerts if required
GP8302_ALARM IO10 Pulled LOW when circuit is open, (INPUT_PULLUP)

 

The I2C bus is shared among these ICs with different Addresses:

  1. 0x48 - ADS1015 ADC
  2. 0x59 - GP8413 DAC
  3. 0X58 - GP8302 DAC

 

ADS1015 pin mapping:

This is a 12 bit ADC with Programmable Gain Amplification, it has a total of 4 channels

Input Function Notes
AIN0 Voltage sense Read Battery voltage with a voltage divider (R1=220K, R2=22K)
AIN3 BioAmp Read amplified signals from the bio amp
AIN1 ADC1 Exposed on the underside of the board
AIN2 ADC2 Exposed on the underside of the board 

 

Arduino Compatibility:

The board can be flashed using the ESP32C3 Dev Module definition.

 

Check I2C devices:

To test the I2C communication, you can use the I2C scanner code - Available here

The GP8413 and GP8302 are rated only for 400khz speed, Interestingly these devices respond at 1Mhz speed also.

 

Tested Libraries:

 

Flashing code for the first time:

  • Insert USB while pressing BOOT button to enter upload mode.
  • Upload the code.
  • Press RESET, now the code will run.

This is a one time process, the subsequent uploads are automatic.

 

Project Origins:

Two weeks ago, a post popped up in my feed. It was about a hardware hackathon called WorldWideHack2025 organized by WorldwideStudios, I found this interesting since most hackathons are usually coding based.

 

I attended the first meeting and was invited to the NEO-AGF team, and here we are.

  • We decided the hardware specs on July 20, the design was ready July 23 and order was placed on JLCPCB rightaway.
  • We received the boards by August 1, thats less than 10 days! Do you know any other manufacturer who can fabricate it and get it shipped that fast!

 

  • This project's PCB and PCBA service was sponsored by the OSHWLAB Stars campaign.
  • Project was completed on August 2025

 

Design Drawing

The preview image was not generated, please save it again in the editor.

BOM

Bom empty

Attachments

OrderFile nameDownload times
No data
Clone
Add to Album
0
0
Share
Report

Project Members

Comment

All Comments(1)
Sort by time|Sort by popularity
Followers0|Likes0
Related projects
Empty

Bottom Navigation