Skip to main content
Version: FILS English

WIFI Commander

A network administration tool designed specifically for OpenWRT routers.

info

Author: Ciuraru Mircea-Georgian
GitHub Project Link: https://github.com/UPB-PMRust-Students/fils-project-2026-ciurix

Description

The WIFI Commander is a fully portable, smart magic wand designed to manage networks using "magic" spells. Upon cast, the spell, also referred as command is then sent to the target OpenWRT device, and the result is displayed on the screen. It translates physical hand gestures into network administration tasks.

Motivation

My drive to help people made me learn a lot about OpenWRT routers in order to build custom images for the people living in the dorms. Creating such a tool will help me, saving time diagnosing and maintaining them, providing a "God Mode" physical remote for network administration.

Architecture

The project is built around a distributed micro-architecture consisting of two main physical "devices" communicating wirelessly:

  1. The WIFI Wand (Transmitter & Sensor Node)
  2. The WIFI Controller (Base Station & Router Interface)

Project Architecture

Log

Week 8

  • Research & Architecture Phase: Completed research on the hardware and software architecture.
  • Investigated Digital Signal Processing (DSP) and complementary filters for the MPU6050 sensor to accurately recognize hand gestures and filter out tremors.
  • Selected the ESP-NOW protocol for ultra-low latency wireless communication between the Wand and the Base Controller.
  • Explored the OpenWRT ubus HTTP API for executing remote network administration commands without relying on SSH.

Week 9 (Current Week)

  • Hardware Procurement: Finalized the complete Bill of Materials (BOM).
  • Officially placed orders for all necessary hardware components (ESP32-S3 SuperMini, ESP8266 NodeMCU, MPU6050, TP4056 modules, Li-Po battery, jumper wires, etc.) from suppliers.
  • Currently awaiting delivery of the components to begin breadboard testing and initial hardware assembly.

Week 10

(To be filled during development)

Week 11

(To be filled during development)

Week 12

(To be filled during development)

Week 13

(To be filled during development)

Week 14

(To be filled during development)

Hardware

The hardware is split into a low-power, lightweight handheld device (the Wand) powered by a small Li-Po battery, and a stationary base unit (the Controller) that processes and routes the commands.

Schematics

KiCAD schematic WIP.

Bill of Materials

DeviceUsagePrice
STM32U545RE-QProcesses commands and runs the main routing logic.125 RON
ESP32-S3 SuperMiniReads sensor data, applies DSP, and broadcasts via ESP-NOW.33 RON
ESP8266 NodeMCUThe Wi-Fi / ESP-NOW Bridge. Catches wand packets and communicates using UART.23 RON
MPU6050 ModuleGesture recognition sensor. Reads 6-axis raw movement.19 RON
OLED 0.96" I2CController display. Shows command feedback, network statuses, and actions executed.15 RON
TP4056 Type-C (x2)Battery charging modules. One for the Wand battery, one for future-proofing the Base Station power.26 RON (13 RON ea.)
Li-Po Battery 90mAh/250mAhUltra-small power source for the Wand.25 RON
ExtrasMB-102 Breadboard + M-M & M-F Dupont Wires.53 RON
Total319 RON

(The 90mAh battery used in the architecture svg is pre-owned. I am not sure if the final product will have the 250mAh battery, but I have ordered it as of 25.04.2026)

Software

LibraryDescriptionUsage
embassyAsync framework and HALUsed on both boards for async multitasking, timers, and the STM32 hardware abstraction
esp-halBare-metal HAL for ESP chipsUsed to control the ESP32-S3 pins, sleep modes, and I2C buses on the Wand
esp-wifiWi-Fi, BLE, and ESP-NOW libraryImplements the low-latency ESP-NOW wireless link between the Wand and Base Station
mpu6050MPU6050 sensor driverReads the raw 6-axis accelerometer and gyroscope data via I2C
micromathno_std fast math libraryPerforms the Digital Signal Processing (DSP) and complementary filters to clean hand tremors
ssd1315Display driver for SSD1315Initializes and controls the TENSTAR 0.96" OLED screen on the Base Station
embedded-graphics2D graphics libraryDraws text, UI shapes, and execution statuses onto the OLED display
heaplessData structures without allocatorsManages static queues for UART buffers and incoming network packet handling
  1. Embassy - The async Rust framework - Essential for writing the asynchronous logic on the STM32 Controller.
  2. The Rust on ESP Book - The guide for programming the ESP32-S3 in bare-metal Rust.
  3. OpenWRT ubus (Micro Bus Architecture) RPC API - Documentation for sending administrative HTTP requests from the Controller to the router.
  4. Digital Signal Processing: The Complementary Filter - Mathematical theory used to filter the MPU6050 sensor noise and combine accelerometer/gyroscope data.
  5. Inspiration: Pedometer ESP32 implemented in Rust - A highly relevant video showcasing an ESP32, MPU6050, and OLED screen working together using Rust no_std.