logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Ustalenia, rozbiórka i flashowanie termostatu EZAIoT Wi-Fi RF

groove6j 16 Lut 2025 15:19 7083 54
Najlepsze odpowiedzi LABEL_AI_GENERATED

Jak zidentyfikować i lokalnie sflashować moduł Wi‑Fi w termostacie EZAIoT/Tuya, aby zastąpić firmware chmurowe OpenBeken?

To urządzenie najprawdopodobniej ma moduł Realtek z rodziny AmebaD, konkretnie RTL8720DN/RTL8721D, a nie ESP32; zrzut firmware udało się wykonać, więc to pasuje do tej rodziny układów [#21442801][#21442947][#21552848] Dla tych układów zwykle jest zewnętrzny flash 4 MB, a potwierdzenie 8 MB dumpu polegało na przecięciu pliku na pół i porównaniu identycznych połówek [#21442947][#21444230] Do odczytu używano `rtltool.py` w trybie `rf` z opóźnieniem 5000 i dumpem np. `0x400000` bajtów, a do zapisu należy użyć `wf` zamiast `rf` [#21442947][#21553080] Jeśli skrypt Pythona zapisuje się źle albo daje błędy sum kontrolnych, wątek sugeruje użycie narzędzia Windows AmebaD/RTL8720D, które działało lepiej przy flashowaniu [#21553227][#21557037] OBK ma już wsparcie dla RTL8720D, więc po poprawnym flashu powinien działać obraz `OpenRTL8720D`; autor wątku potwierdził też, że urządzenie potrzebuje dobrego zasilania i że samo VCC lub samo USB‑C może powodować dziwne zachowanie, więc warto zasilać je stabilnie, nawet jednocześnie z type‑C i VDD [#21552351][#21553348] Osobny układ BAT32G127GH wygląda raczej na sterownik/MCU LCD, a nie główny moduł Wi‑Fi; UART-y nie dawały z niego użytecznych danych, więc dalszy trop to podsłuch komunikacji TuyaMCU albo SWD [#21567115][#21573287]
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA
Treść została przetłumaczona angielski » polski Zobacz oryginalną wersję tematu
  • #31 21553300
    insmod
    Poziom 31  
    Posty: 1432
    Pomógł: 168
    Ocena: 455
    >>21553289
    To nie jest FW2, ponieważ oprogramowania układowego nie można zmienić bez OTA.
    Coś innego musi się dziać.
    Jaki jest log output przy podłączeniu zasilania przez type-c bez VDD?
  • REKLAMA
  • #32 21553334
    groove6j
    Poziom 10  
    Posty: 52
    Pomógł: 3
    Ocena: 13
    >>21553300
    Kiedy dodam VCC, to normalny log i OpenRTL się uruchamia. (LCD wszystkie bity są podświetlone)
    #[MODULE_BOOT-LEVEL_INFO]:IMG1 ENTER ROMSUB:2
    [MODULE_BOOT-LEVEL_INFO]:OTA1 USE
    [MODULE_BOOT-LEVEL_INFO]:IMG2 DATA[0xc014750:9328:0x83000]
    [MODULE_BOOT-LEVEL_INFO]:IMG2 SIGN[RTKWin(8300c)]
    [MODULE_BOOT-LEVEL_INFO]:IMG2 ENTRY[0x83000:0xc002835]
    [MODULE_BOOT-LEVEL_INFO]:KM0 BOOT_IMG2 BOOT REASON: 0 
    Flash ID:20, 42, 16
    read_mode:3
    calibration_ok:[2:19:11] 
    FLASH CALIB[NEW OK]
    RRAM: c0080 176B 
    [MODULE_BOOT-LEVEL_INFO]:IMG1 ENTER MSP:[1007fffc]
    [MODULE_BOOT-LEVEL_INFO]:IMG2 DATA[0xe0990e0:102672:0x10005000]
    [MODULE_BOOT-LEVEL_INFO]:IMG2 SIGN[RTKWin(1000500c)]
    [MODULE_BOOT-LEVEL_INFO]:IMG2 ENTRY[0x10005000:0xe02b145]
    [MODULE_BOOT-LEVEL_INFO]:Start NonSecure @ 0xe02b144 ...
    [MODULE_BOOT-LEVEL_INFO]:KM4 BOOT REASON: 0 
    #interface 0 is initialized
    interface 1 is initialized
    
    #[MODULE_BOOT-LEVEL_INFO]:IMG1 ENTER ROMSUB:2
    [MODULE_BOOT-LEVEL_INFO]:OTA1 USE
    [MODULE_BOOT-LEVEL_INFO]:IMG2 DATA[0xc014750:9328:0x83000]
    [MODULE_BOOT-LEVEL_INFO]:IMG2 SIGN[RTKWin(8300c)]
    [MODULE_BOOT-LEVEL_INFO]:IMG2 ENTRY[0x83000:0xc002835]
    [MODULE_BOOT-LEVEL_INFO]:KM0 BOOT_IMG2 BOOT REASON: 0 
    Flash ID:20, 42, 16
    read_mode:3
    calibration_ok:[2:19:11] 
    FLASH CALIB[NEW OK]
    RRAM: c0080 176B 
    [MODULE_BOOT-LEVEL_INFO]:IMG1 ENTER MSP:[1007fffc]
    [MODULE_BOOT-LEVEL_INFO]:IMG2 DATA[0xe0990e0:102672:0x10005000]
    [MODULE_BOOT-LEVEL_INFO]:IMG2 SIGN[RTKWin(1000500c)]
    [MODULE_BOOT-LEVEL_INFO]:IMG2 ENTRY[0x10005000:0xe02b145]
    [MODULE_BOOT-LEVEL_INFO]:Start NonSecure @ 0xe02b144 ...
    [MODULE_BOOT-LEVEL_INFO]:KM4 BOOT REASON: 0 
    #interface 0 is initialized
    interface 1 is initialized
    
    Initializing WIFI ...Entering initLog()...
    Commands registered!
    initLog() done!
    Info:MAIN:Main_Init_Before_Delay
    EasyFlash V4.1.0 is initialize success.
    You can get the latest version on https://github.com/armink/EasyFlash .
    
    WIFI initialized
    
    Main_Init_Before_Delay doneheap 0x2c960
    Main_Init_DeWarn:CFG:CFG_InitAndLoad: Correct config has been loaded with 7 changes count.
    Error:CMD:no file early.bat err -2
    Main_Init_Delay done
    N_SetupPins pins have been set up.
    Info:MAIN:Main_Init_Before_Delay done
    Info:MAIN:Main_Init_Delay
    Info:MAIN:Main_Init_Delay done
    Info:MAIN:Main_Init_After_Delay
    Info:MAIN:Using SSID [room]
    Info:MAIN:Using Pass [xxxx]
    Info:HTTP:TCP server listening
    Info:MQTT:MQTT_RegisterCallback called for bT rtl8720dFF162F63/ subT rtl8720dFF162F63/+/set
    Info:MQTT:MQTT_RegisterCallback called for bT obks/ subT obks/+/set
    Info:MQTT:MQTT_RegisterCallback called for bT cmnd/rtl8720dFF162F63/ subT cmnd/rtl8720dFF162F63/+
    Info:MQTT:MQTT_RegisterCallback called for bT cmnd/obks/ subT cmnd/obks/+
    Info:MQTT:MQTT_RegisterCallback called for bT rtl8720dFF162F63/ subT rtl8720dFF162F63/+/get
    Info:CMD:CMD_StartScript: started @startup at the beginning
    Info:CMD:CMD_StartScript: started autoexec.bat at the beginning
    Info:MAIN:Main_Init_After_Delay done
    Info:MAIN:Started TuyaMCU.
    Info:GEN:Channel 1 type changed to toggle
    Info:GEN:Channel 111 type not set because string is not a known type
    Info:GEN:Channel 40 type changed to toggle
    Info:MAIN:Time 1, idle 0/s, free 163904, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 2/16 
    #[MODULE_BOOT-LEVEL_INFO]:IMG1 ENTER ROMSUB:2
    [MODULE_BOOT-LEVEL_INFO]:OTA1 USE
    [MODULE_BOOT-LEVEL_INFO]:IMG2 DATA[0xc014750:9328:0x83000]
    [MODULE_BOOT-LEVEL_INFO]:IMG2 SIGN[RTKWin(8300c)]
    [MODULE_BOOT-LEVEL_INFO]:IMG2 ENTRY[0x83000:0xc002835]
    [MODULE_BOOT-LEVEL_INFO]:KM0 BOOT_IMG2 BOOT REASON: 0 
    Flash ID:20, 42, 16
    read_mode:3
    calibration_ok:[2:19:11] 
    FLASH CALIB[NEW OK]
    RRAM: c0080 176B 
    [MODULE_BOOT-LEVEL_INFO]:IMG1 ENTER MSP:[1007fffc]
    [MODULE_BOOT-LEVEL_INFO]:IMG2 DATA[0xe0990e0:102672:0x10005000]
    [MODULE_BOOT-LEVEL_INFO]:IMG2 SIGN[RTKWin(1000500c)]
    [MODULE_BOOT-LEVEL_INFO]:IMG2 ENTRY[0x10005000:0xe02b145]
    [MODULE_BOOT-LEVEL_INFO]:Start NonSecure @ 0xe02b144 ...
    [MODULE_BOOT-LEVEL_INFO]:KM4 BOOT REASON: 0 
    #interface 0 is initialized
    interface 1 is initialized
    
    Initializing WIFI ...Entering initLog()...
    Commands registered!
    initLog() done!
    Info:MAIN:Main_Init_Before_Delay
    EasyFlash V4.1.0 is initialize success.
    You can get the latest version on https://github.com/armink/EasyFlash .
    
    WIFI initialized
    
    Main_Init_Before_Delay doneheap 0x2c960
    Main_Init_DeWarn:CFG:CFG_InitAndLoad: Correct config has been loaded with 7 changes count.
    Error:CMD:no file early.bat err -2
    Main_Init_Delay done
    N_SetupPins pins have been set up.
    Info:MAIN:Main_Init_Before_Delay done
    Info:MAIN:Main_Init_Delay
    Info:MAIN:Main_Init_Delay done
    Info:MAIN:Main_Init_After_Delay
    Info:MAIN:Using SSID [room]
    Info:MAIN:Using Pass [xxx]
    Info:HTTP:TCP server listening
    Info:MQTT:MQTT_RegisterCallback called for bT rtl8720dFF162F63/ subT rtl8720dFF162F63/+/set
    Info:MQTT:MQTT_RegisterCallback called for bT obks/ subT obks/+/set
    Info:MQTT:MQTT_RegisterCallback called for bT cmnd/rtl8720dFF162F63/ subT cmnd/rtl8720dFF162F63/+
    Info:MQTT:MQTT_RegisterCallback called for bT cmnd/obks/ subT cmnd/obks/+
    Info:MQTT:MQTT_RegisterCallback called for bT rtl8720dFF162F63/ subT rtl8720dFF162F63/+/get
    Info:CMD:CMD_StartScript: started @startup at the beginning
    Info:CMD:CMD_StartScript: started autoexec.bat at the beginning
    Info:MAIN:Main_Init_After_Delay done
    Info:MAIN:Started TuyaMCU.
    Info:GEN:Channel 1 type changed to toggle
    Info:GEN:Channel 111 type not set because string is not a known type
    Info:GEN:Channel 40 type changed to toggle
    Info:MAIN:Time 1, idle 0/s, free 163904, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 2/16 
    Info:MAIN:Time 2, idle 0/s, free 163904, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 2/16 
    Info:MAIN:Time 3, idle 0/s, free 163904, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 2/16 
    Info:MAIN:Time 4, idle 0/s, free 163904, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 2/16 
    Info:MAIN:Time 5, idle 0/s, free 163904, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 2/16 
    Info:MAIN:Registered for wifi changes
    Info:MAIN:Connecting to SSID [room]
    Info:MAIN:Time 6, idle 0/s, free 160640, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 2/16 
    Info:MAIN:Boot complete time reached (5 seconds)
    
    RTL8721D[Driver]: set ssid [room] 
    Info:MAIN:Main_OnWiFiStatusChange - WIFI_STA_CONNECTING - 1
    Info:MAIN:Time 7, idle 0/s, free 160960, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 2/16 
    
    RTL8721D[Driver]: rtw_set_wpa_ie[1182]: AuthKeyMgmt = 0x2 
    Info:MAIN:Time 8, idle 0/s, free 160800, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 2/16 
    
    RTL8721D[Driver]: rtw_restruct_sec_ie[4294]: no pmksa cached 
    
    RTL8721D[Driver]: start auth to 6e:3b:6b:51:55:6c
    
    RTL8721D[Driver]: auth alg = 2
    Recv Auth with status_code=0
    
    RTL8721D[Driver]: 
    OnAuthClient:algthm = 0, seq = 2, status = 0, sae_msg_len = 0
    
    RTL8721D[Driver]: auth success, start assoc
    
    RTL8721D[Driver]: association success(res=15)
    wlan1: 1 DL RSVD page success! DLBcnCount:01, poll:00000001
    
    RTL8721D[Driver]: ClientSendEAPOL[1728]: no use cache pmksa 
    
    RTL8721D[Driver]: set pairwise key to hw: alg:4(WEP40-1 WEP104-5 TKIP-2 AES-4)
    
    RTL8721D[Driver]: set group key to hw: alg:4(WEP40-1 WEP104-5 TKIP-2 AES-4) keyid:2
    Info:MAIN:Time 9, idle 0/s, free 155104, MQTT 0(0), bWifi 0, secondsWithNoPing -1, socks 2/16 
    



    Kiedy usunę VCC, to loguje to (i zatrzymuje się na końcu, nie ma więcej wyjścia) (LCD jest normalny, pokazuje temperaturę i reaguje na przyciski)

    [MODULE_BOOT-LEVEL_INFO]:IMG1 ENTER ROMSUB:2
    [MODULE_BOOT-LEVEL_INFO]:OTA1 USE
    [MODULE_BOOT-LEVEL_INFO]:IMG2 DATA[0xc014750:9328:0x83000]
    [MODULE_BOOT-LEVEL_INFO]:IMG2 SIGN[RTKWin(8300c)]
    [MODULE_BOOT-LEVEL_INFO]:IMG2 ENTRY[0x83000:0xc002835]
    [MODULE_BOOT-LEVEL_INFO]:KM0 BOOT_IMG2 BOOT REASON: 0 
    Flash ID:20, 42, 16
    read_mode:3
    calibration_ok:[2:19:11] 
    FLASH CALIB[NEW OK]
    RRAM: c0080 176B 
    [MODULE_BOOT-LEVEL_INFO]:IMG1 ENTER MSP:[1007fffc]
    [MODULE_BOOT-LEVEL_INFO]:IMG2 DATA[0xe0990e0:102672:0x10005000]
    [MODULE_BOOT-LEVEL_INFO]:IMG2 SIGN[RTKWin(1000500c)]
    [MODULE_BOOT-LEVEL_INFO]:IMG2 ENTRY[0x10005000:0xe02b145]
    [MODULE_BOOT-LEVEL_INFO]:Start NonSecure @ 0xe02b144 ...
    [MODULE_BOOT-LEVEL_INFO]:KM4 BOOT REASON: 0 
    #interface 0 is initialized
    interface 1 is initialized
    
    Initializing WIFI ...Entering initLog()...
    Commands registered!
    initLog() done!
    Info:MAIN:Main_Init_Before_Delay
    #[MODULE_BOOT-LEVEL_INFO]:IMG1 ENTER ROMSUB:2
    [MODULE_BOOT-LEVEL_INFO]:OTA1 USE
    [MODULE_BOOT-LEVEL_INFO]:IMG2 DATA[0xc014750:9328:0x83000]
    [MODULE_BOOT-LEVEL_INFO]:IMG2 SIGN[RTKWin(8300c)]
    [MODULE_BOOT-LEVEL_INFO]:IMG2 ENTRY[0x83000:0xc002835]
    [MODULE_BOOT-LEVEL_INFO]:KM0 BOOT_IMG2 BOOT REASON: 0 
    Flash ID:20, 42, 16
    read_mode:3
    calibration_ok:[2:19:11] 
    FLASH CALIB[NEW OK]
    RRAM: c0080 176B 
    [MODULE_BOOT-LEVEL_INFO]:IMG1 ENTER MSP:[1007fffc]
    [MODULE_BOOT-LEVEL_INFO]:IMG2 DATA[0xe0990e0:102672:0x10005000]
    [MODULE_BOOT-LEVEL_INFO]:IMG2 SIGN[RTKWin(1000500c)]
    [MODULE_BOOT-LEVEL_INFO]:IMG2 ENTRY[0x10005000:0xe02b145]
    [MODULE_BOOT-LEVEL_INFO]:Start NonSecure @ 0xe02b144 ...
    [MODULE_BOOT-LEVEL_INFO]:KM4 BOOT REASON: 0 
    #interface 0 is initialized
    interface 1 is initialized
    
    Initializing WIFI ...Entering initLog()...
    Commands registered!
    initLog() done!
    Info:MAIN:Main_Init_Before_Delay
    #[MODULE_BOOT-LEVEL_INFO]:IMG1 ENTER ROMSUB:2
    [MODULE_BOOT-LEVEL_INFO]:OTA1 USE
    [MODULE_BOOT-LEVEL_INFO]:IMG2 DATA[0xc014750:9328:0x83000]
    [MODULE_BOOT-LEVEL_INFO]:IMG2 SIGN[RTKWin(8300c)]
    [MODULE_BOOT-LEVEL_INFO]:IMG2 ENTRY[0x83000:0xc002835]
    [MODULE_BOOT-LEVEL_INFO]:KM0 BOOT_IMG2 BOOT REASON: 0 
    Flash ID:20, 42, 16
    read_mode:3
    calibration_ok:[2:19:11] 
    FLASH CALIB[NEW OK]
    RRAM: c0080 176B 
    [MODULE_BOOT-LEVEL_INFO]:IMG1 ENTER MSP:[1007fffc]
    [MODULE_BOOT-LEVEL_INFO]:IMG2 DATA[0xe0990e0:102672:0x10005000]
    [MODULE_BOOT-LEVEL_INFO]:IMG2 SIGN[RTKWin(1000500c)]
    [MODULE_BOOT-LEVEL_INFO]:IMG2 ENTRY[0x10005000:0xe02b145]
    [MODULE_BOOT-LEVEL_INFO]:Start NonSecure @ 0xe02b144 ...
    [MODULE_BOOT-LEVEL_INFO]:KM4 BOOT REASON: 0 
    #interface 0 is initialized
    interface 1 is initialized
    
    Initializing WIFI ...Entering initLog()...
    Commands registered!
    initLog() done!
    Info:MAIN:Main_Init_Before_Delay
    EasyFlash V4.1.0 is initialize success.
    You can get the latest version on https://github.com/armink/EasyFlash .
    #[MODULE_BOOT-LEVEL_INFO]:IMG1 ENTER ROMSUB:2
    [MODULE_BOOT-LEVEL_INFO]:OTA1 USE
    [MODULE_BOOT-LEVEL_INFO]:IMG2 DATA[0xc014750:9328:0x83000]
    [MODULE_BOOT-LEVEL_INFO]:IMG2 SIGN[RTKWin(8300c)]
    [MODULE_BOOT-LEVEL_INFO]:IMG2 ENTRY[0x83000:0xc002835]
    [MODULE_BOOT-LEVEL_INFO]:KM0 BOOT_IMG2 BOOT REASON: 0 
    Flash ID:20, 42, 16
    read_mode:3
    calibration_ok:[2:19:11] 
    FLASH CALIB[NEW OK]
    RRAM: c0080 176B 
    [MODULE_BOOT-LEVEL_INFO]:IMG1 ENTER MSP:[1007fffc]
    [MODULE_BOOT-LEVEL_INFO]:IMG2 DATA[0xe0990e0:102672:0x10005000]
    [MODULE_BOOT-LEVEL_INFO]:IMG2 SIGN[RTKWin(1000500c)]
    [MODULE_BOOT-LEVEL_INFO]:IMG2 ENTRY[0x10005000:0xe02b145]
    [MODULE_BOOT-LEVEL_INFO]:Start NonSecure @ 0xe02b144 ...
    [MODULE_BOOT-LEVEL_INFO]:KM4 BOOT REASON: 0 
    #interface 0 is initialized
    interface 1 is initialized
    
    Initializing WIFI ...Entering initLog()...
    Commands registered!
    initLog() done!
    Info:MAIN:Main_Init_Before_Delay
    EasyFlash V4.1.0 is initialize success.
    You can get the latest version on https://github.com/armink/EasyFlash .
    #[MODULE_BOOT-LEVEL_INFO]:IMG1 ENTER ROMSUB:2
    [MODULE_BOOT-LEVEL_INFO]:OTA1 USE
    [MODULE_BOOT-LEVEL_INFO]:IMG2 DATA[0xc014750:9328:0x83000]
    [MODULE_BOOT-LEVEL_INFO]:IMG2 SIGN[RTKWin(8300c)]
    [MODULE_BOOT-LEVEL_INFO]:IMG2 ENTRY[0x83000:0xc002835]
    [MODULE_BOOT-LEVEL_INFO]:KM0 BOOT_IMG2 BOOT REASON: 0 
    Flash ID:20, 42, 16
    read_mode:3
    calibration_ok:[2:19:11] 
    FLASH CALIB[NEW OK]
    RRAM: c0080 176B 
    [MODULE_BOOT-LEVEL_INFO]:IMG1 ENTER MSP:[1007fffc]
    [MODULE_BOOT-LEVEL_INFO]:IMG2 DATA[0xe0990e0:102672:0x10005000]
    [MODULE_BOOT-LEVEL_INFO]:IMG2 SIGN[RTKWin(1000500c)]
    [MODULE_BOOT-LEVEL_INFO]:IMG2 ENTRY[0x10005000:0xe02b145]
    [MODULE_BOOT-LEVEL_INFO]:Start NonSecure @ 0xe02b144 ...
    [MODULE_BOOT-LEVEL_INFO]:KM4 BOOT REASON: 0 
    #interface 0 is initialized
    interface 1 is initialized
    
    Initializing WIFI ...Entering initLog()...
    Commands registered!
    initLog() done!
    
  • #34 21553349
    groove6j
    Poziom 10  
    Posty: 52
    Pomógł: 3
    Ocena: 13
    >>21553348
    Tak, spróbuję ponownie rano. Muszę się trochę przespać. Wielkie dzięki za pomoc! :)

    Interesujące jest to, że kiedy utknął na bootowaniu, wyświetlacz działa (i myślę, że część RF również działa). To sprawiło, że pomyślałem, że ładuje się stary firmware, ale w rzeczywistości utknął, tylko część MCU działa z jakiegoś dziwnego powodu.
  • #35 21553802
    groove6j
    Poziom 10  
    Posty: 52
    Pomógł: 3
    Ocena: 13
    >>21553348
    Muszę najpierw zastosować zasilanie typu C / bateryjne. MCU uruchamia się, RTL nie działa.
    Następnie, jeśli zastosuję VCC, RTL uruchamia się dobrze, a MCU nadal działa. Jeśli usunę VCC, RTL zatrzymuje się. Ale jeśli usunę typ C - zarówno MCU, jak i RTL nadal działają.

    W skrócie - jeśli następnie zastosuję VCC, zarówno MCU, jak i RTL działają. Jeśli odłączę VCC - RTL przestaje działać. Dlaczego tak się dzieje?

    Nie mogę też uzyskać żadnej komunikacji TuyaMCU. Próbowałem tej konfiguracji:

    
    startDriver TuyaMCU
    tuyaMcu_setBaudRate 115200
    tuyaMcu_defWiFiState 4
    setChannelType 1 Toggle
    setChannelLabel 1 "l1"
    linkTuyaMCUOutputToChannel 1 bool 1 
    setChannelLabel 2 "l2"
    setChannelType 2 Toggle
    linkTuyaMCUOutputToChannel 2 bool 2 
    setChannelLabel 3 "Temperature"
    setChannelType 3 TextField
    linkTuyaMCUOutputToChannel 24 val 3
    
    .

    Próbowałem również 9600, 921600 i 460800 bodów. Kiedy MCU uruchamia się i ekran działa, część RF całkowicie działa, nie ma jeszcze komunikacji MCU<->OpenRTL. Rozumiem, że na chipie Realtek są 2 UARTy. Jeden jest oznaczony LOG, którego używałem do flashowania i odczytywania logów systemowych. Drugi wydaje się po prostu iść do nagłówków pinów przez rezystory 100Ohm z układu Realtek.

    Nie mogłem nic uzyskać przez ten drugi port UART.
  • #36 21554154
    insmod
    Poziom 31  
    Posty: 1432
    Pomógł: 168
    Ocena: 455
    Co ze sterownikiem startowym tmSensor?
    Skoro są baterie, to może tuyamcu używa protokołu v0?
    Inną możliwością jest to, że używa alternatywnego uartu, musisz włączyć tę flagę, aby sprawdzić, czy działa.
    Możesz także spróbować sniffować nielogowe rx/tx dla komunikacji mcu.
  • #37 21554283
    groove6j
    Poziom 10  
    Posty: 52
    Pomógł: 3
    Ocena: 13
    >>21554154 .
    Spróbuję. Zagadką dla mnie jest to, że linie UART, które idą do punktów poniżej R33 i R34, nie wydają się łączyć nigdzie dalej. Wygląda na to, że pod ekranem też nic nie ma. Gdzie w takim razie komunikuje się MCU?

    Nie mogłem też nic wyciągnąć z tego UART. Próbowałem standardowych szybkości transmisji z minicomem, nic. Na tych pinach jest napięcie, ale nie ma wyjścia. Chociaż mogę później podłączyć oscyloskop.
  • REKLAMA
  • #38 21556497
    groove6j
    Poziom 10  
    Posty: 52
    Pomógł: 3
    Ocena: 13
    O co chodzi z protokołem v0? Czym się różni?
    Nadal nie udało mi się uzyskać żadnej komunikacji TuyabMCU. tmSensor również nie działał, podobnie jak alternatywna flaga UART.
    Myślę, że sflashuję stockowy firmware i wtedy spróbuję sniffować.
  • #39 21556643
    insmod
    Poziom 31  
    Posty: 1432
    Pomógł: 168
    Ocena: 455
    Protokół v0 jest przeznaczony dla urządzeń TuyaMCU na zasilaniu bateryjnym. W OBK jest on włączany przez sterownik tmSensor.
  • Pomocny post
    #40 21556809
    p.kaczmarek2
    Moderator Smart Home
    Posty: 14795
    Pomógł: 659
    Ocena: 12945
    tmSensor (urządzenia zasilane bateryjnie) to urządzenia, w których MCU kontroluje zasilanie modułu WiFi. Odbywa się to poprzez MOSFET. Czy VDD modułu WiFi jest podłączone bezpośrednio do 3,3 V? Jeśli tak, to nie jest to urządzenie zasilane bateryjnie.

    tmSensor polega na MCU umożliwiającym zasilanie modułu WiFi. Tak więc sekwencja jest następująca:
    - najpierw MCU włącza zasilanie modułu WiFI
    - następnie moduł WiFi wysyła pakiet hello przez UART do MCU
    - następnie MCU odpowiada... itd. itd.
    Jeśli zasilasz moduł WIFi zewnętrznie, na przykład z konwertera USB na UART, tmSensor nie będzie działał, ponieważ MCU oczekuje, że tmSensor wyśle pakiet dokładnie po włączeniu zasilania modułu WiFi.
    Pomogłem? Kup mi kawę.
  • REKLAMA
  • #41 21557037
    groove6j
    Poziom 10  
    Posty: 52
    Pomógł: 3
    Ocena: 13
    >>21556809
    Będę flashować stockowy firmware. I zobaczę co się stanie. Mam nadzieję, że plik, który pobrałem za pomocą narzędzia python jest w porządku, ponieważ podczas pisania musiałem użyć narzędzia AmebaD Windows, aby poprawnie pisać, narzędzie python wiersza poleceń nie powiodło się.
  • #42 21567115
    groove6j
    Poziom 10  
    Posty: 52
    Pomógł: 3
    Ocena: 13
    Kilka dodatkowych informacji, które zebrałem:
    UART (który nie jest oznaczony na płytce) jest zdecydowanie podłączony do TuyaMCU, ale sam MCU wydaje się znajdować pod wyświetlaczem urządzenia (najprawdopodobniej), co wymaga pełnego odlutowania go. Doszedłem do tego wniosku, ponieważ nie mogłem namierzyć tego portu UART do układu obok RTL8720 i nigdzie indziej na spodzie tego urządzenia. Jest on okablowany gdzieś pod płytą i być może w jakiejś środkowej warstwie płyty, więc nie mogłem zobaczyć połączenia.

    Więc tak, chip obok RTL wydaje się być najprawdopodobniej jakimś sterownikiem wyświetlacza. W każdym razie pozostało tylko flashowanie standardowego oprogramowania układowego i wąchanie ruchu TuyaMCU na tym UART. Od tego momentu powinno być gładko, ponieważ wszystkie dpID zostały znalezione i powinny się łatwo skonfigurować. Również problemy z zasilaniem, które mam, powinny zniknąć, jeśli podczas uruchamiania RTL8720 zostaną wysłane odpowiednie pakiety danych w celu zasilania TuyaMCU.

    Mam trochę innej pracy, więc nie mogę teraz zająć się sniffowaniem komunikacji. Ale na pewno się tym zajmę.
  • REKLAMA
  • #43 21571326
    kasperkasperfish
    Poziom 1  
    Posty: 1
    jakaś aktualizacja na ten temat? Mam to samo urządzenie działające od 2 lat za pośrednictwem tuya cloud-> homeassistant. Byłbym zainteresowany flashowaniem niestandardowego oprogramowania układowego, aby całkowicie ominąć chmurę tuya. pokój
  • #44 21571628
    groove6j
    Poziom 10  
    Posty: 52
    Pomógł: 3
    Ocena: 13
    >>21571326
    Tak, ta integracja to totalna tandeta dla tego urządzenia. Działa wolno i niekompletnie.

    Musimy sniffować ruch TuyaMCU na pierwszym UART (tym nieoznaczonym LOG) ze stockowym firmware. Nie mogłem uzyskać tam żadnych danych, ale już sflashowałem urządzenie.

    Możesz spróbować sflashować urządzenie i przekazać swoje spostrzeżenia. Po prostu zrób kopię zapasową i użyj narzędzia Windows AmebaD, wydaje się, że działa lepiej.
  • #46 21571823
    groove6j
    Poziom 10  
    Posty: 52
    Pomógł: 3
    Ocena: 13
    Udało mi się przywrócić ustawienia fabryczne. Urządzenie działa ponownie w pełni. Spróbowałem sparować z Tuya i otrzymałem interesujące dane wyjściowe na UART (po wejściu w tryb parowania).
    
    Initializing WIFI ...
    WIFI initialized
    init_thread(58), Available heap 0x17f8b18:12:15 INFO  tuya_iot_com_api.c:148: rst_reason is 0
    OFFSET = 97d
    GAIN_DIV = 2ad6
    18:12:15 INFO  tuya_module_demo.c:1227: thermostat_radiator:1.0.6
    18:12:15 INFO  tuya_module_demo.c:1228: firmware compiled at Jun 17 2023 12:06:23
    18:12:15 INFO  simple_flash.c:670: init succ
    18:12:15 INFO  mf_test.c:139: have actived over 15 min, not enter mf_init
    18:12:15 INFO  tuya_main.c:142: mf_init succ
    18:12:15 INFO  tuya_main.c:143: firmware compiled at Jun 17 2023 12:06:23
    18:12:15 INFO  tuya_module_demo.c:1056: product_info = {"p":"eaacu1av8nz9qdva","v":"2.0.11","c":1,"t":0}z
    18:12:15 INFO  tuya_module_demo.c:1307: pid = eaacu1av8nz9qdva, ver = 2.0.11, wifi_set_mode = 1
    18:12:15 INFO  tuya_iot_com_api.c:954: country_code =
    18:12:15 INFO  tuya_iot_com_api.c:958: MAC[1c-90-ff-16-2f-63]
    wifi_set_lps_smartps:2
    [tuya_module_demo.c:1157] sleep_time_ms = 1000
    [tuya_module_demo.c:1169] wifi is not set for powersave, don't do everything
    [tuya_module_demo.c:1157] sleep_time_ms = 30000
    18:12:15 INFO  tuya_iot.c:577: tuya_iot_init
    18:12:15 ERROR tuya_endpoint.c:158: local_storage_get region fail:0xffffffff
    18:12:15 INFO  tuya_endpoint.c:234: endpoint_mgr.region:
    18:12:15 INFO  tuya_endpoint.c:235: endpoint_mgr.regist_key:
    18:12:15 INFO  tuya_endpoint.c:200: Environment:pro
    18:12:15 INFO  tuya_endpoint.c:210: Host region:AY
    18:12:15 WARN  tuya_iot.c:108: activate config not found:-1
    02:00:00 INFO  lpmgr.c:148: min_dtim = 0
    product_id:total len = 16
    65 61 61 63 75 31 61 76 38 6e 7a 39 71 64 76 61
    uuid:total len = 16
    66 38 64 63 65 63 32 38 38 38 36 64 61 63 39 64
    auth_key:total len = 32
    75 77 71 42 53 31 54 4d 41 53 37 57 73 42 6d 4a 42 6c 63 63 66 38 6e 63 54 61 4a 4a 66 45 69 5a
    device id key ::total len = 16
    74 9d f9 ea 60 3b 08 87 33 ec 29 f0 6e b1 c4 97
    adv->data:total len = 28
    02 01 06 03 02 01 a2 14 16 01 a2 00 65 61 61 63 75 31 61 76 38 6e 7a 39 71 64 76 61
    scan_resp->data:total len = 30
    03 09 54 59 19 ff d0 07 00 03 00 00 04 00 94 e9 6f 88 2b 9a 83 b8 b5 b7 82 2d 1b ba 4b 7b
    


    Spróbuję teraz sniffować TuyaMCU.
  • #48 21571866
    groove6j
    Poziom 10  
    Posty: 52
    Pomógł: 3
    Ocena: 13
    >>21571847 Załączyłem pełną listę dpidów w pierwszym poście.

    Próbowałem wielu szybkości transmisji, nie mogę nic wydobyć z tego UART, teraz nawet z flashowanym oprogramowaniem układowym. Jakieś pomysły?
    Próbowałem również zamieniać linie TX i RX. Również zmiana temperatury z aplikacji Tuya działa, ale brak danych.

    Za pomocą oscyloskopu nie ma oscylacji na liniach TX i RX. Jednak na LOG TX mam oscylację, gdy dane dziennika wchodzą podczas rozruchu (bardzo normalne). Potem nic na obu UART-ach.

    Chociaż występuje oscylacja na SWDIO (patrz 5 pinów na etykiecie baterii), gdy zdalnie zmieniam temperaturę. Ale to jakiś inny protokół. Podczas uruchamiania jest rozsądna ilość oscylacji. I to jest chyba sposób wymiany danych na tym urządzeniu?

    SWDIO i SWCLK są podłączone przez rezystor i (diodę lub tranzystor) do dwóch pinów (na dole 5 i 6 od lewej). Nie wiem, który to pin1, bo górna część układu jest oskrobana.
  • #49 21571868
    divadiow
    Poziom 38  
    Posty: 5236
    Pomógł: 449
    Ocena: 918
    groove6j napisał:
    Załączyłem pełną listę dpidów w pierwszym poście
    .
    Ha. Mój błąd. Pomyślałem, że to dziwne, że nie opublikowałem tego wcześniej z jakiegoś powodu. No cóż

    Dodano po 7 [godzinach] 47 [minutach]: .

    groove6j napisał:
    Nie wiem który to pin1, bo górna część chipa jest zeskrobana.


    znacznik pin1?
    Zbliżenie na niebieską płytkę PCB z układem scalonym i czerwoną strzałką wskazującą jeden z pinów.

    czy było kiedykolwiek powiedziane, co to jest oznaczone? Rozpoznaję słabe logo
    Zdjęcie płytki drukowanej z zaznaczonym na czerwono dużym układem scalonym w obudowie kwadratowej. .

    Dodano po 7 [minutach]: .

    ah. Może Cmsemicon jak widać tutaj https://www.elektroda.com/rtvforum/topic4041794.html#20999418
  • #50 21571975
    p.kaczmarek2
    Moderator Smart Home
    Posty: 14795
    Pomógł: 659
    Ocena: 12945
    groove6j napisał:

    Próbowałem wielu szybkości transmisji, nie mogę nic wydobyć z tego UART, teraz nawet z flashowanym oprogramowaniem układowym. Jakieś pomysły?

    Złe piny? A może spróbować bardziej niezawodnego podejścia:
    Analizator logiczny Salae 24MHz za 10$ - analiza nieznanego protokołu wyświetlacza LED
    Pomogłem? Kup mi kawę.
  • #51 21572734
    groove6j
    Poziom 10  
    Posty: 52
    Pomógł: 3
    Ocena: 13
    divadiow napisał:
    Może Cmsemicon

    To jest BAT32G127GH 232101T. Może za LCD jest jakiś inny układ MCU, ale teraz nie jestem tego pewien. Najprawdopodobniej nie ma tam żadnego układu.

    p.kaczmarek2 napisał:
    Złe piny?

    Najprawdopodobniej UART nie jest w ogóle używany w tym wariancie płyty. TX i RX są po prostu na 3.3v i nie ma napięcia z drugiej strony (które prawdopodobnie nigdzie nie idzie). Po prostu są tam te pady i tyle. Nie zarejestrowałem żadnych oscylacji. Istnieje kilka innych wariantów tego termostatu, które mogą mieć inną konfigurację płytki, w której te pady są używane.

    p.kaczmarek2 napisał:
    spróbuj bardziej niezawodnego podejścia

    Zgadza się, zamówię jeden i spróbuję rozgryźć ten protokół, który przechodzi przez tę linię SWDIO. Który z nazwy powinien być SWD. Czy to w ogóle możliwe z OpenRTL?
  • #53 21573297
    groove6j
    Poziom 10  
    Posty: 52
    Pomógł: 3
    Ocena: 13
    >>21573287
    To ma sens, prawdopodobnie mógłbym też odczytać tego flasha, ale z tym binarnym blobem niewiele można osiągnąć, tak.

    Cóż, żaden z obu UARTów nie jest podłączony do BAT32, ale SWD jest, więc Tuya pewnie ma jakiś sterownik SWD, który zajmuje się komunikacją.

    W każdym razie dzięki za pomoc, to staje się o wiele jaśniejsze.
  • #54 21847480
    amigos
    Poziom 16  
    Posty: 309
    Pomógł: 3
    Ocena: 131
    Makro zdjęcie niebieskiej płytki PCB z układem scalonym i elementami SMD.

    Zbliżenie na układ scalony BAT32G12 na niebieskiej płytce PCB z elementami SMD

    Płytka PCB urządzenia z oznaczeniem LR6/AA i sprężynami koszyka baterii, w obudowie
    Trochę czasu już minęło od ostatniego posta ale może Wam się to przyda. Otrzymałem T9W w nowszej wersji. Ma małe modyfikacje. Jeżeli chodzi o oprogramowanie to poprzednie miały możliwość ustawienia histerezy co 0.5 stopnia, a ten co 0.1 .
    Zbliżenie na niebieską płytkę PCB z elementami SMD i nadrukiem „R6/AA”.
  • #55 21847883
    divadiow
    Poziom 38  
    Posty: 5236
    Pomógł: 449
    Ocena: 918
    >>21847480

    interesujące. wersja XR806. Czy przechwyciłeś boot log, zrzuciłeś firmware itp? Jakie są plany?

    Dodano po 1 [godzinie] 50 [minutach]:

    @groove6j Bawiłem się twoją kopią zapasową i teraz uruchamia mi się na moim BW16E/RTL8720DN. Równie dobrze mogę po prostu wkleić z GPT to, co trzeba zrobić, aby ominąć sprawdzanie poprawności, aby go uruchomić:

    Kod: Text
    Zaloguj się, aby zobaczyć kod


    etc etc, myślę, że sprawdza sygnaturę zależną od urządzenia/flashID. Więc to się nie udaje, a następnie boot zapętla się na nieoczekiwanym flashu (lub robi coś mac/efuse i to się nie udaje). Teraz otrzymuję ten dziennik rozruchu:

    Kod: Text
    Zaloguj się, aby zobaczyć kod


    a następnie, zgodnie z oczekiwaniami, wydaje się, że czeka na odpowiedź MCU.

    Nie otrzymuję żadnych bajtów na żadnym bicie na zwykłych UARTach, ale istnieje ten wyraźny powtarzający się wzorzec, w czasie z odpytywaniem aplikacji, na PA26 (najwyraźniej UART3_TX):

    Kod: Text
    Zaloguj się, aby zobaczyć kod


    nie mam pojęcia, jaki to może być protokół. Jeśli nadal jesteś zainteresowany sondowaniem, dobrze byłoby wiedzieć, co odpowiada MCU.

    Załatany dump załączony dla każdego, kto chciałby się pobawić.
    Załączniki:
    • Tuya_EZAIoT_T9W_invalid_image_handler_KM4_patched.bin (4 MB) Musisz być zalogowany, aby pobrać ten załącznik.

