Open Keith-Khadar opened 1 month ago
From what I have seen a lot of people use a microcontroller with Bluetooth.
Look into a good FPGA to use for this project. It should have a small size, but a good clock rate.
Cost of any FPGA would be very high and also FPGAs are not typically designed for low power applications. Unless the application we are considering requires parallel hardware processing, we do not need FPGA. If the parallel processing is required, then we would need multiple ADCs which would process the analog data in parallel and whole scheme of things will start getting bulky, power intensive and costly. Most implementation in real world so far seems to be using microcontroller instead of FPGA for many of these reasons.
Based on my research I propose following three boards to be used for proving the concept. Arduino BLE interface board - $10 https://www.seeedstudio.com/Seeed-XIAO-BLE-nRF52840-p-5201.html?gad_source=1&gclid=CjwKCAjwx4O4BhAnEiwA42SbVEzkdIWJmIRKJqx8dff-krDMpU2E7Hj3lUcQh879zU19lOkG5E3_ehoCn_UQAvD_BwE ADS1299 - $351 https://www.aliexpress.us/item/3256806073268159.html?src=google&src=google&albch=shopping&acnt=708-803-3821&isdl=y&slnk=&plac=&mtctp=&albbt=Google_7_shopping&aff_platform=google&aff_short_key=UneMJZVf&gclsrc=aw.ds&albagn=888888&ds_e_adid=&ds_e_matchtype=&ds_e_device=c&ds_e_network=x&ds_e_product_group_id=&ds_e_product_id=en3256806073268159&ds_e_product_merchant_id=563164292&ds_e_product_country=US&ds_e_product_language=en&ds_e_product_channel=online&ds_e_product_store_id=&ds_url_v=2&albcp=20292293647&albag=&isSmbAutoCall=false&needSmbHouyi=false&gad_source=1&gclid=EAIaIQobChMIr5iimKz9iAMVy59aBR1oGQ1EEAQYASABEgLEivD_BwE&gatewayAdapt=glo2usa Arduino r4 Minima - $20 https://www.amazon.com/Arduino-UNO-Minima-ABX00080-Connector/dp/B0C78K4CD4/ref=asc_df_B0C78K4CD4/?tag=hyprod-20&linkCode=df0&hvadid=692875362841&hvpos=&hvnetw=g&hvrand=9443974425258983229&hvpone=&hvptwo=&hvqmt=&hvdev=c&hvdvcmdl=&hvlocint=&hvlocphy=9011698&hvtargid=pla-2281435180018&psc=1&mcid=6e37a9cb49da354f99e208eb72087a65&hvocijid=9443974425258983229-B0C78K4CD4-&hvexpln=73
ADC - ADS1299 is 8 Channel, lownoise, 24-bit, simultaneous-sampling delta-sigma (ΔΣ) analog-to-digital converters (ADCs) with a built-in programmable gain amplifier (PGA), internal reference, and an onboard oscillator. The ADS1299-x incorporates all commonly-required features for extracranial electroencephalogram (EEG). ADS1299 is controllable through the SPI interface. The ADS1299-x has a flexible input multiplexer per channel that can be independently connected to the internally-generated signals for test, temperature, and lead-off detection. Additionally, any configuration of input channels can be selected for derivation of the patient bias output signal. Optional SRB pins are available to route a common signal to multiple inputs for a referential montage configuration. The ADS1299-x operates at data rates from 250 SPS to 16 kSPS. The ESP32-WROVER module comes fully-equipped with 2 CPU cores (Tensilica Xtensa 32-bit LX6 microprocessor) that can be controlled and powered individually, and with an adjustable clock frequency of 80 MHz to 240 MHz, having also integrated flash memory and SPIRAM. It achieves a fine dual-core performance, and is well suited for applications requiring more memory. ESP32 Module combines Wi-Fi, Bluetooth/Bluetooth BLE. ESP32 development can be done using Arduino IDE. If the data transfer over Bluetooth is slow for application, then data transfer over Wifi can be explored.
Arduino Uno R4 hosts ESP32 module for Wifi and Bluetooth connectivity. For the EEG data capture ESP32 alone might be good enough. https://store.arduino.cc/products/uno-r4-wifi?srsltid=AfmBOorfusM5cOvSUaGqaJAjLHKhajJCji8_fS6aMpXGEHbOt_c_El4s
For receiving the BLE data on laptop or mobile phone, suitable device driver would need to be developed. The received EEG data can be displayed and further processed.
Schematic
ADS1299 - $47 [https://www.aliexpress.us/item/3256807396947999.html
I think it is $756. It looks like it is $47 for the case. The arduino uno r4 minima doesn't have bluetooth(the normal version does). I think the r4 is a great choice, but it is a bit larger physically.
Here is a interesting project that uses Raspberry pi to process everything. https://www.raspberrypi.com/news/raspberry-pi-to-brain-interface/ it is open source as well
comparison.xlsx Comparison of different microcontrollers to help select the right one for our application. Considering the power dissipated at the back of the head or neck selection should be based on lowest power consumed still achieving the required performance, so I think ESP32 makes sense to me.
Look into a good FPGA to use for this project. It should have a small size, but a good clock rate.