When you’re thinking about making your own fitness tracker, smartwatch, or wearable biosensing device, Maxim Integrated has recently launched the hSensor Platform, offered as the MAXREFDES100# reference design, which is a great place to start. Although it is primarily designed as a development kit, out of the box it already offers some exciting functionality, allowing an easy start in exploration of the possibilities of biomedical sensing.
The complete development platform comes with an ARM Cortex microcontroller (MAX32620) for doing the on-board processing. An accelerometer (LIS2DH) and accelerometer/gyro (LSM6D3) and barometric pressure sensor (BMP280) been added for measurement of motion and a Bluetooth low-energy communication section (EM9301) for wireless connectivity.
So far nothing revolutionary, but wait till you see the score of Maxim’s own health sensor components on board: The board features two temperature sensors (MAX30205) at both sides of the board for precision skin temperature sensing, a MAX30003 analog front end (AFE) for measuring a variety of biopotential signals, including electrocardiography (ECG, heart), electromyography (EMG, muscle), and electroencephalography (EEG, brain). In addition, the platform also supports a variety of optical measurements including pulse oximetry and heart-rate (HR) detection at three wavelengths, 880nm (infrared, IR), 660nm (red), and 537nm (green) using the MAX30101 optical sensor.
The board is very compact (25.4mm×30.5mm) so it’s small enough to be encased as a wrist-worn or chest-worn device. It’s powered by a CR2032 battery which (depending on the used components and communication bandwidth) will last for several hours (based on my experience).
The hSensor development kit ships with the following components to be up and running quickly:
If you don’t know mbed yet, this is also a nice motivator to look into that. The common challenge that you have to get communication drivers running and an IDE downloaded and installed on your system to start developing code has been nicely circumvented in the mbed realm by working with a browser-based compiler and programming-by-file exchange.
The developer.mbed.org website offers an online compiler suitable for many ARM based platforms. The projects can of course be exported for off-line compilation if you have the correct toolchain installed — but the beauty is that as soon as you’re connected to the internet, you don’t need to. Serial or JTAG drivers are not necessary for uploading programs. An mbed device typically connects as memory device (like a USB stick or SD card) and a program file (*.bin) can be simply ‘saved’ to this device.
The MAX32620HSP is supported in the mbed online environment, and the available test sources work right out of the box. Even on Mac (with which I experienced problems in earlier mbed projects due to all the ‘hidden’ and catalogue files that need to be saved to memory devices) the programming works smoothly.
The supplied programming dongle can be used to transfer programs directly from your browser to the hSensor:
The board comes pre-loaded with an application using Maxim’s HPC-RPC protocol for communication, as well as Bluetooth LE connectivity. These applications are by no means meant as finished products for OEM product development, but function as nice, open, well documented starting points. The board connects through a USB cable, registering as CDC serial device. A quick poke at the board using Arduino’s serial monitor (why not, the first one at hand, always check if you can do the “hello world” with an on-board LED) and test of the RPC protocol works as expected.
Returns the current software version
Turns on the onboard LED .. etc. Using this protocol all registers of available devices can be checked, programmed, as well as the scheduling of ‘missions’ — consisting of register settings, sampling frequencies and output formats.
The sources for this HSP-RPC protocol are available for the mbed environment. In the mbed environment there is also a clear specification of the interface command as well as the API for the used components.
A PC (windows) GUI application uses this protocol to configure the board, program ‘missions,’ and visualize data. A graphic link between parameters and schematic layout facilitates this. This PC application runs on a system with Windows 7 (no success at WindowsXP or Win10 in a virtual box — but hey, that’s probably just me) and depends on the MicroSoft .NET framework 4.0. The development team at Maxim is planning to release the sources for this GUI application, as well as the sources for the Android app as well in the coming months.
For the PC connection, wireless connectivity has not been explored or designed further because of the difficulties to get one single universal working combination of Bluetooth dongle/hardware, Bluetooth stack, etc. This also means that for viewing the signals using the GUI, the platform has to have an electrical connection to your system (no galvanic separation) so when checking ECG/EEG signals the system HAS to be disconnected from the power mains! Not only for safety reasons, but also the delicate ECG voltages are influenced by the noise and grounding through the laptop’s supply. The graph shown below is generated with hSensor connected to laptop, power supply disconnected. When using Bluetooth for monitoring on a mobile device, the galvanic separation is guaranteed.
The Android app works out of the box on a system running Android 4.4 or higher. By default the signals of the two temperature sensors and barometric pressure sensor are provided. For measuring ECG or accelerometer, a ‘mission’ profile needs to be made (using the Windows GUI application) which can be started from the Android app. A ‘mission’ can also be started from the hSensor using the tiny button.
To get the ECG readings described in the previous section, I fixed the electrodes to my body in a 3-lead configuration. This can be done in several ways, resulting in different readings, see Figure 10. A good source to get started on ECG electrode placement is for example this: ECG Primer.
The PC GUI offers options for data visualization and recording. In the previous section the plots from ECG measurement are shown. Here is also a reading of the optical heart rate sensor. It works very quickly using a finger tip placed on the sensor. Measuring the blood flow at a different spot (your wrist for example) works less fluently (you have to sit VERY still).
The Maxim hSensor Platform provides however an excellent starting point for exploring the possibilities of Maxim’s range of health sensors. A large effort has been put into getting users up and running quickly, resulting in well documented ‘getting started’ apps, an open architecture, and open development tools.
In order to get the product ‘Maker Ready’ Maxim organized a series of events such as a hackaton (Aggies Invent) in December 2016 for about 60 students of the Texas A&M Health Science Center, Texas A&M Engineering, and Texas A&M Children’s Hospital, resulting in a large number of working proof-of-principle setups. The winning team of this event utilized the barometer on the hSensor to measure the pressure in mattresses to create a scale for people who cannot stand.
Compared with the Bitalino board (which comes in roughly the same price range) the Maxim hSensor offers more integrated functionality and much more configurability. The software and tools are open and well documented. Presently, the Bitalino system offers more connectivity options such as examples for MatLab, LabView, etc. but the developers of the hSensor plan to release more examples and additions to their SDK in the coming months. The sensors on Maxim’s hSensor offer more configuration options and precision (also more complexity) making the platform more suited for quantitative measurement than the more qualitative oriented Bitalino. For projects relying on quantitative measurements in more detail and precision, for projects closer to clinical use or clinical trials I would certainly recommend checking out Maxim’s hSensor. It is really astonishing to take a peek at your own biosignals into such detail with a very small effort.
For me personally it is a great candidate to continue the hunt for ‘AWE’ – the feeling of goosebumps (see this project on Make:). Since measuring goosebumps directly is a very complex process, aggregation of other sensory information is probably the only way to go. Heart rate, temperature, motion are all in there somewhere – with the hSensor we’re getting a head start..
|Maxim hSensor||Maxim Integrated|
|Type:||Single Board Computer MAXREFDES100# — a platform with multiple Maxim parts, including a CPU|
|Software:||Windows and Android|
|Clock Speed:||96Mhz internal oscillator|
|Processor:||32-bit RISC ARM Cortex - M4 with FPU|
|I/O Pins Digital:||xSPI, 4xUART, 3xI2C 1-Wire master and USB 2.0, 49xGPIO, 6xPWM. A small subset of the GPIO pins (49) of the controller are available on the board as testpin (read: very small via's on the board). The pins that are available (24 in total) are also the ones used to communicate with the on-board hardware using I2C or the BLE section for example. Although not impossible, they are not actively meant for user expansion, but more likely for testing communication with the on-board hardware.|
|I/O Pins Analog:||4x (5V tolerant)|
|Memory:||2MB Flash, 256KB SRAM|
|Additional Features:||The kit comes with the following: MAXREFDES100#, Debugger Board, Battery Holder, USB-C and Micro-USB Cables, and ECG Cables. Hardware and firmware design files are free and available online|