A configuration-driven system that turns ESP32, ESP8266, BK72xx and RP2040 microcontrollers into smart devices controlled from Home Assistant and other home automation systems.
OMOTE-Community/OMOTE-Firmware
ESP32 Arduino firmware for the OMOTE open universal remote, with IR, BLE and MQTT control and an LVGL GUI.
- Stars
- 1,808
- Forks
- 183
- Open issues
- 3
- Last commit
- 28 days ago
What is it?
OMOTE Firmware is the ESP32 Arduino based software for the OMOTE open universal remote. It drives a touch-screen LVGL user interface and sends commands to home devices. The example configuration controls a TV and an amplifier over infrared, a Fire TV media player over BLE as a Bluetooth keyboard, and several smart home devices over MQTT. An IR receiver can decode codes from an existing remote.
The firmware is meant to be modified. Amplifiers, TVs and media players can be added to the configuration, and the project includes a wiki on how the code is organized. There is no prebuilt firmware, so users compile and flash the code with PlatformIO, and the remote is charged and programmed over USB-C.
An LVGL GUI simulator runs the same interface on Windows, Linux or macOS from Visual Studio Code with PlatformIO, so layouts can be tested without hardware.
Key features
- 01Controls TVs and amplifiers over infrared
- 02Controls a Fire TV media player via BLE keyboard emulation
- 03Controls smart home devices over MQTT
- 04Decodes IR codes using an IR receiver
- 05Runs an LVGL GUI simulator on Windows, Linux and macOS
Use cases
- Building a custom universal remote for your own TV, amplifier and media player
- Controlling MQTT-based smart home devices from a touch-screen remote
- Prototyping LVGL interfaces on a desktop before flashing hardware
Quick start
- 1
Install PlatformIO and get it running
- 2
Open the PlatformIO project from this repository
- 3
Compile and upload the firmware to the ESP32, or run the LVGL simulator
Things to know
- There is no prebuilt firmware, so you must compile and flash it yourself with PlatformIO.
- You need to know how to use PlatformIO to build and flash the firmware.
- The code is licensed under GPL-3.0, a copyleft license that applies to derivative works.
In collections
Topics
FAQ
- What is OMOTE-Firmware?
- ESP32 Arduino firmware for the OMOTE open universal remote, with IR, BLE and MQTT control and an LVGL GUI. OMOTE Firmware is the ESP32 Arduino based software for the OMOTE open universal remote. It drives a touch-screen LVGL user interface and sends commands to home devices. The example configuration controls a TV and an amplifier over infrared, a Fire TV media player over BLE as a Bluetooth keyboard, and several smart home devices over MQTT. An IR receiver can decode codes from an existing remote.
- Is OMOTE-Firmware free to use? What license does it have?
- OMOTE-Firmware is open source under the GPL-3.0 license. Check the license terms before using it in commercial products.
- Is OMOTE-Firmware still maintained?
- Actively maintained. The last commit to OMOTE-Firmware was on Oct 10, 2026.
- What can I use OMOTE-Firmware for?
- Building a custom universal remote for your own TV, amplifier and media player Controlling MQTT-based smart home devices from a touch-screen remote Prototyping LVGL interfaces on a desktop before flashing hardware
- How do I install OMOTE-Firmware?
- Install PlatformIO and get it running Open the PlatformIO project from this repository Compile and upload the firmware to the ESP32, or run the LVGL simulator
- Where can I get OMOTE-Firmware?
- The source code and installation instructions are on GitHub: https://github.com/OMOTE-Community/OMOTE-Firmware
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
ESP32-based device that estimates passenger flow by counting nearby Wi-Fi and Bluetooth mobile devices, with LoRaWAN, MQTT and SD-card data output.
Turns a USB-only Canon PIXMA printer into a wireless AirPrint and AirScan device using a cheap ESP32-S3 board.
Alternative firmware for ESP8266 and ESP32 boards that adds web-based setup, OTA updates, local automation and MQTT, HTTP, Serial or KNX control.
An ESP32-CAM based device that photographs analog water, gas or power meters and uses on-device AI to convert the readings into digital values.
A mouse-driven, windowed desktop that runs on ESP32 microcontrollers and is drawn in any ANSI terminal over serial.