OpenBCI 8 channel clone with STM32 processor

edited December 2016 in Build-it-yourself
Hi guys,

I'm quite new to the brain-computer interfaces and still building my experience in that area.
So recently I'd started my own project to design and build alternative of OpenBCI 32bit board. 
The project goals:
- replace PIC32 to Cortex-M4 STM32L4 for better energy efficiency and more computational power,
- replace Arduino toolchain with cumbersome libraries to mbed online development platform for ARM microcontrollers,
- replace proprietary RFDuino dongle to generic Bluetooth radio. 

Here is project links:

The project is still in development. What implemented so far:
+ Hardware modified for STM32L476RG microcontroller,
+ OpenBCI 32bit Library has been ported to mbed framework with minimal code changes (changed around 10 lines of code, to keep updatable from main code base),
+ Communication protocol was modified to exclude OpenBCI Dongle from the system,
+ New board and modified firmware were tested with original OpenBCI_GUI software, the ADS1299 is working in the same way as in original board.

Things still to be done:
- Bluetooth communication is still not tested, and hardware is not modified for Bluetooth radio (I'm looking to BL652-SA),
- Accelerometer is not populated and not tested,
- SD card is not supported yet (only dummy functions in firmware).

Some pictures:
image

image

So the work in progress, I will keep you updated in this thread!

Comments

  • wjcroftwjcroft Mount Shasta, CA
    Alex, hi.

    Amazing work, thanks for posting.

    One question, without the Bluetooth radio component finished, how did you test with OpenBCI_GUI? Is your firmware derived from the V1 or V2 code base? 

    Did you use a reflow oven with this, or hand solder? Any plans for making boards available?

    Regards,

    William

  • edited December 2016
    Hi William,
    Thank you for your comments!

    Right now I just connected directly to PC via FT232 dongle. A lot of noise, thats why I didnt post any measurement plots...

    Unfortunately it seems I got the initial sources from V1 library by confusion, I'll update my firmware from version V2 very soon. Hopefully it will be easy. Thank you so much for pointing me about that issue!

    Board on the picture is hand-soldered, not too many components to mount yet. :)

    Sure, absolutely, after finishing the development (hopefully this year) I will put some assembled and tested boards on my Tindie store.
  • wjcroftwjcroft Mount Shasta, CA
    Alex, hi.

    re: your prospective Bluetooth BL652-SA radio module. From the spec here,


    This appears to be Bluetooth Low Energy only? (Bluetooth 4.x). The BLE RFduinos required using the special Nordic GZLL protocols to achieve (only) the modest sample rate of 250 samples/sec. A fair number of applications need higher sample rates, 500, 1000, or up. So if you went with a Bluetooth module that had the full range of 4.x, 3.x or 2.x protocols, that would give you the ability to get the higher sample rates for those applications. Another possibility is wifi, but that can be trickier to setup the addressing and WEP stuff.

    I'm mentioning Joel @biomurph, @Conor, or AJ @pushtheworld, in case they may want to comment.

    What printed circuit fab shop and layout software did you use?

    Regards,

    William

  • Hi guys,

    Terribly sorry for long time without any updates. Was quite busy with other projects.
    Actually, it turns out that the cheapest and most popular Bluetooth module -- HC-05 has enough data throughput for that application. Measured throughput from computer to dongle is about 13-14 kBytes/sec (at 115 kbps UART speed). This is Bluetooth 2.0 EDR module.

    Updates to the project:
    + tested with HC-05 Bluetooth module and battery,
    + fixed some issues in firmware -- added UART receiver buffer,
    + got first actual EKG measurement (following by this tutorial)

    Here is the plot
    image
    (using insulation tape and washers as electrodes, lol) 

    To answer other questions:
    - probably in some future revision I will try Espressif ESP-32S module for wifi, but currently it is little bit out of scope,
    - this is just modification of the existing design made in DesignSpark, 
    - initial board was manufactured in DirtyPCBs, but right now i'm planning to try full turnkey assembly at MacroFab
Sign In or Register to comment.