FAQ
TL;DR: For modders of the P06 XR3 PIR sensor, OTA is not ready yet: only 3 XR3 devices had been seen, and the maintainer said, "you will need to do some soldering." Use UART flashing, not OTA, if you want a reliable first flash on this rare XR809-based board. [#21088959]
Why it matters: This thread separates the rare XR3/XR809 P06 variant from the more common CBU+TuyaMCU version, so you can choose the right OpenBeken workflow before opening the case.
| Variant |
OTA status |
Flashing method |
Practical modding note |
| XR3 / XR809 P06 |
Not working yet |
Manual flashing by soldering |
Rare board; forum guide exists |
| CBU + TuyaMCU P06 |
Different path |
TuyaMCU-aware conversion |
May be easier to repurpose if USB-powered |
Key insight: The P06 with XR3/XR809 is flashable, but not over OTA yet. Treat it as a UART-first device until XR809 HTTP OTA is debugged end to end.
Quick Facts
- The XR809 boot log shows a 48,000,000 Hz flash clock, 832 KB flash max size, and an image area of 800 KB without bootloader. [#21587457]
- The same log reserves 32 KB for OTA config at address 0x121000, with image slots at 0x00008000 and 0x00129000. [#21587457]
- A USB-powered P06 variant uses 5 V USB input, which removes the need for deep sleep in a proof-of-concept conversion. [#21121480]
- On first boot after erasing and flashing, the XR809 device reaches “boot complete” at 5 seconds and starts an AP at 192.168.4.1. [#21587457]
- MQTT instability appears as
ERR_MEM, while free heap in the same session is reported around 65,480–68,136 bytes. [#21587457]
How can I flash an XR3/XR809-based P06 PIR sensor if OTA is not available yet?
You should flash it manually over wired programming, not OTA. The maintainer stated that XR3 OTA was unavailable on May 20, 2024, and advised soldering instead. If you have a soldering iron, use the forum’s XR3/XR809 flashing guide and treat the first flash as a hardware job. This is the reliable path because XR809 OTA still failed later in the discussion.
[#21088959]
What soldering tools and connections do I need to manually flash an XR3 PIR sensor module?
You only need basic soldering tools to start. The thread explicitly says a basic soldering iron, normal solder, and solder paste are enough. Use those tools to attach temporary wires to the XR3/XR809 programming points shown in the forum guide. Keep the wiring short and stable, because this board is rare and you want one clean flash attempt.
[#21088959]
Why does OTA flashing fail on XR809 in OpenBK7231T_App even though there is an HTTP OTA sample in the XR809 SDK?
OTA fails because the XR809 path exists in code, but the maintainer did not isolate the failing stage. He wired
XR809_RequestOTAHTTP() to call
cmd_ota_http_exec(), added debug prints, and still could not determine what breaks. The failure can happen during image download, verify-data retrieval, image verification, or the reboot handoff. That means the feature is partially implemented, not production-ready.
[#21131447]
What is the XR3 platform, and how is it related to XR809 modules in Tuya-style devices?
"XR3" is a Wi‑Fi module platform that uses XRadio hardware, likely the XR809 family, inside small IoT devices; its key trait in this thread is rarity and incomplete OpenBeken OTA support. In practice, the thread uses “XR3” and “XR809” together when discussing the same P06 PIR sensor variant. That makes XR3 the board/module label modders see, while XR809 is the software platform they flash and debug.
[#21131093]
What is TuyaMCU, and how does it change the way a P06 PIR sensor can be converted or flashed?
"TuyaMCU" is a companion microcontroller architecture that handles device logic over a serial link; its key characteristic is that the Wi‑Fi module no longer owns every sensor function directly. In the P06 thread, that changes conversion strategy because a CBU+TuyaMCU unit is not the same target as an XR3/XR809 board. You may need a TuyaMCU-aware conversion instead of a straight XR809 flash workflow.
[#21121383]
CBU plus TuyaMCU vs XR3/XR809 in the P06 PIR sensor — what are the practical differences for OpenBeken modding?
The practical difference is workflow. An XR3/XR809 P06 needs manual flashing because OTA is not working, while a CBU+TuyaMCU P06 is a different internal design and may suit a conversion project instead. The maintainer even suggested converting the USB-powered CBU+TuyaMCU version to a deepsleep-free Beken setup. So the shell may look similar, but the mod path is not interchangeable.
[#21121472]
How do I use the XR809 flashing guide from the forum to program a rare XR3-based device?
Use the guide as a simple three-step hardware flash process. 1. Open the P06 and identify that it is the XR3/XR809 version. 2. Solder temporary programming leads with a basic iron, solder, and solder paste. 3. Follow the XR3/XR809 forum flashing guide to program the module before any OTA testing. This flow matters because the maintainer called XR3 devices very rare and recommended the guide directly.
[#21089108]
What kind of signal does a PIR sensor output, and when do I need a custom driver instead of a simple digital input in OBK?
A PIR sensor here is treated as a simple digital signal, usually 1 or 0. The maintainer said he had tested PIR before and it worked well with a digital input. You only need a custom driver if this specific board adds extra logic beyond a plain boolean motion line. In the thread, no such extra requirement was confirmed for the USB-powered conversion idea.
[#21121526]
How would you convert a USB-powered P06 motion sensor from TuyaMCU to a deepsleep-free Beken or OpenBeken setup?
You would convert it as a mains-like always-powered sensor, not as a battery deep-sleep design. One poster noted the board has 5 V USB power, and the maintainer replied that this makes conversion easier because deep sleep is unnecessary. If the PIR output is still a simple 1/0 line, OBK can read it as a digital input and keep the device awake continuously.
[#21121526]
Where can I find the exact XR3-based P06 PIR sensor variant sold by FDsmart or AliExpress, and how can I tell it apart from the CBU version?
The thread identifies the exact seller as FDsmart on AliExpress and links a listing posted on June 24, 2024. To tell it apart, compare the internal board photos: the XR3/XR809 version matches the original post, while the other P06 shared earlier used CBU+TuyaMCU internals. The maintainer first thought it was new, then corrected himself and confirmed it was the same XR3 piece.
[#21130994]
What is LFS in OpenBeken logs, and why does an XR809 build show errors like 'lfs is absent' and fail to load autoexec.bat?
"LFS" is LittleFS-style embedded storage that keeps small files such as startup scripts; its key characteristic is that OpenBeken expects it for files like autoexec.bat. On the XR809 log, the device reports
lfs is absent, then
failed to get file autoexec.bat. That means the flashed build booted, but its local file storage was missing or uninitialized, so script-based startup actions could not run.
[#21587457]
Why does an erased XR3/XR809 device boot with sector format warnings, AP mode messages, and MQTT ERR_MEM errors after flashing?
That happens because the device was flashed onto erased storage and then had to rebuild its local state. The boot log shows repeated sector-header failures around
0x001e0000–0x001ef000, followed by formatting, AP startup, and later MQTT
ERR_MEM publish failures. In the same session, free heap moved around
65,480–68,136 bytes, so the system was alive but not yet cleanly configured. These are bring-up symptoms, not proof of a bad flash.
[#21587457]
How do HTTP OTA updates work on XR809 when the device acts as an HTTP client downloading the firmware image from another server?
XR809 OTA works as a client-pull update, not as a pushed upload. The maintainer explained that XR809 expects the OTA file on another HTTP server, then
XR809_RequestOTAHTTP() triggers
cmd_ota_http_exec() in the main loop. From there, the SDK tries to fetch the image, read verification data, verify the image, and reboot. If any stage fails, OTA stops before activation.
[#21131447]
Which firmware file format should be used for XR809 OTA and UART flashing, and is the same .img file used for both?
The thread points to the same
.img file for both UART and OTA on XR809-family devices. In June 2025, one poster suggested that the XR872 example implied a shared image, and another replied that the SDK code appeared to use the same binary for UART and OTA. That makes
.img the working assumption for XR809 too, although OTA itself was still not functioning.
[#21586375]
What steps should I follow to debug XR809 OTA support in OpenBK7231T_App, including cmd_ota_http_exec, image verification, and reboot flow?
Debug it in the exact execution order. 1. Confirm
XR809_RequestOTAHTTP() sets the request string and flag. 2. Trace
cmd_ota_http_exec() through
ota_get_image(),
ota_get_verify_data(), and
ota_verify_image(). 3. Check whether
ota_reboot() is ever reached after a successful verify. The maintainer already added
printf() tracing and commented out lines, so the next useful work is narrowing the first failing function, not rewriting the whole flow.
[#21131447]
Generated by the language model.