Repository navigation
Tiny Engineer v0.2.0
v0.2.0 is a big step toward making Tiny Engineer something you can actually build, customize, and keep improving — not just a cool prototype.
Since v0.1.0, 66 commits landed across hardware, CAD, firmware, integrations, and documentation.
From prototype to buildable project
The biggest change is the new parametric CAD model. Tiny Engineer now supports both FS0307 and SG90 servos, automated STL/STEP/3MF exports, parametric mounts and covers, tolerance tests, and multiple mechanical fixes.
There is also a proper mechanical assembly guide, measured screw list, improved shopping lists, and models prepared for external 3D printing.
From wires to a real board
Tiny Engineer is also moving toward much cleaner electronics.
This release introduces:
- new integrated PCB combining USB-C, servo control, audio, power distribution and peripheral connections
- KiCad tooling and manufacturing checks for JLCPCB
It replaces a pile of modules and wires with one reproducible board, while the advanced path using individual modules remains fully supported.
From developer setup to “plug it in”
Getting firmware onto the robot is now dramatically easier.
Tiny Engineer now has a browser-based Web Flasher, versioned firmware builds, downloadable CI artifacts and OTA firmware + filesystem updates.
First-time setup also gained a configuration wizard, servo calibration, better servo testing and configurable hostname.
More agents. More personality.
Tiny Engineer can now react to Claude Code and Antigravity CLI, alongside Cursor.
The robot itself also got more expressive: kaomoji, new cover and dots eye styles, improved sleep/wake animations, a dead state with sound, safer servo idle behavior and diagnostic RGB blink codes.
And there is now an official mods workflow — starting with the Halloween pumpkin-head variant. 🎃
❤️ Community
A significant part of this release came from community contributions.
Special thanks to:
- @jtruland — Claude Code integration, ESP32 carrier board, diagnostics and setup improvements
- @Mechazawa — OTA firmware and filesystem updates
- @Hilo-Hilo — parametric bottom cover and chair mounts
- @AndreLYL — kaomoji expression system
- @rarephill — Antigravity CLI integration
And thank you to everyone else who contributed code, fixes, documentation, ideas, testing, and feedback since v0.1.0.
Tiny Engineer is becoming a much better project because people are building it together.
Full changelog
Hardware & CAD
- Parametric FS0307 + SG90 model
- STL, STEP and 3MF export workflow
- Parametric bottom cover and chair mounts
- Screw/servo tolerance test models
- Compact ESP32-C3 carrier board
- Main Control Board
- Integrated production-oriented PCB
- KiCad/JLCPCB tooling and validation
- Multiple servo, neck, bell, lamp, keyboard and mounting fixes
- External 3D-printing preparation
Firmware & UX
- Web-based firmware flashing
- OTA firmware + filesystem updates
- Versioned builds and firmware artifacts
- First-time setup wizard + servo calibration
- Configurable hostname
- Servo PWM shutdown when idle
- Subsystem diagnostic blink codes
- Improved boot, sleep and wake behavior
Personality & integrations
- Claude Code integration
- Antigravity CLI integration
- Improved Cursor hooks
- MacBook sleep/wake integration
- Kaomoji expressions
coveranddotsOLED eye styles- Improved sleep animations
- Dead-state animation + audio
Project
- Mechanical assembly guide
- Updated screw/BOM/shopping documentation
- CI firmware compile/package tests
- Contribution and PR templates
- Coding-agent guidelines
- Mods workflow + Halloween example
- General README, CAD, assets and integration documentation improvements
Flash offsets (default USB layout)
| File | Offset |
|---|---|
tiny-engineer-v0.2.0-bootloader.bin |
0x0 |
tiny-engineer-v0.2.0-partitions.bin |
0x8000 |
tiny-engineer-v0.2.0-firmware.bin |
0x10000 |
tiny-engineer-v0.2.0-littlefs.bin |
0x220000 |
All four files are required for a clean first flash or web install. App + LittleFS alone is enough only when bootloader and partition table are already on the chip.
Web flash: jamro.github.io/tiny-engineer/flash/ — pick this tag (or any release that ships manifest.json). Offsets above match this tag’s partitions.csv. Usual path: clone the tagged commit and run pio run -t upload (see docs/flash.md).
What's Changed
- Feat/antigravity cli integration by @rarephill in #18
- fix(scripts): keep $PROJECT_DIR intact when it contains a space by @jtruland in #20
- docs: give the serial port per platform, not just the macOS form by @jtruland in #21
- feat(rgb): identify the failed subsystem with a red blink code by @jtruland in #23
- Setup AP wizard for assembly: servos, hardware checks, then Wi-Fi by @jamro in #26
- feat(cad)!: parametric 3d model with support for FS0307 and SG90 by @jamro in #27
- feat(integrations): add Claude Code hooks CLI by @jtruland in #34
- feat(firmware): add an optional kaomoji expression library by @AndreLYL in #37
- docs: add measured M2 screw list and shopping list (sg90) by @mjspe in #41
- feat: add mechanical assembly guide by @jamro in #44
- feat(pcb): add compact-carrier-board for ESP32-C3-Zero by @jtruland in #32
- feat(pcb): add main-control-board MVP by @jamro in #35
- feat(cad): add a parametric bottom cover and chair mounts by @Hilo-Hilo in #49
- feat(mods): add hallowing pumpkin head example by @jamro in #51
- feat(firmware): add over-the-air firmware and filesystem updates by @Mechazawa in #55
- feat(pcb): design integrated PCB for Tiny Engineer electronics by @jamro in #46
New Contributors
- @rarephill made their first contribution in #18
- @jtruland made their first contribution in #20
- @jamro made their first contribution in #26
- @AndreLYL made their first contribution in #37
- @mjspe made their first contribution in #41
- @Hilo-Hilo made their first contribution in #49
- @Mechazawa made their first contribution in #55
Full Changelog: v0.1.0...v0.2.0