Podsumowanie tematu

LABEL_AI_GENERATED
Dyskusja dotyczy termostatu EZAIoT Wi-Fi RF (model T9W 2.0 R9BW 2.0) opartego na układzie Realtek, prawdopodobnie RTL8720DN lub RTL8721D, z dwuzakresowym WiFi i komunikacją RF 433 MHz. Urządzenie składa się z dwóch części: odbiornika RF (RT-RC9PLUS 1.1_PCB v1.0) zasilanego z sieci oraz termostatu pokojowego z ekranem LCD, pokrętłem i WiFi zasilanego bateriami lub USB-C. Próby lokalnego sterowania poprzez flashowanie OpenBeken (OpenRTL8720D) napotkały na problemy z identyfikacją i komunikacją MCU TuyaMCU, który prawdopodobnie znajduje się pod wyświetlaczem i komunikuje się przez UART lub alternatywne linie (np. SWDIO). Flashowanie wymagało użycia narzędzi Windows (AmebaD) zamiast skryptów Pythona ze względu na błędy sum kontrolnych. Urządzenie posiada dwa sloty firmware, a uruchamianie OpenRTL powoduje test ekranu z pełnym podświetleniem pikseli. Komunikacja TuyaMCU jest trudna do wykrycia, prawdopodobnie z powodu ukrytych ścieżek i braku aktywności na standardowych liniach UART. Zasilanie modułu WiFi i MCU jest złożone, z zależnościami między zasilaniem VCC, USB-C i bateriami. Protokół TuyaMCU może być w wersji v0, typowej dla urządzeń bateryjnych, wymagającej sterownika tmSensor. Udało się wykonać kopię zapasową firmware i częściowo sflashować OpenRTL8720D, jednak pełna integracja i lokalne sterowanie wymaga dalszych badań, sniffowania ruchu UART i analizy protokołów. W nowszych wersjach termostatu wprowadzono modyfikacje oprogramowania, m.in. histerezę co 0,1 stopnia. Dyskusja zawiera liczne zdjęcia i logi, a także linki do narzędzi i firmware OpenBeken oraz wskazówki dotyczące debugowania i flashowania urządzenia.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA