Aktualizacja przez Wi-Fi urządzeń z ESPHome na układach Beken i Lightning wyraźnie się skróci. Zmiana #21642 autorstwa J. Nicka Kostona (bdraco), scalona z gałęzią rozwojową 26 października 2026, sprawia, że narzędzie wiersza poleceń wysyła z pliku oprogramowania LibreTiny tylko te części, które urządzenie faktycznie zapisuje. Na układach BK72xx i LN882H to mniej więcej o 60% mniej danych. Zmiana ma trafić do ESPHome 2026.11.

Skąd brał się nadmiar

Plik UF2 dla LibreTiny zawiera osobny obraz dla każdego sposobu wgrywania. Na BK72xx jednym z nich jest pełny obraz app, potrzebny tylko programatorowi przez UART, czyli około 1,7 MB bloków UF2. Urządzenie przy aktualizacji OTA go pomija, a mimo to ESPHome przesyłał cały plik.

Teraz narzędzie odczytuje znaczniki partycji w każdym obrazie i odrzuca te, których żaden tryb aktualizacji na urządzeniu nie zapisuje. Na urządzeniach z dwiema partycjami OTA zostawia obrazy dla obu, bo nie wie, z której urządzenie akurat startuje. Pozostałe bloki numeruje od nowa, żeby urządzenie nie odrzuciło pliku przy sprawdzaniu rozmiaru. Jeśli plik nie jest poprawnym UF2 albo nie ma w nim nic do usunięcia, idzie bez zmian.

Liczby

Rozmiary podane w opisie zmiany:

  • BK7238: z 2 109 952 do 828 928 bajtów;
  • CB3S (BK7231N): z 1 740 288 do 674 816 bajtów;
  • LN882H: z 1 684 992 do 644 608 bajtów;
  • Realtek BW15: tylko z 1 062 912 do 987 648 bajtów, bo na układach Realtek zostają obrazy dla obu partycji OTA.

Na BK7238, przez połączenie, które autor określa jako wolne i zaszumione, pełny plik wgrywał się 42,8-74,8 s, a okrojony 21,3-35,2 s.

Co to oznacza w praktyce

Nie trzeba niczego ustawiać. Przycinanie działa przy wgrywaniu przez natywne OTA i przez web_server, także z esphome upload --file i przy instalacji z ESPHome Device Builder. Oprogramowanie na urządzeniu nie wymaga zmian. Plik firmware.uf2, z którego korzysta się przy wgrywaniu przez port szeregowy i pobieraniu, pozostaje kompletny, bo przycinanie odbywa się dopiero w chwili wysyłki.

Autor zwraca uwagę na jedno ryzyko dla opiekunów projektu. Gdyby przyszła wersja LibreTiny zmieniła znaczenie znaczników partycji, narzędzie mogłoby zostawić niewłaściwy obraz. Urządzenie, które nie dostanie obrazu dla swojego trybu, zgłasza udaną aktualizację, ale dalej działa na starym oprogramowaniu (sprawdził to na BK7238). Dlatego każde podniesienie wersji LibreTiny w ESPHome powinno obejmować test aktualizacji OTA.

Kolejne przyspieszenie w drodze

Powiązana zmiana #21641 czeka jeszcze na przegląd. Około pięciokrotnie przyspiesza rozpakowywanie skompresowanych aktualizacji na samym urządzeniu. Na BK7231N to około 0,74 µs na bajt zamiast 3,8 µs, więc plik UF2 o rozmiarze 2,25 MB zajmie procesor przez 1,7 s zamiast 8,7 s. Kosztem jest około 740 bajtów pamięci flash i 1,1 KB sterty.