From device to system: communication, backend, and dashboard for an embedded AI product

🟠 In this final article, I connect the embedded AI device to the real world. I describe how inference results leave the MCU, travel through MQTT and HTTP, land in a Rust backend, and become visible through a web dashboard.

This is the layer where a TinyML prototype turns into an actual end-to-end product.

Read more  ↩︎

TinyML on MCU: from dataset to real-time inference in Rust firmware

🟠 In this article, I walk through the complete TinyML lifecycle on a microcontroller β€” from dataset preparation and model training to running TensorFlow Lite Micro on bare metal and integrating the model into a Rust firmware via a custom FFI wrapper.

This project intentionally spans multiple domains: embedded systems, machine learning, data engineering, and low-level systems programming in Rust.

Read more  ↩︎

Hardware and firmware organization: the foundation of an AI device on the ESP32-S3

🟠 In this article, I'll explain the hardware I'm using in my AI device project, why I chose it, and how I structured the firmware in Rust.
This is the foundation of the entire project: the MCU, display, controls, and a minimal firmware skeleton that ensures modularity and expandability.

Read more  ↩︎

Why overspecialization is over, and how I decided to create my own AI device on MCU

In this series of articles, I'd like to show you how to create your own ESP32-S3-based device with ML built right into the firmware. 🟠 I'll try to describe not only what I'm doing, but also how I got thereβ€”all the decisions, compromises, and challenges that arose along the way.

Read more  ↩︎

πŸ§ͺ nrf52833 BBC micro:bit

Experiments, Prototypes & Notes with the micro:bit v2.21

This repository contains my projects, experiments, and notes using the micro:bit v2.21, built on the nrf52833 microcontroller.
It serves as a playground for testing ideas, learning embedded concepts, and building small prototypes.

Read more  ↩︎

MCU Synchronization

🟠 Synchronization is a fundamental concept that ensures that the processor, peripherals, timers, and interrupts operate in a consistent and accurate manner based on a common clock source.

Read more  ↩︎

MCU Clock System

🟠 Clock is the basis for timers and interrupts The clock system sets the pace of all digital components of the microcontroller. Timers use its signals to generate interrupts and perform tasks with precise time control.

Read more  ↩︎

Interrupts (ISR, IVT, NVIC)

🟠 Interrupts allow the microcontroller to instantly respond to important events without wasting resources on constantly polling the peripherals.

When an interrupt occurs, the CPU suspends the current task, goes to the Interrupt Service Routine (ISR), performs the required action, and returns back.

Read more  ↩︎

Timers

🟠 Timers are hardware modules of the microcontroller for actions with time counting and event generation without the participation of the main code.
The accuracy of the timer and its maximum time range depends on its bit depth, the clock frequency to which it is connected and the value of the divider.

Read more  ↩︎

PWM (Pulse Width Modulation)

🟠 How to handle pulse width modulation

Read more  ↩︎