Aktualizacje produktu

Nowy Mercury V1 firmware - v2.41 - Dziennik zmian

NNeil Bowen8 min czytania

Nowe oprogramowanie Mercury jest dostępne.

Mercury V1 ma nową aktualizację pełną ulepszeń i nowych funkcji. To największa aktualizacja oprogramowania, którą do tej pory wykonaliśmy.
Mercury rejestruje dane szybciej niż kiedykolwiek, a nowy system reguł to wielkie ulepszenie, które pozwala ci zrobić znacznie więcej.

Narzędzie aktualizacji oprogramowania

Dziennik zmian oprogramowania Mercury: v2.3 → v2.41

Dziennik zmian dla Mercury FW v2.30 (SUBREVISION 125) do Mercury FW v2.41 (SUBREVISION 308)
Ta wersja zawiera 183 wewnętrzne edycje.


1. Podsumowanie ogólne

Prędkość rejestracji do 300Hz

Mercury zaczynał z częstotliwością 32Hz, a teraz może rejestrować dane z szybkością do 300Hz. Ustawienie domyślne to teraz 250Hz z hybrydowym stosunkiem próbkowania 1:5 również domyślnie.
Oznacza to, że twój Mercury będzie rejestrować 50Hz przed startem, 250Hz podczas startu do 5 sekund po apogeum, następnie spada do 50Hz (stosunek hybrydowy 1:5) podczas opadania i powraca do 250Hz przy lądowaniu, gdy wysokość spadnie poniżej 20 metrów.
Umożliwia to zobaczenie wielu szczegółów dotyczących ciągu silnika i innych zdarzeń podczas powiększenia ich na wykresie. Spalanie silnika trwające 1 sekundę teraz ma do 300 punktów przyspieszenia.

Zwiększony rozmiar dziennika i większa wydajność

Zwiększyliśmy maksymalną liczbę próbek dla każdego dziennika Mercury z 12000 na 18000.
Teraz przechowujemy dzienniki na urządzeniu w formacie binarnym zamiast CSV. Oferuje to prawie 250% oszczędności przestrzeni.
Dzienniki są konwertowane na CSV podczas pobierania z urządzenia lub po przesłaniu do AltimeterCloud z ich wersji binarnej. 

Action Rules v6 - całkowita zamiana poprzedniego systemu

Stary konstruktor reguł z sześcioma gniazdy został usunięty, a choć był zdolny, chcieliśmy ulepszyć to na coś znacznie bardziej zaawansowanego.

  • Możesz teraz skonfigurować do 12 reguł na Mercury V1 i używać ich do wyzwalania wyjść, poruszania lub konfigurowania serw, lub dostosowywania ustawień podczas lotu.
  • Warunki reguły można teraz budować z grupami i wieloma warunkami w każdej grupie do porównania w wybranym sposób. Umożliwia to budowanie prostych lub bardzo złożonych reguł.
  • Możesz teraz wyzwalać reguły jeden raz na lot, w każdym cyklu gdy są ważne lub na systemie czasowym, na przykład maksymalnie raz na 3 sekundy.
  • Zachowanie reguły można również edytować, aby umożliwić uruchamianie reguł przed wykryciem startu, pominięcie reguł podczas blokad, zapobieganie wyłączeniu urządzenia podczas aktywnej reguły lub działanie na jednym ważnym wyjściu lub wymaganie 5 ważnych wyjść z rzędu przez 5 cykli.
  • Reguły mogą odwoływać się do niestandardowych zbiorów danych, gdzie możesz generować wyliczone wartości do odwołania na podstawie dowolnego wybranego równania. Na Mercury umożliwiamy do dwóch niestandardowych zbiorów danych ocenianych w każdym cyklu.

Bramy bezpieczeństwa wyjścia (nowe, dotyczy każdego automatycznego/sterowanego regułami wyjścia)

Mercury ma teraz nowe bramy bezpieczeństwa wyjścia, które domyślnie chronią wyjścia wysokoprądowe. Możesz wybrać zastosowanie ich do innych wyjść, takich jak serwa w systemie reguł.

