A branded, hardware-aware desktop IDE for Arduino & ESP boards — block coding, pro C++, and on-device machine learning, all in one app.
TechieDo IDE is an all-in-one desktop environment for building, flashing, and experimenting with Arduino and ESP microcontrollers — Arduino Uno / Nano / Mega / Leonardo / Uno R4, the ESP32 family (S3, C3, S2, classic), and ESP8266 boards. It blends three things kids and makers usually need separate tools for:
- 🧩 Block coding that generates real, compilable Arduino C++
- 👨💻 Pro code editing with full syntax highlighting
- 🧠 A "Train a Model" studio for on-the-desktop machine learning
It's built with Tauri v2 (Rust core + web UI), so it's small, fast, and cross-platform.
- Drag-and-drop Blockly workspace with a custom C++ code generator — what you build is what gets compiled.
- ~90 robotics blocks: dual motors & robot drive, servos, full digital/analog I/O, PWM/DAC, timing.
- ~20 sensors & modules: ultrasonic, DHT temp/humidity, DS18B20, PIR, IR line/obstacle, potentiometer, LDR, gas, flame, rain, tilt, MPU6050, BMP280, I2C scanner, MEMS mic.
- Displays: OLED (SSD1306), 16×2 I²C LCD, TM1637 7-segment, and an 8×8 dot-matrix editor with a click/drag LED painter and 26 ready-made patterns (smiley, heart, arrows, and more).
- Addressable LEDs (NeoPixel/WS2812), buzzer/tones & musical notes, Serial, Wi-Fi & Bluetooth blocks.
- Smart include management: required
#includes and library objects are added automatically, and variables are auto-declared, so the generated sketch actually compiles. - Pro editor (Monaco) side-by-side with the blocks.
- Pick a model type — Image classifier, Face recognition (OpenCV LBPH), or Data/CSV — then collect data and train, all powered by real Python (scikit-learn / OpenCV).
- Capture from the webcam or load image files / CSV datasets.
- Author with blocks or Python, side by side — the blocks generate the training script live.
- Auto-installs missing Python packages on first run — no manual setup.
- Train → Test → Save, with live training output.
- Broad board support — pick from Arduino (Uno, Nano, Mega, Leonardo, Micro, Pro, Uno R4 WiFi/Minima, Nano Every, Nano 33 IoT, MKR WiFi 1010), the ESP32 family, and ESP8266 boards. Compile/flash uses each board's FQBN automatically.
- USB auto-detection and a built-in serial monitor (xterm.js).
- Compile with
arduino-cliand flash over USB withesptool. - OTA flashing over Wi-Fi and mDNS board discovery (ESP boards).
- Camera preview (MJPEG) and a battery indicator.
- Library manager for installing Arduino libraries.
- Two themes — Solarized Lite & Midnight Dark — and a toggleable workspace grid.
| Layer | Tech |
|---|---|
| App shell | Tauri v2 |
| Backend | Rust (serial, USB, mDNS, file I/O, Python runner) |
| Frontend | React + Vite + TypeScript + Tailwind CSS |
| Blocks | Google Blockly with custom C++ / Python generators |
| Code editor | Monaco Editor |
| Terminal | xterm.js |
- Node.js 18+
- Rust (stable) + the Tauri prerequisites (on Windows: WebView2, usually preinstalled)
- Optional, for full hardware/ML features:
- arduino-cli — to compile & flash. Install the core(s) for the boards you use:
arduino-cli core update-index arduino-cli core install arduino:avr # Uno / Nano / Mega / Leonardo / Micro / Pro arduino-cli core install arduino:renesas_uno # Uno R4 (WiFi / Minima) arduino-cli core install arduino:samd # Nano 33 IoT / MKR WiFi 1010 arduino-cli core install arduino:megaavr # Nano Every arduino-cli core install esp32:esp32 # ESP32 / S3 / C3 / S2 arduino-cli core install esp8266:esp8266 # NodeMCU / Wemos D1 (needs the ESP8266 board-manager URL)
- Python 3.x on your PATH — for the ML studio (packages auto-install)
- arduino-cli — to compile & flash. Install the core(s) for the boards you use:
# install JS dependencies
npm install
# launch the desktop app (Vite + Rust, hot-reloads on change)
npm run tauri devnpm run tauri buildTechieDo_IDE/
├─ src/ # React UI
│ ├─ components/ # TopBar, CenterWorkspace, BottomConsole, MLWorkspace, …
│ ├─ blockly/ # block defs, toolbox, C++/ML generators, dot-matrix field, presets
│ └─ ml/ # Python training/inference script templates
├─ src-tauri/ # Rust backend
│ └─ src/lib.rs # commands: serial, compile/flash, OTA, mDNS, Python/ML runner
├─ index.html
└─ package.json
- Wire trained models into Arduino blocks (
when model detects ▾ X) - Continuous (live) video inference in the ML studio
- Pose / hand detection model type
- A–Z / 0–9 dot-matrix glyphs + scroll-text block
- Broad Arduino & ESP board support (Uno/Nano/Mega/Leonardo/Uno R4, ESP32 family, ESP8266)
- More board targets (Raspberry Pi Pico, Teensy)
Contributions, issues, and feature requests are welcome! This is a community-friendly, completely open-source project.
- Fork the repo
- Create a feature branch (
git checkout -b feature/my-feature) - Commit your changes
- Open a Pull Request
Share-alike, please. TechieDo IDE is copyleft (GPL-3.0). If you modify it and share or distribute your version, you must make your source changes available under the same license so the whole community benefits. Improving it privately for yourself is fine — but anything you ship to others must stay open. Please open a PR here so your improvements flow back into the main project.
TechieDo IDE is free and open source under the GNU General Public License v3.0.
In plain terms — you are free to:
- ✅ Use it for anything, including commercially
- ✅ Study and modify the source
- ✅ Share copies and your modified versions
…on one condition (this is the copyleft part):
- 🔁 If you distribute the software or a modified version, you must release your source code under GPL-3.0 too. Improvements can't be made closed-source — they have to be shared back with everyone, exactly as the original is.
There is no warranty; see the LICENSE file for the full legal text.