Hi everyone!
I’d like to share a project I’ve been developing called ELMA-IoT ESP32 Toolkit.
ELMA-IoT started from my own Home Assistant projects. Over time I ended up building many ESP-based devices — pressure and level sensors, irrigation controllers, relays, monitoring devices, audio/notification devices and other custom hardware.
I wanted a simpler way to build and maintain these devices without repeatedly dealing with GPIO datasheets, libraries, separate firmware projects and carrying a laptop around.
The idea behind ELMA-IoT is therefore:
Select ESP → Add peripherals → Configure GPIO → View wiring → Build Logics → Compile → Flash
The application handles much of the low-level implementation underneath.
Hardware configuration
ELMA-IoT lets you select an ESP board and configure the peripherals connected to it.
The application checks GPIO capabilities and conflicts and generates a visual wiring diagram showing how the hardware should be connected.
Current functionality includes:
-
ESP32 / ESP32-S3 / ESP32-C3 / ESP8266 support
-
Peripheral configuration
-
GPIO compatibility/conflict checking
-
Visual wiring diagrams
-
Wi-Fi
-
MQTT
-
Firmware compilation directly on Android
-
USB OTG flashing
-
OTA updates
-
Serial Monitor
Visual Logics
A major part of the project is Logics, a visual automation editor.
Instead of manually writing the underlying firmware logic, workflows can be built graphically.
For example:
Temperature → Compare >30°C → Delay → Fan ON
or:
Battery Voltage → <11.8V → MQTT Publish
Logics currently includes events, comparisons, IF, AND/OR/NOT, Gate, Sequence, Branch, Delay, Timer, Repeat, Debounce, Cooldown and peripheral-specific actions.
Connections are typed, so incompatible inputs and outputs cannot simply be connected together.
The Blueprint can also operate in a live view, allowing the execution of the automation and changing values to be observed while the ESP is running.
Mobile-friendly Logic Builder
A full Blueprint canvas becomes quite small on a phone, so I also created a simplified vertical Logic Builder integrated directly into the Android Device Setup Wizard.
Both editors operate on the same underlying graph. A workflow created in the mobile constructor can later be opened in the full Blueprint editor and vice versa.
Home Assistant / MQTT
MQTT is one of the important use cases for the project.
Automations can use MQTT connectivity and publish messages containing live device values.
For example:
Battery Voltage → Compare → MQTT Publish
can generate something like:
Battery voltage: 11.7 V
My longer-term goal is to make creating custom ESP devices for Home Assistant increasingly high-level: describe the hardware and desired behavior visually while ELMA-IoT handles more of the firmware implementation underneath.
Current status
The current Android release is ELMA-IoT v1.0.15 and the project is in Google Play Closed Alpha testing.
I’m particularly interested in testing with different:
-
Android devices
-
ESP boards
-
sensors/peripherals
-
USB OTG configurations
-
OTA environments
-
MQTT/Home Assistant setups
-
real-world automation scenarios
If anyone here would like to participate in the Closed Alpha, please send me a private message with the email address of the Google account you use with Google Play.
Please don’t post your email publicly in the topic.
I’ll add the account to the Closed Testing list and send you the Google Play installation link.
Feedback, bug reports and suggestions are very welcome. A significant number of improvements in recent releases have already come directly from Alpha tester feedback.
Thanks, and I’d be very interested to hear what kinds of ESP/Home Assistant devices you would try building with something like this.



