One IR and two green LEDs are driven by the BH1792GLC sensor, which provides a constant, programmable current. The choice of LEDs is not critical at all, since the integrated light filters on the sensor allow only a narrow band of green light in the range from 520nm to 560nm with 0.8X reduction in respect to the center frequency (about 540nm). The complete monolithic integrated solution with three constant current LED drivers, narrow bandpass for the green light spectrum, IR detection, low power consumption, and a high integration ratio that allows a very low number of external components, make the Heart rate 8 click a perfect solution for the development of various wearable health-related devices, smart phones, tablets, and similar space-constrained applications.
Heart Rate Monitoring or HRM
While the blood passes through the capillary blood vessels, they expand and dilate. Their light reflectance index changes accordingly. This is the basis of the photo-plethysmogram (PPM), a method used for the volumetric measurement of an organ, or in this case - blood vessels. The heart rate signal is calculated according to the changes of the reflected green light, sensed by the PD element. The Heart Rate 8 click can provide the HRM readings by simply placing the index finger over the optical sensor.
How does it work?
Heart rate 8 click is equipped with the BH1792GLC, a monolithic integrated sensor for heart rate monitoring, from ROHM Semiconductor company. This IC is a highly integrated optical sensor, very well suited for performing PPM measurements. Due to the large integration scale of this sensor, as well as its low power consumption, it is perfectly suited to be used on a wearable IoT device. However, being a Click board™, Heart rate 8 click allows easy evaluation and rapid application and firmware development.
Two green LEDs are driven by the integrated LED driving section of the BH1790GLC sensor, with the programmable Synchronized Measurement mode, with the measuring frequency between 32Hz and 1024Hz. While in this mode, two green LEDs will operated at various frequencies between 32Hz and 1024Hz, depending on the MSR bits of the measurement mode register. This allows automatic LED burst rate adjustment for achieving optimal readings. In this mode, a programmed number of measurements will be performed, and the readings will be stored on the 35 samples deep FIFO buffer. LED current can be programmed in the range from 0 to 63 mA, providing another layer of control while using this mode. The measurement is performed upon receiving the MEAS_SYNC command by setting the MEAS_SYNC bit to logic 1.
There are also two additional modes: Non-Synchronized, and Single Measurement mode, both allowing the use of the IR LED to detect an IR emitting object, such as the hand, or finger. The current through the LEDs can also be programmed in the range from 0 to 63mA, for both the IR and the green LEDs. Non-Synchronized mode offers a fixed 4 Hz LED burst operation, while the Single Measurement mode allows manual control of all the parameters. No data will be stored on the FIFO buffer in thisi mode. The measurement is performed upon receiving the MEAS_ST command by setting the MEAS_ST bit to logic 1.
The reflected light burst is detected by a sensing element in a form of a photo-diode, sampled by a low noise 16-bit A/D converter. The photo-diodes are located behind two light filters which pass only a narrow band of green light in the range from 520nm to 560nm, with 0.8X reduction in respect to the center frequency. The top filter is an IRCUT filter, that prevents the influence of the IR light, while the second filtering layer only passes the green light. This allows even broader color range LEDs to be used, reducing the overall cost of the design. However, Heart rate 6 click uses a pair of specialized green LEDs, with the spectral response that is closely matched to the passband properties of the optical filter. This allows most of the LED energy to be used, further improving the power consumption profile.
The second A/D converter does not have any light filtering, allowing the light coming from the IR diode to be sensed. This is useful when a separate detection of the IR spectrum is required, for example to detect an approach of the finger. The IR LED driver is physically shared with the second green LED driver, but the IR LED has its own dedicated pin.
Two sets of four output registers contain the 16-bit measurement data in a form of two 8-bit words, for the measurement when the LEDs are ON and when the LEDs are OFF. The upper and the lower 8-bit registers contain the measurement data which can be retrieved over the standard I2C interface. The datasheet of the BH1792GLC contains the correct algorithms which describe the measurement process with more details. However, the Click board™ comes with the library which contains functions that allow measurements to be performed with minimum efforts.
A dedicated programmable INT pin can be used to signal an interrupt to the host MCU. The interrupt can be triggered for several different events, including the data ready event (measurement completed), an event when the IR threshold is exceeded, and so-called watermark event which occurs when the FIFO buffer is nearly full. It can also be completely disabled. The INT pin is routed to the INT pin of the mikroBUS™.
A low number of external components required by the BH1792GLC sensor, allows enough room on the Click board™ for the PCA9306 IC, a well-known I2C level translator, allowing the Heart rate 8 click to be interfaced with many different MCUs, both operating with 3.3V and 5V logic levels.
Specifications
Type |
Biomedical |
Applications |
Heart rate 8 click is an ideal solution for the development of various wearable health-related devices, smart phones, tablet PC, etc. |
On-board modules |
BH1792GLC, a monolithic integrated sensor with I2C interface for heart rate monitoring, from ROHM Semiconductor company |
Key Features |
A complete heart rate measurement solution with constant current LED drivers, built-in photo diodes with filtering for both green and IR light spectrum, high integration ratio allowing a low number of external components, FIFO buffer for storing up to 35 samples, and more. |
Interface |
I2C |
Input Voltage |
3.3V,5V |
Click board size |
M (42.9 x 25.4 mm) |
Pinout diagram
This table shows how the pinout on Heart Rate 8 Click corresponds to the pinout on the mikroBUS™ socket (the latter shown in the two middle columns).
Notes |
Pin |
|
Pin |
Notes |
---|
|
NC |
1 |
AN |
PWM |
16 |
NC |
|
|
NC |
2 |
RST |
INT |
15 |
INT |
Interrupt |
|
NC |
3 |
CS |
RX |
14 |
NC |
|
|
NC |
4 |
SCK |
TX |
13 |
NC |
|
|
NC |
5 |
MISO |
SCL |
12 |
SCL |
I2C Clock |
|
NC |
6 |
MOSI |
SDA |
11 |
SDA |
I2C Data |
Power supply |
3V3 |
7 |
3.3V |
5V |
10 |
5V |
Power supply |
Ground |
GND |
8 |
GND |
GND |
9 |
GND |
Ground |
Onboard settings and indicators
Label |
Name |
Default |
Description |
---|
PWR |
PWR |
- |
Power LED indicator |
VCC SEL |
VCC SEL |
Left |
Logic voltage level selection: left position 3.3V, right position 5V |
Software support
We provide a library for the Heart Rate 8 on our LibStock page , as well as a demo application (example), developed using MikroElektronika compilers. The demo can run on all the main MikroElektronika development boards.
Library Description
Library performs the control of the HeartRate 8 Click board. Library offers a choice to communicate with the device by using I2C interface and driver functions. Functions perform register writing and reading operations, GREEN and IR LED control, LED data reading, device configuration... For more details check documentation.
Key functions:
uint8_t heartrate8_writeSingleByte( uint8_t regAddr, uint8_t dataIn )
- Function writes one byte to the register.
uint8_t heartrate8_readBytes( uint8_t startAddr, uint8_t *dataOut, uint8_t nBytes )
- Function reads the desired number of bytes from the registers.
uint8_t heartrate8_getData( uint8_t dataSelect, uint16_t *ledOutON, uint16_t *ledOutOFF )
- Function gets the selected data from the determined LED Data registers.
Examples description
The application is composed of the three sections :
- System Initialization - Initializes peripherals and pins.
- Application Initialization - Initializes I2C interface and performs the device reset, after which the device configuration can be performed. The device is configured to work in Single Measurement Mode with LED pulsing. The driver which is selected is driver for the GREEN LED Data.
- Application Task - (code snippet) - Sends command to start measurement cycle, then waits until measurement cycle is finished. When measurement cycle is done, gets LED ON and LED OFF Data for the selected LED driver (GREEN or IR LED) and performs data plotting on serial plotter every 35ms.
void applicationTask()
{
heartrate8_startMeasure();
intCheck = heartrate8_checkInt();
while (intCheck != _HEARTRATE8_INT_ACTIVE)
{
intCheck = heartrate8_checkInt();
}
heartrate8_getData( _HEARTRATE8_GREEN_DATA_GET, &ledDataON, &ledDataOFF );
plotRes( ledDataON );
intCheck = heartrate8_intClear();
}
Additional Functions :
void plotRes( uint16_t plotData )
- Performs data plotting on serial plotter.
void logRes()
- Performs LED Data logging on uart terminal.
The full application code, and ready to use projects can be found on our LibStock page.
Other mikroE Libraries used in the example:
Additional notes and information
Depending on the development board you are using, you may need USB UART click, USB UART 2 click or RS232 click to connect to your PC, for development systems with no UART to USB interface available on the board. The terminal available in all MikroElektronika compilers, or any other terminal application of your choice, can be used to read the message.
mikroSDK
This click board is supported with mikroSDK - MikroElektronika Software Development Kit. To ensure proper operation of mikroSDK compliant click board demo applications, mikroSDK should be downloaded from the LibStock and installed for the compiler you are using.
For more information about mikroSDK, visit the official page.