Compatibility Issue with BioEra and Ganglion Firmware v3.0

Recently, I observed that the OpenBCI Ganglion Firmware was updated to version 3.0, as mentioned in the official documentation.

However, when I attempted to use the updated board with BioEra 4.188's Ganglion module, it appeared that the module might not support this new firmware version. Consequently, I can't obtain accurate brainwave readings, as showcased here:

It's worth noting that the official OpenBCI GUI displays EEG data correctly with the Ganglion board and the new firmware. The waveform anomalies are only present when using the BioEra module. Such discrepancies were not evident with the older firmware v2.

Could anyone provide insights or potential solutions to this compatibility concern?

«1

Comments

  • wjcroftwjcroft Mount Shasta, CA
    edited September 2023

    Otemo, hi.

    Unfortunately BioEra does not utilize the Brainflow library for reading the data stream. Instead it parses the stream expecting v2 formatted data. This was required at the time the BioEra driver was written, since Brainflow did not exist at that time.

    The other important feature that Brainflow provides, is that it detects WHICH Ganglion firmware it is talking to. Hence it adapts automatically to both v2 and v3 stream types.

    I suggest that you post on the BioEra Forum, mentioning that the best option may be for BioEra to switch over to calling the Java binding Brainflow library. (BioEra is Java based.) That way the auto-adapting behavior to firmware version is then built-in.

    http://www.bioera.net/support/forum.jsp

    OK, I'm just seeing now that a recent post has been made, apparently by you.

    http://www.bioera.net/support/viewtopic.jsp?id=841

    Possibly as an interim solution until the new BioEra driver is available, you may consider re-installing the v2 firmware. Here is the post on this Forum explaining the situation why the new firmware was created. I'll make a followup post on the BioEra forum.

    https://openbci.com/forum/index.php?p=/discussion/comment/19622/#Comment_19622

    Regards, William

  • Hi William,

    Firstly, I'd like to express my sincere gratitude for your swift and comprehensive response. Your detailed explanation provides much-needed clarity on the situation.

    In light of your advice, I've decided to revert to using the v2 firmware for the Ganglion board when working with BioEra, at least for the time being. I appreciate the insights you shared regarding the Brainflow library and the inherent capabilities it provides, especially its adaptive nature to different firmware versions.

    Thank you also for pointing out the recent discussions on the BioEra forum. I've taken note of them, and I'm hopeful that a solution will soon be in place. Until then, the v2 firmware seems to be the most feasible option for my needs.

    Once again, thank you for your invaluable assistance. I look forward to any updates that may come from the BioEra forum side.

    Regards, Otemo

  • wjcroftwjcroft Mount Shasta, CA

    Again, sorry that this firmware change was not possible to make backward compatible (parsing raw stream without Brainflow). Mentioning @philip_pitts @retiutut

  • wjcroftwjcroft Mount Shasta, CA

    Hi @Shirley and @joeartuso, OpenBCI needs to send Jarek Foltynski, the BioEra developer, a new Ganglion board with the v3 firmware preinstalled. He already has Ganglion v2 firmware, but needs to have both boards in house for testing.

    In case you are unaware, BioEra is widely used in neurofeedback applications, and generates significant sales for OpenBCI.

    Here is the thread on the BioEra Forum,

    http://www.bioera.net/support/viewtopic.jsp?id=841

    I'll let Jarek there know that you are intending to send the new board.

    Regards,

  • wjcroftwjcroft Mount Shasta, CA

    I do see that @jarek has a login here on our Forum, not sure if the email bound to that is current.

  • Yes, the email is current, I received a notification. Thanks William.

  • wjcroftwjcroft Mount Shasta, CA

    @jarek, thanks. Another distinct advantage of the Brainflow library for Ganglion, is that it can choose to operate EITHER with the BLED112 dongle, OR instead utilize the native Bluetooth hardware in the laptop. This is selected by the Brainflow device type.

    https://brainflow.readthedocs.io/en/stable/SupportedBoards.html#openbci

    Most modern OSes support the native Bluetooth mode, but the older BLED112 serial port device is still there.

  • @jarek - I sent you a DM to coordinate sending the new board. Thanks!

  • Hi, I received the new Ganglion board. But I don't see a problem with the signal when connecting to BioEra.
    So the question is: how to check the firmware version? Is it possible with the OpenBCI Gui? Or a command?

  • wjcroftwjcroft Mount Shasta, CA
    edited September 2023

    Jarek, hi.

    According to the SDK page, the firmware should print its version number on startup. It may also print that in response to the '?' (register dump) command.

    https://docs.openbci.com/Ganglion/GanglionSDK/

    @jarek said:
    Hi, I received the new Ganglion board. But I don't see a problem with the signal when connecting to BioEra.

    re: "don't see a problem"

    The original users who reported the issue with the old firmware:

    https://openbci.com/forum/index.php?p=/discussion/3640/ganglion-testing-with-a-function-generator

    Were testing with a function generator that generated large and/or fast changing ADC values (which were distorted). So what this new firmware is supposed to do is redefine what are the expected sample stream output values. Previous firmware was doing compression, but was misguided in that it wasted too many lower order bits in the sample. Bits that were essentially meaningless because they represented values WELL below 1 uV (hundredths of a uV).

    The new firmware drops the compression and still preserves sub microvolt accuracy, but only to a point (like a fraction of a uV).

    I'm not sure what you are saying, that the new board appears to be identical to the old firmware? That seems odd.

    William

  • Hi William, I tried '?' but it doesn't show any info about firmware, only registry. I also tried to read the start string, but didn't find anything there as well.
    But after I posted this question I did find more about the firmware here: https://docs.openbci.com/Ganglion/GanglionProgram/#download-the-latest-builds
    It looks like my board came with firmware 2.0.1. So I will try to upgrade it.
    It will be however necessary to detect the firmware version in order to apply right decoding algorithm. I don't think I can include brainflow library for that because BioEra already has its own bluetooth stack (both bled112 and soon native too), but I will try to research what is in there.
    Is there any info about the new communication protocol format? Or is the brainflow source code the only way to find out?

  • wjcroftwjcroft Mount Shasta, CA
    edited September 2023

    Mentioning @philip_pitts.

    I'm disappointed that they did not send you a board already programmed for V3.

    I do see that on the page you mentioned,

    https://docs.openbci.com/Ganglion/GanglionProgram/ [verify Ganglion version section]

    The version number is available in the Bluetooth device information 'packets' .

  • I upgraded successfully to firmware 3.0.0, it was easy to do. And now I do see the invalid behavior, so will be working on this. Thanks!

  • I'm glad the firmware upgrade worked for you. Just to confirm, did you upgrade to v3.0.0 or v3.0.1? I recommend v3.0.1 at this time since it includes a bug fix related to restarting the stream and sending configuration commands to the board.

    https://github.com/OpenBCI/OpenBCI_Ganglion_Library/releases/tag/v3.0.1

  • I will upgrade to 3.0.1. Thanks Philip!

  • I upgraded to 3.0.1, this is the version in the file name now (and also before). But when I use nRFConnect to find out the firmware version, it shows 3.0.0 ("Software revision string" under "Device information").

  • Logging this as an issue here. We'll take a look at why the correct revision string is not being reported, but it shouldn't effect the integration. There are no API changes between 3.0.0 and 3.0.1 (just internal fixes to the firmware).

  • Hi, I don't know if this is the right place to report it.

    I am having problems with firmware 3.0.1 (and bled112). After some time (a minute or more) ganglion disconnects (and stops transmitting), the blue led stays on, and it is not possible to connect again without rebooting the board.

    I observe it mostly with BioEra, but it happens also with OpenBCI_Gui. I downgraded to 3.0.0 and it happened too. Now I downgraded to 2.0.1 and I have not seen a problem for almost an hour running continuously. Looks like this firmware is good and the board is also good.

  • More details I found later today about this issue:
    It only happens with real data and only when the software disconnected from the device previously.
    1. It does not happen with synthetic data ("[" command)
    2. It does not happen directly after reboot (power cycle).

  • wjcroftwjcroft Mount Shasta, CA

    Jarek, thanks much.

    I believe @philip_pitts will be responding Monday when the staff returns to the New York office.

    Thanks everyone.

  • Thanks for the report and additional details. I've logged the issue here and will attempt to reproduce it this week. It sounds like the device may not be resetting correctly after disconnecting.

  • @jarek would you mind posting some more details about your environment on the issue I logged against the firmware repository? I'm having trouble replicating the problem so I'd like to learn more about your setup.

    Can you post the following in the issue?
    1. Operating System (e.g. MacOS 10.15.7).
    2. Version of the OpenBCI GUI.
    3. Are you running from the downloaded app or from Processing / VSCode?
    4. Screenshot of the Packet Loss widget in the GUI when the problem occurs.
    5. Console Log from the GUI

  • wjcroftwjcroft Mount Shasta, CA
    edited September 2023

    Philip, Jarek's BioEra program runs primarily on Windows. No GUI involved. BioEra is written in Java.

    OK, rereading now I see it has happened in GUI also. But possibly less often.

  • He mentioned that he was seeing the problem in the OpenBCI GUI as well.

    @jarek said:
    Hi, I don't know if this is the right place to report it.

    I am having problems with firmware 3.0.1 (and bled112). After some time (a minute or more) ganglion disconnects (and stops transmitting), the blue led stays on, and it is not possible to connect again without rebooting the board.

    I observe it mostly with BioEra, but it happens also with OpenBCI_Gui. I downgraded to 3.0.0 and it happened too. Now I downgraded to 2.0.1 and I have not seen a problem for almost an hour running continuously. Looks like this firmware is good and the board is also good.

    Replicating the problem in the GUI is a good place to start and we can track down the root cause from there.

  • Yes, I mostly use BioEra, but I can reproduce it with the GUI as well (yes, Windows only, in this case Windows 8.1 and bled112 dongle):

  • Can you try with version 5.2.2 of the OpenBCI GUI? It looks like you're running 5.2.1 which doesn't support the Ganglion v3 firmware decompression.

    If you're still seeing the problem, can you post a copy of the Console Log and list the specific steps you took to reproduce the error?

  • Sure. Steps are easy: after selecting Ganglion start streaming, then stop and start again:

  • Thanks - that was useful.

    I believe there was a problem with the published build for v3.0.1. I've updated the release with the correct build and I believe this will solve both this streaming problem and the Software Revision string issue you mentioned earlier. Would you mind downloading and flashing the v3.0.1 release again?

  • Yes, that is it! I can't reproduce it any more as before. I will let you know if it happens again.
    It is interesting that is also happened with 3.0.0, maybe that build needs a refresh as well.
    Thanks!

  • wjcroftwjcroft Mount Shasta, CA

    Wonderful !

    Thanks everyone.

Sign In or Register to comment.