EEG 3

While I haven’t been active here, I’ve been busy and waiting for parts. So the ADS1299 dev board has arrived and I’ve gotten it working-sort of. I’ve also migrated a bunch of work from using the mbed website to using STM32Cube+SW4ST32.

As a test I hooked the DAC output for the nucleo into the channel one for the ADS1299 (top plot), and programmed it to output a sawtooth wave. The other channels are all various internal things that the IC can be connected to depending on the settings loaded into the registers. For example, the fourth plot down is an internally generated square wave for tests, and the one below that is the internal temperature sensor. I’ve switched also switched to outputting data in a raw format over serial instead of ascii. On the host side this looks like:


import serial
ser=serial.Serial("/dev/ttyACM0",115200)
#....
tmp=ser.read(4*n_channels*sample_batch)
for i in range(sample_batch):
  for j in range(n_channels):
    tmp_data[i,j]=struct.unpack('i',tmp[4*(n_channels*i+j):4*(n_channels*i+j+1)])[0]

Unfortunately, there are more issues. When using actual electrodes (3′ in length), the signal is again dominated by 60Hz. To electrically isolate the board, I’m giving it it’s own battery supply (using 2 18650s in series), and using optocouplers. The optocouplers I have are too slow (see next graph), so I’ve been waiting on faster ones since then.

The signal out of the optocoupler (bottom) never has time to fall between bits (hard to see because multiple traces are overlaid).

I also let the magic blue smoke out of the MAX30102 board after roughly mounting it into a strap with the GSR electrodes and powering it on :(.

Author: Garth Whelan

~-~-~-~-~-~-~-~

Leave a Reply

Your email address will not be published. Required fields are marked *