<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>TinyML on Microcontrollers on Embedded Systems Development</title><link>https://applied-ee.github.io/embedded/docs/edge-ai/tinyml/</link><description>Recent content in TinyML on Microcontrollers on Embedded Systems Development</description><generator>Hugo</generator><language>en-us</language><atom:link href="https://applied-ee.github.io/embedded/docs/edge-ai/tinyml/index.xml" rel="self" type="application/rss+xml"/><item><title>Inference on Cortex-M</title><link>https://applied-ee.github.io/embedded/docs/edge-ai/tinyml/cortex-m-inference/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://applied-ee.github.io/embedded/docs/edge-ai/tinyml/cortex-m-inference/</guid><description>&lt;h1 id="inference-on-cortex-m"&gt;Inference on Cortex-M&lt;a class="anchor" href="#inference-on-cortex-m"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;The Arm Cortex-M family is the dominant target for TinyML inference. These processors have no operating system, no virtual memory, and no heap allocator in typical deployments. Execution is deterministic — a given model on a given input produces the same result in the same number of cycles every time, provided memory placement is controlled. All memory management is static: model weights reside in flash, the tensor arena occupies a fixed region of SRAM, and the application firmware shares both address spaces. The entire inference pipeline — from sensor input to classification output — runs in a single-threaded main loop or a pinned RTOS task with no context-switch overhead affecting latency.&lt;/p&gt;</description></item><item><title>Inference on ESP32</title><link>https://applied-ee.github.io/embedded/docs/edge-ai/tinyml/esp32-inference/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://applied-ee.github.io/embedded/docs/edge-ai/tinyml/esp32-inference/</guid><description>&lt;h1 id="inference-on-esp32"&gt;Inference on ESP32&lt;a class="anchor" href="#inference-on-esp32"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;The ESP32 family from Espressif offers a different trade-off from the Cortex-M ecosystem: built-in Wi-Fi and Bluetooth, dual-core processors, external PSRAM support, and a FreeRTOS-based runtime — all at a price point under $5. These features make the ESP32 a natural platform for ML inference applications that need to collect data, run a model, and transmit results over a wireless link without additional networking hardware. The cost is a less deterministic execution environment than bare-metal Cortex-M: FreeRTOS scheduling, Wi-Fi stack interrupts, and shared-bus memory access all introduce latency variability that must be managed through careful task partitioning.&lt;/p&gt;</description></item><item><title>Arduino &amp; Edge Impulse</title><link>https://applied-ee.github.io/embedded/docs/edge-ai/tinyml/arduino-edge-impulse/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://applied-ee.github.io/embedded/docs/edge-ai/tinyml/arduino-edge-impulse/</guid><description>&lt;h1 id="arduino--edge-impulse"&gt;Arduino &amp;amp; Edge Impulse&lt;a class="anchor" href="#arduino--edge-impulse"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Edge Impulse is an end-to-end development platform for embedded machine learning. It provides a web-based Studio interface that covers the entire pipeline: data collection from physical sensors, signal processing configuration, neural network training, model validation, and deployment as a compiled library for Arduino, ESP32, STM32, Nordic nRF, and other microcontroller targets. The platform abstracts much of the complexity of quantization, memory fitting, and operator optimization, making it possible to go from raw sensor data to a running inference on an Arduino Nano 33 BLE Sense or an ESP32-S3 DevKit without writing any training code or manually configuring TensorFlow Lite.&lt;/p&gt;</description></item><item><title>Designing for Memory Constraints</title><link>https://applied-ee.github.io/embedded/docs/edge-ai/tinyml/memory-constrained-design/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://applied-ee.github.io/embedded/docs/edge-ai/tinyml/memory-constrained-design/</guid><description>&lt;h1 id="designing-for-memory-constraints"&gt;Designing for Memory Constraints&lt;a class="anchor" href="#designing-for-memory-constraints"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;On microcontrollers, memory is the first constraint and the last. A model that achieves 95% accuracy on a desktop means nothing if it requires 200 KB of SRAM on a device with 128 KB. Unlike cloud or even mobile ML, where memory is abundant and dynamically allocated, MCU inference demands that every byte be accounted for at compile time. There is no virtual memory, no swap space, no fallback. The model weights must fit in flash, the tensor arena must fit in SRAM, and both must coexist with the firmware, peripheral drivers, communication stacks, and application logic. A design process that starts with the memory budget and works backward to the model architecture avoids the costly iteration of training a model that cannot deploy.&lt;/p&gt;</description></item></channel></rss>