Please, change device orientation to portrait


Software | White Paper

TegBand: Implementing A Thermo-Electric Generator Band

The TegBand Project demonstrates how to harvest ambient thermal energy.

The level of harvested energy is sufficient to power MCU, digital sensor, and LED; to measure environment conditions; to communicate with smartphones; and to provide the user with visual feedback.

This project proves battery-free applications that do not require charging of the main battery itself or its replacement.

Overview and Architecture

The project hardware prototype was implemented in the form-factor of a hand-band, which uses the temperature difference between the human body and the surrounding environment to generate electricity. The system consists of two parts: a TEG module and a PCB board with plastic fixture. The TEG module acts as the energy source when there is a temperature difference between the top and the bottom sides. The generated voltage and current depend on actual working conditions. (For example: 50mV from the human hand, when environment temperature is 21˚ C.) Laird for power harvesting from human skin was used. The figure bellow shows the first tests:

The TEG module was placed in a metal cover with a radiator installed on top of the cold side. The radiator helps to dissipate heat on the top side to keep the temperature difference over time. The TEG module and overall case tend to have the same temperature as the body does, so heat dissipation is important for the further work of the module.

To use TEG output voltage, a step-up converter (LTC3108) was involved. It can operate from 20mV input voltage and provide the stabilized 5V output

The step-up DC/DC converter work is based on the transformer usage (1:100). By switching off the primary coil of the transformer, it generates AC voltage from a low-level TEG signal. An amplified signal of the secondary coil is then rectified and used by charging the circuit inside the IC to a charge storage capacitor.

The charge level of the storage capacitor is monitored by a low power comparator with internal reference MAX9064. The comparator is set to turn on when the input is above 3.8V and turn off when it’s below 2.5V. The 1.3V hysteresis allows us to use part of the stored energy:

The discharge speed of the storage highly depends on the average current consumption. To minimize the current leakage, a low quiescent current low-dropout regulator (LDO – TPS7A05) was selected. Typically, it consumes 1uA, and the enabled input of LDO is used to disable the power supply of the load when the storage capacitor discharges, or does not reach the maximal charge level.

The analog comparator is used to control enabled input of LDO. When the comparator output is high, it enables the LDO to provide a stable 2.5V to the MCU and sensor. When the storage capacitor is discharged to 2.5V, the comparator output will drop down and disable the load supply through the LDO. Then the charge-discharge process on the storage capacitor repeats again.

The upper threshold to turn on the load was intentionally selected lower (3.8V) than the maximum (5V). After the TEG band is placed the power output decreases as the skin becomes colder, and both the case and the radiator temperatures rise. The power output of the TEG reaches around 20mV-40mV, depending on environmental conditions. In this case, multiplication with the transformer (1:100) won’t exceed a voltage of 4V.

To monitor power consumption, an X-NUCLEO-LPM01A kit was used. Power monitoring helps to pinpoint a preferable model for communication and update the speed of the sensor data. There are three main elements in the design that consume power: Cortex M-0 MCU with BLE(CY8C4248LQI-BL553), a sensor that measures temperature and humidity (HTS221), and the LED.

To visually show that the system works and transfers data, the LED turns on once per second for a short time (1ms).

The monitor allows the identification of the two types of spikes that influence the level of average power consumption. The regular advertise event is configured in BLE module to be sent once a second. These spikes have big amplitude (22mA) and short duration (5us). The smaller advertising interval increases sensors stream data rate but also it makes the current consumption grow.

The current consumption of the temperature and humidity sensors is fixed (~600uA) and depends on the configuration settings being used. It can be configured to measure the data periodically or upon request.

It was decided not to use a connectable Broadcaster BLE role and, instead, to update the advertising packet for data transfers. This allows for the sending of update information every second, prolonging battery life. A connection mode with long connection intervals can also be used for a similar approach but, in the event of packet loss, the connection will be unstable and cause reconnect events that both disrupt software functionality and increase power consumption.

Optimizing MCU is sufficient. The actual current consumption of the MCU depends on its mode (Active, Sleep, Deep Sleep, Hibernate, Stop). Each of these modes has different levels of consumption, and uses different resources and wake-up sources to get back into an active state. To minimize the current consumption, most of the time must be spent in one of the low-power modes, waking up from one of the sources and doing a useful job for a small period of time. Check the figure below. In this project, we used the Deep Sleep mode for power saving as it doesn’t require an external hardware wake-up source and simplifies firmware management. In Stop and Hibernate modes, the MCU needs to use a special pin or low power comparator as a wake-up source and the wake-up process is equal to reset. To avoid this, Deep Sleep was selected as the main power saving mode.

The other important parameter is the MCU frequency. The processor datasheet identifies: 2.1mA @ CPU = 3MHz, and 13.4mA @ CPU = 48 MHz. One of the first steps is to decrease CPU speed to minimize power consumption. Two other considerations were critical in this design:

  1. SWD pins for debugging should be put in GPIO mode to minimize power consumption.
  2. The 24MHz External Crystal Oscillator (ECO) and 32kHz Watch Crystal Oscillator (WCO) stabilization time at power up can be around 500ms, during this time, the device will be in active mode and cause high power consumption. This may lead to exhausting of all harvested energy even before the initialization ends. The workaround is to boot using the Internal Main Oscillator (IMO) and Internal Low Speed Oscillator (ILO) and switch to the external oscillators’ usage after initialization is finished.


The Android application was developed to graphically represent the sensor’s data. The application continuously scans for Bluetooth advertising packets and when the packet from TegBand is received, the charts get updated with the new values (humidity and temperature). The red background circles blink when new data is acquired, highlighting a new event.


The development of the ultra-low-power MCUs and low-energy communication has brought the possibility of creating battery-free wireless sensor nodes, which are becoming ubiquitous. The built prototype uses thermal energy-harvesting for continuous work in beaconing mode (one-way data-sending). Involved techniques allow for building battery-free devices from wearable electronics to industrial systems, with no need to replace, recharge, or maintain battery. Future work should be focusing on much more complicated tasks, such as bi-directional communication between the devices to create highly reliable unmaintained mesh networks.