ATS Mini Controller
Radio + aplikacja

Wgrywanie firmware do ATS Mini

Której z trzech wersji firmware potrzebuje twoje ATS Mini, jak odróżnić płytkę OSPI od QSPI i cztery sposoby na wgranie — zaczynając od instalatora na tej stronie.

Każde wydanie firmware ATS Mini to trzy archiwa, a tylko jedno z nich pasuje do twojego radia. Nic w samych obrazach nie mówi, które jest które, więc to właśnie wybór jest tą częścią, którą warto zrobić dobrze — samo wgranie jest łatwiejsze. Instalator firmware na tej stronie odczytuje odpowiedź prosto z układu, a niepasujące archiwum zostaje odrzucone, chyba że świadomie to obejdziesz; ta strona tłumaczy, co dokładnie sprawdza i jak zrobić to samo ręcznie.

Trzy archiwa, jedno twoje

Wydanie publikuje archiwum ospi, archiwum qspi i archiwum lilygo-t-embed. Każde rozpakowuje się do jednego katalogu o nazwie ats-mini-v<wersja>-<wariant> — na przykład ats-mini-v2.38-ospi. Ta nazwa katalogu jest jedynym pewnym oznaczeniem tego, co jest w środku.

I musi nim być, bo same obrazy prawie się nie różnią. Bootloader i tablica partycji są bajt w bajt identyczne we wszystkich trzech archiwach — sprawdzono to tutaj, porównując ich sumy kontrolne. Zmienia się wyłącznie ats-mini.ino.bin, czyli obraz aplikacji, i zmienia się o jakieś 2 kB konfiguracji sterownika PSRAM. Na tym polega cała różnica między wersjami — i dlatego luźnego pliku .bin oderwanego od swojego katalogu nie da się już powiązać ze sprzętem, dla którego powstał.

Archiwum lilygo-t-embed nie jest trzecim wariantem pamięci. Jest zbudowane dla LILYGO T-Embed SI4732, czyli innego odbiornika. Projekt firmware ostrzega, że wgranie go do ATS Mini może uszkodzić odbiornik, więc traktuj to archiwum jak cudze.

OSPI czy QSPI: jak je rozróżnić

Dwie wersje dla ATS Mini różnią się tylko sposobem podłączenia pamięci PSRAM w module ESP32-S3: octal (OSPI), 8 MB albo quad (QSPI), 2 MB. Poza tym ta sama płytka, ten sam układ odbiorczy, ten sam wyświetlacz — i nic z zewnątrz ich nie odróżnia. Pytanie pada na tyle często, że w projekcie firmware istnieje osobny wątek dyskusji zatytułowany „OSPI vs QSPI: How can I see what I have?”.

Instalator robi to w drugim kroku: odczytuje pojemność pamięci PSRAM z eFuse układu i nazywa wersję, której potrzebuje płytka. Żeby sprawdzić ręcznie, uruchom esptool flash-id (na esptool 4.x flash_id) i przeczytaj linię Features:. Odczyt 8 MB znaczy OSPI, odczyt 2 MB znaczy QSPI. Pierwszy kierunek pochodzi od samego opiekuna firmware’u, z dyskusji #174 projektu: „Embedded PSRAM 8MB … is only available via OSPI”; drugi sprawdzono na radiu z pamięcią QSPI przy pisaniu tej strony — kod pojemności 2, zgłoszony jako Embedded PSRAM 2MB. Czytaj pojemność, nigdy producenta: ten sam ciąg (AP_3v3) pojawia się i przy 8 MB, i przy 2 MB, więc nie mówi nic o tym, której wersji potrzebujesz.

Jest jeszcze trzeci sposób, ale tylko po fakcie: na radiu, które się uruchamia, Menu → Settings → About pokazuje wartość PSRAM, a ta wartość jest niezerowa wtedy, gdy działająca wersja pasuje do sprzętu. Świetne do potwierdzenia, że trafiłeś; zupełnie bezużyteczne przy wybieraniu, bo wymaga działającego firmware’u.

Wgrywanie z tej strony

