logo elektroda
logo elektroda
X
logo elektroda
Dostępna jest polska wersja

Czy wolisz polską wersję strony elektroda?

Nie, dziękuję Przekieruj mnie tam

Multi-platform IoT firmware supporting up to 32 platforms - OBK 2025 summary

p.kaczmarek2  55 2379 Cool? (+23)
📢 Listen (AI):

TL;DR

  • OpenBeken/OBK is an open-source Wi‑Fi firmware for building-automation devices like relays, LED controllers, thermostats, energy meters, and sensors.
  • It flashes over UART, then uses auto-detected GPIO templates, Berry scripting, Home Assistant integration, REST hosting, and a simulator to speed setup and testing.
  • The project now supports 32 platforms and lists 817 devices, with separate binaries for families such as BK7231, ESP32 variants, Realtek, Winner Micro, and more.
  • Online builds, automatic OTA downloads from GitHub, and GitHub-run tests let developers compile, deploy, and flag bad commits without local toolchains.
  • Some platform features still vary: certain OTA paths are broken, WPA3 must be manually enabled on some ESP8266 builds, and several PWM or sleep features are partial.
Generated by the language model.
Set of Wi-Fi development boards connected via USB, ready for programming
For several years, Elektroda has been developing universal, open-source software for various types of Wi-Fi-controlled building automation devices, such as relays, LED lamp and LED strip controllers (including WS2812), thermostats, energy meters, or there temperature, humidity, motion sensors. Along with the firmware, a list of supported devices and extensive documentation of their internals is created. Here I will show the status of this project as of 2025.12.31.

Why change the firmware?
Let us now consider what the overall purpose of this project is. Why change the firmware when the products already come with the manufacturer's software? Is there any point in combining? Motivations may vary, below I list the reasons in random order:
- extending functionality - after changing the firmware you can add sensors, scripts, mechanisms at will. Then you have full control over GPIO, you can add a temperature sensor to every light switch, etc., or even an IR receiver, whatever you prefer
- freedom from the cloud and potential surveillance - the reprogrammed device operates 100% locally and does not report data anywhere
- security in case of problems at the manufacturer - many devices are dependent on the cloud, so if something goes wrong at the supplier, we may end up with useless equipment. The supplier has also been known to introduce a paid subscription after the fact....
- connecting to different ecosystems and Home Assistant - not every device can be easily connected to HA or this is limited, OBK supports HA without limits
- use the device as an Arduino-style DIY platform - once the firmware is changed, any project can be realised on a supported Wi-Fi chip
- energy saving and product life extension - e.g. for LED lamps ( presentation )

Repository and project name
The project was started as firmware for BK7231 chips and christened as OpenBeken/OBK . At the moment the name has remained, but the whole thing is a multi-platform application supporting around 32 platforms.

Platforms supported as of 2025.12.31
Here is the status of platform support as of 2025.12.31. For the latest version, see GitHub .
I made the platform count according to the criterion of separate binary files. This means that e.g. the W800 / W801 is counted as one platform, because it has a common batch, and the ESP32 is counted as several platforms, because there are separate versions of C3, C6, etc.
✅ ✅¹² ✅ ✅ ✅ ✅ ✅ ✅ ✅⁴ ✅ ✅ ❌ ❌ ✅ ✅ ❌ ✅ ❌ ❌ ✅ ❌
Platform Family WPA3 OTA GPIO GPI Interruption UART PWM ADC Deep Sleep WDT SPI LED IR
BK7231T Beken ✅¹² ✅¹²
BK7231N Beken ✅¹²
BK7231S / BK7231U Beken ✅¹
BK7238 Beken
BK7252 BK7252 Beken ⚠️¹'¹⁴
BK7252N Beken
XR809 XRadio ❌⁵ 62705↩ ✅⁸
XR806 XRadio ✅⁸
XR872 / XF16 XRadio ✅² ✅⁸
BL602 / LF686 Bouffalo Lab ✅⁴
W800 / W801 Winner Micro
W600 / W601 Winner Micro Winner Micro
LN882H Lightning Semi ✅⁴ >❗️
ESP8266 / ESP8285 Espressif ⚠️¹³ ✅²'⁴ ✅⁴ ✅⁷ ❗️
ESP32 / C2 / C3 / C5 / C6 / C61 / S2 / S3 Espressif ⚠️¹³ ✅⁴ ✅¹⁰
TR6260 Transa Semi ❗️³'⁴ >❌ ✅⁸ ✅⁹
RTL8711AM (Ameba1) Realtek ❗️ ✅⁴ ✅⁸
RTL8710B (AmebaZ) Realtek ✅⁴ ✅⁸
RTL8710C / RTL8720C (AmebaZ2) Realtek ✅⁴ ✅⁸
RTL8720D / RTL872xCSM / RTL8720CS (AmebaCS) Realtek ✅⁴ ✅⁸ ❗️
RTL8721DA / RTL8711DAF (AmebaDplus) Realtek ❗️
RTL8720E / RTL8710ECF (AmebaLite) Realtek ❗️
ECR6600<br> ESWIN ✅⁸ ❗️ ❗️¹¹
TXW81X Taixin ❗️
RDA5981 RDA5981 RDA 62ba66ba5f
[/table:1a437e6cef]
Quote:
✅ - Works
❓ - Not tested
❌ - Not implemented
❗️ - Defective / not working
⚠️ - Warning
➖ - Not applicable

