schilk happens



VitalPod



Overview

The design, construction, and evaluation of the VitalPod was the subject of my bachelor thesis at ETH, and the first of a series of earbud-related projects. It is a BLE-enabled true-wireless earbud, that features a number of sensors capable of sensing body temperature, heart rate, and blood oxygen concentration.

I later "refactored" the main board into a general-purpose embedded systems platform, the VitalCore, which found use for a number of other projects, such as the RadarBud.

Paper

We published a paper about this project, which you can find below. It contains more detailed information, especially regarding the final performance of the system.

📚 Philipp Schilk, Kanika Dheman, Michele Magno, "VitalPod: A Low Power In-Ear Vital Parameter Monitoring System", WIMOB'22, 2022.

Electrical Design



The main PCB contains an ultra-low power Ambiq Apollo 4 Blue SoC with BLE capabilities and associated on-board antenna, battery management and power conversion, an IMU, a microphone, and an audio codec. There are two small external sensor modules that are connected to the main PCB: A PPG module based on the MAX30208, and a MAX30101 body temperature sensor.

For details on their operation, algorithms, and their performance, please see the paper.

Because the Ambiq does not support BLE 5.3/audio via BLE, I also designed a second variant of the PCB that replaces the SoC with an NRF5340. Unfortunately, due to time constraitns, I never had time to bring-up that board and test audio playback.


The main PCB featuring some bodge wires ™️ is shown above. It is a 6-layer HDI board with double-sided loaded that I hand-assembled.

Mechanical Design



I designed the case in SolidWorks, and printed it on a FormLabs 3L resin printer. It is split into two halves and a battery cover. A 32mAh Panasonic battery is housed in the stem, the sensors are installed in the front case, and the PCBs are sandwiched in between.

Device



The final device is pictured above. All modules were connected manually using enamel wire. The firmware is FreeRTOS based, and currently limited to transmitting the raw sensor data over Bluetooth. I used my BLELog script to receive and process that data in real time. Again, due to time limitations, I did not implement the algorithms on the device itself, but they are rather simple and could easily be ported.



Above is an example blood oxygen concentration measurement. Please have a look at the paper for precise results.

Positional Analysis


One of the more interesting details I encountered during the development process is the performance difference of various PPG sensor positions. To decide on a sensor position while developing the case, I made a number of silicon casts of my ear, in which I then installed the PPG sensor in various places.

Interestingly, I found that all positions are roughly equivalent in terms of the recorded signal amplitude, but vary wildly in the susceptibility to different kinds of motion artifacts.


Specifically, positions forward positions in the ear canal were much more susceptible to jaw movement, but less impact by head movement. For more details, please have a look at the paper.

Our paper may be cited as follows:

@inproceedings{VitalCore,
  author={Schilk, Philipp and Dheman, Kanika and Magno, Michele},
  booktitle={2022 18th International Conference on Wireless and Mobile Computing, Networking and Communications (WiMob)}, 
  title={VitalPod: A Low Power In-Ear Vital Parameter Monitoring System}, 
  year={2022},
  pages={94-99},
  doi={10.1109/WiMob55322.2022.9941646}
}