Silicon Labs documentation on Energy Harvesting version 1.0.

Documentation source: https://docs.silabs.com/energy-harvesting/1.0

# Energy Harvesting

## xG22-EK8200A Getting Started Guide

This document guides you through the first unboxing experience of the EFR32xG22E Energy Harvesting Explorer Kit, setting up a battery-less demo application, and reading values from a mobile phone. The EFR32xG22E Energy Harvesting Explorer Kit comes with this demo application pre-loaded.

### Hardware Setup

To run the demo application, you will need the following items, all included in this kit:

- BRD2710A - EFR32xG22E Explorer Board
- BRD8201A - Dual Harvester Energy Harvesting Shield
- TPLC-3R8/10MR8X1 - **Lithium Hybrid Capacitor** 10F 3.8 V
- AM-1417CA-DGK-E - Indoor Solar Cell 18.75 µW 2.4 V

In addition to the items above, you will need the following equipment:

- A flat screwdriver, 2mm
- A smart phone
- USB-C cable and charger (optional)
- Voltmeter (optional)

**Safety note:** Be careful when handling the Lithium Capacitor - **Risk of shortage**. Shortening the capacitor's leads might permanently damage the capacitor and expose users to health hazards.

1. Inspect the items above, locate the MikroBUS™, STO, and SRC2 connectors.
2. Familiarize yourself with polarity markings by the board's connectors, capacitor, and solar cell.  
   ![A circuit board with wires](/energy-harvesting-getting-started-overview/0.1/images/board-1.png "Figure : steps 3 - 5")
3. Connect the Dual Harvester Energy Harvesting Shield (BRD8201A) to the EFR32xG22E Explorer Board, aligning the polarity markings on the top-left corner of each board.
4. Connect the capacitor to the STO connector of the shield and gently tighten the two screws.  
   **Safety note:** Make sure the **polarity** shown on the capacitor case matches the polarity signs on the board
5. Connect the solar cell to the SRC2 connector of the shield and gently tighten the two screws.  
   **Note:** Make sure the red wire is connected to the positive input, and the black wire is connected to the negative input. **Reverse polarity might permanently damage the IC.**  
   Depending on the state of charge of the capacitor at the time of unboxing, it might take some time for the solar cell to charge it so that the application can start. The following two steps are optional and are meant for those who do not want to wait.  
   ![tep 6: enable fast charge](/energy-harvesting-getting-started-overview/0.1/images/board-2.png)
6. To enable fast charge, move the jumper from the auxiliary connector (right side) to the charge current limit selector (top-left corner of the shield).
7. Connect the EFR32xG22E Explorer Board to a charger through the USB-C port.
8. Check the voltage at STO connector by using a voltmeter to check the state charge of the capacitor. Voltage range is 2.5 V (0%) – 3.8 V (100%).

### The Mobile App

