An example of how to use EasyPWR to switch between different power modes in an EFR32 application:
#include "em_device.h"
#include "em_cmu.h"
#include "em_emu.h"
// Initialize clock and enable EasyPWR
void initEasyPWR(void)
// Enable GPIO and other peripherals as needed
CMU_OscillatorEnable(cmuOsc_HF, true, true);
// Configure EasyPWR
EMU_PowerDomainInit();
// Switch to low power mode
void lowPowerMode(void)
// Ensure all necessary peripherals are disabled or in low power state
EMU_EnterEM2(true); // Enter EM2 (stop) mode
// Main application
int main(void)
// Initialize EasyPWR
initEasyPWR();
while (1)
// Application logic
// ...
// Switch to low power mode when appropriate
lowPowerMode();
Developing with EFR32 and EasyPWR involves using Silicon Laboratories' Simplicity Studio, a comprehensive development environment that provides: efrpme easy firmware full
The EasyPWR firmware provides several features aimed at reducing power consumption while maintaining device performance: An example of how to use EasyPWR to
The "Full" distinction is critical. Many firmware distributions require you to source the bootloader, application, and NVM (non-volatile memory) settings separately. With EFRPME Easy Firmware Full, everything is bundled into a single, coherent binary or archive. You don't need to hunt for dependencies. Developing with EFR32 and EasyPWR involves using Silicon
EFRPME is a cross-platform firmware utility designed for end users and technicians to simplify complex firmware operations (BIOS/UEFI, embedded controllers, bootloaders, peripheral firmware). The “Full” edition includes recovery, backup, validation, and automation.
Before writing anything, create a backup:
python efrpme_backup.py --port COM5 --output original_firmware.bin
Keep this file safe in case you need to revert.