Low-level firmware, microcontroller programming, and wireless communication modules — engineered to work reliably in real hardware.
Embedded development is where software meets physics. Registers, timing constraints, power consumption, signal integrity — these aren't abstractions, they're real engineering problems with real consequences.
We work at the hardware level — writing firmware in C directly against peripherals, debugging with NanoVNA and oscilloscopes, and verifying against datasheets rather than assuming. If a register address is wrong, we find it before it ships.
Our embedded work feeds directly into our RC systems, PCB designs, and connected device projects — nothing is siloed. The firmware engineer is the same person who designed the board.
Bare-metal C firmware for microcontrollers. Peripheral configuration, interrupt handling, power management, and protocol implementation — written correctly, not copied from examples.
Short-range wireless modules and stacks for connected devices. Experience with multi-role configurations — acting simultaneously as a central and peripheral on the same device.
FreeRTOS-based systems with proper task notification APIs, priority configuration, and HardFault debugging. No NVIC priority bugs, no stack overflows left to chance.
PWM-as-DAC audio with IMA-ADPCM compression. Driving Class D amplifiers and micro speakers from microcontrollers with constrained flash and RAM.
PCB antenna characterisation using NanoVNA — S11 measurements, return loss, and impedance matching for 2.4GHz designs. Real measurements, not simulations alone.
Full-stack integration between Android apps and embedded devices. The app and the firmware are designed together — not bolted on as an afterthought.