16 channel daisy worked initially, now getting only 8 channels

edited September 2015 in Cyton
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
«1

Comments

  • wjcroftwjcroft Mount Shasta, CA
    edited May 2015
    Chris, hi.

    Have you seen this other thread?

    [Feb 16 posts, mention linking the SRB2 lines.]

    William

  • William,

    So I had it working for about 3 months before it began doing that last week. I just inspected the soldering and it looks fine (everything is still connected). 

    Chris
  • wjcroftwjcroft Mount Shasta, CA
    Joel @biomurph and Conor I think are both at the MakerCon this week. Joel might have some suggestions when he has a chance to get onto the forum here.

    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 CS2 pin seems pretty firmly in place. We tend to not take the daisy off so there shouldn't have been too much wear on it. 

    Do you know if there are any loaners available? Unfortunately I was in the middle of an EEG study when this happened so I have had to cancel all my sessions. I'd like to get back to testing as soon as possible. 

    Thanks!
  • wjcroftwjcroft Mount Shasta, CA
    Chris, hi.

    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.

  • Thanks for your help!
  • biomurphbiomurph Brooklyn, NY
    chriseb,
    could you post the processing terminal data that you shared with me over email? 
    that data shows that the main board can find the daisy module, and report the correct register control settings for it.
    it would be good to share that with this thread, so we can trouble shoot exactly where the problem is happening.
    if the daisy module can be found and talked to, then the problem is not in hardware.
  • edited May 2015
    The following is the output from processing:

    ==========================================================================

    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)

  • biomurphbiomurph Brooklyn, NY
    The lines in the processing output that say 

    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?

  • SifengSifeng China,Beijing
    I  chosse 16 channel for start system.The error is :
    Init timeout verify your serial/com port.Power doen/up your openbci&USB dongle,then retry initialization.
    But I choose 8 channel for start system,everything is ok.
    My OpenBCI board is 32 bit with dasiy.
  • I tried as you suggested and deleted and downloaded the latest processing sketch. No change. I still have the same problem.

  • wjcroftwjcroft Mount Shasta, CA
    Chris, have you tried with another laptop or OS? Such as Linux or Mac. Just trying to eliminate possible causes.
  • wjcroftwjcroft Mount Shasta, CA
    edited June 2015
    @Sifeng , hi. I merged your question into this existing thread. Also try looking at some of the previous posts in this thread. They describe what you are seeing and some tests you can run. In that case it turned out that a firmware reload fixes the issue. First thing to check is the serial port response to the '?' command.

  • No I haven't. I'll look around and see what computers I can borrow. 
  • So I tried running it using the latest processing sketch on another windows computer and a Mac. It didn't fix the problem. 
  • Thank you for helping me to troubleshoot this problem!
  • wjcroftwjcroft Mount Shasta, CA
    Chris, has this OpenBCI main board ever been loaded with other firmware (to run your own Arduino sketches). And then reprogrammed with the original default firmware? I'm wondering if it is possible the default firmware reload could have some subtle glitch. Just some more speculation. Thanks for the test you tried on the other Windows machine.

  • Nope, I've never changed the firmware. 
  • biomurphbiomurph Brooklyn, NY
    chriseb,
    This is a strange problem. You say that you see signals from the Daisy Module, but not the main OpenBCI Board.
    The verbose output from the Processing sketch shows that both the Daisy and the Board are healthy and responsive.

    Can you verify that you have electrodes or some other sensors attached to the inputs?
    If not, try this:

    Start up the Processing GUI as you have been doing. DataSource Live, Select the correct Port for the Dongle, Select 16 channels, then press 'start system'
    When the GUI fires up, and you see the graph windows, click on the program window to get access to it. 
    Then press the '[' key (left square bracket) That will tell the OpenBCI to connect all of the channels to an internally generated signal (square wave). Then press Start Data Stream.

    What you should see looks something like this
    You can adjust the Vert Scale to reveal the square wave more clearly

    Try that to see if you are indeed getting data from all 16 channels

  • Yes it is a strange problem. I did as you suggested and the following are the screenshots and output from processing. Even though the board and the daisy are healthy, I am still missing 8 channels of data. 


    1) 16 Channels nothing connected - screenshot and processing output
    https://www.dropbox.com/s/l0y48lr2okj0zyl/noise_16_channel_screenshot.png?dl=0                                                 

    2) 16 Channels with internally generated square wave - screenshot and processing output
    https://www.dropbox.com/s/pw9driqdummaj4d/screenshot_16_ch_squarewave.png?dl=0                                                     

    3) 8 Channels with internally generated square wave



  • biomurphbiomurph Brooklyn, NY
    Hi,

    ok, according to the images you sent, the Board channels are being displayed, but the Daisy channels are not being displayed.

    have you tried to re program the OpenBCI Board firmware? the code and libraries are located here
    Tutorial for uploading code to the board is here
    Please try that
  • Alright I will try that. Thanks
  • wjcroftwjcroft Mount Shasta, CA
    When I asked previously, Chris did say that they never had uploaded new firmware (May 19). But it does sound like reflashing would be a good thing to double check. I wonder if some kind of firmware checksum printout might be a future '?' addition. We've had one other user who solved their odd problem with a reflash. But in that case they HAD previously uploaded other code. Because of the avrdude glitches, he THOUGHT he had valid firmware, but did not.
  • Well I uploaded the new firmware. It took a couple of tries but I followed the instructions in another post (chipKIT uploading tips and restarting bootloader) and was successful. However now I keep getting the error "init timeout...retry initialization" every time I try to start processing. 

    I saw in another post to check the serial response to the "?" command. How do I do that and what should I get in return?

    Thank you. 
  • wjcroftwjcroft Mount Shasta, CA
    Chris, see this post. You need to use a serial terminal program, so your keyboard is sending to the OpenBCI. And the OpenBCI is outputting to the diagnostic text to your screen.



  • Well now I'm not even getting anything when I send a "?". I've tried re-uploading the firmware again and nothing changed. 

    Is this fixable?
  • I have the same issue. After sending my dasy module to repair, now the blue light turns on when i attach the daisy module to the main 8 channel OpenBci board. And now, and not before, the OpenBCI GUI connects with the 16 channel option without saying time out. That was a step forward. However, I get the same screen once I enter in the 16 channel screen. The 8 Dasi module's channels do not show on the screen. 

    I've tried to connect with BrainBay. It only recognices the 8 board option; when i select the 16 channel OpenBcI board...nothing happens when I push the start recording button. What could be happening? I've bought the 16 channel pack some months ago and I can't get it working yet. Now I see that someone has the same problem (after using it for 3 months), altough i have it from the begining.

    Any help? Solution?...
  • wjcroftwjcroft Mount Shasta, CA
    edited May 2015
    @Brightday2, hi.

    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.

  • wjcroftwjcroft Mount Shasta, CA
    @Brightday2 , thanks for that OpenViBE printout, but we need the Processing text output, which includes more register dumps.

    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.

Sign In or Register to comment.