Ustawienia kompilacji - Płytka - wybór modułu gotowego, lub procesora

GGbuilder1
Builder umożliwia skompilowanie firmware dla platform (płytek) opartych o procesory ESP ("klasyczne" 8266 lub 8285) oraz ESP32 (w kilku odmianach układu)

ESP8266 oraz ESP8285 - różnica jest tylko taka, że ESP8266 używa pamięci flash zewnętrznej - najczęściej 1,2, lub 4MB, a ESP8285 ma wbudowaną pamięć 1MB wewnątrz siebie

GGbuilder1%20board

Podział na płytki - umożliwia wybranie (na chwilę pisania tego poradnika) z poniższej listy:

  1. Płytki "uniwersalne" (czyli w zasadzie dowolne, byle zawierały wybrany procesor) - ESP32S3, ESP32C2, ESP32C3, ESP32, ESP8266, ESP8285 - wybranie którejś z tych opcji wymusza ustawienie odpowiedniego procesora w pozycji Procesor.
    Wybór płytki z płytek uniwersalnych nie narzuca pozostałych opcji kompilacji, dostępnych opcji itp- użytkownik ma pełną dowolność, może wybrać dowolnie opcje jakie chce wbudować (o ile wystarczy na wszystko pamięci flash. Ale jak na razie - nawet dla modułów z 1MB flash - większość kombinacji udaje się zmieścić w pamięci)

  2. Płytki wstępnie skonfigurowane, o znanym pinoucie - np moduły różnych producentów, które są już rozpracowane i wiadomo jak je ustawić by łatwo skonwertować do Supla.
    Mamy tu cały szereg fabrycznych urządzeń różnego typu: Gosund P1, Gosund SL2, Gosund SP111, inCan3, inCan4, NEO Coolcam, Shelly 1, Shelly 2.5, Shelly 1PM, długą listę różnych modułow Sonoff, oraz modułów ESP z rozszerzoną liczbą portów wejścia i wyjścia, przez expandery i2c typu PCF lub MCP23017, oraz inne (lista ciągle rośnie).

Wybór płytki-modułu z tej listy - przykładowo znanego modułu Sonoff Basic - powoduje wstępne wypełnienie pól - zaznaczenie odpowiedniego procesora, pamięci, typowych opcji dla tego modułu (przycisk, przekaźnik - bo takie opcje posiada fabrycznie ten moduł) - ale nic nie stoi na przeszkodzie, by dodać (włączyć) inne dodatkowe opcje, które planujemy dobudować do naszego modułu (przykładowo - dolutować dodatkowy sensor temperatury DS18b20, czy dodać inną funkcje, bo moduł ma jeszcze wolne piny GPIO procesora). Gdy moduł się uruchomi - po pierwszym uruchomieniu, w konfiguratorze WWW modułu będziemy mieli większość opcji już dobrze ustawionych, nie będzie trzeba ustawiać funkcji i przypisywać portów GPIO dla tych funkcji, które dany moduł ma wbudowane - wszystko co potrzeba by działało dobrze - będzie już ustawione*. Bardzo wygodne!
Jeśli moduł występował w różnych wersjach - np z różną wielkością pamięci - to można ją jeszcze zmienić (ale wybór jest zawężony do realnie możliwych zmian, np wielkość pamięci 1,2,4 MB ; ale nie da się wybrać procesora ESP32 dla modułu Sonoff Basic - bo takie nie istniały)

jeśli chodzi o urządzenia pomiarowe, np mierzące energię elektryczną jak np. Gosund SP111 - będzie trzeba jednak wykonać jeszcze ręczną kalibrację tego konkretnego egzemplarza, aby pomiar był dokładny, ponieważ każda sztuka trochę różni się i wymagaj indywidualnej kalibracji pomiaru.

  1. Zdefiniowana jako JSON - Typ, funkcje i wszystkie parametry modułu zapisane w postaci specjalnego ciągu JSON
    przykładowo dla modułu Sonoff Basic ciąg ten wygląda tak:

    {"NAME":"Sonoff Basic","GPIO":[17,255,0,255,0,0,0,0,21,56,255,0,0],"FLAG":0,"BASE":1}

Ogromną bazę modułów - oraz opisujących je JSON można znaleźć tutaj: (co prawda jest to baza tworzona dla firmware TASMOTA, a nie Supla - ale nie zmienia to faktu że jest dla nas użyteczna, a jeśli są jakieś ewentualnie nieobsługiwane parametry przez Suplę dla danego modułu - zostaną przez konfigurator zaraz zgłoszone)

Nic nie stoi na przeszkodzie, by budować firmware dla naszego urządzenia - wybierając mimo wszystko "płytkę uniwersalną" z odpowiednim procesorem (pomimo że nasz moduł istnieje na liście modułów znanych) - da nam to większe możliwości konfigurowania modułu, jeśli planujemy go głęboko modyfikować, dolutowywać sensory czy zmieniać podłączenia do pinów procesora.

Częstotliwość procesora

(opcja dostępna tylko dla ESP, niedostępna dla ESP32) Domyślnie 160MHz jest właściwa, nie zmieniajmy jej.
Dla modułow ultra-energooszczędnych i zasilanych bateryjnie można przełączyć na 80MHz, ale może to rodzić wiele innych problemów. Lepiej nie ruszać.

Pamięć flash

W przypadku modułów ESP32 nie mamy zbyt wiele do wyboru - zawsze tworzony jest Minimal SPIFS
W przypadku modułów ESP8285 - które i tak zawsze zawierają wbudowany 1MB pamięci - nie ma sensu tu nic zmieniać.
W przypadku modułow ESP8266 z zewnętrzną pamięcią - mamy do wyboru 1MB, 2MB, 4MB.

Nie należy wybierać pamięci większej, niż faktycznie mamy w module!

Możemy wybrać pamięć mniejszą niż faktycznie jest, np dla bezpieczeństwa zawsze kompilować dla 1MB, ale rodzi to pewne niekorzystne ograniczenia.
Jeśli mamy moduł np z pamięcią 4MB, ale dla bezpieczeństwa wgraliśmy mu firmware kompilowane dla 1MB, to w przyszłości przy ewentualnej aktualizacji firmware:

  1. aktualizacja będzie musiała być prowadzona dwuetapowo (najpierw wgranie małego, pustego firmware, by się zmieściło do wolnej pamięci modułu, a dopiero po jego wgraniu i wystartowaniu - gdy wolnej pamięci OTA jest więcej - wgranie firmware docelowego).
    Dla modułów kompilowanych dla 1MB - FS ma 64kB, dla aktualizacji OTA zostaje tylko 470kB
    Dla modułów kompilowanych dla 2MB - FS ma 64kB, dla aktualizacji OTA zostaje 992kB
    Dla modułów kompilowanych dla 4MB - FS ma 1024kB, i dla OTA jest dostępne 1019kB - w tej opcji wszelkie aktualizacje są możliwe "wprost" bez dwóch restartów.
  2. jeśli zmienimy wielkość pamięci przy kompilacji - to podczas wgrywania firmware stracimy wszystkie ustawione parametry modułu (gpio, ustawienia sieci wifi itp - moduł będzie czysty jak pierwszy raz uruchomiony) ponieważ ustawienia te są zachowywane pod pewnymi adresami pamięci - które dla różnych wielkości pamięci są różne.