FAQ
TL;DR: XR806/XR872 dev-boards now boot and support HTTP/REST OTA, static IP and UART console after OpenBeken xradios builds (SDK v1.2.2) [Elektroda, insmod, post #21592051] First-time flash by UART takes ā45 s for 1 MB image [Elektroda, p.kaczmarek2, post #21592109]
Quick Facts
⢠MCU family: Allwinner/XRadio XR806 & XR872 (Cortex-M33 @160ā240 MHz) [Datasheet]
⢠SDK version used: v1.2.2 (Jun 2025) with XIP, INT LF OSC enabled [Elektroda, insmod, post #21588899]
⢠Flash size on dev-board: 16 Mbit (W25Q16JV, 4 kB sectors) [Elektroda, divadiow, post #21466260]
⢠Tested OTA payload: 0.75 MB max; HTTP OTA passes, REST OTA fixed in build 44cc3f6 [Elektroda, divadiow, post #21590200]
⢠Safe-boot: pull PB03 low at reset to enter UART bootloader [Elektroda, divadiow, post #21592365]
How do I enter the UART bootloader on XR806/XR872 boards?
Hold PB03 low during reset. The ROM falls back to the serial downloader, allowing full-chip erase and image upload via XR/Tool or ObkFlash [Elektroda, divadiow, post #21592365]
Which OpenBeken image adds OTA and static-IP support?
Build tag _xradios_44cc3f6b4d65 (28 Jun 2025) enables HTTP & REST OTA, static IP fields and MAC pulled from efuse [Elektroda, insmod, post #21592051]
What is the maximum OTA image size for the 2 MB flash layout?
With 2 MB flash and 0x100000 OTA partition, images up to ~748 kB pass MD5 and write correctly; larger payloads trigger āWritelen < 0ā errors [Elektroda, divadiow, post #21589666]
Why did earlier XR806 builds show ābin too big, 0x201000 + 0x32c00 > 230000ā?
CONFIG_MALLOC_MODE was set to 1; XR806 needs mode 0 or the bootloader rejects images larger than 0x230000 bytes [Elektroda, insmod, post #21588905]
Does the console still work when PRJCONF_CONSOLE_EN is on?
Yes, but serial_stop() and serial_deinit() must be replaced with console_stop() inside HAL to avoid UART0 hang on XR806 [Elektroda, insmod, post #21592379]
How accurate is HAL_Delay_us for 1-wire sensors?
HAL_SysTimer_DelayUs on XR SoCs uses the 40 MHz HF clock and produces ~±2 µs jitterāsufficient for DHT22/DS18B20 timings (spec requires ±10 µs) [XR806 SDK RM, 2023].
Can I flash from Linux without the GUI tool?
Yes. Use xfel to load xr_uart_bootloader.bin
, then xrflash -d /dev/ttyUSB0 write 0 OpenXR806_xxx.img
. Total time ā45 s for 1 MB [Elektroda, p.kaczmarek2, post #21592109]
Why store LN882H Wi-Fi config in raw flash instead of EasyFlash KV?
Raw offset allows legacy tools to read/write one block. Migrating to KV would break downgrades that expect the monolithic structure [Elektroda, p.kaczmarek2, post #21595065]
How to recover if OTA fails with āimage erase err ⦠not 4K alignmentā?
The bootloader wrote an unaligned size. Do a full 0x200000-byte erase via UART and re-flash a clean image; then OTA succeeds [Elektroda, divadiow, post #21589126]
What GPIO controls the on-board blue LED?
PA21 drives the indicator LED; after boot OpenBeken maps it as LED1
[Elektroda, divadiow, post #21558377]
Is BL0937 energy-metering supported on XRadio?
Interrupt-driven BL0937 driver was merged in the same pull request; no XR872 hardware has been tested yet [Elektroda, insmod, post #21592379]
Typical power draw of the XR872 camera board?
Measurements show ~110 mA at 3.3 V in AP-mode with LED off (source: XR872 EVK manual, 2024).