The demo app is pre-loaded in the SoC. By now, the kit is beaconing BLE packets reporting the capacitor voltage every 25 seconds. The easiest way to read these packets is using the [Simplicity Connect App](https://www.silabs.com/developer-tools/simplicity-connect-mobile-app?tab=overview), developed by Silicon Labs and free of charge.

![Simplicity Connect App](/energy-harvesting-getting-started-overview/0.1/images/simplicity-connect-mobile-app.png)

[Simplicity Connect Mobile App - Silicon Labs](https://www.silabs.com/developer-tools/simplicity-connect-mobile-app?tab=downloads)

1. Download the Simplicity Connect Mobile Application for [iOS](https://apps.apple.com/us/app/simplicity-connect/id1030932759) on the App Store or [Android](https://play.google.com/store/apps/details?id=com.siliconlabs.bledemo&hl=en_NZ) on Google Play.
2. Open the application. There might be many BLE devices nearby so filtering might be a good option.  
   ![Simplicity Connect Mobile App](/energy-harvesting-getting-started-overview/0.1/images/mobile-app-images.png "Figure . Steps 3-5")
3. Press the filter button.
4. Type 'EH' or 'EH Sensor' to filter other devices than the battery-less kit.
5. By now, the kit is beaconing BLE packets reporting the capacitor voltage every 25 seconds. These are displayed as 2 bytes, hex format, big endian, in the _Manufacturing Specific Data_ field, according to:

![Equation for report capacitor](/energy-harvesting-getting-started-overview/0.1/images/getting-started-equation.png)

**Note:** Make sure your phone is not in a low-power mode or power-save mode that might impact Bluetooth scan frequency, hence the ability to capture beaconing.

### Experimenting Further

Visit the Silicon Labs [GitHub](https://github.com/SiliconLabs) site and see the other battery-less sample apps available for this kit. Download the pre-compiled apps or the sources files from [Silicon Labs' SDK Energy harvesting Extension on GitHub](https://github.com/SiliconLabs/energy_harvesting_applications) as start point to develop your own code with this kit:

- Battery-less Bluetooth Beacon app, based on BLE stack
- Battery-less Bluetooth Beacon app, based on Silicon Labs' RAIL stack (Radio Abstraction Interface Layer)
- Battery-less Zigbee Green Power sensor device
- Battery-less Zigbee Green Power Switch
- Battery-less Bluetooth switch

The kit is also compatible with MikroBUS™ and QWIIC® add-on boards that support 1.8 V – 2.2 V operation.

e-peas' [AEM13920](https://e-peas.com/product/aem13920-dual-source-energy-harvesting) PMIC can be configured to harvest powers from several different sources you might want to explore.

Find out more about energy harvesting applications with Silicon Labs SoCs, software optimization, measurement methods, and more in [Energy Harvesting Applications with EFR32xG22E](../energy-harvesting-start).

Visit the [EFR32xG22E Energy Harvesting Explorer Kit](https://www.silabs.com/development-tools/wireless/efr32xg22e-energy-harvesting-explorer-kit?tab=techdocs) page to download hardware design documents, datasheets, and more documentation.

Learn more and download [Simplicity Studio Software](https://www.silabs.com/developer-tools/simplicity-studio), Silicon Labs' software development tool.

The user guide [UG591](https://www.silabs.com/documents/public/user-guides/ug591-ek8200a-user-guide.pdf) provides more insight into other applications relevant to this kit, electrical specifications, guidance for measuring currents, and details about the hardware.

## Energy Harvesting Applications with EFR32xG22E

This document describes different methods of energy harvesting to power EFR32 wireless devices without battery or line power. Also known as "Ambient IoT", this enables devices to operate without needing batteries and battery replacement.

### Device Compatibility

This document provides guidance for the EFR32xG22E family, which includes:

- EFR32MG22E
- EFR32BG22E
- EFR32FG22E

### Overview

Energy harvesting allows IoT devices to operate without batteries or line power. Battery-less devices have the following advantages:

- Increased flexibility of installation (no need for power outlets)
- Reduction in cost of maintenance (no need for battery replacement)
- Reduction in cost of batteries
- Reduce environmental impact (no battery waste)
- Fewer shipping restrictions compared to devices with batteries

Energy can be harvested from a variety of sources. Common ones include:

- Solar
- Kinetic (vibration, motion, or button press)
- Thermal
- Magnetic
- RF

When the energy source is intermittent, energy can be stored using storage methods such as:

- Supercapacitors
- Thin film capacitors
- Solid state capacitors
- Hybrid lithium capacitors
- Rechargeable batteries
- Printed batteries

Calculating the energy budget and storage requirements depends on the application. Most ambient IoT devices will spend a majority of their time in low-power sleep modes such as EM2 or EM4. When an event occurs and there is enough power to run, the goal is for the Wireless MCU to complete the task quickly and go back to sleep mode. How much energy is required will depend on things like run time, the amount of data to process, and radio transmit power.  Some energy sources are "trickle" sources and provide a continuous amount of power (for example, a solar panel). These sources are good for applications that are always on. Other sources are "transient" and provide a limited amount of energy per event (for example, from a switch press).

Available energy can be measured in micro-Joules (µJ) or milliwatt-Hours (mWh). The EFR32xG22E consumes about 150 µJ to boot from PoR and 17 µJ to boot from EM4.

### Optimizing MCU Software

Many power saving and time saving (same thing) optimizations are possible for the EFR32xG22E. The device firmware can also track how much power is available and adjust operations accordingly (for example, how often to transmit, how much data to transmit, or other tasks like flash erases).

In EM2 and EM3, RAM retention has a significant impact on current consumption. Reducing RAM retention (if possible) can yield significant power savings.

Waking from EM4 takes a significant amount of power to reinitialize the device. For longer sleep periods, this consumes less energy than EM2, but if the device will wake often, it can be more efficient to stay in EM2 and not have to reinitialize the device.  Cold starting the device (Power on Reset) takes even more time and energy, so the device should remain in EM4 instead of completely powered off if possible.

The EFR32xG22E has reduced security features compared to other Series 2 devices and has security on par with Series 1 devices. This change results in significant reductions in power consumption and boot time from power off or from EM4. See application note [AN1447](https://www.silabs.com/documents/public/application-notes/an1447-xg22-to-xg22e-migration.pdf) for more information.

The type of wake up sources varies with energy mode. See the EMU section of the EFR32xG22E  [reference manual](https://www.silabs.com/documents/public/reference-manuals/efr32xg22-rm.pdf) for more information. Peripherals that use the low frequency oscillator are active in EM2, and so wakeup sources include LETIMER, I2C, and EUART. Wakeup sources that are available in all energy modes include pin interrupts, BURTC, and RFSENSE. This allows a device to wake periodically, upon input from another device, or to wake when a radio transmitter is present.  With RFSENSE, a scanner can wake devices when it is present, letting them remain in a low power mode, such as EM4, the rest of the time.

Available energy, as well as charge rate and discharge rate can be measured if the PMIC being used supports it. For example, the AEM13920 has a feature called Average Power Monitoring, which can measure power from the source to the storage element and from the storage element to the load. The Silicon Labs PMIC part, EFP01 has a coulomb counter that measures power consumed.

The voltage on storage devices can also be measured with the IADC, but converting voltage across an energy storage element to how much energy is available for the application requires detailed knowledge about the discharge curve of the storage element. The IADC has internal inputs for supply pins AVDD, IOVDD, DVDD, DECOUPLE, and VSS. The supplies AVDD, IOVDD, and DVDD are divided by 4 so they can be easily measured by the internal voltage reference. IADC readings can also be taken from IO pins, and connected to other storage devices such as a supercapacitor that is not directly connected to the device. A voltage divider can be used to bring the reading into range, analog inputs are limited to the lower of AVDD and IOVDD. For more information on IADC measurements see Application notes [AN1189](https://www.silabs.com/documents/public/application-notes/an1189-efr32-iadc.pdf) (IADC) and [AN0018.2](https://www.silabs.com/documents/public/application-notes/an0018.2-efr32-efm32-series-2-supply-voltage-monitoring.pdf) (Series 2 Supply Voltage Monitoring).

Data stored in RAM will be retained across energy modes EM0 - EM3. In EM4, ordinary RAM is not retained, but there are 128 bytes of BURAM that are preserved across every type of reset except for brownout and power on reset. Data that needs to remain after the device is powered off must be written to flash. Data can be stored in flash using direct writes to flash memory or a software library like NVM3. Note that erasing a flash page requires a significant amount of time (typically 12.9 ms) and current. If NVM3 memory is repacked, it will require at least one page erase. Because code cannot be executed out of flash during a write or erase, it is difficult to stage flash erase operations in parallel with other tasks.

### Optimizing Radio Power

A typical wireless project will initialize the wireless stack in software, and depending on the wireless protocol, may join a network or establish a connection to another device. In order to reduce power consumption, Ambient IoT devices can operate in transmit only modes that do not require continuous network connection, such as

- Bluetooth Beaconing
- Zigbee GPD
- TX only proprietary packets

Where possible, the device can transmit radio packets directly using the [RAIL abstraction](https://docs.silabs.com/rail/2.16.5/rail-getting-started-overview/) layer, rather than initializing the radio stack.

Radio settings, including transmit power, amount of data, transmission PHY (1M vs 2M), sleep interval, beacon interval, and number of beacons can have a significant effect on power consumption.

These parameters can be selected and dynamically adjusted by an energy-aware algorithm ensure the device meets its power budget.  If energy is limited, it can decrease the number of beacons, sleep longer between transmits, reduce the amount of data sent, and reduce transmit power.  If energy is in abundance, it can transmit more often, transmit more information, and use higher transmit power.

### Hardware and Kits

There are lots of evaluation boards for various devices. Silicon Labs provides the EFR32xG22E Explorer Kit ([EK2710A](https://www.silabs.com/development-tools/wireless/efr32xg22e-explorer-kit)) which features a EFR32MG22E. This kit does not have an energy harvesting power source or storage, but it can be connected to these devices through the Qwiic connector. For more information about these boards, see User Guide [UG582](https://www.silabs.com/documents/public/user-guides/ug582-brd2710a-user-guide.pdf).

[E-peas](https://e-peas.com/) provides a PMIC and evaluation boards that can be coupled to our kits. The e-peas PMIC can work with energy harvesting devices like PV, thermal, or kinetic. The device configuration is set with GPIO pins (either jumpers or connected to the EFR32). Status pins (also GPIO) indicate the PMIC state (shutdown, ready) to the EFR32.

The EFR32xG22E Explorer Kit features a EFR32MG22E on a board with a J-Link debugger, a Qwiic connector, and a mikroBus socket that allows expansion boards or "shields" to be attached to it. Shields include energy-harvesting-specific shields which contain an e-peas PMIC and can be connected to power sources and storage devices.

The following shield boards are available as a kit from Silicon Labs.  The kit number for is xG22-EK8200A, and information about these boards is available in user guide [UG591](https://www.silabs.com/documents/public/user-guides/ug591-ek8200a-user-guide.pdf):

- BRD2710A - EFR32xG22E Explorer Kit Board
- BRD8201A - AEM13920 PMIC for dual energy sources
- BRD8202A - AEM00300 PMIC for kinetic pulse sources
- BRD8203A - Alternate battery and super-capacitors
- BRD8204A - AC Input Adapter
- BRD8205A - DC Input Adapter

Lab equipment such as Digital Multi Meters (DMMs) and Oscilloscopes can be used to evaluate and debug the power management of these designs. Voltage measurements at different nodes can be taken to determine how much power is being generated, how much is available in storage, and which parts are powered up. Measuring voltage does not affect the circuit. For devices connected with screw terminals, the screw is connected to the terminal and is a good location to put a probe.

Current measurements are slightly more complicated because they must go in series with the circuit being measured. Current meters measure the voltage across a known resistor. The lower the current range, the higher the resistance. In order to measure the current consumption in modes like EM2 (usually less than 10 µA), the resistance is usually too high for the EFR32 to start up. A workaround to this is to put the current meter in series with a short, start the device, and then remove the short to measure current.

The EFR32xG22E Explorer Kit has the footprint for a mini-simplicity header on the back of the board, although this connector is not populated.  Mini-simplicity headers can be used to power the device from a board that has AEM, and use Energy Profiler to measure the board's current consumption.  See application note [AN958](https://www.silabs.com/documents/public/application-notes/an958-mcu-stk-wstk-guide.pdf) for more information about the mini-simplicity header.

### Software Examples

Several energy optimized examples are available on our [GitHub](https://github.com/SiliconLabs/energy_harvesting_applications) page.

|No.|Example|Document|Protocol|Type|
|---|---|---|---|---|
|1|Bluetooth - SoC Energy Harvesting Sensor|[Readme](https://github.com/SiliconLabs/energy_harvesting_applications/blob/main/example/bt_soc_energy_harvesting_sensor/README.md)|BLE|Sensor|
|2|Bluetooth RAIL - SoC Energy Harvesting Sensor|[Readme](https://github.com/SiliconLabs/energy_harvesting_applications/blob/main/example/bt_rail_soc_energy_harvesting_sensor/README.md)|Bluetooth RAIL|Sensor|
|3|Bluetooth RAIL - SoC Energy Harvesting Kinetic Switch|[Readme](https://github.com/SiliconLabs/energy_harvesting_applications/blob/main/example/bt_rail_soc_energy_harvesting_kinetic_switch/README.md)|Bluetooth RAIL|Switch|
|4|Bluetooth - SoC Energy Harvesting Application Observer|[Readme](https://github.com/SiliconLabs/energy_harvesting_applications/blob/main/example/bt_soc_energy_harvesting_application_observer/README.md)|BLE|Observer|
|5|Zigbee - SoC GPD Energy Harvesting Sensor|[Readme](https://github.com/SiliconLabs/energy_harvesting_applications/blob/main/example/zigbee_gpd_soc_energy_harvesting_sensor/README.md)|Zigbee|Sensor|
|6|Zigbee - SoC GPD Energy Harvesting Switch|[Readme](https://github.com/SiliconLabs/energy_harvesting_applications/blob/main/example/zigbee_gpd_soc_energy_harvesting_switch/README.md)|Zigbee|Switch|
|7|Zigbee GPC - SoC Energy Harvesting Observer|[Readme](https://github.com/SiliconLabs/energy_harvesting_applications/blob/main/example/zigbee_gpc_soc_energy_harvesting_observer/README.md)|Zigbee|Observer|

### Sample App Measurements

Measurements were conducted on the Dual Harvester shield and the Kinetic Harvester shield from the Kinetic Energy Harvesting bundle BRD8200A.

Two types of measurements are conducted:

- V_MCU voltage measurements  
  - Showing the output voltage of the PMIC on the harvester board supplying the EFR32xG22E on the Explorer Kit.
- IV_MCU current measurements  
  - As a voltage measurement using an oscilloscope across a 10 Ω resistor.  
  - As a current measurement using a DC power analyzer configured as an ammeter inserted in the supply path.

#### Voltage and current measurement setup for bt_rail_soc_energy_harvesting_kinetic_switch

These measurements are conducted on the Kinetic Switch shield. The EFR32xG22E Explorer Kit is programmed with the sample application. The Kinetic Switch board is attached to the EFR32xG22E Explorer Kit. Two types of measurements are conducted:

- Oscilloscope measurements showing concurrent traces of V_MCU and I_MCU. (I_MCU is measured as a voltage drop across a 10 Ω resistor inserted in the supply path).
- I_MCU Current trace measurement, where a DC power analyzer, Agilent N6705B, configured as an ammeter, is inserted in series with the supply path.

![BRD8202A kinetic harvester shield dc power analyzer measurements](/energy-harvesting-start/0.1/images/brd8202-a-kinetic-harvester-shield-dc-power-analyzer-measurements.png)

![BRD8202A kinetic harvester shield oscilloscope measurements](/energy-harvesting-start/0.1/images/brd8202-a-kinetic-harvester-shield-oscilloscope-measurements.png)

![N6705B current trace measurement of I_MCU](/energy-harvesting-start/0.1/images/n670-b-current-trace-measurement.png)

N6705B current trace measurement of I_MCU

![Oscilloscope Voltage measurements of V_MCU and I_MCU](/energy-harvesting-start/0.1/images/oscilloscope-voltage-measurements-vmcu-imcu.png)

Oscilloscope Voltage measurements of V_MCU and I_MCU (as voltage drop across 10 Ω resistor). Voltage across shunt resistor on Y-axis.

![Oscilloscope Voltage measurements of V_MCU and I_MCU](/energy-harvesting-start/0.1/images/oscilloscope-voltage-measurements-vmcu-imcu-vmcu-on-y-axis.png)

Oscilloscope Voltage measurements of V_MCU and I_MCU (as voltage drop across 10 Ω resistor). V_MCU voltage on Y-axis.

#### Voltage and current measurement setup for: BLE and ZigBee Sensor Applications

![BLE and ZigBee Sensor](/energy-harvesting-start/0.1/images/ble-zigbee-setup.png)

These measurements are conducted on the Dual Harvester shield.

The EFR32xG22E Explorer Kit is programmed with the sensor sample applications:

- ZigBee
- BT Rail SoC
- BT SoC

The Dual Harvester shield is attached to the EFR32xG22E Explorer Kit as described in [UG591](https://www.silabs.com/documents/public/user-guides/ug591-ek8200a-user-guide.pdf).

SRC2 on the Dual Harvester shield is supplied with 2.6 V from a current limited voltage supply.

Two types of measurements are conducted:

- I_MCU Current trace measurement, where a DC power analyzer, Agilent N6705B, configured as an ammeter, is inserted in series with the supply path. Average current measured of the radio transmission.
- I_MCU Current trace measurement, where a DC power analyzer, Agilent N6705B, configured as an ammeter, is inserted in series with the supply path. Average current measured across the entire application cycle.

![ZGP wake up](/energy-harvesting-start/0.1/images/zgp-wake-up.png)

Zoom on the wake up period of the application

![ZGP repeat cycle](/energy-harvesting-start/0.1/images/zgp-repeat-cycle.png)

Markers set at the application repeat cycle, 90 seconds

![BT Rail Wakeup](/energy-harvesting-start/0.1/images/bt-rail-wakeup.png)

Zoom on the first wake up period of the application

![BT Rail Second Wakeup](/energy-harvesting-start/0.1/images/bt-rail-second-wakeup.png)

Zoomed at the second wakeup period of the application

![BT Rail Third Wakeup](/energy-harvesting-start/0.1/images/bt-rail-third-wakeup.png)

Zoom on the third wake up period of the application

![BT Rail TX](/energy-harvesting-start/0.1/images/bt-rail-tx.png)

Zoomed on the three TX periods of the application

![BT Rail application repeat](/energy-harvesting-start/0.1/images/bt-rail-application-repeat.png)

Markers set at the application repeat cycle, 25 seconds.  max of 500 M readings per datalog

![BT SOC Sensor wakeup](/energy-harvesting-start/0.1/images/bt-soc-wakeup.png)

Zoom on the wake up period of the application

![BT SOC Sensor application repeat](/energy-harvesting-start/0.1/images/bt-soc-application-repeat.png)

Markers set at the application repeat cycle, 25 seconds