Quote:
¹ Success dependent on partition layout set in bootloader. SPI flash QIO firmware required for a certain OTA
² Excluding 1 MB variant
³ Implemented, but no file generation tool
⁴ No OTA HTTP, only via web application
⁵ OTA attempt crashes the device
⁶ OTA in web application is corrupted, use HTTP OTA
⁷ Software PWM - possible flickering
⁸ Note pin assignment - some PWM channels overlap
⁹ WDT configured in SDK
¹⁰ Timed sleep only, no wake-up via GPIO
¹¹ After waking up, device does not connect to Wi-Fi until power is removed again
¹² Only in _ALT builds
¹³ Must be manually enabled (CONFIG_ESP8266_WIFI_ENABLE_WPA3_SAE / CONFIG_ESP_WIFI_ENABLE_WPA3_SAE = y in sdkconfig.defaults)
¹⁴ OTA on Tuya BK7252 is not supported (the stock bootloader does nothing, the custom one does not encrypt the main - brick partition)


How is the batch uploaded?
The batch is uploaded via UART, a USB to UART converter is needed. We have our own flasher for this:
https://github.com/openshwprojects/BK7231GUIFlashTool
BK7231 Easy UART Flasher interface with expanded chip type selector
Once uploaded, we connect the device to our Wi-Fi and configure the GPIO. Our Flasher often knows how to auto-detect the GPIO - you don't have to guess, you don't have the problem you have with Tasmota.
And even if you did have to guess - we still have a tool that makes it easy:
GPIODoctor in OpenBeken - a convenient way to learn about GPIO roles in an IoT device [EN]
GPIODoctor in OpenBeken - a convenient way to learn about GPIO roles in an IoT device [EN]

Online and automatic OTA compilation
The project can be compiled fully online. This is used even in normal firmware development. Toolchain on the local computer is unnecessary.
More information:
System online builds OpenBeken - firmware compilation for all platforms on Github [EN]
System online builds OpenBeken - firmware compilation for all platforms on Github [EN]
In addition, we have a tool that with each compilation downloads and updates the firmware itself on the target devices:
How to programmatically access pull requests, commits and download artifacts from Github[EN] How to programmatically access pull requests, commits and download artifacts from Github?
How to programmatically access pull requests, commits and retrieve artifacts from Github? [EN]
https://github.com/openshwprojects/OBKotaTool


Windows-based simulator and automated testing
Another distinguishing feature of this project is the OBK Simulator on Windows/Linux. It is an implementation of HAL for these platforms combined with a visual schematic editor.
Connection diagram in OpenBeken IoT simulator with bulbs and LED strips.
OpenBeken IoT device simulator - first early alpha version for testing [EN]
OpenBeken IoT device simulator - first early alpha version for testing [EN]
This allows you to test advanced circuits directly on your computer. Everything you need is supported - even pairing with Home Assistant, so you can connect a virtual device via MQTT.
The other obvious consequence of the Windows port is that automatic tests can be used easily:
OpenBeken automated testing on Windows and target platforms [EN]
Automatic OpenBeken tests on Windows and target platforms [EN]
These are fired up on GitHub with each compilation. If tests detect a problem, commit is flagged as incorrect.


Device list
In addition, the OBK community maintains a list of devices. Most of these are either supported or in development, although I've recently put Zigbee devices on there as well - just for information.
https://openbekeniot.github.io/webapp/devicesList.html
Devices can be grouped by platform and by description type (GPIO template or full article).
As of 2025.12.31 we have 817 devices there .