Znalezione na nowej stronie ustawień wyjścia, masz następujące opcje.

  • Blokada uruchamiania (sekundy) - To ustawienie uniemożliwia wyjściom uruchomienie się do czasu, aż upłynęła ta liczba sekund od włączenia Mercury. Wartość domyślna to 10 sekund i możesz skonfigurować 10-600s. To nie może być wyłączone.
  • Próg wysokości (metry) - To ustawienie uniemożliwia wyjściom uruchomienie się, chyba że start zostanie wykryty i altimetr jest co najmniej tą wysokością nad poduszką startową. Wartość domyślna to 50 metrów i możesz ustawić to między 50 a 150 metrów. To nie może być wyłączone.
  • Opóźnienie potwierdzenia startu - To ustawienie uniemożliwia wyjściom uruchomienie się do czasu, aż upłynęła co najmniej ta liczba sekund po starcie. Wartość domyślna 2 sekundy, możesz ustawić to od 2 do 500 sekund i również to nie może być wyłączone. 

Możesz również teraz użyć zacisku sprzętowego wejścia/wyjścia GP6 dla przełącznika ARM. Po włączeniu wystarczy podłączyć przełącznik między GP6 a GND na swoim Mercury, a gdy przełącznik jest zamknięty, pozwoli na uruchomienie, a gdy otwarty, zablokuje to. 

Wyrażenia niestandardowego zbioru danych

Dwa definiowane przez użytkownika wyrażenia arytmetyczne, analizowane i ponownie kompilowane na żywo dostępne są jako źródła wyzwalaczy reguł („dataset1"/„dataset2").

System logowania Web/AP

Lokalny serwer webowy punktu dostępu WiFi urządzenia wymaga teraz zalogowania się użytkowników. Zapewnia to, że nikt nie może zmienić twoich ustawień, jeśli się z nim połączy lub jeśli go znajdzie w sieci WiFi, z którą się łączysz.
Możesz zalogować się, wprowadzając hasło WiFi AP, lub naciskając przycisk na swoim Mercury po wyświetleniu monitu.

Broadcast mini-wykresu eNOW

Po locie, urządzenie może teraz transmitować profil z próbkowaniem zmniejszonym (240 próbek) przez ESP-NOW LR, aby lot utraconej/nieuratowanej rakiety mógł być rekonstruowany zdalnie.
To jest oprócz ogólnych danych podsumowania lotu, które Mercury może wysyłać za pomocą ESP-NOW LR po locie.
Zwykle możesz odebrać sygnał ESP-NOW na odległość 200-800 metrów w zależności od sprzętu odbierającego. 

Ustawienie „Utrzymuj zasilanie"

Zachowanie post-zapisowe to teraz wyraźne ustawienie 3-drożne niezależne od eNOW: natychmiast zasnąć, migać ostatnim apogeum na zawsze, lub migać apogeum przez 10 minut, a następnie zasnąć. Ostatnie apogeum jest utrwalane w NVS, więc krótkie naciśnięcie przycisku w stanie bezczynnym ponownie je miga na żądanie.

Truepath B 1.0

Mercury nie może w pełni obsługiwać naszego algorytmu filtrowania Truepath, który utworzyliśmy dla altimetru Nano V1, ponieważ ma mniej pamięci RAM, jednak opracowaliśmy lekką wersję, która jest prawie tak samo dobra. Byłoby ci trudno dostrzec różnicę w ich wyjściach na podstawie naszych testów.
To jest teraz zawarte również w altimetrze Mercury.


