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

Czy wolisz polską wersję strony elektroda?

Nie, dziękuję Przekieruj mnie tam

How to flash LN882H with open source Tasmota/Esphome style firmware - backup procedure included

p.kaczmarek2  297 66210 Cool? (+24)
📢 Listen (AI):

TL;DR

  • LN882H modules can be flashed over UART with open-source Tasmota/Esphome-style firmware to free cloud-controlled devices and integrate them with Home Assistant.
  • Wire module TX, RX, GND, 3V3, and BOOT/GPIOA9 to ground, and keep GPIOA9 low throughout the entire flashing process.
  • Backup uses `python LN882H_Flash_Dumper.py COMx flashdump`, and the firmware flash command is `LN882H_CMD_Tool.exe COMx download flash 921000 0x0 flashimage.bin`.
  • After flashing, power-cycle the module, disconnect BOOT from ground, and open 192.168.4.1 to configure it like other OpenBeken/Tasmota-style devices.
  • A reliable external 3.3V supply is recommended because powering directly from the USB-to-UART adapter’s 3.3V pin may fail.
Generated by the language model.
LN882H module with visible electronic components on a yellow background.
Here I will show you how you can easily flash the new LN882 modules via UART, just like you would flash ESP8266. Flashing those modules will soon allow you to free them from the cloud and connect them to Home Assistant. I've already covered some of the more technical details in the LN882H datasheet topic, so here I will only present the firmware change guide.


2025.01.04 UPDATE:
Please see this topic for latest discussion and YOUTUBE LN882H tutorial.


Update 2026
As of 2026, this platform read/write is also supported by our flash tool:
https://github.com/openshwprojects/BK7231GUIFlashTool
The connection (soldering, wires), is the same, but you can use our tool instead of the legacy one.
Please check it out and use it instead of legacy tools, let us know how it works for you!

