16 channel daisy worked initially, now getting only 8 channels
Hello,
My OpenBCI board is malfunctioning. Using Processing, it will initialize and display all 16 channels but only 8 channels actually work(the daisy). The other 8(main board) remain at 0. Surprisingly, when the daisy is removed I am able to read correctly from the main board.
Why is this happening? Can I fix it?
Thank you
Comments
Sounds like some kind of Chip Select glitch. Does the last pin on the header (CS2) look like it is connecting firmly? Since that is the last pin on one side, it's possible that during plug / unplug operations of the daisy -- that pin might get more torque than the others.
Your testing proves that both ADS1299 chips are functional; at least that is good news.
The last OpenBCI newsletter mentioned that a new batch of daisy boards will be in stock by the end of May. Let's see what Joel @biomurph suggests. You can also try emailing to [email protected] . But as I said, I think they are at MakerCon in SF at the moment.
==========================================================================
ControlP5 2.2.2 infos, comments, questions at http://www.sojamo.de/libraries/controlP5
OpenBCI_GUI: setup: RESIZED
OpenBCI_GUI: mouseReleased: screen has been resized...
ControlPanel: CPmouseReleased: init
ControlPanel: CPmouseReleased: port is open? ... false
a--0
a--1
a--2
a--3
a--4
a--5
a--6
a--7
a--8
a--9
a--10
a--11
a--12
a--13
a--14
a--15
OpenBCI_GUI: initSystem: b
OpenBCI_ADS1299: prefered_datamode = 1, nValuesPerPacket = 8
OpenBCI_ADS1299: a
OpenBCI_ADS1299: b
OpenBCI_ADS1299: i
OpenBCI_ADS1299: openSerialPort: attempting to open serial port COM4
OpenBCI_ADS1299: openSerialPort: port is open (t)? ... true
OpenBCI_ADS1299: j
OpenBCI_GUI: initializeGUI: 1
OpenBCI_GUI: initializeGUI: 2
Gui_Manager: Buttons: 80, 65
OpenBCI_GUI: initializeGUI: 3
OpenBCI_GUI: initializeGUI: 4
OpenBCI_GUI: initializeGUI: 5
OpenBCI_GUI: initializeGUI: 6
openBCI: openNewLogFile: opened output file: SavedData\OpenBCI-RAW-2015-05-04_13-55-39.txt
OpenBCI_ADS1299: systemUpdate: [0] Sending 'v' to OpenBCI to reset hardware in case of 32bit board...
OpenBCI V3 16 channel
On Board ADS1299 Device ID: 0x3E
On Daisy ADS1299 Device ID: 0x3E
LIS3DH Device ID: 0x33
$$$OpenBCI_ADS1299: syncWithHardware: [1] Sending channel count (16) to OpenBCI...
16$$$OpenBCI_ADS1299: syncWithHardware: [2] Reseting OpenBCI registers to default... writing 'd'...
updating channel settings to default
OpenBCI_ADS1299: syncWithHardware: [3] Retrieving OpenBCI's channel settings to sync with GUI...
writing 'D'... waiting for $$$...
060110$$$OpenBCI_ADS1299: read(): x
060110
OpenBCI_ADS1299: read(): y
0,6,0,1,1,0
0,6,0,1,1,0
0,6,0,1,1,0
0,6,0,1,1,0
0,6,0,1,1,0
0,6,0,1,1,0
0,6,0,1,1,0
0,6,0,1,1,0
0,6,0,1,1,0
0,6,0,1,1,0
0,6,0,1,1,0
0,6,0,1,1,0
0,6,0,1,1,0
0,6,0,1,1,0
0,6,0,1,1,0
0,6,0,1,1,0
OpenBCI_ADS1299: read(): z
OpenBCI_ADS1299: syncWithHardware: [4] Retrieving OpenBCI's full register map for verification...
writing '?'... waiting for $$$...
Board ADS Registers
ADS_ID, 0x00, 0x3E, 0, 0, 1, 1, 1, 1, 1, 0
CONFIG1, 0x01, 0xB6, 1, 0, 1, 1, 0, 1, 1, 0
CONFIG2, 0x02, 0xC0, 1, 1, 0, 0, 0, 0, 0, 0
CONFIG3, 0x03, 0xEC, 1, 1, 1, 0, 1, 1, 0, 0
LOFF, 0x04, 0x02, 0, 0, 0, 0, 0, 0, 1, 0
CH1SET, 0x05, 0x68, 0, 1, 1, 0, 1, 0, 0, 0
CH2SET, 0x06, 0x68, 0, 1, 1, 0, 1, 0, 0, 0
CH3SET, 0x07, 0x68, 0, 1, 1, 0, 1, 0, 0, 0
CH4SET, 0x08, 0x68, 0, 1, 1, 0, 1, 0, 0, 0
CH5SET, 0x09, 0x68, 0, 1, 1, 0, 1, 0, 0, 0
CH6SET, 0x0A, 0x68, 0, 1, 1, 0, 1, 0, 0, 0
CH7SET, 0x0B, 0x68, 0, 1, 1, 0, 1, 0, 0, 0
CH8SET, 0x0C, 0x68, 0, 1, 1, 0, 1, 0, 0, 0
BIAS_SENSP, 0x0D, 0xFF, 1, 1, 1, 1, 1, 1, 1, 1
BIAS_SENSN, 0x0E, 0xFF, 1, 1, 1, 1, 1, 1, 1, 1
LOFF_SENSP, 0x0F, 0x00, 0, 0, 0, 0, 0, 0, 0, 0
LOFF_SENSN, 0x10, 0x00, 0, 0, 0, 0, 0, 0, 0, 0
LOFF_FLIP, 0x11, 0x00, 0, 0, 0, 0, 0, 0, 0, 0
LOFF_STATP, 0x12, 0x00, 0, 0, 0, 0, 0, 0, 0, 0
LOFF_STATN, 0x13, 0x00, 0, 0, 0, 0, 0, 0, 0, 0
GPIO, 0x14, 0x0F, 0, 0, 0, 0, 1, 1, 1, 1
MISC1, 0x15, 0x00, 0, 0, 0, 0, 0, 0, 0, 0
MISC2, 0x16, 0x00, 0, 0, 0, 0, 0, 0, 0, 0
CONFIG4, 0x17, 0x00, 0, 0, 0, 0, 0, 0, 0, 0
Daisy ADS Registers
ADS_ID, 0x00, 0x3E, 0, 0, 1, 1, 1, 1, 1, 0
CONFIG1, 0x01, 0x96, 1, 0, 0, 1, 0, 1, 1, 0
CONFIG2, 0x02, 0xC0, 1, 1, 0, 0, 0, 0, 0, 0
CONFIG3, 0x03, 0xEC, 1, 1, 1, 0, 1, 1, 0, 0
LOFF, 0x04, 0x02, 0, 0, 0, 0, 0, 0, 1, 0
CH1SET, 0x05, 0x68, 0, 1, 1, 0, 1, 0, 0, 0
CH2SET, 0x06, 0x68, 0, 1, 1, 0, 1, 0, 0, 0
CH3SET, 0x07, 0x68, 0, 1, 1, 0, 1, 0, 0, 0
CH4SET, 0x08, 0x68, 0, 1, 1, 0, 1, 0, 0, 0
CH5SET, 0x09, 0x68, 0, 1, 1, 0, 1, 0, 0, 0
CH6SET, 0x0A, 0x68, 0, 1, 1, 0, 1, 0, 0, 0
CH7SET, 0x0B, 0x68, 0, 1, 1, 0, 1, 0, 0, 0
CH8SET, 0x0C, 0x68, 0, 1, 1, 0, 1, 0, 0, 0
BIAS_SENSP, 0x0D, 0xFF, 1, 1, 1, 1, 1, 1, 1, 1
BIAS_SENSN, 0x0E, 0xFF, 1, 1, 1, 1, 1, 1, 1, 1
LOFF_SENSP, 0x0F, 0x00, 0, 0, 0, 0, 0, 0, 0, 0
F_SENSN, 0x10, 0x00, 0, 0, 0, 0, 0, 0, 0, 0
LOFF_FLIP, 0x11, 0x00, 0, 0, 0, 0, 0, 0, 0, 0
LOFF_STATP, 0x12, 0x00, 0, 0, 0, 0, 0, 0, 0, 0
LOFF_STATN, 0x13, 0x00, 0, 0, 0, 0, 0, 0, 0, 0
GPIO, 0x14, 0x0F, 0, 0, 0, 0, 1, 1, 1, 1
MISC1, 0x15, 0x00, 0, 0, 0, 0, 0, 0, 0, 0
MISC2, 0x16, 0x00, 0, 0, 0, 0, 0, 0, 0, 0
CONFIG4, 0x17, 0x00, 0, 0, 0, 0, 0, 0, 0, 0
LIS3DH Registers
0x07 0
0x08 0
0x09 0
0x0A 0
0x0B 0
0x0C 0
0x0D 0
0x0E 0
0x0F 33
0x1F 0
0x20 8
0x21 0
0x22 0
0x23 18
0x24 0
0x25 0
0x26 0
0x27 0
0x28 0
0x29 0
0x2A 0
0x2B 0
0x2C 0
0x2D 0
0x2E 0
0x2F 20
0x30 0
0x31 0
0x32 0
0x33 0
0x38 0
0x39 0
0x3A 0
0x3B 0
0x3C 0
0x3D 0
$$$OpenBCI_ADS1299: syncWithHardware: [5] Writing selected SD setting (Do not write to SD) to
OpenBCI...
OpenBCI_GUI: mousePressed: outside of CP clicked
openBCI_GUI: startButton was pressed...starting data transfer...
OpenBCI_ADS1299: startDataTransfer(): writing 'b' to the serial port...
openBCI_GUI: stopButton was pressed...stopping data transfer...
OpenBCI_ADS1299: startDataTransfer(): writing 's' to the serial port...
OpenBCI_ADS1299: interpretBinaryStream: Actbyte = 0
OpenBCI_ADS1299: interpretBinaryStream: expecteding end-of-packet byte is missing. Discarding
packet. (1)
On Board
ADS1299 Device ID: 0x3E
On Daisy
ADS1299 Device ID: 0x3E
show that the Daisy Module is in place and healthy.
Also, the register values that are printed for the Daisy Module are all correct.
Perhaps there is an issue with the software.
Try deleting the Processing sketch that you have, and re-downloading from the github?
You wrote: "The 8 Daisy module's channels do not show on the screen."; so they are just showing as flatlines at zero amplitude? I assume your main board works fine in 8 channel mode.
Can you post your text output from the 16 channel Processing terminal data? Joel @biomurph will probably want to see that.
re: the Brainbay issue. There is a bug in the way it sets up the default baud rate when first creating the 16 channel element block. Open the block with a right click and then set baud to 115200. That will override the erroneous default value; when you save the configuration file the correct value will be remembered.
However if you are not getting valid data from Processing, that will likely be the same case in BrainBay. And Processing has much more debug output available.
---
@chriseb , I wonder if it is possible that some aspect of the flash memory is marginal and the firmware is being mangled. There is a short LED "Blink Example" program that you could try. See this comment,
http://openbci.com/forum/index.php?p=/discussion/comment/2163/#Comment_2163
http://chipkit.net/arduino-blink-sketch-chipkit-dp32/
What is odd is that the default OpenBCI firmware as loaded at manufacturing time, was at least responding to your '?'. Now no response. But the upload operations are completing, which seems to indicate the bootloader must be functional.
Addendum to the note on BrainBay, although the baud rate change will fix the wrong default, I don't think you can adjust the sample rate in that dialog. Which needs to change from 250 to 125. So I'm going to need to rebuild the BrainBay installer. I guess no one has really tried 16 channel BrainBay until this point(!) I don't have the Daisy myself, so never tested that configuration.