AI · Embedded · Hardware

Engineering intelligence
where silicon meets the real world.

I'm trentenwen. I build at the boundary where machine learning meets real hardware — quantized models on microcontrollers, ML-driven robotics, and the tools that make them usable. Sometimes firmware. Sometimes Python. Always close to the metal.

TinyML Quantization Edge AI Robotics RTOS Sensor Fusion
01 About / Now

Most of my work lives between PyTorch notebooks and bare-metal C — pushing models down to kilobytes and microseconds, then wiring them to motors, microphones, and sensors that have to survive in the real world.

I prefer small, sharp tools over big frameworks. A 200-line runtime will outlive a 2 MB dependency every time. Most of what I publish here is in that spirit: notes from the trenches of putting intelligence on devices that don't have much.

More about me →

Based
Somewhere with good coffee
Currently
Building tinymlr · Embedded audio ML
Available for
Selected consulting & talks
Now Working on tinymlr v0.3 — adding quantization-aware training and INT4 kernels for ARM Cortex-M0+. Aiming to fit a useful keyword-spotting model in < 8 KB.
Writing A series on real-time audio inference on STM32H7 — covering DMA pipelines, ring buffers, and why your model isn't the slow part.
Reading TinyML by Pete Warden & Daniel Situnayake (again), Computer Organization and Design by Patterson & Henne (always), and anything Pete Cadigan posts.
02 Writing RSS
03 Projects

tinymlr

A tiny, dependency-free ML runtime for ARM Cortex-M. Runs int8 and int4 models with zero allocations on devices as small as a $4 MCU.

rust c cortex-m no-std

wavetable-ml

Neural audio synthesis firmware for STM32H7. A 70 KB GRU generates wavetables in real time at 48 kHz. No malloc, no FPU.

cpp python dsp stm32

edge-trace

SWO-based profiler for embedded ML workloads. Captures per-layer latency, memory, and cache misses on bare-metal targets. Streams to a Python notebook.

c python profiling

mqtt-bridge

A 12 KB MQTT-to-HTTP gateway for low-power sensor networks. Runs on an ESP32-C3 with TLS, runs for weeks on a coin cell.

c lua mqtt esp32
04 Stack
Languages
  • Rust
  • C / C++
  • Python
  • TypeScript
  • Lua
ML / Data
  • PyTorch
  • ONNX
  • TFLite Micro
  • llama.cpp
  • numpy / scipy
Hardware
  • STM32 (H7, F4, G0)
  • ESP32 / ESP32-C3
  • RP2040
  • Arduino
  • Raspberry Pi
Silicon Tools
  • KiCad
  • LTspice
  • Sigrok / PulseView
  • PlatformIO
  • probe-rs
Daily
  • neovim
  • tmux
  • uv
  • git / jj
  • Linux
Currently learning
  • Verilog
  • ESP-IDF (deeply)
  • JAX
  • Zephyr RTOS
05 Contact

Have a hard problem where software and hardware need to meet?

I take on a few projects each year. Reach out with the rough shape of the problem, and I'll let you know if I'm the right person.