FAQ
TL;DR: Flash WB3S (BK7231T) with hid_download_py, avoid -u/-s 0x0, and remember the 0x1000 sector detail; “It’s for BK7231N, not BK7231T.” [Elektroda, p.kaczmarek2, post #20543743]
Why it matters: For DIYers flashing Tuya WB3S window controllers, this fixes failed writes, UART interference, and safe recovery to OpenBeken.
Quick-Facts
- WB3S UART1 (RXD1/TXD1) can be tied to buttons/LEDs; isolate those lines before UART flashing. [Elektroda, p.kaczmarek2, post #20542632]
- Use a clean 3.3 V LDO; many USB‑UART 3.3 V rails can’t power the target reliably. [Elektroda, p.kaczmarek2, post #20542450]
- In this case, BekenWriterV1.60 failed; hid_download_py at 115200 bps completed with “Write Successful.” [Elektroda, richardsg307, post #20543594]
- Erasing early flash blocks bricks Tuya firmware, but you can still flash OpenBeken. [Elektroda, p.kaczmarek2, post #20543122]
- Short RX/TX wiring to reduce interference during erase/write. [Elektroda, p.kaczmarek2, post #20543122]
Quick Facts
- WB3S UART1 (RXD1/TXD1) can be tied to buttons/LEDs; isolate those lines before UART flashing. [Elektroda, p.kaczmarek2, post #20542632]
- Use a clean 3.3 V LDO; many USB‑UART 3.3 V rails can’t power the target reliably. [Elektroda, p.kaczmarek2, post #20542450]
- In this case, BekenWriterV1.60 failed; hid_download_py at 115200 bps completed with “Write Successful.” [Elektroda, richardsg307, post #20543594]
- Erasing early flash blocks bricks Tuya firmware, but you can still flash OpenBeken. [Elektroda, p.kaczmarek2, post #20543122]
- Short RX/TX wiring to reduce interference during erase/write. [Elektroda, p.kaczmarek2, post #20543122]
Why does BekenWriterV1.60 fail to flash my Tuya WB3S?
On this BK7231T board, BekenWriterV1.60 stalled during erase (about two blocks) and never completed. Switching to hid_download_py with the right options fixed the issue. When BekinWriterV1.60 hangs early, move to the Python loader for reliability. [Elektroda, richardsg307, post #20543647]
Do I have to isolate RXD1/TXD1 from the board’s buttons/LEDs?
Yes. On this device, UART1 lines were tied into a button and an LED, blocking the bootloader. “You must disconnect those devices from UART lines somehow.” Cut and later repair traces, or temporarily remove the interfering chip. [Elektroda, p.kaczmarek2, post #20542632]
What power source should I use for WB3S flashing?
Use a stable external 3.3 V LDO regulator with enough current. Avoid powering the target from a USB‑UART adapter’s 3.3 V pin. That rail is often weak and causes unreliable flashing sessions. [Elektroda, p.kaczmarek2, post #20542450]
What exact hid_download_py command worked for BK7231T?
Example that succeeded: python uartprogram -d COM3 -w -b 115200. It performed a quick erase and then wrote the image, ending with “Write Successful.” This resolved the earlier BekenWriterV1.60 failures. [Elektroda, richardsg307, post #20543594]
I get “Unprotect failed” — what am I doing wrong on BK7231T?
You likely used -u and -s 0x0, which target BK7231N, not BK7231T. Remove those flags and rely on the tool’s defaults. As the maintainer put it: “It’s for BK7231N, not BK7231T.” Consider BK7231GUIFlashTool for automation. [Elektroda, p.kaczmarek2, post #20543743]
The erase stops at 2 blocks — is my device bricked?
If the first blocks were erased, the Tuya firmware is bricked, but the device is still recoverable. You can flash OpenBeken via UART afterward. Shorten RX/TX wires to reduce interference before retrying. [Elektroda, p.kaczmarek2, post #20543122]
Why does RXD1 sit around 2.8 V during the 15‑s window?
RXD1 was used as a button input on this board and never reached ground. The attached circuitry held the line high around 2.8 V, blocking UART input. TXD1 also drove a blue LED, adding load. [Elektroda, richardsg307, post #20542539]
How should I connect UART and power‑cycle during flashing?
Cross UART: adapter TX to WB3S RX, and adapter RX to WB3S TX. Power cycle by disconnecting and reconnecting 3.3 V when prompted. This sequence is required for the bootloader to start. [Elektroda, p.kaczmarek2, post #20543044]
How do I flash WB3S with hid_download_py (3 steps)?
- Run: python uartprogram -d COM3 -w -b 115200.
- Wait for the quick erase, then the write; confirm “Write Successful.”
- Join the OpenBeken AP and use Configure WiFi to finish setup. [Elektroda, richardsg307, post #20543594]
BekenWriterV1.60 still fails — what else can I try?
Swap the USB‑to‑UART adapter. Users reported stubborn failures resolved by using a different converter. Hardware differences can affect signal integrity and stability. [Elektroda, p.kaczmarek2, post #20543444]
Do I need to remove the 16‑pin chip, or can I cut and rejoin tracks?
You can cut the two traces from RXD1/TXD1 to isolate them, then restore afterward. One repair used a solder blob; another needed a fine wire. It is fiddly but works and avoids removing the 16‑pin IC. [Elektroda, richardsg307, post #20543884]
What GPIO mapping worked for this specific window controller?
Reported mapping: Relays on PWM3 and PWM0; Buttons on PWM2, PWM4, and RXD1; LEDs on TXD1, PWM5, and PI4. That enabled three buttons, three LEDs, and two relays in OpenBeken. [Elektroda, richardsg307, post #20542782]
Is there a GUI flasher that automates settings?
Yes. Try BK7231GUIFlashTool from the project maintainers. It automates most detection and parameter choices for BK7231 devices and simplifies flashing. [Elektroda, p.kaczmarek2, post #20543743]