Hardware preparation
You will need an USB to UART converter and a reliable 3.3V power supply. Powering directly from 3.3V pin on USB to UART converter may not work.
The procedure is very similiar to ESP8266 and BK7231, so watch our flashing tutorials here:
https://www.youtube.com/@elektrodacom
But basically, in case of LN882, you need to connect:
- Module TX -> UART RX
- Module RX -> UART TX
- Module GND -> UART GND
- Module 3V3 -> UART 3V3 (make sure your USB UART supports and is in 3V3 mode if it is selectable)
- Module BOOT/GPIOA9 -> GND
GPIOA9 must remain LOW during whole flashing process (do not disconnect it!.
Then, once all connections are done, connect USB to UART converter to your PC.

NOTE: if you try to flash and it fails, or you want to flash again, make sure to disconnect and reconnect USB to UART converter from your PC, while keeping BOOT signal low.

Soldering tips
If you are new to soldering, you can watch some of our BK7231 flashing guides, BK7231 is a different module but soldering method is the same. For example:



Module can be easily desoldered with some flux, some extra Pb solder, and solder wick.
Here is desoldered module:
WiFi module with Lightning LN882H chip on a wooden surface. LN882H module with visible pads and pin labels.
In order to solder wires easily, first add some flux:
LN882 module with visible solder points and markings TX, RX, and BOOT.
Then add some Pb solder to the pads (also tin the wires):
PCB with pins labeled 3V3, GND, RX, TX, A1, A0, and BOOT.
Then, solder wires:
Image of LN882 module with soldered wires.
And, finally, here is my circuit - it's an USB to UART converter in 3.3V mode with an extra AMS1117-3.3V / TC1264-3.3V LDO on proto board so I can get reliable 3.3V current source:
Breadboard with connected wires and USB to UART converter on a wooden table.

Making original firmware backup
Extract both archives to single directory, like:
Screenshot of the LN882H_Flash_Dumper directory on Windows.
Navigate to it in CMD, install Python if you're missing it, change COMx to your COM port name, like COM15, run the command:

python LN882H_Flash_Dumper.py COMx flashdump

NOTE: You must have in the same directory as Python script! Otherwise, you will get this error:
Screenshot of a Python error during an attempt to flash dump using LN882H Flash Dumper.
If you have connected something incorrectly, or swapped RX and TX, you will get:
Screenshot of an error when running LN882H Flash Dumper.
Otherwise, the slow and long flash dump procedure will begin:
Screenshot showing flash memory dump process in terminal.
Flash read will continue until it hits the end of the flash, it will end with following message:
Screenshot showing error message Error: Fail. Command execution error.
This is not an error! Dump files will be created here:
View of LN882H_Flash_Dumper directory with various files.

Flashing new firmware

First, get new firmware for NL882H platform, it should be available here, either check link or Releases tab:
https://github.com/openshwprojects/OpenBK7231T_App/blob/main/docs/LN882H.md
https://github.com/openshwprojects/OpenBK7231T_App
Navigate to the dir, just like when doing flash backup, then use:

LN882H_CMD_Tool.exe COMx download flash 921000 0x0 flashimage.bin

It should flash in few moments:
Console screenshot showing the LN882H module flashing process.
To run firmware, disconnect everything from power, disconnect BOOT from ground, and reconnect power:
Screenshot of Wi-Fi connection to the OpenLN882H network.
Connect to the access point, open page at 192.168.4.1 and configure your device like you'd configure any other OpenBeken/OpenBL602/OpenW600/OpenW800/OpenXR809/Tasmota device.
OpenLN882H interface with configuration buttons.
For mode OBK tips, please see our channel:
https://www.youtube.com/@elektrodacom
For a generic IoT devices teardowns list and guides list, see:
https://openbekeniot.github.io/webapp/devicesList.html

Download
Here are tools used for flashing, as described in this topic:
LN882H_Too...1.0.16.zip (4.36 MB)You must be logged in to download this attachment.
LN882H_Fla...Dumper.zip (1.15 kB)You must be logged in to download this attachment.

Summary
LN882H is very easily flashable via UART, just like ESP. You need to solder 5 wires: 3.3V, ground, RX, TX and boot signal, boot must be pulled low for bootloader to work. Remember to power off/on whole module after each flashing cycle, this is mandatory. The flashing procedure will allow you to flash our multiplatform firmware so your devices can work with Home Assistant and be free from the cloud.
PS: At the time of the posting this topic, LN882H port is still WIP, so please wait patiently for Release to be posted on Github.

About Author
p.kaczmarek2
p.kaczmarek2 wrote 14622 posts with rating 12638 , helped 655 times. Been with us since 2014 year.

Comments

ferbulous 14 Jan 2024 06:32

Which oem/smart home device using this chip? Haven’t seen this one yet [Read more]

p.kaczmarek2 14 Jan 2024 07:35

We have mentioned few devices with this chip in our datasheet topic: https://www.elektroda.com/rtvforum/topic4027545.html Futhermore, soon our devices list will be updated to include LN882H: https:... [Read more]

p.kaczmarek2 20 Jan 2024 15:39

2024-01-20 UPDATE Now OpenBeken OTA on OpenLN882H is working. Futhermore, builds are now public, see: https://github.com/openshwprojects/OpenBK7231T_App/releases https://obrazki.elektroda.pl/8423092500_1705761556_thumb.jpg... [Read more]

voodoopt 22 Jan 2024 22:30

Is it possible to flash the chip without removing it from the PCB? ATTENTION it is not connected to 220v [Read more]

p.kaczmarek2 22 Jan 2024 22:41

It should be, but keep in mind that you need to have access to BOOT pin, and you also have to make sure that RX and TX are not connected on your board, because, if for example, there is a button with a... [Read more]

voodoopt 23 Jan 2024 00:43

cozilife smart switch https://obrazki.elektroda.pl/3511312200_1705967044_thumb.jpg [Read more]

p.kaczmarek2 23 Jan 2024 08:41

If you have the same switch as me, then it may be hard to access BOOT without desoldering the module. Futhermore, are RX/TX used for some purpose on your board? [Read more]

divadiow 23 Jan 2024 09:17

if it's this device I was able to solder boot in place and flash LN-02 without desoldering the module or cutting RX/TX. https://www.elektroda.com/rtvforum/viewtopic.php?p=20911009#20911009 [Read more]

p.kaczmarek2 23 Jan 2024 09:25

Fair point, but it may require some tricky soldering. I have the same device as you @divadiow (as you probably know) and I'm halfway in the process of making YT video for that. [Read more]

divadiow 23 Jan 2024 09:28

True. A little tricky! You have to be careful once soldered. I ripped the pad off boot on my first LN-02 mini switch not moving it around delicately enough 😳 [Read more]

voodoopt 28 Jan 2024 12:38

I can't flash the chip, try with 3 different programmers -> Arduino Nano with CH340 -> Prolific USB-to-Serial Comm Port (USB to TTL) -> ESP programer (USB-SERIAL CH340) I use with AMS1117 3.3 800mah... [Read more]

p.kaczmarek2 28 Jan 2024 12:43

How your setup looks like? Why are you trying to flash LN882H with BK7231 flasher or bkWriter? It's not a BK7231. It will not work. You need to use the tool I mentioned in the flashing guide. [Read more]

voodoopt 28 Jan 2024 12:48

C:\temp\LN882H_CMD_TOOL>python LN882H_Flash_Dumper.py COM23 flashdump LN882H flash dump tool v1.0 Loading RAMCode... Error: Fail. Could not go in download mode. I've already checked the pins and... [Read more]

p.kaczmarek2 28 Jan 2024 12:48

Do you know that after every attempt, even if it fails, you need to disconnect whole setup from power, while keeping boot on GND all the time? If you try to flash, and it fails, then it will lock itself... [Read more]

voodoopt 28 Jan 2024 22:07

Thank you, the first step is done and I know that the programmer is working. Now you can dump ------------------------------------------------ C:\temp\LN882H_CMD_TOOL>LN882H_Flash_Dumper.py COM21 flashdump LN882H... [Read more]

p.kaczmarek2 29 Jan 2024 04:40

Do you power off/on after doing the dump? It's required after every operation. [Read more]

divadiow 29 Jan 2024 07:33

and unplug/replug the USB-TTL with GND/BOOT still connected to the LN-02 before powering up from external 3.3v. I did a LN882H/WL2S last night. I also shortened my cables after moving the USB-TTL closer... [Read more]

voodoopt 03 Feb 2024 11:45

I've tried everything, I always get the error with and withtou admin command line C:\temp\LN882H_CMD_TOOL>LN882H_CMD_Tool.exe COM21 download flash 2000000 0x0 c:\temp\LN882H_CMD_TOOL\OpenLN882H.bin Fail.... [Read more]

p.kaczmarek2 03 Feb 2024 11:51

I'd start with shortening the wires. We already had cases where BK7231 flashing was failing due to the too long wires between USB to UART converter and WiFi module. [Read more]

FAQ

TL;DR: Need to flash LN882H and keep a recovery path? Use 5 wires and keep BOOT low; as one expert put it, "BOOT is like IO0". First dump the original flash, then write the regular firmware binary over UART, usually at 115200 baud if higher speeds fail. This FAQ is for OpenBeken/OpenLN882H users who need a practical flash, backup, OTA, and recovery workflow. [#20923772]

Dlaczego to ma znaczenie: LN882H can run cloud-free firmware, but success depends more on wiring discipline, baud rate, and power cycling than on the chip itself.

Opcja Typowe użycie Co działało w praktyce Główne ryzyko
LN882H_CMD_Tool.exe Flashowanie UART w Windows Często ruszało po zmianie na 115200 Błąd Fail. Error downloading file.
LN882H_Flash_Dumper.py Backup flash i OTP Tworzy dump przed zmianą firmware Długi odczyt, wymaga poprawnego BOOT
OTA z Web App Aktualizacja już działającego OBK Chrome/Chromium działały stabilniej niż Firefox Firefox mógł wywołać crash OTA
BK7231GUIFlashTool Nowsze narzędzie GUI Wspierane dla LN882H od aktualizacji 2026 Nadal wymaga tego samego okablowania

Najważniejszy wniosek: Najczęstsza przyczyna nieudanego flashowania LN882H nie była w module, tylko w procedurze: BOOT musi pozostać niski, po każdej próbie trzeba odłączyć i podłączyć zasilanie, a zejście do 115200 baud często rozwiązywało zapis. [#20958664]

Quick Facts

  • LN882H flashuje się przez UART podobnie do ESP8266: potrzebne są połączenia TX, RX, GND, 3.3V i BOOT/GPIOA9, a GPIOA9 musi pozostać w stanie niskim przez cały proces. [#20905518]
  • W praktyce zapis przy 2,000,000 baud często kończył się błędem, a kilka osób potwierdziło sukces dopiero po przejściu na 115200 baud. [#20958664]
  • PowerSave na LN882H potrafił mocno obniżyć temperaturę: w jednym teście spadek wyniósł z 64.0°C do 36.0°C po PowerSave 2, kosztem większych opóźnień sieciowych. [#21055421]
  • LittleFS jest systemem plików flash, który przechowuje pliki i skrypty, z odpornością na restart oraz małym narzutem pamięci. Na LN882H dodanie LittleFS zwiększało rozmiar binarki o około 42 KB. [#21069454]
  • OTA na LN882H bywało niestabilne w Firefox; po naprawce przetestowano poprawny update z buildu 1441_merge_6d6a6086fa18 do OpenLN882H_1.17.789_OTA.bin właśnie w Firefox 132.0.2. [#21332121]

How do I flash an LN882H module over UART and make a full backup of the original firmware first?

Flashowanie i backup robi się w dwóch etapach. 1. Podłącz TX↔RX, RX↔TX, GND, 3.3V oraz BOOT/GPIOA9 do GND. 2. Zrób kopię poleceniem python LN882H_Flash_Dumper.py COMx flashdump; narzędzie zapisze dump flash i OTP. 3. Wgraj nowy firmware poleceniem LN882H_CMD_Tool.exe COMx download flash 921000 0x0 flashimage.bin, a po zakończeniu odłącz BOOT od masy i zrestartuj zasilanie. Po starcie urządzenie wystawia AP na 192.168.4.1. [#20905518]

What is the BOOT pin on LN882H, and why does GPIOA9 have to stay low during the whole flashing process?

BOOT na LN882H to pin wejścia do bootloadera, a w praktyce jest nim GPIOA9. Musi pozostać niski przez cały proces, bo tylko wtedy układ pozostaje w trybie programowania; autor porównał go wprost: „BOOT is like IO0.” Odłączenie BOOT w trakcie potrafi przerwać procedurę lub zablokować kolejną próbę do czasu pełnego odcięcia zasilania. Dlatego BOOT zwiera się do GND przed podaniem zasilania i trzyma nisko do końca flashowania. [#20923772]

Why does LN882H_CMD_Tool show "Fail. Error downloading file." and what fixes actually worked, like using 115200 baud, shorter wires, or a different USB-to-TTL adapter?

Najczęściej ten błąd znikał po zmianie parametrów transmisji i procedury zasilania. Skuteczne poprawki to: użycie 115200 zamiast 2000000, skrócenie przewodów, pełne odłączenie zasilania i USB-TTL po każdej nieudanej próbie oraz podmiana adaptera USB-UART. Pomagało też upewnienie się, że wgrywany jest zwykły plik binarny, a nie plik OTA. Kilku użytkowników potwierdziło, że samo ustawienie 115200 natychmiast rozwiązało Fail. Error downloading file. [#20996463]

Which USB-to-UART adapters work best for LN882H flashing, and how do CH340, CP2101, FT232RL, PL2303, and NodeMCU compare in practice?

Najlepiej wypadały adaptery CH340 i CP2101, ale LN882H bywa wybredny. W wątku potwierdzono sukces na CH340, CP2101, adapterach FTDI w części konfiguracji oraz nawet na NodeMCU ESP8266 z CH340. FT232RL działał u jednych, a u innych nie; PL2303 też działał, ale częściej zgłaszano z nim problemy. Jeden użytkownik potwierdził, że LN882H można było flashować przez NodeMCU z CH340, a inny odzyskał stabilność dopiero po przejściu z FTDI na CH430/CH340. [#20958756]

What is LittleFS in OpenBeken/OpenLN882H, and what features depend on it on the LN882H platform?

LittleFS to system plików w pamięci flash, potrzebny do plików takich jak autoexec.bat, skryptów i funkcji opartych o lokalny storage. Na początku LN882H go nie miał, więc przycisk „List Filesystem” nic nie pokazywał, a tworzenie plików nie działało realnie. Po późniejszym wdrożeniu potwierdzono, że pliki przetrwały kilka aktualizacji OTA. Dodanie LittleFS zwiększało rozmiar binarki LN882H o około 42 KB, ale odblokowywało skrypty i trwałe pliki konfiguracyjne. [#21069454]

How can I flash an LN882H module without desoldering it from the PCB, and what board connections can interfere with RX, TX, or BOOT access?

Da się flashować bez wylutowania, jeśli masz fizyczny dostęp do BOOT i nic nie obciąża linii RX/TX. Problemem bywają przyciski, kondensatory debounce, ścieżki do innych układów lub trudny dostęp do samego BOOT. W takich przypadkach trzeba czasem przeciąć ścieżkę, usunąć kondensator albo bardzo precyzyjnie dolutować cienki przewód tylko na czas programowania. W wątku potwierdzono też przypadek, gdzie moduł LN-02 udało się zaprogramować in-circuit bez wylutowania i bez cięcia RX/TX. [#20924089]

What’s the difference between the regular LN882H firmware binary and the OTA file, and which one should be used for UART flashing versus Web App updates?

Do UART używa się zwykłego pliku binarnego, a do aktualizacji przez Web App używa się pliku OTA. Pomylenie ich jest częstą przyczyną błędów flashowania. Wprost zalecono: wybierz poprawny plik binarny do flashowania, nie plik OTA. Ta różnica wracała też przy Web App, gdzie użytkownicy trafiali na nie-OTA pliki i update nie przechodził. Reguła jest prosta: UART = pełny bin, Web App = OTA.bin. [#20955856]

How do I recover an LN882H device when I can no longer access the web UI, including safe mode, erase commands, and reflashing original firmware?

Najpierw spróbuj safe mode przez 5 szybkich cykli zasilania. 1. Wyłącz i włącz urządzenie 5 razy z krótką przerwą. 2. Po wejściu w safe mode połącz się z AP i popraw konfigurację. 3. Jeśli to nie pomoże, użyj LN882H_CMD_Tool.exe COM# flash erase_all albo wgraj z powrotem oryginalny firmware z backupu. W jednym przypadku dopiero reflashing oryginalnego firmware przywrócił dostęp do sieci domowej, gdy urządzenie po zmianach nie wracało do UI. [#21021640]

Why does changing the MAC address on some LN882H devices make them disappear from the network, and how can I verify the new IP afterward?

Po zmianie MAC urządzenie zwykle dostaje nowy lease DHCP, więc znika spod starego adresu IP. Samo ustawienie MAC może działać poprawnie, ale po zapisie trzeba szukać nowego IP w routerze albo skanerze sieci. Jeden użytkownik potwierdził zmianę MAC bez problemu i dodał, że trzeba upewnić się, że adres MAC jest prawidłowy, a następnie sprawdzić nowy adres w routerze. Jeśli urządzenie nadal znika, warto wrócić do dumpu i powtórzyć konfigurację od zera. [#20996463]

What is PowerSave on LN882H in OpenBeken, and how do PowerSave 0, 1, and 2 affect temperature, current draw, Wi-Fi stability, and BL0937 energy metering?

PowerSave zmniejsza pobór prądu i temperaturę LN882H, ale wpływa na sieć i pomiar energii. PowerSave 0 to tryb bez oszczędzania. PowerSave 1 obniżał temperaturę i prąd umiarkowanie. PowerSave 2 dawał największy efekt, np. spadek z 64.0°C do 36.0°C, ale podnosił ping do 56–73 ms i mógł psuć pomiary BL0937 oraz powodować reconnecty Wi‑Fi. Dla pojedynczego modułu raportowano też spadek poboru z około 90 mA do 50 mA przy trybie 1 i 35 mA przy trybie 2. [#21064064]

Why doesn’t static IP work on LN882H builds, and what is currently unimplemented in the wifi_init_sta code path?

Static IP nie działał, bo ścieżka LN882H była wtedy po prostu niezaimplementowana. Wprost wskazano funkcję wifi_init_sta(const char* oob_ssid, const char* connect_key, obkStaticIP_t *ip) jako miejsce wymagające aktualizacji w pliku hal_wifi_ln882h.c. Dlatego wpisy statycznego IP były ignorowane, a urządzenie wracało do DHCP. Dopóki ten fragment nie został uzupełniony, jedynym praktycznym obejściem było przypisanie stałego adresu po stronie routera. [#20997185]

How do I start and configure extra drivers like NTP, DHT, SSDP, or Wemo on LN882H, including backlog commands and startup command syntax?

Sterowniki uruchamiasz komendami, a kilka poleceń łączysz przez backlog. Przykład: backlog startDriver ntp; ntp_timeZoneOfs +2 albo backlog startDriver SSDP; startDriver Wemo. NTP wymaga ręcznego startu, a serwer ustawia się komendą ntp_setServer <IP>. DHT był obsługiwany per-pin, ale w części buildów LN882H nie był jeszcze aktywny. Wemo wymagał startu sterownika i sprawdzenia, czy działa endpoint /setup.xml, bo sam komunikat „OK” nie gwarantował wykrycia przez Alexę. [#21028427]

Why does OTA updating LN882H often fail in Firefox but work in Chrome or Chromium, and what was the root cause of the HTTP/OTA crash?

Problem nie leżał w samym pliku OTA, tylko w błędzie obsługi bufora HTTP/OTA po stronie LN882H. Firefox częściej wysyłał nagłówki i payload w układzie, który ujawniał błąd: kod OTA zbierał dane do bufora 4 KB, ale nie sprawdzał poprawnie sytuacji, gdy pojedynczy fragment mógł zapełnić bufor więcej niż raz. To kończyło się zapisem poza pamięcią i crashem wątku HTTP Clie. Po poprawce autorzy potwierdzili udane OTA w Firefox 132.0.2. [#21332121]

What’s the best way to remove or recover a forgotten OpenBeken web password on an LN882H device without losing control of it permanently?

Najpewniejsza metoda to wgranie przez UART builda bez wymuszania hasła albo builda recovery. Wskazano plik http_basic_auth.c i opcję kompilacji bez ALLOW_WEB_PASSWORD, co powoduje akceptację każdego połączenia. Później pojawiła się też wersja recovery: po restarcie i ponad 5 błędnych próbach logowania urządzenie mogło zaproponować pełny reset konfiguracji. To rozwiązanie było traktowane ostrożnie ze względów bezpieczeństwa, więc najbezpieczniejszy pozostaje własny build ratunkowy flashowany przez UART. [#21084206]

How can I flash LN882H from Linux or macOS instead of Windows, and which tools from the thread support that workflow?

Na Linuxie pojawiło się natywne narzędzie LN882Loader, opublikowane jako projekt do flashowania LN882H bez Windows. Wcześniej użytkownicy próbowali Wine, QEMU i VirtualBox z mieszanymi wynikami; GUI pod Windows działało w VM, ale bywało zawodne. Dla Windows później polecano też GUI flash tool, natomiast w samym wątku jedynym jasno wskazanym rozwiązaniem linuksowym był właśnie LN882Loader. Dla macOS nie podano gotowego natywnego narzędzia, więc praktyczna ścieżka z wątku to Linux tool albo Windows VM. [#21376296]
Generated by the language model.
%}