ESP32-S3 based [BLE 5 & Wi-Fi, NNA], base of 16-channels [expandable to 32 in the future], full 9-axis IMU, Li-ion battery charging & USB-C, additional GPIO, support for sampling rates >250 Hz, brand new SDK, future support for OpenBCI's GUI, and loads of future plans.
I think it fair that my first log should bring the reader up to speed about the history behind this project, and where we are currently at, given that I am not only just beginning this project.
Some History: (It is currently June 4th, 2025)
I began this project in October of 2024. It was something I was thinking about for months prior, but decided (rather last minute) that I wanted to do a Makerfaire. As such, the plan was to bang out an initial HW prototype for the faire. While I was hoping to have some demo, I could only get the HW ("v0.1")) done in time (I tend to bite off more than I can chew). This was Makerfaire Coney Island.
After a rather lengthy hiatus, during which I finished up my DIY reflow oven (see "past projects" on my profile), I finally returned to the project sometime in January to begin developing the firmware (FW). I was doing so, once more in prep for a Makerfaire, this time, in Philly.
While I once more didn't have a demo (but boy was I close), I did develop a significant amount of firmware, and in the process, really developed the vision for the SDK, as well as potential future HW. I also made the second iteration of the HW ("v0.2") for the faire.
Sidenote: Makerfaires seem to be very motivating to me, and a lot of fun, so I intend to keep doing them as a means of setting meaningful (and not completely arbitrary) deadlines regarding the project.
Current State:
Hardware:
The hardware is rather mature, at least, so I think. [Next paragraph will explain what I mean by this]. In any case, we have a solid look in terms of form factor and decals, as well as all of the intended functionality already included, and theoretically, working fine (from a HW POV).
I've yet to test the IMU, and the biopotential signal acquisition data is what is currently holding me up. I know I am collecting data, the trouble is, it isn't good data. It is (presumably) horrifically noisy. That said, I've been running all of these experiments tethered to my PC (over USB-C), which I know is a big "no-no" for these things... my solution will be discussed in the Current Objectivesection, but in short, I'm not going to do that anymore.
Firmware:
The SDK/libraries are really coming into their own. I'm actually really proud of them; they're definitely the best piece of FW I've ever produced. Boasting aside, I currently have functionality for the biopotential signal acquisition ICs (ADS1299, or "ADS"), SPI, and a lot of general SDK backend stuff.
Some of you might be confused by "SPI" there. No, I am not making my own SPI drivers, but, the goal of the SDK is to take care of as much as I can that I know will be common to all end-user use cases (i.e. stuff that is board specific). So one example here being the (board-specific) SPI initialization... the ADS chips use the SPI lines, so everyone is going to need to initialize a particular SPI bus (or particular peripheral attached to particular lines). This is what the SPI lib will handle, or rather, supply functions for.
As far as all the "SDK backend stuff" goes, the vision is to have the end-user simply include "myelin.h", and from there have all "myelin libraries" included. There are some commonly used macros and definitions across all libraries, and so on. Further, the alternative chipsets mentioned in the Current Future Plans section may also shed some light on what all that "backend stuff" is.
The SDK takes heavy inspiration from the Nordic nRF5 SDK (hopefully avoiding some of its issues lol).
Current Objective:
Currently, I've begun developing the BLE library, and my hope is to abstract away from the BLE setup as much as I can, while still allowing some degree of configuration in a simplified manner. Following this, I may move to Wi-Fi.
The hope with developing the wireless right now is that I may collect data untethered, and (hopefully) I should find that my hardware is fine, allowing me to continue to next steps & future FW development....
Apparently I can't put an apostrophe in the title lol. Comes up with gibberish.