Instalator firmware zapisuje firmware do radia przez kabel USB, prosto z przeglądarki, bez instalowania czegokolwiek. Potrzebuje tej samej przeglądarki opartej na Chromium co sam kontroler i kabla USB-C z transmisją danych — zobacz Podłączanie ATS Mini. Pięć kroków:

  1. Połącz przez USB. Wybierasz port radia w oknie wyboru przeglądarki. Jeśli kontroler jest już połączony przez USB, to połączenie zostaje zamknięte, a port przekazany instalatorowi.
  2. Rozpoznaj sprzęt. Aplikacja odczytuje układ i pojemność jego pamięci PSRAM, po czym nazywa wersję, której potrzebuje ta płytka. Na tym kroku opiera się cała reszta.
  3. Pobierz pasujące wydanie. Lista wydań pobierana na żywo z projektu firmware, z zaznaczonym archiwum pasującym do twojej płytki i oznaczonymi tymi, które nie pasują.
  4. Wczytaj i sprawdź obraz. Wrzucasz pobrane archiwum z powrotem. Aplikacja odczytuje wersję i wariant z nazwy katalogu i porównuje je z tym, co ustalił krok 2. Niezgodność zostaje odrzucona, chyba że świadomie ją obejdziesz.
  5. Zrób kopię, potem zapisz. Najpierw odczyt kopii obecnej zawartości pamięci, potem wybór między trzema plikami a obrazem scalonym, akceptacja ryzyka i zapis.

Archiwum jest czytane w przeglądarce i nigdzie nie trafia. Przez Bluetooth nie da się zrobić nic z tego: bootloader ESP32-S3 jest dostępny wyłącznie przez łącze szeregowe USB, więc radio musi wisieć na kablu.

Dwie rzeczy do zrobienia po zakończeniu zapisu

Żadna nie jest opcjonalna, a pominięcie drugiej wygląda dokładnie jak nieudany zapis: radio działa, a aplikacja go nie widzi.

  1. Wyłącz i włącz radio. Instalator po zakończeniu zapisu prosi układ o samodzielny restart, ale ta prośba idzie linią sterującą, którą płytka musi mieć podłączoną — a nie każda ma. Tam, gdzie nie jest podłączona, prośba i tak kończy się powodzeniem, a radio po prostu zostaje na programatorze, dopóki go nie wyłączysz. Ciemny ekran po zapisie nie oznacza nieudanego zapisu.
  2. Ustaw na radiu ponownie USB Port → Ad hoc. Od firmware’u 2.34 interfejs zdalny USB jest domyślnie wyłączony. Zapis scalony zawsze kasuje to ustawienie, a trzyplikowy może je skasować. Dopóki go nie włączysz z powrotem, radio całkowicie ignoruje aplikację — zobacz Podłączanie ATS Mini.

Oba te zachowania zaobserwowano na prawdziwym radiu przy pisaniu tej strony, na płytce bez podłączonej linii resetu.

Co i gdzie trafia

W archiwum jest CHANGELOG.md i cztery obrazy. Wgrywasz albo pierwsze trzy pod ich własnymi adresami, albo sam czwarty — nigdy jedno i drugie.

PlikAdres w pamięci flashCo to jest
ats-mini.ino.bootloader.bin0x0Bootloader
ats-mini.ino.partitions.bin0x8000Tablica partycji
ats-mini.ino.bin0x10000Sam firmware
ats-mini.ino.merged.bin0x0Trzy powyższe połączone w jeden obraz

Ten wybór to nie tylko kwestia wygody. Obraz scalony ma 8 MB, z czego około 6,3 MB to wypełnienie — właściwych danych jest jakieś 1,7 MB. Zapis obejmuje całą kość pamięci, łącznie z obszarem, w którym radio trzyma swoje ustawienia, więc zapis scalony zawsze je kasuje. Zapis trzech plików przesyła tylko właściwe dane, mniej więcej 1,7 MB, i nie rusza niczego poza tymi trzema obszarami, więc twoje ustawienia zwykle przeżywają.

„Zwykle” to uczciwe słowo i jest to też słowo źródła: dokumentacja firmware mówi, że przy trzech plikach ustawienia odbiornika mogą zostać skasowane w niektórych wersjach. Traktuj ich przetrwanie jako premię, a nie gwarancję, i zapisz sobie to, czego nie chciałbyś wprowadzać drugi raz.

Bez tej strony

Projekt firmware opisuje trzy własne drogi i wszystkie trzy oczekują tych samych plików pod tymi samymi adresami. Skorzystaj z jednej z nich, jeśli wolisz pracować narzędziem, którego używają autorzy firmware’u — a z dwóch ostatnich, jeśli twoja przeglądarka w ogóle nie ma Web Serial.