2. Zmiany algorytmu wykrywania i rejestracji

  • Wyższe częstotliwości próbkowania: 150/200/250/300Hz dodane obok 50/100Hz (250Hz teraz domyślne na wszystkich wersjach, w górę z 50/100Hz wcześniej). „max_samples" podwyższone 12000 do 18000. Tryby dziesiątkowania hybrydowego rozszerzone: 1:3, 1:5 (nowy domyślny), 1:7, 1:10.
  • Przepisany śledzenie piętra startu: była to średnia płaska najstarszych miejsc bufora pierścieniowego (które mogły być całe zerowe zaraz po zmianie wczesnego wyjścia kalibracji, powodując fałszywe wyzwalacze startów); teraz ograniczony śladem szybkości zmiany zasiany z rzeczywistymi próbkami ograniczonymi czasowo.
    To pomaga zapobiec przypadkowemu wyzwalaniu startów podczas naciskania na opuszki nos lub ściągania ich z małymi lub żadnymi otworami wentylacyjnymi.
  • Kalibracja lotu może teraz wyjść wcześnie (~6s rzeczywistych danych sprzed bufora) zamiast czekać na wypełnienie całego pierścienia, co przy wysokich częstotliwościach próbkowania zajęło ~27 sekund. Stabilna podłoga kalibracji również pracuje ze śladem szybkości piętra startowego, aby zapobiec przypadkowemu wyzwalaniu.
  • Wykrywanie startu to teraz system z dwoma szybkościami. Przy niskim przyspieszeniu wymaga dodatkowej sekundy powyżej progu wykrywania startu do wyzwolenia rejestracji, a przy wysokim przyspieszeniu wykorzystuje krótsze okno. To pomaga w zapobieganiu przypadkowemu wykryciu startu w wypadku zdarzeń próżni.
  • Wykrywanie blokady (skokowy spadek/brak po starcie) przeprojektowano jako wyzwalacz oparty na znaczniku czasu z podwójną szybkością (sustanty opadania względem chwilowego) zamiast stałego licznika 3 kolejnych próbek. To sprawia, że jego punkty początkowe i końcowe są dokładne i zapobiega blokadzie czasu o płaskiej szybkości reguły nawet jeśli zdarzenie minęło od dłuższego czasu. Jest to również niezależne od szybkości.
  • Wykrywanie apogeum: okno ustabilizowania teraz rozpada się z 1500ms przy spaleniu do 400ms, chroniąc przed krótkim przejściowym ciśnieniu tuż przy spaleniu silnika, które jest pomylone z opadaniem.
  • Ponowna synchronizacja IMU: maksymalny offset ponownej synchronizacji teraz skaluje się z szybkością próbkowania (było ograniczone do stałego okna 25/50-próbek dostrojonych tylko dla 50/100Hz; lot 100Hz już obserwował uderzenie tego pułapu).
  • Auto-stop stabilnej wysokości przepisane do użycia okna czasu rzeczywistego (9s/18s) przeliczonego na przesunięcia próbek przy obecnej szybkości, zamiast zakodowanych na sztywno liczb próbek.
  • Filtr wysokości post-lotu „Truepath": diagnostyka filtra są zapisywane i przesyłane do AltimeterCloud dla operacji filtrów.
  • Rekonstrukcja sprzed bufora: niezagotowana miejsce bufora pierścieniowego z wczesnego startu (przed pełnym napełnieniem bufora poduszki) są teraz przebudowywane jako rozsądne dane linii bazowej poduszki zamiast być zapisywane jako zerowe śmieci. To dotyczy tylko tych z was, którzy są szybcy i uruchamiają start naprawdę całkiem szybko po włączeniu altimetru!

3. Obsługa niezawodności i błędów

  • Dwupoziomowe wyłączenie termiczne zastępuje stary pojedynczy-próbkowy trip 60°C: ≥80°C sustain 5s (szybki uciek) lub ≥70°C sustain 30s (prolonged over-temp), oba ścienne czasu, więc krótkie skoki nie niepotrzebnie wyjeżdżają. Działa tylko w trybie WiFi.
  • Błędy czujnika krytycznego (bez czujnika ciśnienia / nie znaleziono IMU) teraz migają przez 10s, a następnie restartują. Czujniki są zasilane i przywracane.
  • Śledzenie powodu resetowania: Powody resetowania uruchomienia są przechwytywane w każdym uruchomieniu (poweron/SW/panika/timeout watchdog/brownout), plus skumulowane liczniki całkowitego okresu na powód utrzymywane w NVS i raportowane w każdym pingu.
    Umożliwia to powiedzenie „co stało się w tym uruchomieniu" od „całej historii awarii tego urządzenia".
  • Odzyskiwanie magistrali I2C: odczyty czujników są teraz zawijane z timeout; w przypadku awarii lub timeout, ręczny reset magistrali 9-zegarowy/STOP odzyskuje zglitchwowaną magistralę bez pełnej ponownej inicjalizacji czujnika (co kosztowałoby 50+ms i resetowanie ODR w środku lotu).
  • Zrzuty RAM/heap przechwytywane w kluczowych punktach (wejście w tryb lotu, pierwsza iteracja pętli lotu, zatrzymanie wyzwolone przycisku) dla diagnostyki post-lotowej.
  • Obsługa błędu alokacji: Jeśli bufory RAM lotu nie alokowują, urządzenie uruchomi się ponownie, aby spróbować ponownie po 10 sekundowym okresie powiadomienia na LED stanu.
  • Resetowanie fabryczne poprzez przycisk hold teraz naprawdę czyści wszystkie ustawienia NVS (wcześniej resetowało tylko WiFi na tryb otwarty/bez hasła).
  • Hasło AP: wcześniej liczba 8-cyfrowa teraz ciąg 8-znakowy mieszany+digit z losowego generatora sprzętu z wykluczonymi znakami wizualnie niejasnymi. Teraz wymuszane jest minimalna długość 8 znaków.

4. Sieci, chmura i bezpieczeństwo

  • Wszystkie wywołania chmury przeniesione z surowego HTTP do rozwiązanego adresu IP, do HTTPS.
  • Podpisywanie HMAC-SHA256 (za pośrednictwem zasilacza HMAC sprzętu ESP32, zasilanego z bloku klucza eFuse) dodane do wywołań upload/notify/verify, zastępując prosty styl sumy kontrolnej. To potwierdza, że dane z twojego urządzenia pochodzą z twojego urządzenia, a także łapie wszelkie uszkodzenia danych. 
  • Sprawdzenie wdrożenia klucza eFuse: przepływ jednorazowego sprawdzenia i żądania do aprowizacji unikalnego klucza HMAC na urządzenie przy pierwszym udanym połączeniu internetowym.
  • Interwał odświeżania pamięci podręcznej DNS rozszerzony 30 min do 2 godzin.
  • Pułap mocy TX WiFi zmieniony z 17dBm na 15dBm dobrze w limicie 20dBm UE ze standardową anteną PCB.

5. Format danych i przechowywania

  • Dzienniki lotu przeniesione z CSV na kompaktowy format binarny (.bin rekordy o stałej długości 34 bajtów) zarówno do przechowywania, jak i przesyłania do chmury; CSV jest teraz generowany na bieżąco z binarnego dziennika, gdy żądany jest .csv (pobieranie AP lub przesyłanie do chmury), za pośrednictwem wspólnego expandera, który odbija stary CSV dokładnie. To oferuje ogromne oszczędności przestrzeni, pozwalając na więcej dzienników i więcej danych do przechowywania na Mercury. 
  • Zbiór danych sidecar JSON (2.40+) stare pliki metadanych były w formacie zwykłego tekstu polegającym na określonych numerach wierszy. Format JSON to dobre ulepszenie. 

6. Sterowanie hamulcami powietrznymi

  • Naprawa błędu: progi „mnożnika pilności" (70%/40% powyżej celu) były porównywane z nieprawidłową linią bazową (przelot to już stosunek ×100, więc „na celu" = 100, nie 0). Oznacza to, że mnożnik był stale aktywny, zamiast tylko gdy znacznie powyżej celu. 
  • Nowy: Air_initial_angle do utrzymania skonfigurowanej pozycji wstępnej od spalenia do momentu rozpoczęcia aktywnej modulacji, zamiast siedzeć całkowicie wciśnięty bez żadnych uprawnień w żadnym kierunku.
  • Nowy: Air_apogee_lock i air_apogee_angle: opcjonalnie prowadź do i utrzymuj stały kąt w apogeum zamiast zawsze się wciągać.
  • Ustawienia docelowej wysokości i tolerancji przepełnienia są teraz sprawdzane w zakresie przed zastosowaniem.