Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

WB2S/BK7231 Tutorial - tworzymy własny firmware - UDP/TCP/HTTP/MQTT

p.kaczmarek2 21 Jan 2022 10:13 22002 74
Optex
  • #31
    btsimonh
    Level 10  
    Opublikowałem dwa repozytoria na github:

    github.com/btsimonh/hid_download_py
    github.com/btsimonh/tuya-iotos-embeded-sdk-wifi-ble-bk7231t

    ,,Program do pobierania" może odczytywać/zapisywać, ale także rozpakowywać/odszyfrowywać oryginalne oprogramowanie układowe.
    SDK jest "lekkim dotknięciem" zmodyfikowanym SDK (w tym mody i próbki @p.kaczmarek2, chociaż jego próbki nie będą działać bez tuya lib), ale usuwa tuya lib, a moja próbka działała (do pewnego stopnia) bez tuya zaangażowany. Nadal potrzebuje cygwina ....
    Ponieważ moje urządzenia są teraz martwe, mój programista zatrzymuje się na chwilę. Jeśli ktoś myśli, że STLink może zaprogramować te układy, proszę. wskaż mi właściwy kierunek! :)
    Br, btsimonh
  • Optex
  • #32
    p.kaczmarek2
    Level 26  
    To świetna robota, @btsimonh ! Wkrótce wypróbuję twój fork.

    Nie przejmuj się zablokowaniem układu BK, właśnie otrzymałem niewielką darowiznę w postaci kilku modułów WB2S i spróbuję je zaprogramować za pomocą ST Link:
    WB2S/BK7231 Tutorial - tworzymy własny firmware - UDP/TCP/HTTP/MQTT

    Co do awarii publish MQTT.... Zajmę się tym. Nie zawieszał się przed twoimi zmianami, prawda? Więc odpięcie się od Tuya coś zepsuło?
  • Optex
  • #33
    btsimonh
    Level 10  
    Myślę, że coś się nie dzieje w konfiguracji Wi-Fi podczas uruchamiania - podczas uruchamiania w dzienniku jest jakaś forma wyjątku (taka sama, jak wtedy, gdy nie była uwierzytelniana), ale potem łączy się po tym porządku. Na MQTT rx po prostu uruchamia się ponownie, gdy wiadomość zostanie wysłana na ten temat. Zakładam, że jest to prawdopodobnie problem z wątkami/nieprawidłowy dostęp do pamięci - ta biblioteka IP najwyraźniej nie jest bezpieczna dla wątków. Również mój zgłoszony jako układ BK7231S, więc może mieć pewne różnice.

    Daj mi znać, jeśli odniesiesz sukces z STLink - gdzieś mam. I proszę odczytać twój bootloader (albo przez STLink, jeśli możesz, albo z oprogramowania układowego - po prostu skonfiguruj serwer TCP i po podłączeniu wylej zawartość flash do osoby, która się połączyła, a następnie zbierz to w coś takiego jak NodeRed?) - możemy porównać do bootloadery w SDK.

    Dziękuję za rozpoczęcie tego wszystkiego! :) .
  • #34
    ptooley
    Level 2  
    @btsimonh jak zasilasz moduł do testów? Odkryłem, że zasilanie 3v3 z mojego CH340G nie może dostarczyć prądu, którego moduł potrzebuje do Wi-Fi, a chip zbrązowiał i resetował się.

    W rzeczywistości wydaje się dość wrażliwy na napięcie, w oparciu o min-max z multimetru cyfrowego wydaje się, że brązowieje tylko około 3,19-3,2V.

    Używanie PI2/3/4 dla 3v3 i Uart rozwiązuje ten problem, ponieważ mają mocny regulator przełączający 500mA.
  • #35
    btsimonh
    Level 10  
    Mój miał wejście 12 V .... więc podłączyłem gnd do 2 x adapterów szeregowych plus tylko 4 linie szeregowe. Następnie użył 12V do zasilania płyty. (Kontroler taśm LED Calex).
    Byłbym bardzo zainteresowany, gdyby ktoś spróbował CTS (lub RTS? nie pamiętam; sprawdź repozytorium Pythona, aby zobaczyć, co ustawia) podłączonego do CS, aby sprawdzić, czy to resetuje płytę do flashowania?
  • #36
    p.kaczmarek2
    Level 26  
    ptooley wrote:
    @btsimonh jak zasilasz moduł do testów? Odkryłem, że zasilanie 3v3 z mojego CH340G nie może dostarczyć prądu, którego moduł potrzebuje do Wi-Fi, a chip zbrązowiał i resetował się.


    Kilkakrotnie podkreślałem w moim tutorialu (tu i w przypadku XR809 i również w przypadku TYWE2S), że używanie 3,3V bezpośrednio z konwertera USB na TTL nie działa u mnie.
    Nie badałem tego zbyt wiele, ale po prostu założyłem, że piny 5 V i 3,3 V mojego USB do TTL służą tylko do wybierania poziomów logicznych UART 3,3 V lub 5 V, nie są przeznaczone do zasilania obwodów zewnętrznych.

    btsimonh wrote:
    I proszę odczytać twój bootloader (albo przez STLink, jeśli możesz, albo z oprogramowania układowego - po prostu skonfiguruj serwer TCP i po podłączeniu wylej zawartość flash do osoby, która się połączyła, a następnie zbierz to w coś takiego jak NodeRed?) - możemy porównać do bootloadery w SDK.

    Zakładam, że przetestowałeś flashowe API zapisu i odczytu w obecnym SDK?
    Btw, gdzie jest twój blokujący chipy "http_flash_init"? Nie ma też "http_wr_to_flash", musiałeś zapomnieć o jednym pliku. Chciałem to sprawdzić, ponieważ mam kilka modułów WB2S (dzięki darowiźnie od @PIXELLO) i mogę je dowolnie testować i psuć, nie będzie to duża strata. Nie jestem jednak w stanie Ci pomóc, gdy nie widzę kodu aktualizacji flasha.
    EDYCJA: Znalazłem, jest w utils_httpc.c

    Przygotowanie wszystkich tych modułów WB2S wymaga precyzyjnego lutowania.
    WB2S/BK7231 Tutorial - tworzymy własny firmware - UDP/TCP/HTTP/MQTT WB2S/BK7231 Tutorial - tworzymy własny firmware - UDP/TCP/HTTP/MQTT
  • #37
    btsimonh
    Level 10  
    p.kaczmarek2 wrote:
    Zakładam, że przetestowałeś flashowe API zapisu i odczytu w obecnym SDK?

    Ha ha! Zakładasz zdecydowanie za dużo :) . Nie, głupio ufałem, że to może działać, i byłem tak podekscytowany, że twój serwer TCP zadziałał, po prostu poszedł na to, na mój koszt.
    Więc... tak, uważaj na flesz, a nie na nieostrożność jak ja. MOŻE zadziałało, gdybym nie próbował jednocześnie bk_printf wszystkich otrzymanych danych!
    Znalazłem kilka interesujących informacji o SPI związanych z bekenem tutaj: https://mitxela.com/forum/topic/beken-bk3231/2 - "ten sam, ale inny" chip? - tak się skusiło, żeby wykopać esp8266 i spróbować.
  • #38
    p.kaczmarek2
    Level 26  
    btsimonh wrote:
    t MÓGŁBY zadziałać, gdybym nie próbował jednocześnie bk_printf wszystkich otrzymanych danych!

    Powiedziałbym raczej, że miał 0 szans na poprawne działanie. Jeśli dobrze rozumiem, użyłeś bootloadera Tuya, aby wgrać swój (mój) zmodyfikowany kod serwera TCP do sekcji pamięci BK User Area, a następnie... następnie próbowałeś użyć kodu z User Area, aby zaktualizować User Area?

    Nie da się tego zrobić bez zewnętrznego bufora, to jak granie w rosyjską ruletkę z kodem maszynowym, w pewnym momencie zdalna aktualizacja zaczyna nadpisywać aktualnie wykonywany kod, a ostatecznie kończy się wykonywaniem losowych instrukcji prowadzących do przypadkowych błędów.

    Możesz to zrobić tylko wtedy, gdy umieścisz kod bootloadera w oddzielnej sekcji pamięci, którą aktualizujesz.

    Zacząłem więc pracować nad jednym z podarowanych modułów WB2S:
    WB2S/BK7231 Tutorial - tworzymy własny firmware - UDP/TCP/HTTP/MQTT
    Ok, myślę, że przyjąłem zbyt skomplikowane podejście, ale działa:
    WB2S/BK7231 Tutorial - tworzymy własny firmware - UDP/TCP/HTTP/MQTT
    WB2S/BK7231 Tutorial - tworzymy własny firmware - UDP/TCP/HTTP/MQTT
    WB2S/BK7231 Tutorial - tworzymy własny firmware - UDP/TCP/HTTP/MQTT
    Oto dziennik debugowania z oryginalnego modułu tuya:
    tuya_origi..._uart2.txt Download (5.83 kB)
    Oto oryginalne oprogramowanie układowe (ale myślę, że zaczyna się od offsetu 0x11000 i ma rozmiar 0x00200000 bajtów, nie można odczytać samego bootloadera za pomocą Beken Writer V1.60):
    tuya_origi...m_wb2s.zip Download (5.86 MB)
    Możesz spróbować go odszyfrować, jeśli chcesz.

    Czy zbadałeś https://github.com/bekencorp/bk7231_alios_sdk/?
    Udało mi się raz skompilować Blink dla BK z tym SDK, ale wymagało to ST-link v2 do programowania, którego nie podłączyłem.
    WB2S/BK7231 Tutorial - tworzymy własny firmware - UDP/TCP/HTTP/MQTT
    ale jeśli przyjrzysz się uważnie, zobaczysz, że używa st-flash do wgrywania...
    st-flash, tak?
    Możemy go tu poszukać:
    https://github.com/bekencorp/bk7231_alios_sdk/search?q=st-flash
    Myślę, że następnym logicznym krokiem jest użycie st-flash, aby najpierw odczytać, a następnie wgrać CAŁE oprogramowanie (w tym bootloader, a nie tylko sekcję obszaru użytkownika) z mojego WB2S.
    https://github.com/stlink-org/stlink

    Wypróbuję to wkrótce, więc jeśli masz jakieś sugestie lub pomysły, wypowiedz je teraz. Wolałbym unikać zbędnego blokowania/popsucia modułu, który wymagał tak trudnego lutowania.

    EDYCJA: Ważna wskazówka dla użytkowników BKwriter1.60! Jeśli otrzymujesz Failed podczas programowania (ale po skasowaniu, więc chip już się nie uruchamia), spróbuj zmienić prędkość transmisji, czasami zmiana nawet z niższej na wyższą pomaga!
    WB2S/BK7231 Tutorial - tworzymy własny firmware - UDP/TCP/HTTP/MQTT
    EDIT2: dodano en.stsw-link009_v2.0.2.zip (sterownik stlink usb dla Windows) i stlink-1.7.0-x86_64-w64-mingw32.zip (st-flash.exe dla Windows)
  • #39
    btsimonh
    Level 10  
    ohh... wyglądający obiecująco.
    Czy uważasz, że oprogramowanie wbudowane w SDK alios zawiera bootloader? wiersz poleceń stlink miga do 0x08000000, co dla mnie oznacza, że zapisuje na początku flasha :) . Ale patrząc na pakiet SDK alios, nie mogę znaleźć miejsca, w którym łączy on bootloader i dane wyjściowe kompilacji :( . Może dołączyć tutaj wyjściowy plik .bin?
    Uważam, że jeśli bootloader jest dołączony, powinieneś znaleźć blok ,,RBL" w 0x10000, a początek rzeczywistej aplikacji w 0x11000. A aplikacja powinna być zaszyfrowana i mieć dodatkowe 2 bajty (crc?) co 32.
    Ponad uart, możesz odczytać blok RBL w 0x10000, właśnie zdałem sobie sprawę, dlaczego.. jest to opisane jako ,,informacje o rozruchu" w https://github.com/bekencorp/bk7231_alios_sdk/blob/master/board/bk7231devkitc/board.c
    Warto również zauważyć, że alios SDK nie zawiera package.exe ani encrypt.exe, o ile widzę, patrząc na github (chociaż ich wyszukiwanie w repozytorium wydaje się zagrożone)...

    Mam stlinkv2, po prostu muszę go wykopać z hoverboardu... i wypracować połączenia. Na hoverboardzie myślałem, że używa metody flashowania SWD, ale mogę się mylić.

    Z instrukcji beken bk7231 mamy piny JTAG.
    WB2S/BK7231 Tutorial - tworzymy własny firmware - UDP/TCP/HTTP/MQTT

    Mam P20/P21/P22, a ADC3 to P23: (uwaga, to są numery PORT, a nie PIN).
    WB2S/BK7231 Tutorial - tworzymy własny firmware - UDP/TCP/HTTP/MQTT

    i z przewodnika projektowania sprzętu tuya, https://developer.tuya.com/en/docs/iot/bk7231t-cob-hardware-design-guideline?id=Ka97u6dz0h8b8 , widzimy, że te szpilki są ważne (patrz zdjęcie projektu płyty z punktami testowymi) i są wymienione do flashowania.
    Widzimy również, że piny SPI to P14/P15/P16/P17.
    Nie mam P17 (chyba, że to IRDA?), więc może nie mogę łatwo flashować SPI.

    Jednak czytając więcej o JTAG, procedury flashowania są bardzo zależne od producenta - niektóre polegają na załadowaniu podprogramu flashującego do pamięci RAM, a niektóre wywołują podprogram flashujący w pamięci ROM maski... Nie mam nadziei :( .

    będzie zainteresowany twoimi przemyśleniami/wnioskami.... szukając teraz mojego stlinka....
    br,
    Szymon

    ps jest karta katalogowa dla twoich modułów:
    https://developer.tuya.com/en/docs/iot/wb3s-module-datasheet?id=K9dx20n6hz5n4
    wspomina o pinach jtag w "punktach testowych", ale nie o jtag

    pps
    mój jig właśnie się powiększył:
    WB2S/BK7231 Tutorial - tworzymy własny firmware - UDP/TCP/HTTP/MQTT

    PPP
    Cholera, mam ten stlinkv2, bez jtaga, chyba że zmodyfikowałem, ale potrzebujesz dwóch:
    https://github.com/jeanthom/DirtyJTAG/blob/master/docs/install-stlinkv2.md
  • #40
    p.kaczmarek2
    Level 26  
    btsimonh wrote:
    ohh... wyglądający obiecująco.
    Czy uważasz, że oprogramowanie wbudowane w SDK alios zawiera bootloader?

    Miałem raczej nadzieję, że uda nam się odczytać bootloader z innego modułu Tuya.

    btsimonh wrote:

    Warto również zauważyć, że alios SDK nie zawiera package.exe ani encrypt.exe

    Podejrzewam, że package.exe i encrypt.exe mogą być używane tylko przez tuya (tylko podczas flashowania przez bootloader UART), i nie potrzeba ich podczas wgrywania przez SPI? Ale to tylko przypuszczenie

    btsimonh wrote:

    o ile widzę, patrząc na github (chociaż ich wyszukiwanie repozytorium wydaje się zagrożone)...

    Czy próbowałeś zainstalować ten pakiet SDK? On instaluje niektóre rzeczy w locie, dlatego wydaje się, że czegoś brakuje w ich repozytorium git.

    Będę musiał zainstalować go ponownie, ponieważ straciłem z tym moją wirtualną maszynę Ubuntu.

    Zrobiłem wiele prób z ST-Link V2, ale jak dotąd bez rezultatów.

    Najpierw musiałem zainstalować sterowniki ST-Link V2, co chyba się udało poprawnie, ale nie testowałem ich z żadnymi urządzeniami, ponieważ nie mam pod ręką nic, co można flashować z ST-Link V2.

    Użyłem tych pinów:
    WB2S/BK7231 Tutorial - tworzymy własny firmware - UDP/TCP/HTTP/MQTT
    Sprawdziłem połączenie z multimetrem (można to zrobić testem diod pokazującym spadek napięcia, ponieważ IO MCU jest połączone z VDD/GND za pomocą diod zabezpieczających).

    Próbowałem też z pinem CEN podciągniętym do masy i do zasilania (nie jednocześnie, raz tak, raz tak).

    Możesz zobaczyć polecenia, których użyłem w logach poniżej.


    Próba odczytu bez sterownika (tylko by pokazać co się dzieje gdy nie ma drivera)
    Code:

    W:\Tuya\stlink-1.7.0-x86_64-w64-mingw32\stlink-1.7.0-x86_64-w64-mingw32\bin>st-flash.exe read test.bin 0x0 0x10
    st-flash 1.7.0
    libusb: info [winusb_get_device_list] The following device has no driver: 'USB\VID_0483&PID_3748\5&16BDD27B&0&5'
    libusb: info [winusb_get_device_list] libusb will not be able to access it
    libusb: info [winusb_get_device_list] The following device has no driver: 'USB\VID_8087&PID_0A2B\5&16BDD27B&0&9'
    libusb: info [winusb_get_device_list] libusb will not be able to access it
    2022-01-22T23:33:31 WARN usb.c: Couldn't find any ST-Link devices
    libusb: warning [libusb_exit] some libusb_devices were leaked


    Próba odczytu ze sterownikiem:
    Code:

    W:\Tuya\stlink-1.7.0-x86_64-w64-mingw32\stlink-1.7.0-x86_64-w64-mingw32\bin>st-flash.exe read test.bin 0x0 0x10
    st-flash 1.7.0
    libusb: info [winusb_get_device_list] The following device has no driver: 'USB\VID_8087&PID_0A2B\5&16BDD27B&0&9'
    libusb: info [winusb_get_device_list] libusb will not be able to access it
    [!] send_recv read reply failed: LIBUSB_ERROR_PIPE
    [!] send_recv STLINK_DEBUG_READCOREID
    2022-01-22T23:41:18 ERROR common.c: Failed to read core_id
    [!] send_recv read reply failed: LIBUSB_ERROR_PIPE
    [!] send_recv STLINK_JTAG_READDEBUG_32BIT
    2022-01-22T23:41:18 ERROR common.c: Can not connect to target. Please use 'connect under reset' and try again
    Failed to connect to target


    Z przełącznikiem --reset:
    Code:

    W:\Tuya\stlink-1.7.0-x86_64-w64-mingw32\stlink-1.7.0-x86_64-w64-mingw32\bin>st-flash.exe --reset read test.bin 0x0 0x10
    st-flash 1.7.0
    libusb: info [winusb_get_device_list] The following device has no driver: 'USB\VID_8087&PID_0A2B\5&16BDD27B&0&9'
    libusb: info [winusb_get_device_list] libusb will not be able to access it
    [!] send_recv read reply failed: LIBUSB_ERROR_PIPE
    [!] send_recv STLINK_DEBUG_READCOREID
    2022-01-22T23:48:48 ERROR common.c: Failed to read core_id
    [!] send_recv read reply failed: LIBUSB_ERROR_PIPE
    [!] send_recv STLINK_JTAG_READDEBUG_32BIT
    2022-01-22T23:48:48 ERROR common.c: Can not connect to target. Please use 'connect under reset' and try again
    Failed to connect to target



    Z przełącznikiem --connect-under-reset:

    Code:

    W:\Tuya\stlink-1.7.0-x86_64-w64-mingw32\stlink-1.7.0-x86_64-w64-mingw32\bin>st-flash.exe --connect-under-reset read test.bin 0x0 0x10
    st-flash 1.7.0
    libusb: info [winusb_get_device_list] The following device has no driver: 'USB\VID_8087&PID_0A2B\5&16BDD27B&0&9'
    libusb: info [winusb_get_device_list] libusb will not be able to access it
    [!] send_recv read reply failed: LIBUSB_ERROR_PIPE
    [!] send_recv STLINK_JTAG_WRITEDEBUG_32BIT
    [!] send_recv read reply failed: LIBUSB_ERROR_PIPE
    [!] send_recv STLINK_JTAG_READDEBUG_32BIT
    [!] send_recv read reply failed: LIBUSB_ERROR_PIPE
    [!] send_recv STLINK_JTAG_READDEBUG_32BIT
    2022-01-22T23:49:20 WARN common.c: NRST is not connected
    [!] send_recv read reply failed: LIBUSB_ERROR_PIPE
    [!] send_recv STLINK_JTAG_WRITEDEBUG_32BIT
    [!] send_recv read reply failed: LIBUSB_ERROR_PIPE
    [!] send_recv STLINK_JTAG_WRITEDEBUG_32BIT
    [!] send_recv read reply failed: LIBUSB_ERROR_PIPE
    [!] send_recv STLINK_JTAG_WRITEDEBUG_32BIT
    [!] send_recv read reply failed: LIBUSB_ERROR_PIPE
    [!] send_recv STLINK_JTAG_READDEBUG_32BIT
    [!] send_recv read reply failed: LIBUSB_ERROR_PIPE
    [!] send_recv STLINK_JTAG_WRITEDEBUG_32BIT
    2022-01-22T23:49:20 ERROR common.c: Soft reset failed: error write to AIRCR
    [!] send_recv read reply failed: LIBUSB_ERROR_PIPE
    [!] send_recv STLINK_DEBUG_READCOREID
    2022-01-22T23:49:20 ERROR common.c: Failed to read core_id
    [!] send_recv read reply failed: LIBUSB_ERROR_PIPE
    [!] send_recv STLINK_JTAG_READDEBUG_32BIT
    2022-01-22T23:49:20 ERROR common.c: Can not connect to target. Please use 'connect under reset' and try again
    Failed to connect to target




    Z przełącznikiem debugowania:

    Code:

    W:\Tuya\stlink-1.7.0-x86_64-w64-mingw32\stlink-1.7.0-x86_64-w64-mingw32\bin>st-flash.exe --debug --reset read test.bin 0x0 0x10
    st-flash 1.7.0
    2022-01-23T00:13:24 DEBUG common.c: *** looking up stlink version
    2022-01-23T00:13:24 DEBUG common.c: st vid         = 0x0483 (expect 0x0483)
    2022-01-23T00:13:24 DEBUG common.c: stlink pid     = 0x3748
    2022-01-23T00:13:24 DEBUG common.c: stlink version = 0x2
    2022-01-23T00:13:24 DEBUG common.c: jtag version   = 0x1f
    2022-01-23T00:13:24 DEBUG common.c: swim version   = 0x7
    2022-01-23T00:13:24 DEBUG common.c: stlink current mode: mass
    2022-01-23T00:13:24 DEBUG usb.c: JTAG/SWD freq set to 0
    2022-01-23T00:13:24 DEBUG common.c: *** set_swdclk ***
    2022-01-23T00:13:24 DEBUG common.c: stlink current mode: mass
    2022-01-23T00:13:24 DEBUG common.c: *** stlink_enter_swd_mode ***
    2022-01-23T00:13:24 DEBUG common.c: Loading device parameters....
    2022-01-23T00:13:24 DEBUG common.c: *** stlink_core_id ***
    [!] send_recv read reply failed: LIBUSB_ERROR_PIPE
    [!] send_recv STLINK_DEBUG_READCOREID
    2022-01-23T00:13:24 ERROR common.c: Failed to read core_id
    [!] send_recv read reply failed: LIBUSB_ERROR_PIPE
    [!] send_recv STLINK_JTAG_READDEBUG_32BIT
    2022-01-23T00:13:24 ERROR common.c: Can not connect to target. Please use 'connect under reset' and try again
    Failed to connect to target


    Test sondy:
    Code:

    W:\Tuya\stlink-1.7.0-x86_64-w64-mingw32\stlink-1.7.0-x86_64-w64-mingw32\bin>st-info --probe
    [!] send_recv read reply failed: LIBUSB_ERROR_PIPE
    [!] send_recv STLINK_JTAG_READDEBUG_32BIT
    [!] send_recv read reply failed: LIBUSB_ERROR_PIPE
    [!] send_recv STLINK_DEBUG_RESETSYS
    [!] send_recv read reply failed: LIBUSB_ERROR_PIPE
    [!] send_recv STLINK_DEBUG_READCOREID
    [!] send_recv read reply failed: LIBUSB_ERROR_PIPE
    [!] send_recv STLINK_JTAG_READDEBUG_32BIT
    Found 1 stlink programmers
      version:    V2J31S7
      serial:     182306012612344D314B4E00
      flash:      0 (pagesize: 0)
      sram:       0
      chipid:     0x0000
      descr:      unknown device


    Nie mogę powiedzieć na pewno, że to nie jest właściwa droga, ale na pewno tym razem nie zadziałało.
    Spróbuję jeszcze raz później z innym modułem, może Ty też możesz spróbować?

    Do tej pory nie próbowałem binarki st-link, która jest instalowana z alios sdk, może mają zmodyfikowaną wersję?

    W międzyczasie mogę przygotować lepszą i bardziej przenośną bibliotekę HTTP

    EDYCJA: nie dajcie się zmylić przez "USB\VID_8087&PID_0A2B\5&16BDD27B&0&9" w moich logach, to urządzenie bez sterownika to nie ST-link, to coś innego na mojej magistrali USB
  • #41
    btsimonh
    Level 10  
    Patrzę na używanie mojego RPIZerowa jako bezpośredniego urządzenia JTAG i SPI, ale nie mogę zbudować OpenOCD z powodu głupich problemów z SSL w Pi (stary system operacyjny). Nie chciałem instalować nowej wersji SD, ale być może będę musiał. W międzyczasie przetestowałem wszystkie moje przełączniki naścienne z wbudowanym interfejsem Tasmota, które są gotowe do instalacji w przyszłym tygodniu. Kupiłem jednostki Athoma.
    Prawie kupiłem kolejną taśmę LED Calex - Tescos w Wielkiej Brytanii "rozwinęło się" w sprzedaży urządzeń opartych na Calex tuya. Ale myślę, że zrozumienie procedury odblokowywania jest moim powołaniem w tej chwili.

    hmm... myśl. Mogę sflashować płytę programistyczną ESP32 z Espruino - która ma dostępne SPI :) . nigdy go nie używałem, więc dobry pretekst, aby spróbować....
  • #42
    jagheterfredrik
    Level 3  
    Naprawdę fajna robota.

    Wziąłem twój zrzut, @p.kaczmarek2, bk7231s_dump-2022-1-21-21-20-20.bin i zdałem sobie sprawę, że zawiera również bootloader zaczynający się od 0x1EF000. Można odszyfrować przy użyciu metody @btsimonh, ale zamieniając ostatni argument (start addr) na 0. Jest to ten sam, który jest dostępny w [1].

    [1] github /tuya/tuya-iotos-embeded-sdk-wifi-ble-bk7231t /blob/master/platforms/bk7231t/bk7231t_os/tools/generate/bootloader.bin
  • #43
    p.kaczmarek2
    Level 26  
    btsimonh wrote:

    hmm... myśl. Mogę sflashować płytę programistyczną ESP32 z Espruino - która ma dostępne SPI :) . nigdy go nie używałem, więc dobry pretekst, aby spróbować....

    Wypróbuj, czekam na wyniki Twoich testów! Możesz mi pomóc w testowaniu, kiedy odblokujesz swoją tablicę.

    Czy masz analizator zakresu/logiki?

    Ok, wstępna wersja robocza mojego serwera HTTP jest gotowa. Postanowiłem napisać jedną od podstaw, ponieważ nie podobała mi się istniejąca:
    WB2S/BK7231 Tutorial - tworzymy własny firmware - UDP/TCP/HTTP/MQTT
    (tak, wiem, że strcat jest niebezpieczny, może zaktualizować go do wersji przestrzegającej limitu rozmiaru bufora wyjściowego)
    Tak, widzisz poprawnie - podoba mi się to IDE. Naprawdę przyzwyczaiłem się do tego, kiedy dużo pracowałem w C/C++ i nadal go używam po... no cóż, tylu latach. I napisałem ten serwer na Windowsie.

    To bardzo fajna przenośna konfiguracja, która działa również na WB2S:
    WB2S/BK7231 Tutorial - tworzymy własny firmware - UDP/TCP/HTTP/MQTT
    Wykorzystuje wrappery funkcji i preprocesor do obsługi obu platform jednocześnie:
    WB2S/BK7231 Tutorial - tworzymy własny firmware - UDP/TCP/HTTP/MQTT
    Testowanie serwera HTTP w systemie Windows (bez BK) sprawia, że wszystko jest łatwiejsze i szybsze.
    Co więcej, taki kod serwera wielokrotnego użytku, który również pozwala mi uruchomić go na XR809:
    https://www.elektroda.com/rtvforum/topic3806769.html
    Dlatego będę wspierać OBU rodziny chipów jednym projektem.

    To jest dumne menu główne projektu (jak działało w WB2S):
    WB2S/BK7231 Tutorial - tworzymy własny firmware - UDP/TCP/HTTP/MQTT
    Ma formę kredytów WiFi:
    WB2S/BK7231 Tutorial - tworzymy własny firmware - UDP/TCP/HTTP/MQTT
    A oto konfigurator:
    WB2S/BK7231 Tutorial - tworzymy własny firmware - UDP/TCP/HTTP/MQTT
    Możesz mieć dowolną ilość przekaźników, przyciski na pierwszej stronie są generowane automatycznie.
    Obsługiwany jest również fizyczny przycisk na tablicy, który również łączy się automatycznie:
    WB2S/BK7231 Tutorial - tworzymy własny firmware - UDP/TCP/HTTP/MQTT
    Działa ładnie na tej płycie WB2S:
    WB2S/BK7231 Tutorial - tworzymy własny firmware - UDP/TCP/HTTP/MQTT
    I na tej desce będzie ładnie działać:
    WB2S/BK7231 Tutorial - tworzymy własny firmware - UDP/TCP/HTTP/MQTT

    Oczywiście wszystkie pozostałe procesy są nadal na mojej liście TODO, w tym obsługa MQTT (korzystanie z istniejącej biblioteki powinno być łatwe), przechowywanie pass/ssid Wi-Fi (we flashu? Będę musiał się tym zająć) itp., ale podstawy są skończone.

    Najprawdopodobniej niedługo przygotuję krótki artykuł pisemny/tutorial (tak jak w pierwszym poście), który pokaże dokładny proces i działanie mojego serwera HTTP. Następnie opublikuję aktualne postępy i oczywiście będę potrzebować testerów. Ktokolwiek?

    PS: Pamiętaj o wsparciu projektu, jeśli chcesz: https://paypal.me/openshwprojects Jeśli przekazałeś darowiznę i chcesz być wymieniony jako osoba wspierająca w wątku/kodzie itp., wyślij mi prywatną wiadomość tutaj


    BTW: Kod Ota jest tutaj:
    https://github.com/tuya/tuya-iotos-embeded-sd...7b83b/platforms/bk7231t/tuya_common/src./tuya
    Partycje:
    https://github.com/tuya/tuya-iotos-embeded-sd.../tuya_os_adapter/src/driver/tuya_hal_storge.c
    Szukam miejsca do przechowywania kart wifi.
  • #44
    btsimonh
    Level 10  
    Nie możemy się doczekać, aby móc ponownie uruchomić oprogramowanie i wnieść swój wkład...

    Walczyłem z SPI przez wiele wczoraj i 2 godziny dzisiaj - ale muszę włożyć głowę w sprzęt i sprawdzić wszystko poprawnie... dopiero w ciągu ostatnich 10 minut dzisiejszej gry zdałem sobie sprawę, że wszystkie połączenia są złe, ponieważ mój kabel taśmowy został złożony... :( . Potem zdałem sobie sprawę, że testowałem z płytą nie zasilaną, więc podłączyłem 12v. Kilka minut później zdałem sobie sprawę, że brodawka ścienna nie była podłączona :( . (tak to jest pracować z amatorami!!!).

    Więc teraz mam poprawne połączenia (?), ale nadal nie działa. Zachęcają mnie doniesienia o tym, że ktoś inny spisuje się na innym chipie Bekena, więc będę kontynuował. Ale teraz nie wiem, czy mogłem całkowicie podpalić chip lub uszkodzić piny SPI...
    Espruino wydaje się być niestabilne na ESP32, może na tyle, by się nim pobawić, ale nie jestem pewien, jak dobrze poradzi sobie z faktycznym flashowaniem.

    Czy próbowałeś już usunąć bibliotekę Tuya i pracować bez niej?
    Będzie zainteresowany, aby zobaczyć, czy subskrypcja MQTT działa dla Ciebie, przed i po usunięciu biblioteki Tuya.
    Nie udało mi się też uruchomić klienta http. Byłoby to dobre, przynajmniej dla HTTP:, jeśli nie HTTPS:. To ,,fajny" sposób robienia OTA.
    Jestem prawie pewien, że rozpoznawanie DNS nie działało w mojej implementacji bez tuya, ale również wystąpił błąd połączenia z samym adresem IP.

    br,

    Szymon
  • #45
    p.kaczmarek2
    Level 26  
    Obsługa MQTT działa! Teraz mogę sterować swoim przekaźnikiem (i praktycznie dowolnym modułem BK7231T opartym na prostych przekaźnikach?) na 3 sposoby:
    - przez MQTT, na przykład z Home Assistant
    - fizycznym przyciskiem na module
    - przez moją witrynę, która działa podobnie jak Tasmota

    (Mam nadzieję, że załaduje się dla Was cały film, nadal są problemy z naszym odtwarzaczem filmów Elektroda, postaram się niedługo skorzystać z YT)
    Jak widać, Home Assistant reaguje natychmiast na moje naciśnięcie fizycznego przycisku na płytce modułu WB2S, a płytka modułu WB2S natychmiast reaguje na moje kliknięcie przycisku HTML na stronie Home Assinstant.

    Wkrótce udostępnię aktualizację projektu z pełnym kodem i przewodnikiem krok po kroku. I oczywiście z dokumentacją mojego podejścia do zarządzania HTTP/pinami. Zostanie on opublikowany jako osobny temat na tym forum.

    btsimonh wrote:
    Nie możemy się doczekać, aby móc ponownie uruchomić oprogramowanie i wnieść swój wkład...

    Głównym problemem jest organizacja przepływu pracy związana z obsługą zarówno XR809, jak i BK7231,
    Chcę, aby mój backend systemu HTTP/pins/channels (new_pins.c i new_http.c) był używany przez oba projekty, ponieważ ułatwi to utrzymanie obu projektów.
    W tej chwili nie jestem pewien, jak to zorganizuję, w tej chwili moje pliki znajdują się w katalogu aplikacji projektu (fajnie, że kompilujące skrypty skanują automatycznie w poszukiwaniu wszystkich plików .c w tym katalogu, nie muszę modyfikować makefile), ale w końcu mógłbym je rozdzielić.

    Może skończę z jednym repozytorium zawierającym zarówno XR809 SDK, jak i BK7231 SDK oraz jeden współdzielony katalog na mój kod.

    Trochę obawiam się pomylenia ludzi z dwoma oddzielnymi projektami w jednym repozytorium, ale może warto to zrobić... Chcę "otworzyć" (jak w oprogramowaniu open-source) jak najwięcej chipów, i zarówno XR809, jak i BK7231 będzie kompatybilny z HA i być może niedługo znacznie więcej.

    Kolejnym problemem jest organizacja przycisków. Obecnie używam konfiguracji chipów podobnej do Tasmota, w której można przypisać pojedynczą funkcję do każdego GPIO, ale mam już również działającą obsługę funkcji ,,krótkiego kliknięcia", ,,podwójnego kliknięcia" i ,,długiego przytrzymania" dla przycisków. Muszę przemyśleć, jak to zorganizować, może jest lepszy sposób na skonfigurowanie chipa, sposób, który pozwoli mi przypisać wiele funkcji do jednego przycisku.
    Dla przypomnienia - zastanawiam się jak to zrobić z organizacyjnego punktu widzenia, nie ma problemów z kodowaniem. Po prostu próbuję znaleźć jakiś intuicyjny sposób, aby użytkownicy mogli to zdefiniować....
    A może za bardzo się nad tym zastanawiam i łatwa obsługa podwójnego kliknięcia nie jest tak ważna i ten etap projektu.

    btsimonh wrote:

    Będzie zainteresowany, aby zobaczyć, czy subskrypcja MQTT działa dla Ciebie, przed i po usunięciu biblioteki Tuya.

    Rzeczywiście wystąpiła mała awaria związana z ponownym połączeniem z wywołania zwrotnego. To już naprawione.

    btsimonh wrote:

    Nie udało mi się też uruchomić klienta http. Byłoby to dobre, przynajmniej dla HTTP:, jeśli nie HTTPS:. To ,,fajny" sposób robienia OTA.

    Jaki był problem? Mimo to nie martwiłbym się tym zbytnio. W końcu stosunkowo łatwo jest napisać własnego klienta HTTP

    Następnym ważnym punktem TODO na mojej liście jest wymyślenie, jak zapisać konfigurację we flashu.
  • #46
    allardvanw
    Level 1  
    Cześć,
    Gdzie można znaleźć program BKWriter?
  • #47
    p.kaczmarek2
    Level 26  
    Jest w repozytorium BK, ale skoro pytasz, załączam go tutaj dla Ciebie:
  • #48
    btsimonh
    Level 10  
    allardvanw wrote:
    Cześć,
    Gdzie można znaleźć program BKWriter?


    Sprawdź także moją zmodyfikowaną wersję Pythona - działa dobrze. (link do github powyżej gdzieś)
  • #49
    Dobie01
    Level 2  
    Cześć, na wypadek, gdyby ktoś inny walczył tak jak ja:
    Kiedy próbuję skompilować demo mqtt, otrzymuję:
    ../../../apps/my_mqtt_demo/src/tuya_device.c:59:19: błąd krytyczny: Error.h: Brak takiego pliku lub katalogu
    #include "Błąd.h"

    Komentując to, mam rzeczy do uruchomienia:
    /* #include "Błąd.h" */
    zmiana nazwy na
    #include "error.h" również działa.

    Chętnie zacznę testować Waszą najnowszą wersję - mam tutaj przełącznik kurtyny z czujnikiem dotykowym, gdzie przełączyłem się na ESp i Tasmotę.

    @btsimonh: Twój flasher Pythona działa na Linuksie? Nienawidzę konieczności jednoczesnego korzystania z okien..
  • #50
    btsimonh
    Level 10  
    Dobie01 wrote:
    Twój python flasher działa na Linuksie? Nienawidzę konieczności jednoczesnego korzystania z okien..

    nieprzetestowane, ale tak, domyślnie jest to urządzenie USB z systemem Linux...
    PS To flasher Bekena, znaleziony przez faceta powyżej... Właśnie zaktualizowałem go, aby czytać i pisać :) .

    Aktualizacje SPI:
    Wydaje się, że kluczem do dostania się do SPI jest wbicie pinów Flash SPI krótko (w ciągu kilkuset ms) po resecie. To powoduje, że blokuje się w trybie migania SPI.
    Jednak jeszcze nie udało mi się wysłać niczego sensownego - nie jestem pewien, czy to wina Espuino SPI, więc spróbuję z RPI3b.
    Wskazówki znajdują się w ,,programie ukrytym" w tym samym flasherze Pythona -- wygląda na to, że wysyłają 250 bajtów ,,D2", a następnie proszą o identyfikator układu flash, po którym następuje prawdopodobnie ,,06". Zobaczymy, czy czerpię radość z RPI, gdy ma nowy system operacyjny i uruchamia się.

    Dodano po 2 [godziny] 12 [minuty]:

    Sukces z SPI. Jeszcze nie flashowany i uruchomiony, ale odczytałem identyfikator flasha (FLASH_ID_ESMT_25QH16B=0x0015701c) i teraz czytam, co pozostało z mojego uszkodzonego flasha.
    ESP32 SPI przez Espruino nie działał. RPI3b SPI działa, ale nie z szybkością > 50000 bitów/s.
    Podstawowe instrukcje:
    Pociągnij CEN w dół przez 1 sekundę. Natychmiast po podniesieniu wyślij 250 'D2'. Następnie możesz wysłać żądane polecenia (np. 9f, aby uzyskać identyfikator pamięci flash, 03 do odczytu, 06, aby włączyć zapis itp.)
    Domyślam się, że flash pasuje do karty danych dla EN25QH16B pod względem poleceń - https://datasheetspdf.com/datasheet/EN25QH16B.html

    Edytuję tutaj z wynikami odczytu.
  • #51
    p.kaczmarek2
    Level 26  
    Dobra robota!

    Wkrótce opublikuję ogólną aktualizację projektu i wydam aktualny kod źródłowy postępu. I... wtedy najprawdopodobniej stworzę repozytorium.

    Czy ściągasz CEN ręcznie, czy za pomocą wyjścia cyfrowego sterowanego kodem?

    PS: 4-kanałowy przekaźnik działa!
    WB2S/BK7231 Tutorial - tworzymy własny firmware - UDP/TCP/HTTP/MQTT
    Użyłem do tego symbolu wieloznacznego MQTT:
    Code: c
    Log in, to see the code

    ale wkrótce pojawi się więcej, opublikuję tutaj link do głównej aktualizacji, kiedy to się skończy.
  • #52
    btsimonh
    Level 10  
    Sterowanie GPIO CEN. Wszystkie pozostałe linie to ,,normalne" linie SPI.
    Ok, teraz wymurowane... gotowe na dzisiaj.
    Aby przywrócić bootloader, sflashowałem pierwsze 0xf000 bajtów z simon_light_pwm_demo_QIO_1.0.0.bin
    Zawiera on ,,zaszyfrowany" program ładujący, ale spakowany, więc zawiera również rozszerzenie 32->34 bajty ...

    Kiedy to umieściłem, teraz uruchamia się - i uruchamia moje oprogramowanie, które było nieuszkodzone :) .

    Jutro napiszę flashowanie......

    W przypadku mojej tablicy muszę dodać do aplikacji 5 x PWM i zmienne sterowanie oświetleniem - więc zdobądź to repozytorium wkrótce :) .


    ps jest jutro -
    Dodałem do github flashującego Pythona SPIFlash.md i prototyp bezpośredniego czytnika/zapisu flash SPI (nieprzetestowane). Spróbuję dzisiaj przetestować.
    https://github.com/btsimonh/hid_download_py

    pps - ref pamięć wifi, powinniśmy udokumentować użycie flasha w oprogramowaniu standardowym.
    Jest to ważne, ponieważ istnieją dane kalibracyjne Wi-Fi, a jeden zakłada adres MAC we flashu - którego nie będziemy chcieli nadpisać ani wymazać.
    We flasherze SPI ustawiłem domyślnie usuwanie tylko sektorów, do których flashujemy - poprzednio domyślnym było wymazanie CAŁEGO urządzenia, co moim zdaniem byłoby złe z naszej perspektywy...
    ,,Bezpiecznym" miejscem do flashowania mogą być obszary, w których znajdują się odniesienia do dzienników. Jestem prawie pewien, że są one specyficzne dla Tuya i dość duże....
    Również plik konfiguracyjny jlink świeci - ma adresy rejestrów związane z szyfrowaniem flasha i procesora / może CRC? Wskazuje to również, że JTAG jest możliwy.
    W tej chwili najlepiej przypuszczać, że piny JTAG stają się pinami JTAG, jeśli 0.3v
  • #53
    p.kaczmarek2
    Level 26  
    Myślę, że w pamięci może być już miejsce, w którym przechowywane są dane WiFi, ponieważ po moim pierwszym flashowaniu (przez UART) moje urządzenie WB2S, które zostało sparowane z moim WiFi przez aplikację mobilną Tuya, nadal pozostawało połączone z moją siecią.
    I był tam podłączony nawet po wielu aktualizacjach oprogramowania układowego. Pisałem o tym jakiś czas temu w temacie XR809, jeszcze zanim opublikowałem ten tutorial WB2S/BK7231T.

    Przydałoby się również dowiedzieć się, skąd pochodzi raportowanie nazwy urządzenia do DHCP, ponieważ w moim przypadku oba urządzenia WB2S/WB3S są widziane przez router jako "wlan0".

    EDYCJA: Tak to robią, wystarczy znaleźć dobrą pozycję w pamięci
    Code: c
    Log in, to see the code

    Może typ SSID_PASSWORD_TOKEN?

    Code: c
    Log in, to see the code


    Oto metoda konfiguracji punktu otwartego dostępu (działająca):
    Code: c
    Log in, to see the code


    Oto funkcja, która pozwala uzyskać adres MAC (jest nieco inny dla trybów AP i klienta) i użyć go do stworzenia unikalnej nazwy urządzenia:
    Code: c
    Log in, to see the code


    Oto zestaw nazw wlan0:
    WB2S/BK7231 Tutorial - tworzymy własny firmware - UDP/TCP/HTTP/MQTT
    WB2S/BK7231 Tutorial - tworzymy własny firmware - UDP/TCP/HTTP/MQTT
    Ach, rozumiem, net_dhcp_hostname_set


    * OpenBK7231 dołączył do sieci *
    WB2S/BK7231 Tutorial - tworzymy własny firmware - UDP/TCP/HTTP/MQTT
  • #54
    btsimonh
    Level 10  
    Cześć wszystkim,
    Flash SPI z RPI jest teraz zakończony.
    https://github.com/btsimonh/hid_download_py
    Może zarówno czytać, jak i pisać za pośrednictwem uart lub natywnego RPI SPI

    @p.kaczmarek2 - czekam na uruchomienie i pomoc z nowym oprogramowaniem :) .. jakieś opublikowane repozytorium?

    br,
    Szymon
  • #55
    p.kaczmarek2
    Level 26  
    Czy RPI SPI używa poziomów logicznych 3,3 V? Pytam tylko, czy dałoby się zastosować po prostu tani klon Arduino na poziomie 5V do komunikacji SPI.

    Oto repozytorium:
    https://github.com/openshwprojects/OpenBK7231T
    Więcej informacji na temat Aktualizacji znajdziesz w tym temacie (tłumaczenie wciąż czeka, postaram się to zrobić jutro):
    https://www.elektroda.pl/rtvforum/topic3866123.html

    W nadchodzących dniach będę to bardziej reorganizować, ale już teraz możesz to sprawdzić i przedstawić swoje sugestie.
    Niedługo też sprawię, że całość będzie trochę bezpieczniejsza, na przykład zamienię strcat na wersję bezpieczną dla rozmiaru bufora.
    Usunę też więcej kodu Tuya, ale zachowałem go nadal, bo nie chcę czegoś zepsuć, usuwam go linijka po linijce.

    Czy masz jakieś pomysły, jak zapisać konfigurację we flashu, a konkretnie, jakiego offsetu flasha użyć?

    Sugeruję rozpakowanie oryginalnego zrzutu pamięci flash WB2S i sprawdzenie, gdzie waniliowe oprogramowanie Tuya przechowuje dostęp do Wi-Fi i SSID, a może nawet moglibyśmy go ponownie użyć - wyobraź sobie, co za wspaniała funkcja "urządzenie zachowuje konfigurację Wi-Fi z aplikacji Tuya, nawet po sflashowaniu naszym oprogramowaniem"!

    Mogę wysłać ci kilka zrzutów pamięci flash z moich modułów WB do rozpakowania, jeśli masz pod ręką konfigurację rozpakowywania. Zdaję sobie sprawę, że w ten sposób możesz dowiedzieć się o moim SSID WiFi itp., ale nie oczekuję, że odwiedzisz Polskę tylko po to, aby ukraść moje wolne połączenie internetowe (żartuję).


    PS: Aktywnie szukam też kolejnych urządzeń do przetestowania, dzisiaj zrobiłem rozbiórkę DIGOO DG-S601, ale niestety ma w środku ESP8266. Jaka szkoda. W każdym razie możesz przeczytać mój raport z rozbiórki tutaj: https://www.elektroda.pl/rtvforum/topic3866386.html
    PS2: Muszę sobie przypomnieć, gdzie umieściłem ten ściemniacz do taśm LED WB3S, który tam opisałem: https://www.elektroda.pl/rtvforum/topic3798114.html to kolejna rzecz na mojej liście TODO do wypuszczenia z Tuya /Beken zamknięte łańcuchy oprogramowania układowego.
  • #56
    jagheterfredrik
    Level 3  
    Czy odczytałeś 0x1e1000, oznaczony jako BK_PARTITION_NET_PARAM? Sam jeszcze nie miałem okazji tego zrobić. Jest to prosta struktura typ-długość-wartość, która przechowuje wiarygodność Wi-Fi w pakiecie SDK tuya.

    Edycja: i dzięki za otwarte sourcing, oboje!
  • #57
    btsimonh
    Level 10  
    p.kaczmarek2 wrote:
    Czy RPI SPI używa poziomów logicznych 3,3 V? Pytam tylko, czy dałoby się zastosować po prostu tani klon Arduino na poziomie 5V do komunikacji SPI.

    tak, 3,3v. nie wiem, co by się stało z 5v....
    Myślę, że większość osób, które się tym zajmą, miałaby pod ręką ESP8266 lub ESP32 (wszyscy fani TAS, którzy kupili urządzenia tylko po to, aby znaleźć WB2S w środku ....), z których oba mają SPI przy 3,3 V - szkoda tylko, że Espruino nie wydawało się pracować. Świetnie nadaje się do rozwoju bez kompilacji, ale jeśli jest zepsuty.... :( .
    Ale może teraz mam działające RPI, mógłbym wrócić do ESP32 - teraz wiem, że działa lepiej przy
  • #58
    p.kaczmarek2
    Level 26  
    Dodam dziś prosty interfejs wiersza poleceń, dzięki czemu możemy na przykład zdalnie wywołać ,,tuya_hal_flash_read 0x1e1000 0x10" i zobaczyć wyniki na stronie HTML. Proste polecenia przydadzą się również w przyszłości przy pisaniu skryptów (w przeszłości pisałem już proste interpretery skryptów, więc nie powinno być problemu)

    Znalazłem inne urządzenie WB3S:
    WB2S/BK7231 Tutorial - tworzymy własny firmware - UDP/TCP/HTTP/MQTT WB2S/BK7231 Tutorial - tworzymy własny firmware - UDP/TCP/HTTP/MQTT WB2S/BK7231 Tutorial - tworzymy własny firmware - UDP/TCP/HTTP/MQTT
    Tym razem z MCU... Może protokół TuyaMCU UART?

    Code: c
    Log in, to see the code

    EDYCJA: znalazłem swój identyfikator SSID kilka bajtów po przesunięciu dziesiętnym 1974266:
    WB2S/BK7231 Tutorial - tworzymy własny firmware - UDP/TCP/HTTP/MQTT
    Oto jak to czytają:
    Code: c
    Log in, to see the code
  • #59
    jagheterfredrik
    Level 3  
    Ale czy naprawdę używają tego kodu? Nie widzę nagłówka TLV ani prefiksu 55555555 używanego do przechowywania SSID/PASS?

    Wydaje się również, że jest to jakiś interesujący klucz między identyfikatorem SSID a przepustką..
  • #60
    p.kaczmarek2
    Level 26  
    Nagłówek TLV jest wcześniejszy:
    WB2S/BK7231 Tutorial - tworzymy własny firmware - UDP/TCP/HTTP/MQTT
    WB2S/BK7231 Tutorial - tworzymy własny firmware - UDP/TCP/HTTP/MQTT
    ale kod do ustawienia rzeczywiście nie był zawarty w kompilacji. Mimo to zmodyfikowałem go i dodałem pole 64 bajty do przechowywania konfiguracji pinów, zobaczmy, czy działa.

    Btw: @btsimonh jeśli chcesz wykonać aktualizację OTA, powinieneś najpierw pobrać kod bajtowy do określonego obszaru OTA, a następnie pozwolić staremu mechanizmowi aktualizacji na zapisanie go w obszarze użytkownika, jak sądzę