Berry scripts
OBK can be scripted Berry - of course this also works in the Simulator, so you can test without the target device. Information:
Berry scripts for various IoT platforms - OBK scripting tutorial, part 1 [EN]
Berry scripts for various IoT platforms - OBK scripting tutorial, part 1 [EN]

Fi-Fi module as hosting
OBK has LFS integrations and can host files. A REST interface is also present, so you can make your own panel in HTML and Javascript:
OpenBeken as mini HTTP hosting - writing pages in Javascript, REST API Tasmota etc [EN]
OpenBeken as mini HTTP hosting - Javascript page writing, REST API Tasmota etc [EN]
LFS supports GZIP compression for files downloaded by the browser - you can fit a lot of text that compresses really well:
Efficient hosting of a simple HTML page on a microcontroller - GZip compression in HTTP [EN]
Efficient hosting of a simple HTML web page on a microcontroller - GZip compression in HTTP [EN]


supported drivers
Here is an incomplete list of supported drivers. Many of them support several devices of this type each, so even if something is not on the list, it may still be supported.
TuyaMCU (regular and battery-powered) GirierMCU, TCA9554, DMX, PIR, PixelAnim (WS2812 animations), Drawers, HGS02, PinMutex, GosundSW2, TCL (climate control), OpenWeatherMap, Widget (HTML controls), Charts, NTP, DS3231, HTTPButtons, SimpleEEPROM, MultiPinI2CScanner, I2C, RN8209, BL0942, PWMG, BL0942SPI, HLW8112SPI, ChargingLimit, BL0937, CSE7761, CSE7766, MAX6675, MAX31855, PT6523, TextScroller, SM16703P, SM15155E, IR (infrared), RC (radio), IR2, DDPSend, DDP, SSDP, DGR, Wemo, Hue, PWMToggler, DoorSensor, ADCButton, MAX72XX_Clock, SM2135, BP5758D, BP1658CJ, SM2235, BMP280, MAX72XX, BMPI2C, CHT83XX, MCP9808, KP18058, ADCSmoother, SHT3X, SGP, ShiftRegister, AHT2X, DS1820, DS1820_FULL, HT16K33, TM1637, GN6932, TM1638, HD2015, Battery, Bridge, UartTCP, TXWCAM, DHT11, DHT12, DHT21, DHT22, Shutters (curtains).
Status as of 2025.12.31 , more will be added soon!

Additional materials
The OBK documentation is available in our repository:
https://github.com/openshwprojects/OpenBK7231T_App/blob/main/docs/README.md
For example, here is a list of drivers:
https://github.com/openshwprojects/OpenBK7231T_App/blob/main/docs/drivers.md
A lot of loose material on OBK is in our tutorial section:
https://www.elektroda.pl/rtvforum/forum517.html
Some of the material is in the form of videos - e.g. on YouTube:
https://www.youtube.com/@elektrodacom


Summary
Shown firmware is fully open source, free, and supports 32 platforms at this point. It is uploaded via the UART, although detailed instructions depend on the platform in question. It allows the device in question to be free from the cloud, freely scripted and programmed, and linked to Home Assistant.
The firmware has many drivers (sensors, communication protocols, LED controllers, etc.) and integrations (DDP, DMX, Tasmota Device Groups).
In addition, the whole thing has numerous facilities to facilitate development and testing, such as online testing and compilation, a simulator on Windows, or there tools for automatic OTA from a given PR (pull request - change proposal) on GitHub.
If you want to support the project, feel free to:
https://paypal.me/openshwprojects
Do you have suggestions as to what interesting sensors or peripherals can still be supported and supported? Or do you know of any other useful platforms?


Special thanks to @insmod, @divadiow , @dedamraz , @max4electrode for their huge contribution to the project!

About Author
p.kaczmarek2
p.kaczmarek2 wrote 14237 posts with rating 12141 , helped 647 times. Been with us since 2014 year.

Comments

DeDaMrAz 16 Jan 2026 18:25

Amazing retrospective, glad to be a small part of this project and looking forward for new additions and progress! [Read more]

divadiow 16 Jan 2026 23:49

echoing those words. It's been amazing watching this develop and, where possible, contribute to the advancement of the project. [Read more]

rb401 17 Jan 2026 01:29

Since such a sizable number of devices can be reprogrammed to unified OBKs I am interested in a niche issue about which it is difficult to find any specific material. That is, is there any possibility... [Read more]

p.kaczmarek2 23 Jan 2026 23:16

