A standalone ecosystem integrating IoTextra, IoTbase and IoTsmart series modules with Tasmota. It enables automation logic for smart home IoT applications, such as smart farming, without requiring external controllers or servers.
The binary is selected by SoM. The Template is selected by the board.
- Flash the Tasmota binary that matches your SoM (System-on-Module) β see the SoM β binary table in Setup.md
- Apply the Tasmota Template that matches your carrier board (IoTbase, IoTsmart) β see
/Tasmota_Templates
This separation means you can swap the SoM without changing the Template, and vice versa.
Modern prototyping tools make it easy to build a demo but extremely hard to transition that prototype into a stable, maintainable product. Teams often redesign hardware from the ground up after using Raspberry Pi, Arduino, or similar prototyping boards β a costly and time-consuming process that burdens long-term support.
The Make Things Happy platform eliminates this gap by standardizing I/O hardware through the IoTextra module family and providing two clear integration paths:
- IoTbase for full-featured, serial-ready solutions using SoMs
- IoTsmart for compact wireless MCU nodes
All modules are Open Hardware, well-documented, and usable independently.
To unify these hardware options for smart home users, we created IoThome.
IoThome is a software layer that sits on top of Tasmota and the IoTextra hardware family. It provides ready-to-use Berry drivers, Templates, and automation logic so you can go from hardware assembly to a running smart home node without writing firmware from scratch.
| Layer | Role |
|---|---|
| IoTextra modules | Standardized I/O hardware (analog inputs, digital I/O, etc.) |
| Tasmota | Open-source ESP32 firmware handling connectivity, OTA, and much more |
| IoThome Berry Drivers & Application Scripts | Application-level logic running on-device inside Tasmota |
| IoThome Templates | Pre-configured GPIO mappings for each supported carrier board |
No external server, hub, or cloud dependency is required. Every node runs autonomously and locally.
| Board | Form Factor | Compatible SoMs |
|---|---|---|
| IoTsmart ESP32-S3 | Fixed SoM | ESP32-S3 (integrated) |
| IoTsmart XIAO | XIAO slot | XIAO ESP32-S3, XIAO ESP32-C6, XIAO ESP32-C3, and other XIAO-compatible SoMs |
| IoTbase PICO | PICO | Waveshare ESP32-S3 PICO and other PICO-compatible SoMs |
| IoTbase NANO | Nano | Arduino Nano ESP32, Waveshare ESP32-S3 Nano, and other Nano-compatible SoMs |
| IoTbase Feather | Feather | Adafruit Feather ESP32-S3, Adafruit Feather ESP32-C6, and other Feather-compatible SoMs |
β οΈ IoTsmart ESP32-S3 requires a Tiny Adaptor Board with Cable for flashing.
Legend:
Digital I/O
- IoTextra Input
- IoTextra Relay2
- IoTextra SSR Small
- IoTextra MOSFET2
- IoTextra Octal
- IoTextra Octal2
Analog / Combo
- IoTextra Analog
- IoTextra Analog 3
- IoTextra Combo
Legend:
Full template files: /Tasmota_Templates
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 1. HARDWARE β
β Carrier board + SoM + IoTextra I/O module(s) β
ββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββββββ
β
ββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββ
β 2. FLASH β
β Flash Tasmota factory binary from official Tasmota releases β
β Binary is selected by SoM β see SoM table in Setup.md β
ββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββββββ
β
ββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββ
β 3. CONFIGURE β
β Apply IoTextra GPIO Template from /Tasmota_Templates β
β Template is selected by carrier board β
ββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββββββ
β
ββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββ
β 4. DEPLOY DRIVERS β
β Upload Berry drivers from /Berry_Drivers via File System β
ββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββββββ
β
ββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββ
β 5. AUTOMATE β
β Upload application scripts from /Application_Scripts β
β Add berry driver load() calls to autoexec.be β
β Node runs autonomously β no external server required β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
See full setup instructions in:
π Setup.md
IoThome/
β
βββ Application_Scripts/ # Ready-to-use Berry automation scripts
β # Drop-in logic for common use cases
β
βββ Berry_Drivers/ # Low-level Berry drivers for IoTextra hardware
β βββ ADS1115Data.be # ADS1115 analog ADC driver (voltage & current)
β βββ TCA9534.be # TCA9534/TCA9534A digital I/O expander driver
β βββ ADS7828.be # ADS7828 analog ADC driver (IoTextra Analog 3)
β βββ ISO1211.be # ISO1211 digital I/O driver (IoTextra Quadro)
β
βββ Documentation/ # Setup guides and parameter references
β
βββ Media/ # Images and video links
β
βββ Tasmota_Templates/ # GPIO Templates organized by carrier board
β βββ IoTsmart_ESP32-S3/
β βββ IoTsmart_XIAO/
β βββ IoTbase_PICO/
β βββ IoTbase_NANO/
β βββ IoTbase_Feather/
β
βββ LICENSE
βββ README.md
Tasmota binary files are not stored in this repository. Download them from the official Tasmota releases using the SoM β binary table in Setup.md.
All IoThome code, documentation, and media are licensed under the MIT License β see LICENSE.
Hardware licenses do not apply; this is a software-only repository.