Eco-WakeLoc is an energy-neutral cooperative ultra-wideband (UWB) real-time locating system (RTLS) that combines wake-up radio (WuR) technology with energy harvesting to achieve centimeter-level indoor localization while maintaining energy neutrality. The system activates anchor nodes only on demand, eliminating constant energy consumption while achieving high positioning accuracy through cooperative localization protocols.
An in-depth analysis of the system can be found here: TODO (arXiv)
Indoor localization systems face a fundamental trade-off between energy efficiency and responsiveness. Traditional real-time locating system (RTLS) either require continuously powered infrastructure, limiting their scalability, or are limited by their responsiveness. This work introduces Eco-WakeLoc, an energy-neutral cooperative ultra-wideband (UWB) localization system that exploits ultra-low power wake-up radio (WuR) and energy harvesting. By activating anchor nodes only on demand, the system eliminates constant energy consumption while achieving centimeter-level positioning accuracy. Eco-WakeLoc employs cooperative localization: active tags initiate ranging exchanges, while passive tags opportunistically reuse these messages for time difference of arrival (TDOA) positioning. This reduces coordination overhead and improves scalability. A novel energy-aware scheduling algorithm based on additive-increase/multiplicative-decrease (AIMD) dynamically adjusts localization rates according to the harvested energy, maximizing the performance of the whole sensor network while ensuring long-term energy neutrality. A comprehensive evaluation demonstrates centimeter-level accuracy: active tags achieve 21.89 cm average localization error using Levenberg-Marquardt trilateration, and passive tags reach 25.70 cm through cooperative TDOA – all whilst consuming as little as 3.22 mJ per localization for active tags, 951 µJ for passive tags, and 353 µJ for anchors. Real-world deployment on a quadruped robot with nine anchors confirms practical feasibility, achieving 43 cm average accuracy in dynamic indoor environments. Year-long energy-aware simulations show up to 589 localizations per tag per day under high-light conditions are achievable, with most nodes retaining over 75% battery capacity after one year. Eco-WakeLoc demonstrates that high-accuracy indoor localization can be achieved at scale without continuous infrastructure operation, combining energy neutrality, cooperative positioning, and adaptive scheduling to enable maintenance-free deployments suitable for large-scale Internet of Things applications.
If you use Eco-WakeLoc in an academic or industrial context, please cite the following publication:
@misc{cortesi25_wakeloc,
title = {WakeLoc: An Ultra-Low Power, Accurate and Scalable On-Demand RTLS using Wake-Up Radios},
author = {Silvano Cortesi and Christian Vogt and Michele Magno},
year = 2025,
doi = {10.48550/arXiv.2504.20545},
url = {https://doi.org/10.48550/arXiv.2504.20545},
eprint = {2504.20545},
archiveprefix = {arXiv},
primaryclass = {cs.NI}
}- Anchor and Tag Nodes:
- UWB Transceiver: Qorvo DWM3000 for centimeter-level ranging
- Wake-up Radio: WakeMod (6.9 µW idle consumption, -72.6 dBm sensitivity)
- Microcontroller: STM32U535 ARM Cortex-M33 with FPU
- Energy Harvesting: e-peas AEM10900 boost converter with MPPT
- Battery: 35 mAh LiPo
├── 01_hardware/ # Hardware design files (Horizon 2.7.1+ required)
│ ├── fabrication_output/ # Gerber files and assembly documentation
│ └── pool/ # Component libraries and 3D models
├── 02_firmware/ # Embedded firmware (coming soon)
├── 03_data/ # Data processing and analysis
│ ├── indoor_harvesting_dataset/ # Real-world solar harvesting measurements
│ ├── preprocessed_indoor_harvesting_dataset/ # Processed harvesting data
│ └── solar_measurements/ # Hardware characterization scripts
├── 04_simulation/ # Rust simulation framework
│ └── src/bin/ # Simulation executables
│ ├── simulate.rs # Main simulation runner
│ ├── tuning_aimd.rs # AIMD parameter tuning
│ └── tuning_constantrate.rs # Constant-rate parameter tuning
└── 05_simulation_results/ # Simulation results and analysis
└── analyse_and_plot.py # Results visualization and analysis
- Rust: 1.89.0 or later
- Python Environment: uv 0.8.22 (for data processing)
- Hardware Design: Horizon 2.7.1 or later (for PCB design)
- Wake-up Radio: WakeMod integration
Download the indoor harvesting dataset and preprocess it for simulation:
# Download dataset (instructions in 03_data/indoor_harvesting_dataset/)
# Preprocess the harvesting data
cd 03_data/indoor_harvesting_dataset/
bash download_dataset.bashProcess the raw harvesting measurements by applying the solar model:
cd 03_data/preprocessed_indoor_harvesting_dataset/
uv run preprocess_indoor_harvesting_dataset.pycd 04_simulation/
cargo run --bin simulate --releaseTo reconstruct parameter tuning, use:
For AIMD algorithm parameter optimization
cargo run --bin tuning_aimd --releaseFor constant-rate baseline tuning
cargo run --bin tuning_constantrate --releaseAnalyze simulation results and generate plots:
cd 05_simulation_results/
uv run analyse_and_plot.pyAnd for solar model
cd 03_data/solar_measurements
uv run solar_characterization_and_plot.pyWakeLoc Protocol: Combines Two-Way Ranging (TWR) and Time Difference of Arrival (TDOA):
- Active Localization: Tags initiate TWR with multiple anchors for precise positioning
- Passive Localization: Other tags overhear TWR messages and perform TDOA calculations
- Cooperative Scheduling: Reduces communication overhead through message reuse
AIMD-Based Scheduling:
- Additive Increase: Gradually increases localization frequency when energy is abundant
- Multiplicative Decrease: Rapidly reduces activity when energy is scarce
- Energy Awareness: Adapts to real-time harvesting conditions and battery state
The repository includes comprehensive simulation results demonstrating:
- Energy Neutrality: Year-long simulations showing sustainable operation
- Localization Performance: Statistical analysis of positioning accuracy
- Algorithm Comparison: AIMD vs. constant-rate scheduling performance
- Hardware Validation: Real-world deployment results and characterization data
Simulation results are stored in SQLite databases within 05_simulation_results/ according to previously described processing.
Complete hardware design files are provided in 01_hardware/:
- PCB Design: Full schematic and layout files (Horizon 2.7.1)
- Fabrication Files: Gerber files, drill files, and assembly drawings
- Component Libraries: Custom footprints and 3D models
- Bill of Materials: Complete component specifications and sourcing information
The hardware design integrates WakeMod wake-up radio modules for ultra-low power operation and Qorvo DWM3000 UWB transceivers for precise ranging.
This work was conducted at the D-ITET Center for Project-Based Learning, ETH Zürich.
For questions and support, please contact: silvano.cortesi@pbl.ee.ethz.ch
