which GUI to use with OpenBCI 8bit clone?

laeeq24laeeq24 pakistan
edited November 2018 in Build-it-yourself
Hello;
Im working on Ads1299 development board but after some research I found that its own GUI and setup is not for mine so I decided to interface ADS1299 daughter board with Arduino Uno and made the jumper setting on ads1299 daughter board according to the openBCI 8 bit v3 schematic. Then using the buffer ics between arduino and ads1299 for voltage conversion I succeed to get the device id and register setting using the openbci  8bit v3 code.i got this code from https://github.com/OpenBCI/OpenBCI_8bit?files=1.
All things are working fine when i send the command on serial port like '+?+' its working and in return it gives me the register setting. Now i dont have RFDuino between arduino and pc and i want to use openbci_gui without using rfduino.
Now what can I do to view data to visualize the plotting. Im stuck at this point kindly help me to solve out the problem.
Regards 
Laeeq

Comments

  • wjcroftwjcroft Mount Shasta, CA
    Iaeeq, hi.

    The radio / serial port command SDK changed radically between the original 8bit version and currently. You can try the v1 GUI on bottom of this page, it was compatible with both 8 and 32 bit boards at the time. They both used same SDK.


    I'm not sure where the source for v1 GUI lives, it's not here on the Github, that starts with v2,


    ---

    Here is a chipKIT PIC32 / Max32 board, that might let you run the current firmware, provided that you duplicate the CPU / ADC wiring,


    Regards,

    William

    PS there are a couple other 8bit clones in this same Build-it-yourself category, they might have additional tips.

  • Der wjcroft;

    Thanks for your reply and help, I will try to use this GUI you gave. I have few more questions.
    1- When I send +b+ it starts streaming and serial monitor shows garbage...maybe due to serial.write command, any possibility to view the stream data on serial monitor? 
    2- Can we use brainbay as well to visualize data?
    3- What is the working of RFDuino host and RFduino Device. I mean to ask when RFDuino Host Received data from PC so is there any data translation or append any new thing in PC data? What Arduino get.... same data from PC or anything else?

    Regards
    Laeeq
  • wjcroftwjcroft Mount Shasta, CA
    1. the "garbage" you are seeing are the binary encoded Cyton data packets,


    The GUI will decode these, there are also various other apps and libraries that can decode.

    2. Brainbay should work fine with the 8bit board firmware.

    3. the RFDuino on the mainboard I believe does add a couple bytes, such as packet counter and termination byte. You can compare the binary byte stream you are receiving to the format shown on the above link.

    William

  • Dear William;
    It sounds good and we are grateful for your help. As I told you that I'm using the code from this link https://github.com/OpenBCI/OpenBCI_8bit?files=1 All the things working fine I got an ID and register setting from ads1299. For visualization, I'm using GUI OpenBCI GUI v1.0.0 from the link you gave and I think GUI SDK is working fine with this code. but the problem is when I start streaming data the arduino code resets in couple of seconds. I'm using arduino v1.8.3.
    which version should I use to compile my code?

    Regards
    Laeeq
  • wjcroftwjcroft Mount Shasta, CA
    If your IDE is compiling the code and it mostly runs, then it's likely not an issue with the IDE. 

    There are some crash debugging techniques,


    How do you know the GUI is working fine? Did you insert the extra bytes in the serial stream? Are you seeing valid EEG waveforms?
  • No I'm not achieved any success to view any valid waveform on GUI. The two things I did in code.

    1- In serial Receive, I comment out the burger protocol code, Now any character it receives it just put it in testChar directly. so +b+ changes in to b only.
    2- In OpenBCi_8.cpp, I found the function named [sendChannelData(byte sampleNumber)] In this function I append Serial.write with 0xA0 in the starting and 0xC0 in the end. 
    --Please Guide me If I'm in the wrong direction.

    Now after this I burned this code in arduino uno and Connect the GUI with the arduino serial port. and then after communication with arduino, it shows the EEG signal and register setting  GUI. To confirm the GUI buttons are working I took a FTDI and connects its RX and GND with arduino uno TX and GND to view the response of the arduino when i pressed the button. and whenever I pressed the button from GUI i received arduino response corresponding to that button. 

    In streaming data i saw some garbage on EEG GUI but due to restarting of arduino I cant say anything for the wave.
    Regards
    Laeeq 
  • wjcroftwjcroft Mount Shasta, CA
    Are you incrementing the sampleNumber after each packet? GUI will not recognize packets without incrementing number.

    I don't know why your code is crashing. You might try some of the previous suggestions. Or use another serial port and output debug status regularly.

  • Yes, we are sending data in a given format:

    1- 0xA0
    2- 1 byte sample number
    3- 24 byte ADS channel data
    4- 6 bytes for accelerometer-----(we don't have an accelerometer so we send 0x00 multiply by 6)
    5- 0xC0

    I found that restarting problem is due to sd card and accelerometer code so I disabled those things and now restarting problem has been solved. But unfortunately no signal on GUI :( 
  • wjcroftwjcroft Mount Shasta, CA
    Are you seeing any error messages in the Processing window for the GUI? Are you sure your serial port baud rates, etc., are correct? Is the data streaming over the serial port?

    You can put some debug print statements in the Processing code that parses the byte stream.
  • Dear William;
    Last night I'm succeeded to visualize my hand noise signal on the GUI when I grab the bias electrode, the noisy signal goes to zero. I will tell you when if I'm able to visualize my ECG and EEG signal.

    1- My code is working fine, the issue was sd card and accelerometer, I disabled all of two in code.
    2- Then I made the data frame as I told you.
    3- The last mistake I found is, I'm using buffer between Arduino and Ads1299, My SPI was good, I'm using reset and DRDY through the buffer so the direction os DRDY was wrong, When i connect the DRDY on the buffer input and buffer output with Arduino then I saw a noisy signal on GUI..
    Regards
    Laeeq

  • Dear William;
    I have attached the pictures of the ECG wave recently we got on GUI...
    Kindly tell me if you think we are doing something wrong or that wave is not good enough.


    Regards
    Laeeq
  • wjcroftwjcroft Mount Shasta, CA
    Are you sure you adjust the CHAN SET scale factor as shown in the tutorial?


    Your graphs are similar, but do not need to be "railing".

    I guess you've got it. The GUI v1 and current are vastly different.

    Regards,
  • Yes im following this tutorial, Thank you William for your kind and quick response. Now I will try to share my details and will take your help if i need somewhere.
    Thank you
    Regards
  • obad94obad94 Pakistan
    edited November 2018
    Hello William !
    I'm collaborator with Mr Laeeq. We are having 50 Hz noise in our circuit while using 7-13 Hz BP filter & notch of 50 Hz as well, due to noise we are unable to see proper ECG signal. GUI picture is attached below, No electrodes are connected in this test. We are using our circuit on 6v battery pack.
    Kindly share your expert views with us .


    Regards,

  • wjcroftwjcroft Mount Shasta, CA
    The image shows a very tiny bit of 50 hz noise on channel 6, less than 1 uV. Yet the FFT plot shows about 12 uV of the 50 hz.

    Are you sure you are positioned away from transformers, conduits, power supplies, fluorescent / LED / RFI emitting lamps, etc.?

    Since ECG is in the millivolt range, tiny microvolt levels of 50 hz should not make any difference. Are you sure you set the CHAN SET scale factor appropriately for ECG? The default scale is for EEG microvolt levels.

  • Yes in my environment, i have eliminated everything you discussed above ( transformers, conduits, power supplies, fluorescent / LED / RFI emitting lamps, etc). 
    while keeping the electrodes open from the circuit it was giving very tiny noise of 50 Hz, but when i attached the electrode on channel 7 [(+)electrode, (-) electrode] it triggered a huge noise of 50 Hz , as you can see the uvrms are exceeding from 352 uvrms on the scale of 1000 uV. 
    I think when i attach electrodes to my body it then triggers huge noise of 50 Hz.

    https://drive.google.com/open?id=1B6XpkLjXV9DEfpyKtpwa-teW1U-tfZBa
  • In my research i found this thread which is same in my scenario.
    http://openbci3.rssing.com/browser.php?indx=58695755&item=52
  • Hey William;
    As now we are working on chipkit-dp32 with ads1299 and using the defaultboard from openbci library. All the things working fine. I know the openbci and chipkit-dp32 pin_def.h have some changes. Any ways we have achieved the openbci working on chipit-dp32. But my questions is we are unable to interface the sd card recording then I found this thread http://www.chipkit.net/forum/viewtopic.php?t=3105.
    Do you know about this bootloader bug?
    Regards
    Laeeq 
Sign In or Register to comment.