esptool-js, w przeglądarce
Własny programator webowy Espressifa pod adresem espressif.github.io/esptool-js. Połącz, dodaj pliki pod ich adresami, naciśnij Program i poczekaj na Leaving... Hard resetting via RTS pin... w logu. Windows, macOS i Linux; tylko przeglądarki oparte na Chromium, czyli takie samo ograniczenie jak tutaj.
Flash Download Tool, na Windowsie
Narzędzie desktopowe Espressifa. Chip Type ESP32-S3, WorkMode Develop, LoadMode UART; dodaj pliki, zaznacz pole przy każdym z nich, ustaw port COM i naciśnij START. Koniec następuje, gdy w logu pojawi się is stub and send flash finish.
esptool.py, z wiersza poleceń
Jedno polecenie z --chip esp32s3 i --baud 921600, a za nim adresy i nazwy plików. Dokumentacja firmware’u podaje gotową linię i dla trzech plików, i dla obrazu scalonego.

Niezależnie od wybranego narzędzia wyłącz potem radio i włącz je z powrotem, a następnie sprawdź wersję w Menu → Settings → About — i przy okazji tę niezerową wartość PSRAM.

Zanim cokolwiek zapiszesz

Co nowa wersja faktycznie dla ciebie zmienia, opisują Wersje firmware — próg 2.34 dla Bluetootha i szybkiego strojenia oraz zakres pasma CB, który po jego przekroczeniu robi się węższy. Jeśli rozważasz coś innego niż oficjalny firmware, zacznij od poradnika Alternatywny firmware.

Najczęściej zadawane pytania

Skąd mam wiedzieć, czy moje ATS Mini potrzebuje firmware OSPI czy QSPI?
Decyduje pamięć PSRAM w module ESP32-S3. Odczyt 8 MB oznacza wersję OSPI, a odczyt 2 MB wersję QSPI; oba kierunki sprawdzono na prawdziwych radiach. Czytaj pojemność, a nie producenta, bo ten sam ciąg pojawia się przy obu rozmiarach. Instalator na tej stronie odczytuje pojemność z układu i mówi, na którą wersję ona wskazuje. Ręcznie: uruchom esptool flash-id, a na esptool 4.x flash_id, i przeczytaj linię Features. Na radiu, które się uruchamia, Menu → Settings → About pokazuje niezerową wartość PSRAM wtedy, gdy działająca wersja pasuje do sprzętu.
Czy da się poznać, dla którego wariantu jest dany plik .bin?
Nie. Bootloader i tablica partycji są bajt w bajt identyczne we wszystkich trzech archiwach wydania, a obraz aplikacji różni się tylko o jakieś 2 kB konfiguracji PSRAM. Nazwa katalogu w archiwum wydania, na przykład ats-mini-v2.38-ospi, jest jedynym pewnym oznaczeniem — dlatego luźnego pliku .bin oderwanego od tego katalogu żadne narzędzie nie porówna z twoim sprzętem.
Czy wgranie nowego firmware skasuje moje komórki pamięci i ustawienia?
Obraz scalony zawsze je kasuje: obejmuje całą kość pamięci, łącznie z obszarem, w którym radio trzyma ustawienia. Zapis trzech plików przesyła tylko bootloader, tablicę partycji i firmware, więc ustawienia zwykle przeżywają — ale dokumentacja firmware zaznacza, że w niektórych wersjach mimo to mogą zostać skasowane, więc traktuj to jako prawdopodobne, a nie pewne.
Jakie są adresy do wgrania firmware ATS Mini?
Bootloader idzie pod 0x0, tablica partycji pod 0x8000, a sam firmware pod 0x10000. Obraz scalony, który zawiera wszystkie trzy, idzie sam pod 0x0. Wgrywa się albo trzy osobne pliki, albo obraz scalony, nigdy jedno i drugie.
Do czego służy archiwum lilygo-t-embed?
Do odbiornika LILYGO T-Embed SI4732, który jest osobnym urządzeniem, a nie trzecim wariantem pamięci w ATS Mini. Projekt firmware ostrzega, że wgranie go do ATS Mini może uszkodzić odbiornik, więc nigdy nie należy go tam używać.
Czy muszę coś instalować, żeby wgrać firmware do ATS Mini?
Nie. Instalator na tej stronie i esptool-js od Espressifa działają w przeglądarce przez kabel USB i nie wymagają instalacji. Są też narzędzia desktopowe — Flash Download Tool na Windowsie i esptool.py z wiersza poleceń — które zapisują dokładnie te same pliki pod dokładnie tymi samymi adresami.