The questions people actually ask, with the numbers that answer them. Where the answer is no, or not measured, it says so.
Questions
Can a language model really run on a microcontroller?
Yes, if it was designed for one. The Atome LM production checkpoint is 944,000 parameters, 271 KB of ternary weights and a 2.6 KB C99 engine, and it generates coherent text on a physical ESP32-WROOM-32 at about 1.0 token per second, offline. What does not work is shrinking a large model down to fit.
How big is Atome LM?
Six sizes ship, from a 14.5 KB-RAM nano model to the 411 KB-RAM 944K production model. The sensing engine, Atome LM EDGE, is 15,444 bytes of total flash for a 6,567-parameter network.
Is it faster than TensorFlow Lite for Microcontrollers?
Per decision on a sliding window, 27.3× cheaper than CMSIS-NN, the kernel library X-CUBE-AI generates. Per one-shot window, 2.89× slower. The full comparison, including the axis we lose, is at /benchmarks/atome-lm-vs-tflite-micro/.
Is it more accurate than TensorFlow Lite for Microcontrollers?
No — it is a tie. 0.9095 ± 0.0077 against 0.9097 ± 0.0154 on UCI HAR with a leak-free subject-wise split over 5 seeds.
How much smaller is it?
4.64× on total flash and 2.17× on runtime RAM against TFLite Micro for the same network. The ternary variant reaches 4,765 bytes of weights.
Does it need an internet connection?
No, and it cannot use one. The engine contains no allocator, no sockets and no file handles. The absence of network egress is a property of the compiled binary, checkable in the symbol table.
Does it need PSRAM?
Not for the smaller models. The 944K model runs on a WROOM-32 without PSRAM by cutting the context window to 24 tokens, which puts the working state around 159 KB.
What does it cost to run?
Nothing per inference — there is no API call. The unit cost is the part, and the parts in the compatibility table run from about $2 to about $30.
Is it open source?
The architecture, the C99 engine, the export format and a 944K TinyStories checkpoint are Apache-2.0 on GitHub, with weights on Hugging Face and a Zenodo DOI. The elaborated research variants and the EDGE benchmark harness are not public.
Can I fine-tune it on my own data?
Yes, and narrow is the intended mode. Trained on one domain it is fluent inside that domain; trained wide at this size it is incoherent. The v2 line adds a bring-your-own-CSV training path for the sensing heads.
Has it been measured on real hardware?
On one board, a physical ESP32-WROOM-32. Everything else in the hardware table is a cross-compiled build executed under QEMU. Energy has never been measured on any board.
What is it bad at?
General-purpose conversation, anything above about a million parameters where a plain float transformer wins by roughly 11%, one-shot latency against CMSIS-NN, and any claim about energy. All of that is on the limitations page.