logo elektroda
logo elektroda
X
logo elektroda

Tuya WXU XR806 from TRV Heater Device flashing, SDK, firmware change research

MrGenius 6279 124
Best answers

How can I make a Tuya WXU/TRV device work with XR806 firmware?

OpenBeken/OpenXR806 does boot on XR806, and by April the thread confirms a custom HTTP page was running on the WXU/XR806 for the first time; the main remaining problems were Wi‑Fi stability and getting settings to persist [#21524637] [#21524126] The first bootable path came from building against the XR806 SDK (the shared repo was published at `github.com/divadiow/xr806_sdk`), using the SDK’s `make menuconfig`/build flow and enabling the right Wi‑Fi options; once built, the firmware printed normal XR806 boot logs and the device could be flashed successfully [#21429402] [#21430649] [#21430654] [#21430812] Flash/download mode on this board appears to need only `PB02` pulled low, not the XR809-style `PB02+PB03` combination [#21530921] Config storage was later fixed by moving `sysinfo` to `0x1FC000`, which let OBK save its config; that still left about 12 KB free at the end of the 2 MB flash [#21525228] [#21533999] Even after that, the thread still reported unstable Wi‑Fi/HTTP behavior and no fully finished TRV port yet [#21524434] [#21524467] [#21524739]
Generated by the language model.
ADVERTISEMENT
Treść została przetłumaczona polish » english Zobacz oryginalną wersję tematu
  • #61 21432560
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14389
    Help: 650
    Rate: 12308
    It seems to be in:
    xr806_sdk\include\kernel\FreeRTOS\FreeRTOSv10.2.1\semphr.h
    So it's not enabled?

    Added after 33 [seconds]:

    Any ideas how to enable FreeRTOS for this project in XR806 SDK?

    Added after 6 [minutes]:

    Update:
    Maybe it's just that include was missing in new_common.h ... but this brings question how did it even work on XR809 in the first place.
    Code: C / C++
    Log in, to see the code
    Helpful post? Buy me a coffee.
  • ADVERTISEMENT
  • #62 21432566
    divadiow
    Level 38  
    Posts: 4833
    Help: 420
    Rate: 851
    anything to do with this in menuconfig?


    Tuya WXU XR806 from TRV Heater Device flashing, SDK, firmware change research

    Added after 5 [minutes]:

    toggling freertos used off/on changes this file xr806_sdk\xr806_sdk\.config


    Tuya WXU XR806 from TRV Heater Device flashing, SDK, firmware change research
  • #63 21432580
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14389
    Help: 650
    Rate: 12308
    How do you enter menuconfig for a given project?
    Helpful post? Buy me a coffee.
  • ADVERTISEMENT
  • #64 21432585
    divadiow
    Level 38  
    Posts: 4833
    Help: 420
    Rate: 851
    hmm. dunno. that change doesn't seem to reference anything in the project:


    Tuya WXU XR806 from TRV Heater Device flashing, SDK, firmware change research
  • ADVERTISEMENT
  • #65 21432592
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14389
    Help: 650
    Rate: 12308
    It looks like it has FreeRTOS, but configENABLE_BACKWARD_COMPATIBILITY is 0

    Added after 15 [minutes]:

    SemaphoreHandle_t is not recognized still.
    semphr.h is not included?

    Or maybe I just need to add following to new_common.h:
    Code: C / C++
    Log in, to see the code


    Added after 6 [minutes]:

    First HAL issue?
    
    ../shared/src/hal/xr809/hal_flashConfig_xr809.c: In function 'HAL_Configuration_GenerateMACForThisModule':
    ../shared/src/hal/xr809/hal_flashConfig_xr809.c:78:16: error: 'EFPG_FIELD_MAC' undeclared (first use in this function); did you mean 'EFPG_FIELD_UA'?
      if (efpg_read(EFPG_FIELD_MAC, out) == 0) {
                    ^~~~~~~~~~~~~~
                    EFPG_FIELD_UA
    ../shared/src/hal/xr809/hal_flashConfig_xr809.c:78:16: note: each undeclared identifier is reported only once for each function it appears in
    


    Added after 2 [minutes]:

    I reached the linker error stage, it does not look like too bad:
    
    /mnt/w/GIT/xr806_sdk/tools/gcc-arm-none-eabi-8-2019-q3-update/bin/../lib/gcc/arm-none-eabi/8.3.1/../../../../arm-none-eabi/bin/ld: ../../../../project/common/startup/gcc/retarget.o: in function `hardware_init_hook':
    /mnt/w/git/xr806_sdk/project/demo/wlan_demo/gcc/../../../../project/common/startup/gcc/retarget.c:53: undefined reference to `board_ioctl'
    /mnt/w/GIT/xr806_sdk/tools/gcc-arm-none-eabi-8-2019-q3-update/bin/../lib/gcc/arm-none-eabi/8.3.1/../../../../arm-none-eabi/bin/ld: ../shared/src/new_pins.o: in function `Button_OnInitialPressDown':
    /mnt/w/git/xr806_sdk/project/demo/sharedApp/gcc/../shared/src/new_pins.c:423: undefined reference to `LED_NextColor'
    /mnt/w/GIT/xr806_sdk/tools/gcc-arm-none-eabi-8-2019-q3-update/bin/../lib/gcc/arm-none-eabi/8.3.1/../../../../arm-none-eabi/bin/ld: ../shared/src/new_pins.o: in function `Button_OnDoubleClick':
    /mnt/w/git/xr806_sdk/project/demo/sharedApp/gcc/../shared/src/new_pins.c:526: undefined reference to `LED_NextColor'
    /mnt/w/GIT/xr806_sdk/tools/gcc-arm-none-eabi-8-2019-q3-update/bin/../lib/gcc/arm-none-eabi/8.3.1/../../../../arm-none-eabi/bin/ld: ../shared/src/httpserver/new_http.o: in function `HTTP_ProcessPacket':
    /mnt/w/git/xr806_sdk/project/demo/sharedApp/gcc/../shared/src/httpserver/new_http.c:801: undefined reference to `http_basic_auth_run'
    /mnt/w/GIT/xr806_sdk/tools/gcc-arm-none-eabi-8-2019-q3-update/bin/../lib/gcc/arm-none-eabi/8.3.1/../../../../arm-none-eabi/bin/ld: /mnt/w/git/xr806_sdk/project/demo/sharedApp/gcc/../shared/src/httpserver/new_http.c:809: undefined reference to `http_basic_auth_run'
    /mnt/w/GIT/xr806_sdk/tools/gcc-arm-none-eabi-8-2019-q3-update/bin/../lib/gcc/arm-none-eabi/8.3.1/../../../../arm-none-eabi/bin/ld: ../shared/src/mqtt/new_mqtt.o: in function `MQTT_DoItemPublish':
    /mnt/w/git/xr806_sdk/project/demo/sharedApp/gcc/../shared/src/mqtt/new_mqtt.c:1931: undefined reference to `LWIP_GetActiveSockets'
    /mnt/w/GIT/xr806_sdk/tools/gcc-arm-none-eabi-8-2019-q3-update/bin/../lib/gcc/arm-none-eabi/8.3.1/../../../../arm-none-eabi/bin/ld: ../shared/src/cmnds/cmd_main.o: in function `CMD_Init_Early':
    /mnt/w/git/xr806_sdk/project/demo/sharedApp/gcc/../shared/src/cmnds/cmd_main.c:928: undefined reference to `CMD_If'
    /mnt/w/GIT/xr806_sdk/tools/gcc-arm-none-eabi-8-2019-q3-update/bin/../lib/gcc/arm-none-eabi/8.3.1/../../../../arm-none-eabi/bin/ld: ../shared/src/cmnds/cmd_newLEDDriver.o: in function `nextColor':
    /mnt/w/git/xr806_sdk/project/demo/sharedApp/gcc/../shared/src/cmnds/cmd_newLEDDriver.c:1482: undefined reference to `LED_NextColor'
    /mnt/w/GIT/xr806_sdk/tools/gcc-arm-none-eabi-8-2019-q3-update/bin/../lib/gcc/arm-none-eabi/8.3.1/../../../../arm-none-eabi/bin/ld: ../shared/src/cmnds/cmd_newLEDDriver.o: in function `sendColorChange':
    /mnt/w/git/xr806_sdk/project/demo/sharedApp/gcc/../shared/src/cmnds/cmd_newLEDDriver.c:448: undefined reference to `MQTT_PublishMain_StringString_DeDuped'
    /mnt/w/GIT/xr806_sdk/tools/gcc-arm-none-eabi-8-2019-q3-update/bin/../lib/gcc/arm-none-eabi/8.3.1/../../../../arm-none-eabi/bin/ld: ../shared/src/cmnds/cmd_newLEDDriver.o: in function `LED_SendEnableAllState':
    /mnt/w/git/xr806_sdk/project/demo/sharedApp/gcc/../shared/src/cmnds/cmd_newLEDDriver.c:470: undefined reference to `MQTT_PublishMain_StringInt_DeDuped'
    /mnt/w/GIT/xr806_sdk/tools/gcc-arm-none-eabi-8-2019-q3-update/bin/../lib/gcc/arm-none-eabi/8.3.1/../../../../arm-none-eabi/bin/ld: ../shared/src/cmnds/cmd_newLEDDriver.o: in function `sendFinalColor':
    /mnt/w/git/xr806_sdk/project/demo/sharedApp/gcc/../shared/src/cmnds/cmd_newLEDDriver.c:496: undefined reference to `MQTT_PublishMain_StringString_DeDuped'
    /mnt/w/GIT/xr806_sdk/tools/gcc-arm-none-eabi-8-2019-q3-update/bin/../lib/gcc/arm-none-eabi/8.3.1/../../../../arm-none-eabi/bin/ld: ../shared/src/cmnds/cmd_newLEDDriver.o: in function `LED_SendDimmerChange':
    /mnt/w/git/xr806_sdk/project/demo/sharedApp/gcc/../shared/src/cmnds/cmd_newLEDDriver.c:503: undefined reference to `MQTT_PublishMain_StringInt_DeDuped'
    /mnt/w/GIT/xr806_sdk/tools/gcc-arm-none-eabi-8-2019-q3-update/bin/../lib/gcc/arm-none-eabi/8.3.1/../../../../arm-none-eabi/bin/ld: ../shared/src/cmnds/cmd_newLEDDriver.o: in function `sendTemperatureChange':
    /mnt/w/git/xr806_sdk/project/demo/sharedApp/gcc/../shared/src/cmnds/cmd_newLEDDriver.c:506: undefined reference to `MQTT_PublishMain_StringInt_DeDuped'
    /mnt/w/GIT/xr806_sdk/tools/gcc-arm-none-eabi-8-2019-q3-update/bin/../lib/gcc/arm-none-eabi/8.3.1/../../../../arm-none-eabi/bin/ld: ../shared/src/cmnds/cmd_newLEDDriver.o: in function `sendFullRGBCW_IfEnabled':
    /mnt/w/git/xr806_sdk/project/demo/sharedApp/gcc/../shared/src/cmnds/cmd_newLEDDriver.c:467: undefined reference to `MQTT_PublishMain_StringString_DeDuped'
    /mnt/w/GIT/xr806_sdk/tools/gcc-arm-none-eabi-8-2019-q3-update/bin/../lib/gcc/arm-none-eabi/8.3.1/../../../../arm-none-eabi/bin/ld: ../shared/src/cmnds/cmd_newLEDDriver.o: in function `NewLED_InitCommands':
    /mnt/w/git/xr806_sdk/project/demo/sharedApp/gcc/../shared/src/cmnds/cmd_newLEDDriver.c:1635: undefined reference to `commandSetPaletteColor'
    /mnt/w/GIT/xr806_sdk/tools/gcc-arm-none-eabi-8-2019-q3-update/bin/../lib/gcc/arm-none-eabi/8.3.1/../../../../arm-none-eabi/bin/ld: ../shared/src/cmnds/cmd_tokenizer.o: in function `Tokenizer_GetArg':
    /mnt/w/git/xr806_sdk/project/demo/sharedApp/gcc/../shared/src/cmnds/cmd_tokenizer.c:170: undefined reference to `CMD_ExpandConstantsWithinString'
    /mnt/w/GIT/xr806_sdk/tools/gcc-arm-none-eabi-8-2019-q3-update/bin/../lib/gcc/arm-none-eabi/8.3.1/../../../../arm-none-eabi/bin/ld: /mnt/w/git/xr806_sdk/project/demo/sharedApp/gcc/../shared/src/cmnds/cmd_tokenizer.c:187: undefined reference to `CMD_ExpandConstant'
    /mnt/w/GIT/xr806_sdk/tools/gcc-arm-none-eabi-8-2019-q3-update/bin/../lib/gcc/arm-none-eabi/8.3.1/../../../../arm-none-eabi/bin/ld: ../shared/src/cmnds/cmd_tokenizer.o: in function `Tokenizer_TokenizeString':
    /mnt/w/git/xr806_sdk/project/demo/sharedApp/gcc/../shared/src/cmnds/cmd_tokenizer.c:344: undefined reference to `CMD_ExpandConstantsWithinString'
    /mnt/w/GIT/xr806_sdk/tools/gcc-arm-none-eabi-8-2019-q3-update/bin/../lib/gcc/arm-none-eabi/8.3.1/../../../../arm-none-eabi/bin/ld: /mnt/w/git/xr806_sdk/project/demo/sharedApp/gcc/../shared/src/cmnds/cmd_tokenizer.c:355: undefined reference to `CMD_ExpandConstantsWithinString'
    /mnt/w/GIT/xr806_sdk/tools/gcc-arm-none-eabi-8-2019-q3-update/bin/../lib/gcc/arm-none-eabi/8.3.1/../../../../arm-none-eabi/bin/ld: ../shared/src/user_main.o: in function `Main_Init_AfterDelay_Unsafe':
    /mnt/w/git/xr806_sdk/project/demo/sharedApp/gcc/../shared/src/user_main.c:1129: undefined reference to `HAL_Configure_WDT'
    /mnt/w/GIT/xr806_sdk/tools/gcc-arm-none-eabi-8-2019-q3-update/bin/../lib/gcc/arm-none-eabi/8.3.1/../../../../arm-none-eabi/bin/ld: ../shared/src/user_main.o: in function `Main_OnEverySecond':
    /mnt/w/git/xr806_sdk/project/demo/sharedApp/gcc/../shared/src/user_main.c:625: undefined reference to `MQTT_Dedup_Tick'
    /mnt/w/GIT/xr806_sdk/tools/gcc-arm-none-eabi-8-2019-q3-update/bin/../lib/gcc/arm-none-eabi/8.3.1/../../../../arm-none-eabi/bin/ld: /mnt/w/git/xr806_sdk/project/demo/sharedApp/gcc/../shared/src/user_main.c:751: undefined reference to `LWIP_GetActiveSockets'
    /mnt/w/GIT/xr806_sdk/tools/gcc-arm-none-eabi-8-2019-q3-update/bin/../lib/gcc/arm-none-eabi/8.3.1/../../../../arm-none-eabi/bin/ld: /mnt/w/git/xr806_sdk/project/demo/sharedApp/gcc/../shared/src/user_main.c:751: undefined reference to `LWIP_GetMaxSockets'
    /mnt/w/GIT/xr806_sdk/tools/gcc-arm-none-eabi-8-2019-q3-update/bin/../lib/gcc/arm-none-eabi/8.3.1/../../../../arm-none-eabi/bin/ld: /mnt/w/git/xr806_sdk/project/demo/sharedApp/gcc/../shared/src/user_main.c:907: undefined reference to `HAL_Run_WDT'
    collect2: error: ld returned 1 exit status
    make[1]: *** [../../../../project/project.mk:441: sharedApp.elf] Error 1
    make[1]: Leaving directory '/mnt/w/git/xr806_sdk/project/demo/sharedApp/gcc'
    make: *** [../../../../project/project.mk:430: __all] Error 2


    Added after 1 [hours] 39 [minutes]:

    Finally!

    Tuya WXU XR806 from TRV Heater Device flashing, SDK, firmware change research

    Added after 17 [minutes]:

    Still a lot of missing:
    
    
    use default flash chip mJedec 0x0
    [FD I]: mode: 0x10, freq: 96000000Hz, drv: 0
    [FD I]: jedec: 0x0, suspend_support: 1
    mode select:e
    
    wlan information ===================================================
    firmware:
        version : R0-XR_C07.08.52.67_ULP_R_02.132 Jan 10 2023 19:14:11-Y02.132 
        buffer  : 8
    driver:
        version : XR_V02.06.10
    mac address:
        in use        : 1c:01:6f:c0:e0:79
        in use        : 1c:01:6f:c0:e0:7a
    ====================================================================
    
    wlan mode:a
    
    platform information ===============================================
    XR806 SDK v1.2.2  Feb  9 2025 23:14:19 63401410
    
    heap space [0x234ad0, 0x24bc00), size 94512
    
    cpu  clock 160000000 Hz
    HF   clock  40000000 Hz
    
    sdk option:
        XIP           : enable
        INT LF OSC    : enable
        INT LDO       : select
        INT LDO / EXT PWR: enable
        SIP flash     : enable
    
    mac address:
        efuse         : 80:74:84:69:04:75
        in use        : 1c:01:6f:c0:e0:79
    ====================================================================
    
    [HAL] uart 0 is inited
    PRJCONF_SYSINFO_ADDR 1044480
    
    SYSINFO_SSID_LEN_MAX 32
    
    Entering initLog()...
    
    [os E] OS_ThreadCreate():48, handle 0x252000
    create "log_serial" thread failed!
    
    Commands registered!
    
    initLog() done!
    
    Info:MAIN:Main_Init_Before_Delay
    Warn:CFG:CFG_InitAndLoad: Config crc or ident mismatch. Default config will be loaded.
    Info:CFG:CFG_SetDefaultLEDCorrectionTable: setting defaults
    Info:GEN:PIN_SetupPins pins have been set up.
    Info:MAIN:Main_Init_Before_Delay done
    
    Main_Init_Before_Delay done
    
    Info:MAIN:Main_Init_Delay
    
    Main_Init_Delay
    
    Info:MAIN:Main_Init_Delay done
    
    Main_Init_Delay done
    
    [os E] OS_ThreadCreate():48, handle 0x252000
    create "TCP_server" thread failed!
    
    Info:MAIN:Main_Init_After_Delay
    Info:MAIN:Using SSID []
    Info:MAIN:Using Pass []
    Info:MQTT:MQTT_RegisterCallback called for bT oxr00000000/ subT oxr00000000/+/set
    Info:MQTT:MQTT_RegisterCallback called for bT xr809s/ subT xr809s/+/set
    Info:MQTT:MQTT_RegisterCallback called for bT cmnd/oxr00000000/ subT cmnd/oxr00000000/+
    Info:MQTT:MQTT_RegisterCallback called for bT cmnd/xr809s/ subT cmnd/xr809s/+
    Info:MQTT:MQTT_RegisterCallback called for bT oxr00000000/ subT oxr00000000/+/get
    Error:CMD:cmd startScript NOT found (args autoexec.bat)
    Info:MAIN:Main_Init_After_Delay done
    Info:MAIN:Time 1, idle 0/s, free 0, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 0/0 
    Info:MAIN:Time 2, idle 0/s, free 0, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 0/0 
    Info:MAIN:Time 3, idle 0/s, free 0, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 0/0 
    Info:MAIN:Time 4, idle 0/s, free 0, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 0/0 
    Info:MAIN:Time 5, idle 0/s, free 0, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 0/0 
    en1: CTRL-EVENT-TERMINATING 
    WAR join_status:0
    interface name: en1
    Using interface en1 with hwaddr 1c:01:6f:c0:e0:79 and ssid "AP-XRADIO"
    en1: interface state UNINITIALIZED->ENABLED
    en1: AP-ENABLED 
    en1: AP-DISABLED 
    [net INF] msg <wlan connected>
    [net INF] netif is link up
    [net INF] bring up netif
    [net INF] netif (IPv4) is up
    [net INF] address: 192.168.51.1
    [net INF] gateway: 192.168.51.1
    [net INF] netmask: 255.255.255.0
    [net INF] msg <network up>
    vif0, AP/GO mode THROTTLE=38
    en1: interface state ENABLED->DISABLED
    [net INF] msg <wlan disconnected>
    [net INF] netif is link down
    Using interface en1 with hwaddr 1c:01:6f:c0:e0:79 and ssid "OpenXR809_00000000"
    en1: interface state DISABLED->ENABLED
    en1: AP-ENABLED 
    [net INF] msg <wlan connected>
    [net INF] netif is link up
    WAR [WM] Drop frame (0x0008).
    [net INF] netif is already up
    vif0, AP/GO mode THROTTLE=38
    Info:MAIN:Time 6, idle 0/s, free 0, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 0/0 
    Info:MAIN:Boot complete time reached (5 seconds)
    Info:MAIN:Time 7, idle 0/s, free 0, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 0/0 
    Info:MAIN:Time 8, idle 0/s, free 0, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 0/0 
    Info:MAIN:Time 9, idle 0/s, free 0, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 0/0 
    Info:MAIN:Time 10, idle 0/s, free 0, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 0/0 
    Info:MAIN:Time 11, idle 0/s, free 0, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 0/0 
    Info:MAIN:Time 12, idle 0/s, free 0, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 0/0 
    Info:MAIN:Time 13, idle 0/s, free 0, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 0/0 
    Info:MAIN:Time 14, idle 0/s, free 0, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 0/0 
    Info:MAIN:Time 15, idle 0/s, free 0, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 0/0 
    Info:MAIN:Time 16, idle 0/s, free 0, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 0/0 
    Info:MAIN:Time 17, idle 0/s, free 0, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 0/0 
    Info:MAIN:Time 18, idle 0/s, free 0, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 0/0 
    Info:MAIN:Time 19, idle 0/s, free 0, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 0/0 
    Info:MAIN:Time 20, idle 0/s, free 0, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 0/0 
    Info:MAIN:Time 21, idle 0/s, free 0, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 0/0 
    Info:MAIN:Time 22, idle 0/s, free 0, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 0/0 
    Info:MAIN:Time 23, idle 0/s, free 0, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 0/0 
    Info:MAIN:Time 24, idle 0/s, free 0, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 0/0 
    Info:MAIN:Time 25, idle 0/s, free 0, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 0/0 
    xr_newassoc(): link_id:0 mac:e4:b3:18:f6:91:cc
    en1: STA e4:b3:18:f6:91:cc IEEE 802.11: associated
    en1: AP-STA-CONNECTED e4:b3:18:f6:91:cc
    Info:MAIN:Time 26, idle 0/s, free 0, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 0/0 
    Info:MAIN:Time 27, idle 0/s, free 0, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 0/0 
    Info:MAIN:Time 28, idle 0/s, free 0, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 0/0 
    Info:MAIN:Time 29, idle 0/s, free 0, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 0/0 
    Info:MAIN:Time 30, idle 0/s, free 0, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 0/0 
    Info:MAIN:Time 31, idle 0/s, free 0, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 0/0 
    Info:MAIN:Time 32, idle 0/s, free 0, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 0/0 
    Info:MAIN:Time 33, idle 0/s, free 0, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 0/0 
    Info:MAIN:Time 34, idle 0/s, free 0, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 0/0 
    Info:MAIN:Time 35, idle 0/s, free 0, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 0/0 
    Info:MAIN:Time 36, idle 0/s, free 0, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 0/0 
    Info:MAIN:Time 37, idle 0/s, free 0, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 0/0 
    Info:MAIN:Time 38, idle 0/s, free 0, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 0/0 
    Info:MAIN:Time 39, idle 0/s, free 0, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 0/0 
    Info:MAIN:Time 40, idle 0/s, free 0, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 0/0 
    Info:MAIN:Time 41, idle 0/s, free 0, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 0/0 
    Info:MAIN:Time 42, idle 0/s, free 0, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 0/0 
    Info:MAIN:Time 43, idle 0/s, free 0, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 0/0 
    
    


    Added after 13 [minutes]:

    Current wraper backup attached. Use it like shown:
    Tuya WXU XR806 from TRV Heater Device flashing, SDK, firmware change research
    Attachments:
    • sharedApp20250209.zip (10.5 MB) You must be logged in to download this attachment.
    Helpful post? Buy me a coffee.
  • #66 21432834
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14389
    Help: 650
    Rate: 12308
    For now, there is still a WiFi connection problem:
    
     
    socks 0/0 
                                                                        
    Info:MAIN:Time 179, idle 0/s, free 0, MQTT 0(0), bWifi 0, secondsWithNoPing -1, 
    socks 0/0 
                                                                        
    Info:MAIN:Time 180, idle 0/s, free 0, MQTT 0(0), bWifi 0, secondsWithNoPing -1, 
    socks 0/0 
                                                                        
    xr_newassoc(): link_id:0 mac:e4:b3:18:f6:91:cc
                                     
    en1: STA e4:b3:18:f6:91:cc IEEE 802.11: associated
                                 
    en1: AP-STA-CONNECTED e4:b3:18:f6:91:cc
                                            
    Info:MAIN:Time 181, idle 0/s, free 0, MQTT 0(0), bWifi 0, secondsWithNoPing -1, 
    socks 0/0 
                                                                        
    Info:MAIN:Time 182, idle 0/s, free 0, MQTT 0(0), bWifi 0, secondsWithNoPing -1, 
    socks 0/0 
                                                                        
    Info:MAIN:Time 183, idle 0/s, free 0, MQTT 0(0), bWifi 0, secondsWithNoPing -1, 
    socks 0/0 
                                                                        
    WAR drop=1135, fctl=0x00d0.
                                                        
    Info:MAIN:Time 184, idle 0/s, free 0, MQTT 0(0), bWifi 0, secondsWithNoPing -1, 
    socks 0/0 
                                                                        
    Info:MAIN:Time 185, idle 0/s, free 0, MQTT 0(0), bWifi 0, secondsWithNoPing -1, 
    socks 0/0 
                                                                        
    Info:MAIN:Time 186, idle 0/s, free 0, MQTT 0(0), bWifi 0, secondsWithNoPing -1, 
    socks 0/0 
                                                                        
    Info:MAIN:Time 187, idle 0/s, free 0, MQTT 0(0), bWifi 0, secondsWithNoPing -1, 
    socks 0/0 
                                                                        
    xr_newassoc(): link_id:1 mac:e4:b3:18:f6:91:cc
                                     
    en1: STA e4:b3:18:f6:91:cc IEEE 802.11: associated
                                 
    Info:MAIN:Time 188, idle 0/s, free 0, MQTT 0(0), bWifi 0, secondsWithNoPing -1, 
    socks 0/0 
                                                                        
    WAR drop=1135, fctl=0x00d0.
                                                        
    xr_newassoc(): link_id:1 mac:e4:b3:18:f6:91:cc
                                     
    en1: STA e4:b3:18:f6:91:cc IEEE 802.11: associated
                                 
    Info:MAIN:Time 189, idle 0/s, free 0, MQTT 0(0), bWifi 0, secondsWithNoPing -1, 
    socks 0/0 
                                                                        
    Info:MAIN:Time 190, idle 0/s, free 0, MQTT 0(0), bWifi 0, secondsWithNoPing -1, 
    socks 0/0 
                                                                        
    Info:MAIN:Time 191, idle 0/s, free 0, MQTT 0(0), bWifi 0, secondsWithNoPing -1, 
    socks 0/0 
                                                                        
    Info:MAIN:Time 192, idle 0/s, free 0, MQTT 0(0), bWifi 0, secondsWithNoPing -1, 
    socks 0/0 
                                                                        
    Info:MAIN:Time 193, idle 0/s, free 0, MQTT 0(0), bWifi 0, secondsWithNoPing -1, 
    socks 0/0 
                                                                        
    Info:MAIN:Time 194, idle 0/s, free 0, MQTT 0(0), bWifi 0, secondsWithNoPing -1, 
    socks 0/0 
                                                                        
    Info:MAIN:Time 195, idle 0/s, free 0, MQTT 0(0), bWifi 0, secondsWithNoPing -1, 
    socks 0/0 
                                                                        
    Info:MAIN:Time 196, idle 0/s, free 0, MQTT 0(0), bWifi 0, secondsWithNoPing -1, 
    socks 0/0 
                                                                        
    Info:MAIN:Time 197, idle 0/s, free 0, MQTT 0(0), bWifi 0, secondsWithNoPing -1, 
    socks 0/0 
                                                                        
    Info:MAIN:Time 198, idle 0/s, free 0, MQTT 0(0), bWifi 0, secondsWithNoPing -1, 
    socks 0/0 
                                                                        
    Info:MAIN:Time 199, idle 0/s, free 0, MQTT 0(0), bWifi 0, secondsWithNoPing -1, 
    socks 0/0 
                                                                        
    Info:MAIN:Time 200, idle 0/s, free 0, MQTT 0(0), bWifi 0, secondsWithNoPing -1, 
    socks 0/0 
                                                                        
    Info:MAIN:Time 201, idle 0/s, free 0, MQTT 0(0), bWifi 0, secondsWithNoPing -1, 
    socks 0/0 
                                                                    
    
    
    Helpful post? Buy me a coffee.
  • #67 21433075
    divadiow
    Level 38  
    Posts: 4833
    Help: 420
    Rate: 851
    awesome progress dude. I will source an XR806 asap.
  • #68 21435705
    MrGenius
    Level 7  
    Posts: 9
    Help: 3
    Rate: 6
    Found another Open Source Project around the XR806. Maybe we can look stuff up from there?
    https://github.com/YuzukiHD/TinyMaix-XR806

    divadiow wrote:
    awesome progress dude. I will source an XR806 asap.

    I ordered some through Superbuy. But this will take years I believe....
  • #69 21435819
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14389
    Help: 650
    Rate: 12308
    That's just the same XR806 SDK we have, just with extra TinyMaix example. Nothing new here.

    For now, we need to review code to check why WiFi connection does not finish. We can also try making a separate, tiny WiFi connection demo and compare stuff step by step.

    The HAL code is 99.9% the same as XR809, so it's already ready and it compiles.

    Still, I would also need another XR806, maybe I could do NodeMCU hack for XR806....

    Added after 1 [minutes]:

    PS: All this HAL compiled for me:
    https://github.com/openshwprojects/OpenBK7231T_App/tree/main/src/hal/xr809
    With just little changes:
    https://github.com/openshwprojects/OpenBK7231...mmit/dd75d3f7731b617559c159cddfa1c2cec7cb05a4
    Helpful post? Buy me a coffee.
  • #70 21435829
    divadiow
    Level 38  
    Posts: 4833
    Help: 420
    Rate: 851
    MrGenius wrote:
    I ordered some through Superbuy. But this will take years I believe....

    I went for one too as I've a collection of bits in the warehouse there waiting to come over. Still, it'll be 3 weeks at least before arriving in the UK I fear

    Tuya WXU XR806 from TRV Heater Device flashing, SDK, firmware change research
  • #71 21482522
    divadiow
    Level 38  
    Posts: 4833
    Help: 420
    Rate: 851
    XR809 Tuya kits
    Code: Text
    Log in, to see the code


    Tuya WXU XR806 from TRV Heater Device flashing, SDK, firmware change research
  • ADVERTISEMENT
  • #73 21494477
    Majkyy98
    Level 12  
    Posts: 36
    Help: 7
    Rate: 11
    Board Language: polish
    And what would the situation be with a thermostat from Orno on a WXU module? After a private conversation with @p.kaczmarek2 I was directed here to the thread with the XR809.

    The manufacturer/distributor of the whole unit is Orno, with the Wi-Fi module board and other components inside. I am attaching pictures in the attachments of what this module looks like.
    After inserting the battery and setting the time, the device calibrates itself, then you can connect to the Tuya Smart app.

    I also found a complete datasheet of the module.
    https://developer.tuya.com/en/docs/iot/wxu-module-datasheet?id=Kc2xk9qlk04so


    Tuya WXU XR806 from TRV Heater Device flashing, SDK, firmware change research
    Tuya WXU XR806 from TRV Heater Device flashing, SDK, firmware change research
    Tuya WXU XR806 from TRV Heater Device flashing, SDK, firmware change research
    Tuya WXU XR806 from TRV Heater Device flashing, SDK, firmware change research
    Tuya WXU XR806 from TRV Heater Device flashing, SDK, firmware change research
    Tuya WXU XR806 from TRV Heater Device flashing, SDK, firmware change research
    Tuya WXU XR806 from TRV Heater Device flashing, SDK, firmware change research
  • #74 21494997
    divadiow
    Level 38  
    Posts: 4833
    Help: 420
    Rate: 851
    cool. another WXU/XR806. You'll probably have noticed from a review of previous posts on this thread that there is no working alternative firmware for XR806 at the moment.

    Did you manage/try to get boot log and/or firmware dump as with the TRV before?
  • #75 21495294
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14389
    Help: 650
    Rate: 12308
    OpenBeken boots on XR806 but WiFi is not stable, futher work is needed
    Helpful post? Buy me a coffee.
  • #76 21502241
    divadiow
    Level 38  
    Posts: 4833
    Help: 420
    Rate: 851
    my new toy
    Tuya WXU XR806 from TRV Heater Device flashing, SDK, firmware change research
  • #77 21502245
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14389
    Help: 650
    Rate: 12308
    I can try to upload my work and let you verify my workflow if you have time. Maybe we could put that on Github
    Helpful post? Buy me a coffee.
  • #78 21502313
    divadiow
    Level 38  
    Posts: 4833
    Help: 420
    Rate: 851
    >>21502245

    yes, sure. I've mostly forgotten what happened a few weeks ago, but it'll give me something to try I guess

    Added after 1 [hours] 5 [minutes]:

    >>21429278
    labelled these bits

    Tuya WXU XR806 from TRV Heater Device flashing, SDK, firmware change research Tuya WXU XR806 from TRV Heater Device flashing, SDK, firmware change research


    PB02 grounded and flash read success
    Tuya WXU XR806 from TRV Heater Device flashing, SDK, firmware change research

    Tuya WXU XR806 from TRV Heater Device flashing, SDK, firmware change research Tuya WXU XR806 from TRV Heater Device flashing, SDK, firmware change research
  • #79 21502479
    MrGenius
    Level 7  
    Posts: 9
    Help: 3
    Rate: 6
    All hope on you guys. These WXU devices seem to have a different Tuya OS also.
    They are not answering on Ping, and not answering on Port 6668. So no Localtuya either.
  • #80 21524126
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14389
    Help: 650
    Rate: 12308
    WiFi issue is still present, but I added XR806 to online builds:
    https://github.com/openshwprojects/OpenBK7231...mmit/5d09349b9dc749638b0a6c31c80b880ebe0d90f2
    Not really useful right now, but can help with development.
    Helpful post? Buy me a coffee.
  • #81 21524158
    divadiow
    Level 38  
    Posts: 4833
    Help: 420
    Rate: 851
    Great. Will flash to my WXU as soon as I can.

    The XR806 modules from Taobao went out of stock eventually and my order got cancelled, so I'm still without a dev board.
  • #82 21524182
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14389
    Help: 650
    Rate: 12308
    What's the estimate of when you can check that? I'm short on time and it would certainly help to make sure that this online build actually works.
    Helpful post? Buy me a coffee.
  • #83 21524185
    divadiow
    Level 38  
    Posts: 4833
    Help: 420
    Rate: 851
    Mid-afternoon BST.

    Added after 1 [hours] 33 [minutes]:

    Tuya XR806 layout vs OpenXR806 for the record
    PhoenixMC program window version 3.1.23215d with a selected thermostat firmware file.
    Screenshot of the PhoenixMC program with an open firmware file and a list of sections to update.
  • #84 21524320
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14389
    Help: 650
    Rate: 12308
    If flashing and online builds are working for XR806, then maybe we can try to brute-force the issue.
    Helpful post? Buy me a coffee.
  • #85 21524328
    divadiow
    Level 38  
    Posts: 4833
    Help: 420
    Rate: 851
    as in transplant Tuya RF partitions to OpenXR806 to see if this makes any difference? If that, yes, I would like to try that
  • #86 21524365
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14389
    Help: 650
    Rate: 12308
    No, not RF transplant. I don't think we need it. I think it's a matter of SDK configuration.
    Helpful post? Buy me a coffee.
  • #87 21524434
    divadiow
    Level 38  
    Posts: 4833
    Help: 420
    Rate: 851
    boots but no GUI for me. yes, 192.168.51.1.

    is this the cause

    Code: Text
    Log in, to see the code


    Code: Text
    Log in, to see the code
  • #88 21524436
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14389
    Help: 650
    Rate: 12308
    Huh? I was sure the thread is created. Strange. It's XR806, are you sure? The one from @MrGenius thermostat?
    Helpful post? Buy me a coffee.
  • #89 21524437
    divadiow
    Level 38  
    Posts: 4833
    Help: 420
    Rate: 851
    yes. I've power-cycled a few times. will do more. Wifi is strong and stable
    Screenshot of Wi-Fi settings for the OpenXR806_00000000 network, displaying connection details and network properties.

    Added after 1 [minutes]:

    p.kaczmarek2 wrote:
    It's XR806, are you sure? The one from @MrGenius thermostat?

    yes, WXU

    Added after 6 [minutes]:

    Code: Text
    Log in, to see the code


    Code: Text
    Log in, to see the code


    Added after 24 [minutes]:

    no GUI with this btw https://github.com/openshwprojects/OpenBK7231T_App/actions/runs/14550245013

    Code: Text
    Log in, to see the code
  • #90 21524465
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14389
    Help: 650
    Rate: 12308
    ah I was confused by variable names. It's the log server thread that fails. I know about it.

    HTTP server thread is created, but for some reason nothing is received. I'm aware about it.

    So you can open connection to port 80 but it sends nothing?
    Helpful post? Buy me a coffee.

Topic summary

✨ The discussion centers on the Tuya WXU module, specifically the XR806 SoC used in TRV heater devices, exploring firmware flashing, SDK usage, and custom firmware development. The XR806 differs from the XR809 notably by including WiFi and BLE capabilities and having 320 KB SRAM versus 288 KB in XR806 specs. Participants shared boot logs, teardown procedures, and hardware photos, confirming the XR806's WiFi presence and SDK version 1.2.2. Efforts to flash custom firmware such as OpenBK7231T_App and OpenXR806 were documented, with challenges including UART synchronization errors, thread creation failures, and unstable WiFi connections. The XR806 SDK was used for compiling demos like hello_demo and wlan_demo, with configuration via make menuconfig to enable WiFi features and FreeRTOS. Issues with missing headers, build environment setup (WSL, GCC toolchain), and SDK path configurations were addressed. A key breakthrough was identifying HTTP basic authentication enabled by default on XR806, blocking HTTP server responses, which was resolved by disabling or clearing the web password. Flash memory configuration was adjusted to a free offset (0x1FC000) to enable saving settings. Despite progress, WiFi stability and full TRV functionality remain under development. Community members sourced XR806 modules from various suppliers and shared open-source projects like TinyMaix-XR806 for reference. The discussion also touched on porting HAL code from XR809 to XR806 due to high similarity, and ongoing efforts to integrate XR806 support into OpenBK7231T_App with online builds. The overall progress marks the first successful custom firmware boot and HTTP server operation on XR806-based WXU modules, paving the way for further development and device control.
Generated by the language model.

FAQ

TL;DR: With 320 KB SRAM and a quoted breakthrough — "XR auth disabled" — this FAQ shows XR806/WXU thermostat modders how to open Tuya TRVs, dump firmware, build XR806 SDK demos, and understand why OpenBeken now boots and serves a web UI, while Wi‑Fi stability and TuyaMCU work still need fixes. [#21524634]

Why it matters: This thread turns a vague "WXU might be XR806" hunch into a repeatable path for teardown, flashing, SDK builds, and first-boot OpenBeken testing on real Tuya thermostats.

Option Result in thread Main limitation
Stock Tuya WXU firmware on original device Boots, exposes TuyaOS logs, Wi‑Fi + BLE seen Closed firmware, no alternative control path proven
Dumped WXU image flashed onto XR809 Did not boot XR806/XR809 firmware mismatch
XR806 SDK demos hello_demo and Wi‑Fi demos built and ran menuconfig options needed
OpenBeken on XR806/WXU Boots and later serves web UI Wi‑Fi, config, MAC, and TuyaMCU issues remained during testing

Key insight: The project stopped being blocked by flashing and basic booting. The real breakthroughs were proving that WXU is XR806-class hardware in practice, and then finding that the missing XR806 web GUI was caused by HTTP auth behavior, not a dead HTTP server.

Quick Facts

  • Tuya WXU was discussed as XR806-class hardware because logs showed XR806 SDK v1.2.1/v1.2.2, 160 MHz CPU, 40 MHz HF clock, Wi‑Fi, and BLE on real thermostat hardware. [#21429243]
  • The thread compared memory claims directly: Tuya WXU listed 320 KB SRAM, while one XR806 spec mentioned 288 KB SRAM, which caused early confusion about whether WXU was a Tuya-specific variant. [#21429143]
  • A real TuyaOS boot log on WXU showed TuyaOS V3.6.3 built on 2024-07-18, with xr806_lowpower_common_ty 1.1.4 and a product AP named SmartLife-4649. [#21429243]
  • XR806 flashing and logging used different serial paths in practice: successful tests showed firmware output on the flashing UART, while boot logs from stock firmware were often captured on a different UART. [#21430698]
  • OpenBeken config saving started working after moving XR806 sysinfo to 0x1FC000, leaving about 12 KB free before the end of a 2 MB flash. [#21533999]

How do I open a Tuya TRV heater device with the WXU/XR806 module without damaging the display or board?

Open it in four careful steps. 1. Pull off the plastic turning wheel with steady force. 2. Remove the round battery cover underneath it. 3. Unclip the display with a small screwdriver. 4. Remove the 3 top screws and lift out the board. This sequence was reported as "very easy to open" and was used successfully before board removal and flashing work. [#21429214]

What is the Tuya WXU module, and how is it related to the XR806 chip used in thermostats and TRVs?

The Tuya WXU module is an embedded Wi‑Fi and BLE module that appears XR806-based in these thermostats. "WXU is an embedded wireless module that provides Wi‑Fi and Bluetooth Low Energy connectivity, and in this thread its boot logs matched XR806 SDK builds, clocks, and radio firmware." The strongest evidence was real boot output showing XR806 SDK, 160 MHz CPU, 40 MHz HF clock, and TuyaOS on a WXU-equipped TRV. [#21429243]

What is TuyaMCU, and why does it matter when replacing firmware on a WXU/XR806-based thermostat?

TuyaMCU is the separate device-side controller that exchanges commands with the Wi‑Fi module over UART. "TuyaMCU is a microcontroller-side protocol layer that handles thermostat logic and sensors while the Wi‑Fi module exposes cloud or custom firmware features, usually over serial links such as 115200 baud." It matters because the original TRV used TuyaMCU, so OpenBeken must match that serial behavior before core heating functions work correctly. [#21429324]

Why does flashing a dumped WXU firmware image onto an XR809 boot fail even though OpenBeken itself boots on XR809?

It fails because the dumped firmware targets XR806-class hardware, not XR809. A direct test flashed the WXU backup to XR809 successfully, but the board showed no life, no current draw, and no output on RX0 or RX1. In contrast, flashing OBK back onto XR809 restored a normal boot log on RXD0. That result strongly points to platform mismatch rather than a bad dump or bad flashing process. [#21429353]

XR806 vs XR809: what are the practical differences for SDK compatibility, flashing pins, and OpenBeken porting?

They are similar enough for HAL reuse, but different enough to break direct firmware swaps. The thread found XR809 HAL code was about 99.9% reusable, and GPIO examples looked very similar between SDKs. The important practical differences were boot-pin behavior, build-system details, flash layout, and at least one efuse field difference such as EFPG_FIELD_MAC. That is why OpenBeken could be ported, yet still needed XR806-specific fixes. [#21435819]

How do I put an XR806 or Tuya WXU module into download mode, and which boot pins actually need to be grounded?

Ground PB02 to enter XR806 download mode. Early testing assumed PB02 and PB03 both had to be grounded, mirroring XR809 habits. Later notes in the same work said only PB02 needs to be pulled low on XR806, including successful flash reads from a WXU after grounding PB02. That makes XR806 easier to place in download mode than expected. [#21502313]

Why do I get a sync or 'synchron waiting' error when trying to read or flash an XR806, and how should TX/RX be wired?

Sync errors usually came from using the wrong UART pair or wiring TX/RX the wrong way. One tester fixed an XR-series sync issue after realizing the correct lines were UART0, not UART1. Another note added that for one XR case, RX had to go to RX and TX to TX for boot-log capture. If you see "synchron waiting," verify UART0 pins first and avoid assuming classic cross-over wiring. [#21429353]

Which UART on the XR806/WXU is used for flashing and which one outputs the boot log?

They are not always the same UART in practice. A key test showed an XR806 sample did work, but its output appeared on the flashing UART rather than the log UART the tester first monitored. Earlier stock-firmware work also captured boot text from RXD0. The safe rule is to probe both serial paths before assuming the board is dead. [#21430698]

How do I build XR806 SDK examples like hello_demo, wlan_demo, or at_demo with make menuconfig under WSL?

Build them from WSL with the SDK root as your working directory. 1. Install prerequisites such as build-essential and ncurses development packages. 2. Set the ARM GCC path in gcc.mk to the toolchain under sdk/tools. 3. Copy a demo defconfig, run make menuconfig, then make build or make image. This flow worked under WSL2 after GCC and ncurses were fixed. [#21432260]

What causes the lwip/netif.h missing error or OTA-related build failures in the XR806 SDK demos, and which menuconfig options fix them?

Those errors came from disabled network components in menuconfig, not from broken demo code alone. The lwip/netif.h failure appeared while building at_demo, and enabling lwIP, WLAN, AP/STA options, and OTA made the build progress. The thread also called out CONFIG_WLAN_AP, CONFIG_WLAN_STA, CONFIG_WLAN_MONITOR, and PRJCONF_NET_EN as required for full WLAN command support. [#21430812]

Why did OpenBeken on XR806 initially open port 80 but return no web GUI or empty HTTP responses?

The HTTP server thread was alive, but replies were blocked before a usable page reached the browser. Tests showed port 80 open on 192.168.51.1, accepted clients on fd 3, and received packets of about 453 to 479 bytes. Yet browsers reported ERR_CONNECTION_TIMED_OUT or ERR_EMPTY_RESPONSE. That proved the failure was in request handling or response generation, not in AP mode or TCP accept itself. [#21524592]

How was the XR806 HTTP issue tracked down to web authentication, and what changed to make the custom OpenBeken page finally load?

It was traced to HTTP auth logic, then fixed by disabling the XR806 auth block path. Debug builds showed packet receipt, then repeated HTTP packet with auth fail messages. After changing the XR806 auth behavior, logs switched to XR auth disabled and postany: send ..., and the custom OpenBeken page finally loaded. That was the first confirmed custom HTTP page running on XR806 in the thread. [#21524634]

Where should the sysinfo/config flash offset be placed on XR806 so OpenBeken settings are saved correctly without breaking XR809 or XR872?

Place XR806 sysinfo at 0x1FC000 and gate it with an XR806-specific platform check. Direct testing showed OpenBeken started saving config correctly at 0x1FC000, with about 12 KB left before the 2 MB flash end at 0x200000. The thread explicitly warned not to hardcode that address globally, because XR809 and XR872 use different layouts and need separate handling. [#21533999]

What is PhoenixMC, and how is it used with XR806 firmware images or upgrade commands during development?

PhoenixMC is the flashing utility used in this thread to parse, read, and write XR806 images. It successfully parsed SDK-built images, flashed stock and test binaries, and was later discussed as the possible path for an upgrade command that could avoid manual boot-pin grounding. In practice, it was the main tool for dumping firmware, restoring backups, and verifying whether new XR806 builds booted. [#21430654]

What are the remaining blockers for a fully working OpenBeken/OpenXR806 port on Tuya WXU devices, especially unstable Wi-Fi, MAC handling, config saving, and TuyaMCU support?

The main blockers were unstable Wi‑Fi behavior, wrong MAC handling, incomplete config persistence before the sysinfo fix, and unfinished TuyaMCU integration. One tester reported OpenBeken booted, exposed the web UI, but did not keep settings, did not enter STA mode, and still showed MAC inconsistencies. Another recurring issue was Wi‑Fi association without completing the full connection flow. By May 2025, XR806 builds existed, but the port was still a development target, not a finished daily-driver firmware. [#21524739]
Generated by the language model.
ADVERTISEMENT