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.

Wymiana T102_V1.1/WR2 (RTL8710AF) na WB2S (BK7231T) w przekaźniku smart

p.kaczmarek2 12 Apr 2022 23:10 1407 12
Testo
  • Wymiana T102_V1.1/WR2 (RTL8710AF) na WB2S (BK7231T) w przekaźniku smart
    Witajcie moi drodzy.
    Dzisiaj nieco krótszy temat. Przedstawię tu wymianę modułu WiFi opartego na RTL8710AF na moduł WB2S (BK7231T). Pacjentem będzie najprostszy przekaźnik sterowany przez WiFi. Motywacją wymiany jest brak możliwości samodzielnego programowania układu Realteka, co uniemożliwia mi też sparowanie go z moim Home Assistant. Z kolei dla WB2S (BK7231T) istnieje mój projekt otwartego firmware, który ciągle rozwijam. więc powinno być łatwo. To też kolejny powód by wymienić - potrzebuję więcej urządzeń z układami Beken by testować swój firmware, a akurat otrzymałem od jednego z forumowiczów kilka WB2S, więc są jak znalazł (kolega wymieniał je na TYWE2S). Przy okazji pokażę też pokrótce konfigurację OpenBK7231T oraz procedurę aktualizacji jego firmware przez WiFi (OTA).

    Użyty przekaźnik NF-101
    Użyty przekaźnik Tuya opisałem tutaj:
    https://www.elektroda.pl/rtvforum/topic3815120.html
    Wymiana T102_V1.1/WR2 (RTL8710AF) na WB2S (BK7231T) w przekaźniku smart
    Wymiana T102_V1.1/WR2 (RTL8710AF) na WB2S (BK7231T) w przekaźniku smart
    Moduł z Realtek już z niego wcześniej usunąłem.

    Co nowego z OpenBK7231T?
    OpenBK7231T/OpenBeken to mój otwarty wsad dla urządzeń IOT opartych na BK7231T i BK7231N. Ostatnimi czasy wspiera on również trzecią platformę, XR809.
    OpenBeken pozwala sparować urządzenie z Home Assistant poprzez MQTT i uwolnić je od serwerów producenta.
    OpenBeken wspiera już aktualizację wsadu przez sieć (OTA), podstawowe funkcjonalności takie jak przekaźniki, diody LED, PWM (też w trybie RGBCW z interfejsem jasności, kolorów i temperatury barw), oraz od niedawna niektóre peryferia, w tym podstawę TuyaMCU, interfejs I2C (TC74 i MCP23017) oraz pomiar energii elektrycznej, napięcia i prądu poprzez BL0942.
    Szczegóły:
    https://github.com/openshwprojects/OpenBK7231T_App
    https://www.elektroda.pl/rtvforum/topic3866123.html
    https://www.elektroda.pl/rtvforum/topic3850712.html
    Tutorial HA:
    https://www.elektroda.pl/rtvforum/topic3777098.html
    Żarówka RGBCW w OpenBK:
    https://www.elektroda.pl/rtvforum/topic3880540.html

    Porównanie wyprowadzeń modułów
    Przede wszystkim należy porównać wyprowadzenia pinów pomiędzy modułami, które chcemy zamienić.
    Poniżej wyprowadzenia T102_V1.1:
    Wymiana T102_V1.1/WR2 (RTL8710AF) na WB2S (BK7231T) w przekaźniku smart
    Wymiana T102_V1.1/WR2 (RTL8710AF) na WB2S (BK7231T) w przekaźniku smart
    WR2 ma podobny rozkład (też zrealizowany na RTL8710BN):
    Wymiana T102_V1.1/WR2 (RTL8710AF) na WB2S (BK7231T) w przekaźniku smart
    Dodatkowo, pinout zgodny jest z TYWE2S (który już opiera się na ESP):
    Wymiana T102_V1.1/WR2 (RTL8710AF) na WB2S (BK7231T) w przekaźniku smart
    Ale mnie interesuje WB2S - czy też pasuje?
    Wymiana T102_V1.1/WR2 (RTL8710AF) na WB2S (BK7231T) w przekaźniku smart
    Wygląda na to, że tak. Pora sprawdzić w praktyce.


    Zamiana Realteka na WB2S
    WB2S miałem już zaprogramowany moim OpenBK7231T poprzez BKwriter1.60 zgodnie z tematem:
    https://www.elektroda.pl/rtvforum/topic3875654.html
    Poniżej tematy o bliźniaczym BK7231N:
    https://www.elektroda.pl/rtvforum/topic3880540.html
    https://www.elektroda.pl/rtvforum/topic3874289.html
    WB2S miałem w wersji "DIY" w postaci takiej "rzeźby":
    Wymiana T102_V1.1/WR2 (RTL8710AF) na WB2S (BK7231T) w przekaźniku smart Wymiana T102_V1.1/WR2 (RTL8710AF) na WB2S (BK7231T) w przekaźniku smart Wymiana T102_V1.1/WR2 (RTL8710AF) na WB2S (BK7231T) w przekaźniku smart
    (na powyższym zdjęciu układ to moduł WB2S, stabilizator napięcia TC1264-3.3V by móc zasilać WB2S, przycisk od zasilania - wymontowany z CRT telewizora - by móc wykonać "power cycle"/reboot po którym da sie programować i tylko połączenia. Zero rezystorów, itp)
    Jeden konwerter USB UART służy do programowania poprzez BKwriter1.60. Drugi do nasłuchiwanie logów. Nie jest to mi już potrzebne w najnowszych wersjach OpenBeken, gdyż mamy już funkcjonalny panel logów z filtrowaniem wedle źródła logu (osobno zdarzenia dotyczące MQTT, osobno i2C, itp itd) i pauzą logowania, oraz mamy możliwość aktualizacji wsadu przez OTA (czyli programowanie przez WiFi).
    Pora się pozbyć tych konwerterów USB-UART.
    Uwolniony moduł przeczyściłem plecionką:
    Wymiana T102_V1.1/WR2 (RTL8710AF) na WB2S (BK7231T) w przekaźniku smart
    Przymiarka do płytki po usunięciu już modułu Realteka:
    Wymiana T102_V1.1/WR2 (RTL8710AF) na WB2S (BK7231T) w przekaźniku smart
    Lutujemy:
    Wymiana T102_V1.1/WR2 (RTL8710AF) na WB2S (BK7231T) w przekaźniku smart
    Gotowe:
    Wymiana T102_V1.1/WR2 (RTL8710AF) na WB2S (BK7231T) w przekaźniku smart

    Konfiguracja OpenBK7231T
    Już ten proces opisywałem, wiec teraz krótko. Obk tworzy otwarty access point po pierwszym uruchomieniu. Aby do niego się podłączyć, polecam ustawić nasze IP na sztywno na jakieś w stylu 192.168.4.15, bo czasem DHCP nie chce jeszcze działać:
    Wymiana T102_V1.1/WR2 (RTL8710AF) na WB2S (BK7231T) w przekaźniku smart
    IP w trybie open access point to 192.168.4.1:
    Wymiana T102_V1.1/WR2 (RTL8710AF) na WB2S (BK7231T) w przekaźniku smart
    W config ustawiamy piny (gdzie jest przekaźnik, gdzie przycisk, gdzie dioda statusu WiFi):
    Wymiana T102_V1.1/WR2 (RTL8710AF) na WB2S (BK7231T) w przekaźniku smart Wymiana T102_V1.1/WR2 (RTL8710AF) na WB2S (BK7231T) w przekaźniku smart
    Podobnie, w zakładce WiFi od Config, ustawiamy namiary na nasze WiFi:
    Wymiana T102_V1.1/WR2 (RTL8710AF) na WB2S (BK7231T) w przekaźniku smart
    Potem, jak się moduł zrestartuje, to się już pojawi w naszej sieci WiFi i otwarty access point zniknie:
    Wymiana T102_V1.1/WR2 (RTL8710AF) na WB2S (BK7231T) w przekaźniku smart
    Ale jeszcze trzeba skonfigurować MQTT od Home Assistant. Analogicznie, Config->MQTT:
    Wymiana T102_V1.1/WR2 (RTL8710AF) na WB2S (BK7231T) w przekaźniku smart
    Trzeba też dodać urządzenia do configuration.yaml z Home Assistant. Nie musimy pisać configa sami. Mamy w Config opcję "Generate HA Config", która tworzymy nam całość:
    Wymiana T102_V1.1/WR2 (RTL8710AF) na WB2S (BK7231T) w przekaźniku smart
    Wklejamy (uwaga - 'switch' występuje raz dla wielu przekaźników w konfiguracji HA):
    Wymiana T102_V1.1/WR2 (RTL8710AF) na WB2S (BK7231T) w przekaźniku smart
    Można zmienić nazwę urządzenia (wyświetlaną) na coś przyjaźniejszego:
    Wymiana T102_V1.1/WR2 (RTL8710AF) na WB2S (BK7231T) w przekaźniku smart
    W HA walidujemy i restartujemy:
    Wymiana T102_V1.1/WR2 (RTL8710AF) na WB2S (BK7231T) w przekaźniku smart
    Po restarcie nasz przekaźnik już jest w HA.
    Wymiana T102_V1.1/WR2 (RTL8710AF) na WB2S (BK7231T) w przekaźniku smart
    Stan Home Assistant śledzi stan przekaźnika (gdy zmienimy jego stan przyciskiem), oraz przekaźnik reaguje też oczywiście na przełączanie przez HA. Komunikacja działa w obie strony.

    Aktualizacja firmware OpenBK7231T/OpenBK7231N przez WiFi
    Korzystając z okazji, chciałbym pokazać jak zaktualizować moje oprogramowanie włącznika przez WiFi.
    Są dwie opcje.
    Poprzez Config->OTA - tu podajemy adres URL nowego pliku z firmware:
    Wymiana T102_V1.1/WR2 (RTL8710AF) na WB2S (BK7231T) w przekaźniku smart
    Możemy być na postawionym lokalnie serwerze HTTP.
    Albo poprzez Config->App->OTA (przez wizualną nakładkę JS na API mojego firmware):
    Wymiana T102_V1.1/WR2 (RTL8710AF) na WB2S (BK7231T) w przekaźniku smart
    Tu przeciągamy plik nowego firmware, klikamy "Start" i po chwili urządzenie się zaktualizuje. OTA gotowe.
    Jaki plik używany do aktualizacji? Inny plik niż do wgrywania przez UART. Do OTA służy plik RBL:
    Wymiana T102_V1.1/WR2 (RTL8710AF) na WB2S (BK7231T) w przekaźniku smart
    Sukces aktualizacji możemy sprawdzić w stopce OpenBK - tam wyświetlana jest data kompilacji firmware.

    Tryb recovery OpenBK7231T/OpenBK7231N
    Drugą rzeczą którą chciałem w tym temacie dodatkowo przedstawić jest tryb odzyskiwania urządzenia z OpenBK. Uruchamiamy go poprzez trzykrotne wykonanie cyklu włączenia i wyłączenia zasilania, mniej więcej z odstępami co 5 sekund. Jeśli po 3 razach urządzenie nie zanotuje wykonania pełnego uruchomienia (rozruch i około kilkanaście sekund pracy), to zamiast łączyć się z naszym WiFi, utworzy znów otwarty punkt dostępu, co pozwoli nam je ponownie skonfigurować. Dodatkowo uruchomi się w trybie bezpiecznym, w którym ignorowane są tekstowe komendy z pliku konfiguracyjnego (z systemu plików LittleFS).
    Wiem, że taki mechanizm teoretycznie pozwala komuś o złych zamiarach np. ukraść nam żarówkę i ją sparować z jego WiFi, ale zdaniem większości użytkowników ten mechanizm jest niezbędny, tym bardziej w przypadku żarówek, które nie mają żadnych fizycznych przycisków, a dostęp do środka jest znacznie utrudniony.
    Oczywiście, jeśli nic nie pozmieniamy w trybie AP (w trybie "bezpiecznym") a urządzenie dokona już pełnego rozruchu, to przy następnym uruchomieniu już wróci do zwykłego trybu pracy (czyli sytuacja, że przypadkowe odłączenia energii elektrycznej popsują nam na stałe urządzenie nie jest możliwa).

    OTA przy pierwszym programowaniu
    Trzecią dodatkową rzeczą o jakiej chciałem wspomnieć, jest możliwość wgrania wsadu na BK7231T całkowicie zdalnie. Mam tu na myśli też pierwsze wgranie, czyli konwersję z firmware Tuya na moje. Jest to sposób analogiczny do tuya-convert, ale nie dla ESP, tylko dla Beken.
    Narzędzie nazywa się tuya-cloudcutter i opiszę je wkrótce:
    https://github.com/tuya-cloudcutter/tuya-cloudcutter


    Podsumowanie
    Produkty IoT korzystają z różnych modułów z WiFi. Nie jest to tylko ESP8266, ale czasem też układy Realteka, czy tam Beken. Na szczęście moduły te mają z reguły zgodne ze sobą wyprowadzenia, co pozwala w razie potrzeby zamienić jeden na drugi bez większych problemów.
    Normalnie pewnie użytkownik próbowałby wsadzić tutaj ESP, ale tak jak pisałem - zajmuję się tworzeniem wsadu na Beken, dlatego preferuję WB2S.
    Czy WB2S można kupić? Z tym może być problem. Widziałem jego oferty sprzedaży po 1.8$, ale tylko po 1000 sztuk... tylko, że zasadniczo równie dobrze można tutaj użyć ESP i kroki wymiany są podobne (dodatkowo pewnie trzeba będzie dolutować rezystory), więc myślę, że każdy znajdzie coś dla siebie...

    Cool? Ranking DIY
    Can you write similar article? Send message to me and you will get SD card 64GB.
    About Author
    p.kaczmarek2
    Level 26  
    Offline 
  • Testo
  • #2
    speedy9
    Helpful for users
    p.kaczmarek2 wrote:
    Czy WB2S można kupić? Z tym może być problem. Widziałem jego oferty sprzedaży po 1.8$, ale tylko po 1000 sztuk...

    Dziwne. Na Aliexpress zwykle można kupić prawie wszystko, a tutaj problem.
  • #3
    p.kaczmarek2
    Level 26  
    @speedy9 może źle szukałem, jak znajdziesz to daj znać.

    Ale ogółem to się nie dziwię, na BK7231N/BK7231T zasadniczo nikt nic nie pisał, dopóki ja nie wykombinowałem, że można wziąć SDK od Tuya i potem wyciąć z tego SDK Tuya i zostawić sam RTOS... z tym, że bootloader i OTA Tuyi i tak jest używane, w połączeniu z chińskim BKwriter 1.60 bądź jego odpowiednikiem w Pythonie.
  • Testo
  • #4
    speedy9
    Helpful for users
    p.kaczmarek2 wrote:
    @speedy9 może źle szukałem, jak znajdziesz to daj znać.

    To było raczej moje spostrzeżenie. Bo szukałem też i nie widzę.

    Co do tego, że nikt nic nie pisał na te moduły, to nadal pozostaje to jedynie w sferze hobby, bo Twoje oprogramowanie wykorzystuje fragmenty, których właścicielem jest Tuya, nie jest wiec w pełni "open".
    Ogólnie super artykuł i bardzo Ci kibicuję w Twoich próbach.
  • #5
    p.kaczmarek2
    Level 26  
    speedy9 wrote:

    Co do tego, że nikt nic nie pisał na te moduły, to nadal pozostaje to jedynie w sferze hobby, bo Twoje oprogramowanie wykorzystuje fragmenty, których właścicielem jest Tuya, nie jest wiec w pełni "open".

    Tak dokładnie to same libtuya_iot.a udało się odpiąć, ale wciąż korzystamy z bootloadera który jest chyba od ich (w zasadzie to nie wiem, może bezpośrednio od Beken).
    Co do "open" to można by dyskutować, bo czy (przykładowo) program open source na Windowsa który korzysta z bibliotek WINAPI do tworzenia okienek (które nie są otwarte), jest w pełni open wedle tej definicji czy nie?

    A docelowym odbiorcą programu są m. in. takie osoby jak ten użytkownik co na Reddicie wymieniał 30 sztuk WB3L na ESP by móc sparować go z Home Assistant:
    https://www.reddit.com/r/esp8266/comments/l9i...t_moment_when_you_realize_the_30_tuya_lights/
    Wymiana T102_V1.1/WR2 (RTL8710AF) na WB2S (BK7231T) w przekaźniku smart
    Wymiana T102_V1.1/WR2 (RTL8710AF) na WB2S (BK7231T) w przekaźniku smart
    Wymiana T102_V1.1/WR2 (RTL8710AF) na WB2S (BK7231T) w przekaźniku smart
    Wymiana T102_V1.1/WR2 (RTL8710AF) na WB2S (BK7231T) w przekaźniku smart
    Ten użytkownik robił to na marne, bo bieżąca wersja mojego firmware już wspiera to co on zamieniał na ESP.... i by nie stracił żadnych funkcjonalności, a oszcżedziłby dużo środków i lutowania. Przelutowywać 30 modułów?

    Ale też są inni potencjalni odbiorcy, np coś w stylu Tasmota shop:
    https://www.tasmota.shop/gb/4-lights
    Z tego co ja rozumiem, to Tasmota shop kupuje normalne produkty z ESP8266, wyrzuca z nich Tuyę, wgrywa otwartą Tasmotę i odsprzedaje. I ludziom na tym zależy, by mieć urządzenia IoT wolne od chmury.
  • #6
    speedy9
    Helpful for users
    p.kaczmarek2 wrote:
    Z tego co ja rozumiem, to Tasmota shop kupuje normalne produkty z ESP8266, wyrzuca z nich Tuyę, wgrywa otwartą Tasmotę i odsprzedaje. I ludziom na tym zależy, by mieć urządzenia IoT wolne od chmury.

    No tak, na same przeprogramowane moduły niespecjalnie byłby zbyt. Przeprogramowane urządzenia to co innego. Pod warunkiem, że da się je przeprogramować bez rozbierania (OTA). Tuya Convert też nie ze wszystkim działa zdaje się.
    Nie wiem czy oni nie zamawiają od Chińczyka zaprogramowanych gotowców (kompletnych urządzeń) :D
  • #7
    khoam
    Level 41  
    p.kaczmarek2 wrote:
    Co do "open" to można by dyskutować, bo czy (przykładowo) program open source na Windowsa który korzysta z bibliotek WINAPI do tworzenia okienek (które nie są otwarte), jest w pełni open wedle tej definicji czy nie?

    To zależy, czy dany program/biblioteka jest linkowana statycznie czy też dynamicznie z oprogramowaniem zamkniętym. W tym wypadku (BK7231 i Tuya SDK) mamy do czynienia z linkowaniem statycznym.
    Czy mógłbyś podać link do github, gdzie jest Twój projekt? Trochę pogubiłem się w postach, których linki podałeś na początku ;)
  • #8
    p.kaczmarek2
    Level 26  
    @khoam tam jest jeszcze większy chaos, bo w SDK dla BK7231T mamy źródła części funkcji od Tuya a dla BK7231N była tylko lib.
    Tyle, że z wrapperów od Tuya już nie korzystamy, tylko bezpośrednio używamy funkcji beken.
    W każdym razie
    - główna aplikacja: https://github.com/openshwprojects/OpenBK7231T_App
    - SDK dla T z poprawkami: https://github.com/openshwprojects/OpenBK7231T
    - SDK dla N z poprawkami: https://github.com/openshwprojects/OpenBK7231N
    - SDK dla XR809 z poprawkami: https://github.com/openshwprojects/OpenXR809

    Repo _App się dołącza jako projekt do każdego z tych SDK osobno i się z nimi kompiluje (z tym, że dużo jest do zorganizowania lepiej niż jest i XR809 nie ma pełnego portu, tylko podstawy funkcjonalności).
    Docelowo też chciałem pod BL602 kompilować, ale nie wiem czy nie przerobię wtedy całości i nie dam lepszego HAL.

    Dodatkowo działa u nas automatyczna kompilacja na Githubie która sama wstawia binarki:
    https://github.com/openshwprojects/OpenBK7231T_App/releases/tag/1.0.8



    W ogóle tak teraz myślę, że może i tego Realteka też by się dało ruszyć.
    Nie szukałem tego wcześniej, ale dostałem taką wiadomość:
    Wymiana T102_V1.1/WR2 (RTL8710AF) na WB2S (BK7231T) w przekaźniku smart
    96 żarówek?! To musi być poważna sprawa.
    A niby flasher jest:
    https://developer.tuya.com/en/docs/iot/burn-and-authorize-wr-series-modules?id=Ka789pjc581u8
    Potrzebne jest tylko: ty_iot_wf_rtos_sdk_Rtl8710BN_1.0.8
    Tego nie mamy, ale mamy niby:
    https://github.com/TuyaInc/tysdk_for_rtl8710bn
    Spróbuję z tym... jeśli uda się wgrać wsad na RTLa to będzie +1 powód by normalnie przepisać ten chaos platformowy który jest w _App (a zaznaczam, że wiem jak sie kończy brak refaktora, widziałem wielkie projekty które na to cierpiały)
  • #9
    khoam
    Level 41  
    p.kaczmarek2 wrote:
    Potrzebne jest tylko: ty_iot_wf_rtos_sdk_Rtl8710BN_1.0.8

    Znalazłem dwa SDK dla RTL8710:
    https://github.com/drasko/open-ameba
    https://github.com/rtlduino/RTL8710AF_GCC
  • #10
    p.kaczmarek2
    Level 26  
    khoam wrote:

    Podchodź do wszystkiego co ja piszę z dystansem, bo mogę się mylić, i zasadniczo to przygodę z mikrokontrolerami WiFI zacząłem wtedy:
    https://www.elektroda.pl/rtvforum/topic3749207.html
    ew. wtedy:
    https://www.elektroda.pl/rtvforum/topic3583559.html
    ale wydaje mi się, że jak chcę korzystać z bootloadera Tuya (i też docelowo wgrywać za pierwszym razem przez OTA przez tuya-cloudcutter) to muszę mieć już plik binarny odpowiednio pocięty z odpowiednimi adresami, zgodnie z tym co oni sobie tam wymyślili (na BK to są osobno formaty RBL, UA, UG, QIO). Dodatkowo RBL jest nadto szyfrowany przez Tuya (są do tego toolsy w sieci, choć wiem, to jest dla Beken a nie RTL, nie wiem jak z RTL jest)
    Tylko to SDK od RTL Tuyowskie ma już to gotowe, pozostałe chyba dają jeden wielki bin "na czysto".



    khoam wrote:

    Czy mógłbyś podać link do github, gdzie jest Twój projekt? Trochę pogubiłem się w postach, których linki podałeś na początku ;)

    Jeśli chcesz przeglądać kod, to byłoby lepiej byś zrobił to teraz a nie te kilka dni temu, bo w miarę posprzątałem tam i dodałem wsparcie platformy BL602.
    Najciekawsze rzeczy chyba dzieją się tutaj:
    https://github.com/openshwprojects/OpenBK7231T_App/tree/main/src/hal
    Zasadniczo zrobiłem to co robi Arduino, możesz sobie obejrzeć osobno pliki hal_pins_bk7231.c , hal_pins_xr809.c , hal_pins_bl602.c.

    W drodze na forum mam już temat o programowaniu BL602 oraz temat o wsparciu BL0942 (power metering chip z interfejsem UART), jak również temat o sterowniku peryferiów I2C:
    Wymiana T102_V1.1/WR2 (RTL8710AF) na WB2S (BK7231T) w przekaźniku smart
    Jak znasz jakieś ciekawe peryferia które można by dodać do sterowników, to przyjmuję zgłoszenia. Jakby co to wiem o takich oczywistościach jak DHT, DS18B20, itp.

    Mam też w kolejce kolejną platformę:
    Wymiana T102_V1.1/WR2 (RTL8710AF) na WB2S (BK7231T) w przekaźniku smart
    Wymiana T102_V1.1/WR2 (RTL8710AF) na WB2S (BK7231T) w przekaźniku smart
    A ogólnie projekt w ostatnich dniach przyśpieszył, bo kilka osób z USA się zobowiązało mi wysłać moduły i produkty do testów, więc zainteresowanie i potencjalni użytkownicy są, czyli jest o co walczyć. Nie ukrywam, że mimo wszystko donacje mają wpływ na tempo rozwoju tego projektu. https://www.paypal.com/paypalme/openshwprojects
  • #11
    khoam
    Level 41  
    p.kaczmarek2 wrote:
    Jak znasz jakieś ciekawe peryferia które można by dodać do sterowników, to przyjmuję zgłoszenia. Jakby co to wiem o takich oczywistościach jak DHT, DS18B20, itp.

    Możesz podejrzeć, jak wygląda obsługa dość licznych, popularnych peryferiów w bibliotece esp-idf-lib. Sądzę, że można byłoby "zapożyczyć" stamtąd całkiem sporo kodu.
  • #12
    p.kaczmarek2
    Level 26  
    O,dzięki, to jest coś nowego, nie widziałem tego wcześniej. Chociaż ogólnie z materiałami do obsługi peryferiów do tej pory nie było problemu. Mamy takie czasy, że praktycznie wszystko jest na Githubie, chociażby jako biblioteka do Arduino. No i nie ukrywajmy, że też nota katalogowa/aplikacyjna zazwyczaj przy czytaniu ze zrozumieniem starcza, by zrobić implementację (znam osoby, które są tak uparte na szukanie gotowca, że poświęcają 3x więcej czasu na szukanie gotowca niż by zajęło zrobienie go ręcznie).

    Chyba dla zabawy przerzucę to co napisałem dla MAX7219 na software SPI bo jest banalnie proste w obsłudze i wymaga dowolnych kilku pinów:
    https://www.elektroda.pl/rtvforum/viewtopic.php?p=18040628#18040628
  • #13
    khoam
    Level 41  
    Te biblioteki, do których podałem Ci link są w większości thread-safe w środowisku FreeRTOS. Z tego co się zorientowałem po przejrzeniu Twojego kodu, również korzystasz z funkcji FreeRTOS. Natomiast biblioteki arduinowe w większości przypadków nie są napisane dla środowiska wielowątkowego.

    p.kaczmarek2 wrote:
    No i nie ukrywajmy, że też nota katalogowa/aplikacyjna zazwyczaj przy czytaniu ze zrozumieniem starcza, by zrobić implementację

    Napisanie implementacji to jedno, a napisanie unit testów czy dokładne przetestowanie danego kodu to inna sprawa ;)