@rb401 I'd be happy to help you with this and do some presentation, but I think you need to specify what you mean. OBK is very simple in terms of input/output, you have a channel system there, you can... [Read more]

rb401 29 Jan 2026 02:37

The idea is to be able to easily obtain with Smart Home devices (specifically from OBK) similar functionality to, for example, a system with Modbus. That is, addressable devices, each with addressable... [Read more]

p.kaczmarek2 29 Jan 2026 09:13

And isn't it enough to use, for example, ESP32 as an MQTT broker? [Read more]

rb401 29 Jan 2026 20:20

If there was a broker put in place, the whole thing wouldn't be there. MQTT client libraries are available for various languages and in this way the control of such devices, from a central controller,... [Read more]

DeDaMrAz 08 Feb 2026 22:44

https://obrazki.elektroda.pl/1481145300_1770586901_thumb.jpg OBK will now have customizable local builds that can be done in under 20 seconds 😁 [Read more]

p.kaczmarek2 08 Feb 2026 22:48

Nice feature. With this custom build system in Docker, anyone will be able to create OBK build for any platform with any driver enabled (via obk_config.h). https://obrazki.elektroda.pl/5308181300_1... [Read more]

insmod 08 Feb 2026 23:08

Excellent work! I'll probably switch from WSL1 to that. Would it build TXW? It must execute some .exe to finish build. (i once saw python replacement to them on gh, don't remember where though) [Read more]

DeDaMrAz 08 Feb 2026 23:14

Love it, thank you, I haven't tested all the platforms atm but TWX will not build yet, I'll fix that now. [Read more]

PRL 09 Feb 2026 03:51

Great stuff and I think I'll be dismantling all my sockets for reprogramming. I have a dozen of them. With the software mentioned, is it possible to configure the devices myself so that, for example,... [Read more]

p.kaczmarek2 09 Feb 2026 11:15

Video for the topic: @PRL where do you want to add up these values? The firmware shown is for individual devices, it's not Home Assistant. We don't have a control panel here, or at least at the... [Read more]

DeDaMrAz 09 Feb 2026 19:49

Guys @insmod @max4elektroda @divadiow @pkaczmarek2 Can you point out which PR's are ready to be merged, tested, meaningful etc. - we have a lot of open PR's so some type of house keeping should be... [Read more]

PRL 09 Feb 2026 19:53

Anywhere. I have part eWelink and part Tuya and unfortunately nowhere have I found the ability to add up the consumption from all/selected outlets. It's a bit tiresome to click on each socket in each app... [Read more]

divadiow 09 Feb 2026 23:12

I haven't anything open in main app :( Not sure if @max4elektroda's W600 flashvars one is finished Added after 1 [minutes]: Also @protectivedad has some [Read more]

DeDaMrAz 09 Feb 2026 23:14

Nice ping, thanks! Let's focus on the "house cleaning" as much as possible for a bit so we can all get a good enough starting point for more work and improvements - 2026 should be amazing for OBK. Feel... [Read more]

p.kaczmarek2 09 Feb 2026 23:18

This ready? Btw: digitalWriteFast could be faster... read as well. On Beken, I think it goes through Beken driver api? Added after 1 [minutes]: This is awaiting third party confirmation: Anyone... [Read more]

insmod 09 Feb 2026 23:32

I did 'greenlight' it earlier, at least because logic is sound. But i've nothing to test it on, because none of my devices requires this. My IR pr is ready https://github.com/openshwprojects/OpenBK7231T_App/pull/1979 Tested... [Read more]

FAQ

