Abstract
Esp Partition Toolbox is an open-source Internet of Things (IoT) project. A desktop GUI for managing ESP-IDF partition tables. Load an ESP-IDF project folder, visually edit the partition layout, validate ESP-IDF constraints in real time, and save back to CSV — all without hand-editing a text file or guessing offsets. A desktop GUI for managing ESP32 partition tables across ESP-IDF, PlatformIO, and Arduino projects. Load an ESP32 project folder, visually edit the partition layout, validate partition constraints in real time, and save back to CSV — all without hand-editing a text file or guessing offsets. It is built using TypeScript, ESP32. Key capabilities include: Project loading — auto-detects ESP-IDF, PlatformIO, or Arduino projects and reads the existing partition table; MCU selector — auto-detected from the project config (CONFIG_IDF_TARGET, the PlatformIO board, or the Arduino FQBN) and editable when the project doesn't declare it; Flash-size inference — when no flash size is configured, the smallest standard size that fits the existing partition table is selected automatically. The complete source code is publicly available on GitHub under the MIT License, making it a useful reference for students building an Internet of Things (IoT) mini project or final-year project.
1. Introduction
A desktop GUI for managing ESP32 partition tables across ESP-IDF, PlatformIO, and Arduino projects. Load an ESP32 project folder, visually edit the partition layout, validate partition constraints in real time, and save back to CSV — all without hand-editing a text file or guessing offsets.
2. Objective
A desktop GUI for managing ESP-IDF partition tables. Load an ESP-IDF project folder, visually edit the partition layout, validate ESP-IDF constraints in real time, and save back to CSV — all without hand-editing a text file or guessing offsets.
This project demonstrates how TypeScript, ESP32 can be applied to a real-world Internet of Things (IoT) problem.
3. Key Features / Modules
- Project loading — auto-detects ESP-IDF, PlatformIO, or Arduino projects and reads the existing partition table
- MCU selector — auto-detected from the project config (CONFIG_IDF_TARGET, the PlatformIO board, or the Arduino FQBN) and editable when the project doesn't declare it
- Flash-size inference — when no flash size is configured, the smallest standard size that fits the existing partition table is selected automatically
- Visual partition map — proportional, color-coded bar of flash usage with a labelled legend
- Inline editing — name, type/subtype dropdowns, size (hex / K / M, slider, fill), and the encrypted and readonly flags
- Advanced mode — pin partition offsets to fixed addresses and define custom numeric partition types
- Real-time validation — 4 KB / 64 KB alignment, flash-boundary overflow, offset overlaps, duplicate detection, and ESP32 partition rules
- Partition Preview — a live, copyable view of the exact CSV that gets written, alongside a platform-aware config snippet
- KPI dashboard — total flash, plus allocated and free as a percentage of usable space
- Comments — preserved as # lines in the partition CSV header
4. Technology Stack
5. System Requirements
General requirements for this technology stack — check the README for exact versions.
- Node.js (LTS) and npm / yarn / pnpm
- VS Code or any code editor
- Git (to clone the repository)
6. Installation & Setup
git clone https://github.com/inowio/esp-partition-toolbox.git
cd esp-partition-toolbox- VS Code + Tauri + rust-analyzer
git clone https://github.com/inowio/esp-partition-toolbox.git
cd esp-partition-toolbox
npm install
npm run tauri devFull setup instructions are in the project README.
7. Future Enhancements
Suggested extensions you can add to make this your own project.
- Add a mobile dashboard using Blynk or Firebase
- Store readings in a cloud database for history charts
- Add alerts via SMS / Telegram when thresholds are crossed
8. Viva / Review Questions
Common questions examiners ask for projects in this domain.
- Which microcontroller / board and sensors are used and why?
- How does the device send data (Wi-Fi, MQTT, HTTP, Bluetooth)?
- Where is the sensor data stored and visualised?
- How is power consumption managed?
- How would you secure the device and its communication?
9. Source Code & License
This project is developed by inowio and published on GitHub under the MIT License. Please follow the license terms and credit the original author when you use or modify this code.
Want to build this as your internship project?
Work on an Internet of Things (IoT) project like this with mentor guidance, weekly reviews and an internship certificate from Training Trains, Erode — online or offline.
Apply for Internet of Things (IoT) Internship