With HomeGenie Mini, creating smart devices and connected things is simpler than ever. Unleash your creative vision, building functional gadgets or animating 3D creations, all code-free. Just connect, click, and create your smart devices today!
What you'll need
ESP8266 or ESP32 development board: this is the "brain" of your device. It provides processing capabilities, Wi-Fi connectivity, and GPIO pins, which are essential for interfacing with other components. You can program it by using the firmware upload form that you'll find later on this page, simply by connecting it to your PC via USB. Most examples here use the ESP32 C3 Mini and ESP32 S3 Zero boards as reference, because they are small (about 2.0 x 2.5 cm), convenient to use, and suitable for embedding in various DIY projects or even commercial products. However, almost any other ESP8266 or ESP32-based board is compatible with the HomeGenie Mini firmware.
Sensors and actuators modules: depending on the specific requirements of your project, you will likely need one or more additional components. Using electronic modules makes it easier to connect sensors (such as temperature, humidity, light, motion, etc.) and actuators (such as relays, LED strips, motors) to your ESP board without needing to solder them directly.
While you will need a few essential components, don't worry if you are new to this. Our tutorials are designed to be simple and easy to follow, even for beginners.
Mounting options
Components can be physically placed using one of the following methods:
Breadboard:
A breadboard is a solderless prototyping board that allows for quick and easy experimentation.
If you're following online tutorials and have all your project components ready on a breadboard, you can start right away with the firmware upload.Custom PCB shield:
A printed circuit board (PCB) provides a convenient solution for neatly connecting your electronic modules. It eliminates the need for messy wires and offers a more robust and reliable solution. This approach usually requires soldering a few connectors where the components can be plugged in easily, much like building blocks. Finding a pre-soldered PCB shield kit makes getting to the final product even more straightforward and easier.
Given the numerous tutorials that already cover the basics of wiring sensors and components to the ESP32, the content on this site will focus on building working products by moving beyond breadboards and using custom PCB shields and 3D-printed enclosures instead. This approach makes it possible to create a fully functional product out of simple component modules.
To support this, each example project will also provide the required files for printing the PCB (Gerber files) and the plastic enclosure (3MF files), allowing you to create a fully working DIY smart device.
Where to find these
- Online electronics retailers
es. AliExpress, Amazon, eBay, etc. - PCB printing services
es. JLCPCB, PCBWay, etc. - 3D printing services
es. Shapeways, Treatstock, etc.
Featured
Ready to take the next step? Below are some featured projects to inspire you and showcase what's possible with HomeGenie Mini. These ready-to-use firmware examples can be easily installed using the components described within each project, or even adapted to your own custom creations. Simply configure the specific parameters for your unique project, and you're ready to go!
For advanced users, the full open-source code is available, allowing for complete customization and control over every aspect of your HomeGenie Mini projects.
Create your smart device 🪄
Connect your ESP32/ESP8266 microcontroller to your computer via USB, select your firmware version, and click "Create device" to upload the HomeGenie Mini firmware.
1. Select device type
2. Select firmware flavor
3. Let the magic happen!
Installing firmware directly from this page works only in browsers with Web Serial API enabled.
Pre-built firmwares are automatically generated from source code via GitHub Workflow and can also be downloaded directly from the repository releases page.
Custom firmware 🚀
The firmware can also be built from source code using Platform.IO core (pio
command line utility).
You can easily edit and customize included examples or build your own device from scratch including HomGenie Mini library in your code.
After installing Platform.IO core, download HomeGenie Mini source code archive, unzip it and in a terminal set the current directory to homegenie-mini
folder.
wget https://github.com/genielabs/homegenie-mini/archive/refs/tags/1.2.49.zip
unzip 1.2.49.zip
cd homegenie-mini-1.2.49
Then enter the following commands to install libraries required to build the firmware:
pio pkg update
pio pkg install
To actually build and install HomeGenie Mini firmware, connect your ESP device to your PC's USB port and issue the command:
pio run -e default -t upload
Configuration environments
The option -e default
shown in the previous command is used to specify the configuration environment. The default environment is for building the base firmware for a generic ESP32 board.
To list all available configurations enter the following command:
pio project config
By editing the platformio.ini
file is possible to add custom configuration environment to build your own version of the firmware to support different hardware and functionality.
Monitoring via serial port
When the device is connected to your PC's USB port, you can monitor its activity logs by entering the following command::
pio device monitor -b 115200
Example output
[1970-01-01T00:00:00.055Z] HomeGenie Mini 1.2.0
[1970-01-01T00:00:00.056Z] Booting...
[1970-01-01T00:00:00.057Z] + Starting HomeGenie service
[1970-01-01T00:00:00.068Z] + Starting NetManager
[1970-01-01T00:00:00.068Z] | - Connecting to WI-FI .
[1970-01-01T00:00:00.187Z] | - WI-FI SSID: HG-NET
[1970-01-01T00:00:00.188Z] | - WI-FI Password: *
[1970-01-01T00:00:00.214Z] | x WiFi disconnected
[1970-01-01T00:00:00.774Z] | ✔ HTTP service
[1970-01-01T00:00:00.784Z] | ✔ WebSocket server
[1970-01-01T00:00:00.786Z] | ✔ MQTT service
[1970-01-01T00:00:00.791Z] @IO::GPIO::GPIOPort [Status.Level 0]
[1970-01-01T00:00:00.792Z] :Service::HomeGenie [IOManager::IOEvent] >> [domain 'HomeAutomation.HomeGenie' address '14' event 'Status.Level']
[1970-01-01T00:00:00.807Z] @IO::GPIO::GPIOPort [Status.Level 0]
[1970-01-01T00:00:00.809Z] :Service::HomeGenie [IOManager::IOEvent] >> [domain 'HomeAutomation.HomeGenie' address '27' event 'Status.Level']
[1970-01-01T00:00:00.822Z] READY.
[1970-01-01T00:00:00.823Z] @IO::Sys::Diagnostics [System.BytesFree 147128]
[1970-01-01T00:00:00.835Z] :Service::HomeGenie [IOManager::IOEvent] >> [domain 'HomeAutomation.HomeGenie' address 'mini' event 'System.BytesFree']
[1970-01-01T00:00:00.848Z] :Service::EventRouter dequeued event >> [domain 'HomeAutomation.HomeGenie' address 'mini' event 'System.BytesFree']
[2023-12-29T17:01:11.050Z] | - RTC updated via TimeClient (NTP)
[2023-12-29T17:01:11.053Z] | ✔ UPnP friendly name: Bagno
[2023-12-29T17:01:11.054Z] | ✔ SSDP service
[2023-12-29T17:01:11.200Z] | - Connected to 'HG-NET'
[2023-12-29T17:01:11.201Z] | - IP: 192.168.x.y
[2023-12-29T17:01:15.048Z] @IO::Sys::Diagnostics [System.BytesFree 143268]
[2023-12-29T17:01:15.049Z] :Service::HomeGenie [IOManager::IOEvent] >> [domain 'HomeAutomation.HomeGenie' address 'mini' event 'System.BytesFree']
[2023-12-29T17:01:15.063Z] :Service::EventRouter dequeued event >> [domain 'HomeAutomation.HomeGenie' address 'mini' event 'System.BytesFree']