TL;DR: OBK supports 32 platforms and lists 817 devices; “firmware is fully open source.” Flash via UART, test in a PC simulator, and integrate with Home Assistant. [Elektroda, p.kaczmarek2, post #21794531]

Quick Facts

What is OpenBeken (OBK) and who should use it?

OBK is an open‑source firmware for Wi‑Fi IoT devices like relays, LEDs, thermostats, and meters. It targets users who want local control, added sensors, scripting, HA integration, and freedom from vendor clouds. The author states it is “fully open source, free.” [Elektroda, p.kaczmarek2, post #21794531]

Which chips and platforms are supported right now?

As of December 31, 2025, OBK ships binaries for about 32 platforms, including Beken BK7231/T/N/38/52, Espressif ESP8266/ESP32 families, Realtek Ameba series, Bouffalo BL602, Winner Micro W600/W800, XRadio XR806/XR809, Lightning Semi LN882H, ESWIN ECR6600, and others. Check the platforms matrix and linked docs. [Elektroda, p.kaczmarek2, post #21794531]

How do I flash OBK via UART?

You upload the firmware over UART using a USB‑to‑UART adapter and the BK7231 GUI Flash Tool. After flashing, join Wi‑Fi and configure GPIOs. The flasher can auto‑detect GPIO on many devices, reducing guesswork versus Tasmota. 1. Connect UART pins and power. 2. Use the GUI tool to write the binary. 3. Join Wi‑Fi and set roles. [Elektroda, p.kaczmarek2, post #21794531]

Can I run devices 100% locally without any cloud?

Yes. A core goal is freedom from vendor clouds and surveillance. After flashing, devices work fully offline, with local control, REST, MQTT, and HA connectivity. This avoids outages, surprise subscriptions, and vendor lock‑in. The author lists cloud independence as a key motivation. [Elektroda, p.kaczmarek2, post #21794531]

Does OBK integrate with Home Assistant and MQTT?

Yes. OBK connects to Home Assistant without limits and supports MQTT. The simulator even pairs with Home Assistant, letting you validate virtual devices before flashing hardware. This streamlines testing scenes, sensors, and lighting. [Elektroda, p.kaczmarek2, post #21794531]

How do online builds and automatic OTA updates work?

You can compile firmware entirely online via GitHub CI, so no local toolchain is needed. An OBK OTA tool can fetch artifacts on each build and update target devices automatically, including from pull requests and commits. “Build online, deploy OTA” describes the workflow. [Elektroda, p.kaczmarek2, post #21794531]

Is there a PC simulator for designing and testing devices?

Yes. The OBK Simulator for Windows/Linux implements a HAL with a visual schematic editor. You can test advanced circuits, Berry scripts, and HA pairing on your computer. Automatic tests also run on GitHub; failing commits get flagged. [Elektroda, p.kaczmarek2, post #21794531]

How many ready device templates or articles exist?

The community device list shows 817 entries dated 2025‑12‑31. You can filter by platform and by template versus full article. This accelerates onboarding and reduces wiring mistakes. [Elektroda, p.kaczmarek2, post #21794531]

What scripting language and automations does OBK support?

OBK supports Berry scripts across target hardware and in the Simulator. You can add logic, timers, and behaviors without recompiling. The driver list includes complex automations like PixelAnim, DMX, shutters, IR, and data logging helpers. [Elektroda, p.kaczmarek2, post #21794531]

Can OBK host custom web pages and a REST API on the device?

Yes. OBK integrates LFS file storage and a REST interface. You can build HTML/JS control panels, with optional GZIP compression to fit more content. This enables fast local dashboards without external servers. [Elektroda, p.kaczmarek2, post #21794531]

Any known OTA or platform edge cases I should watch out for?

Yes. Examples: XR809 OTA attempts crash the device; ESP8266 uses software PWM and may flicker; some bootloaders block OTA on certain Tuya BK7252 units; web‑based OTA can be corrupted on some chips, so use HTTP OTA instead. Review notes before updating. [Elektroda, p.kaczmarek2, post #21794531]

Does OBK support WPA3 and low‑power modes?

WPA3 support exists on many platforms, sometimes requiring specific ALT builds or sdkconfig flags. Deep sleep varies by MCU; some support only timed sleep and lack GPIO wake. Always check the platform table footnotes when planning battery builds. [Elektroda, p.kaczmarek2, post #21794531]

What drivers and sensors are already supported?

The list includes TuyaMCU (regular and battery), DMX, WS2812 animations, IR/RF, energy chips (RN8209, BL0942, HLW8112), environmental sensors (SHT3X, BMP280, DS18B20), LED drivers (SM2135, BP5758D), displays (MAX72XX, TM1637), shutters, and many more. “Drivers keep expanding.” [Elektroda, p.kaczmarek2, post #21794531]

What do terms like TuyaMCU, OTA, and Berry mean in OBK context?

In OBK, TuyaMCU denotes the driver family for Tuya‑based devices, including battery variants. OTA refers to updating firmware from built artifacts without disassembly. Berry is the embedded scripting language used by OBK and its Simulator. [Elektroda, p.kaczmarek2, post #21794531]

How do I contribute, request drivers, or support OBK?

Share device findings, propose drivers, or test platforms using the GitHub and forum links. You can also support development via the provided PayPal link. The author invites sensor and platform suggestions and thanks major contributors. [Elektroda, p.kaczmarek2, post #21794531]
Generated by the language model.
%}