Nieuwe Mercury V1 firmware - v2.41 - Wijzigingslog
Nieuwe Mercury firmware is uit.
De Mercury V1 heeft een nieuwe update met veel verbeteringen en nieuwe functies. Dit is de grootste firmware-update die we tot nu toe hebben gedaan.
De Mercury logt sneller dan ooit en het nieuwe regelsysteem is een grote verbetering waarmee je veel meer kunt doen.
Firmware update tool
Mercury Firmware Changelog: v2.3 → v2.41
Changelog voor Mercury FW v2.30 (SUBREVISION 125) naar Mercury FW v2.41 (SUBREVISION 308)
Deze release bevat 183 interne wijzigingen.
1. Algemeen overzicht
Logsnelheid tot 300Hz
De Mercury begon met 32Hz en kan nu gegevens tot 300Hz loggen. De standaardinstelling is nu 250Hz met Hybrid 1:5 steekproefverhouding ook als standaard daar.
Dit betekent dat je Mercury met 50Hz logt vóór lancering, 250Hz tijdens lancering tot 5 seconden na apogee, daarna daalt het naar 50Hz (1:5 Hybrid ratio) tijdens afdaling en springt terug naar 250Hz voor landing zodra de hoogte onder de 20 meter daalt.
Dit geeft je veel detail voor de motorstuwkracht en andere gebeurtenissen wanneer je inzoomt op ze in de grafiek. Een motorbrand van 1 seconde heeft nu tot 300 versnellingspunten.
Loggrootte verhoogd en efficiënter
We hebben de maximale steekproeven van elke Mercury-log van 12000 naar 18000 verhoogd.
We slaan de logs nu op het apparaat op in een binair formaat in plaats van CSV. Dit biedt bijna 250% ruimtebesparingen in efficiëntie.
De logs worden geconverteerd naar CSV wanneer ze van het apparaat worden gedownload of na het uploaden naar de AltimeterCloud vanuit hun binaire versie.
Action Rules v6 - volledige vervanging van het vorige systeem
De oude vaste regelbuilder met zes slots is verwijderd, en hoewel deze capabel was, wilden we dit verbeteren tot iets veel krachtiger.
- Je kunt nu tot 12 regels op de Mercury V1 configureren en deze gebruiken om uitgangen te activeren, servo's te verplaatsen of configureren, of instellingen tijdens de vlucht aan te passen.

- Regelvoorwaarden kunnen nu worden opgebouwd met groepen en meerdere voorwaarden in elke groep om naar keuze te vergelijken. Dit stelt je in staat om eenvoudige of zeer complexe regels op te bouwen.

- Je kunt regels nu activeren eenmaal per vlucht, elke cyclus dat het geldig is, of op een tijdsysteem, bijvoorbeeld maximaal eenmaal per 3 seconden.
- Regelgedrag kan ook worden bewerkt om regels te laten draaien voordat lancering wordt gedetecteerd, regels over te slaan tijdens blokkades, te voorkomen dat het apparaat uitschakelt terwijl de regel actief is, of op een enkele geldige uitgang te werken of vijf geldige uitgangen op rij over 5 cycli vereisen.
- Regels kunnen verwijzen naar aangepaste datasets waarbij je berekende waarden kunt genereren die je referenceert op basis van elke vergelijking die je wilt gebruiken. We staan tot twee aangepaste datasets toe die elke cyclus op de Mercury worden geëvalueerd.
Veiligheidshekken voor uitgangen (nieuw, van toepassing op alle automatische/regelgestuurde uitgangen)
De Mercury heeft nu nieuwe veiligheidshekken voor uitgangen die hochstroom-uitgangen standaard beschermen. Je kunt ervoor kiezen om ze ook op andere uitgangen toe te passen, zoals servo's in het regelsysteem.
Gevonden onder de nieuwe instellingenpagina voor uitgangen heb je de volgende opties.
- Opstartvergrendeling (seconden) - Deze instelling voorkomt dat uitgangen afgaan tot deze veel seconden zijn verstreken sinds het inschakelen van de Mercury. Standaard is 10 seconden en je kunt 10-600s configureren. Dit kan niet worden uitgeschakeld.
- Hoogtegrens (meters) - Deze instelling voorkomt dat uitgangen afgaan, tenzij lancering is gedetecteerd en de altimeter op zijn minst deze hoogte boven het lanceringspunt ligt. Standaard is 50 meter en je kunt dit instellen tussen 50 en 150 meter. Dit kan niet worden uitgeschakeld.
- Lanceringsbevestigingsvertraging - Deze instelling voorkomt dat uitgangen afgaan totdat op zijn minst deze veel seconden na lancering. Standaard 2 seconden, je kunt dit instellen van 2 tot 500 seconden en dit kan ook niet worden uitgeschakeld.
Je kunt nu ook de GP6 ingang/uitgang-soldeerplaat gebruiken voor een ARM-schakelaar. Wanneer ingeschakeld hoef je alleen maar een schakelaar tussen GP6 en GND op je Mercury aan te sluiten, en wanneer de schakelaar gesloten is, zal het afvuren toestaan en wanneer open zal het het blokkeren.
Aangepaste datasetexpressies
Twee door de gebruiker definieerbare rekenkundige expressies, live geparseerd en gecompileerd, zijn beschikbaar als regeltriggerbronnen ("dataset1"/"dataset2").
Web-/AP-aanmeldingssysteem
De lokale webserver met apparaat wifi-toegangspunt vereist nu dat gebruikers zich aanmelden. Dit zorgt ervoor dat niemand je instellingen kan wijzigen als ze zich ermee verbinden zijn wifi-netwerk, of als ze het vinden via het wifi-netwerk waarmee je bent verbonden.
Je kunt je aanmelden door het AP wifi-wachtwoord in te voeren, of door op de knop op je mercury te drukken wanneer je daarom wordt gevraagd.
eNOW mini-chart broadcast
Na een vlucht kan het apparaat nu een gedownsampled profiel (240 steekproeven) uitzenden via ESP-NOW LR, zodat de vlucht van een verloren/niet-herstelde raket nog steeds op afstand kan worden gereconstrueerd.
Dit is naast de algemene vluchtsamenvatting die de Mercury kan uitzenden met ESP-NOW LR na de vlucht.
Je kunt meestal een ESP-NOW-signaal ontvangen op 200-800 meter, afhankelijk van je ontvangende hardware.
"Voeding behouden" instelling
Gedrag na opslaan is nu een expliciete 3-weginstelling onafhankelijk van eNOW: onmiddellijk in slaap gaan, laatste apogee voor altijd knipperen, of apogee 10 minuten lang knipperen en dan in slaap gaan. Laatste apogee wordt persistent opgeslagen in NVS, dus een korte knopdruk terwijl je inactief bent, knippert het opnieuw op aanvraag.
Truepath B 1.0
De Mercury kan het Truepath-filteralgoritme dat we voor de Nano V1 altimeter hebben gemaakt niet helemaal aan, omdat het minder RAM heeft, maar we hebben een lichte versie ervan samengesteld, die vrijwel net zo goed is. Je zou moeite hebben om het verschil in hun outputs uit onze tests te zien.
Dit is nu ook opgenomen in de Mercury altimeter.
2. Detectie & opname-algoritmeveranderingen
- Hogere steekproefsnelheden: 150/200/250/300Hz toegevoegd naast 50/100Hz (250Hz nu standaard op alle revisies, omhoog van 50/100Hz eerder). "max_samples" verhoogd 12000 naar 18000. Hybrid decimatiemodussen uitgebreid: 1:3, 1:5 (nieuwe standaard), 1:7, 1:10.
- Lanceringsvloer tracking herschreven: was een plat gemiddelde van de oudste ringbuffer-slots (die helemaal nul konden zijn vlak na de wijziging van vroege-kalibreringsuitgang, wat valse lanceringstriggers veroorzaakte); nu een slew-rate-gelimiteerde tracker die uit echte, met tijd begrensd steekproeven wordt geseedd.
Dit helpt om onopzettelijke lanceringstriggers te voorkomen wanneer je op neusvorkjes duwt of ze eraf trekt met kleine of geen ventilatiegaten. - Vliegende kalibrering kan nu vroeg eindigen (~6s echte voorafgaande buffergegevens) in plaats van te wachten tot de volledige ring vol is, wat bij hoge steekproefsnelheden ~27 seconden duurde. De stabiele kalibreringsvloer werkt ook met de slew rate-lanceringsvloer om onopzettelijke triggers te voorkomen.
- Lanceringsdetectie is nu een dubbele snelheidssysteem. Bij lage versnelling vereist het een extra seconde boven de lanceringdetectiedrempel om opname te starten, en bij hoge versnelling gebruikt het het kortere venster. Dit helpt om onopzettelijke lanceringsdetectie onder vacuümgebeurtenissen te voorkomen.
- Blokkade (post-launch spike/dropout) detectie herontworpen als een op timestamp gebaseerde dubbele snelheidstrigger (duurzaam vs. momentaan daalsnelheid) in plaats van een vaste teller van 3 opeenvolgende steekproeven. Dit maakt het begin- en eindpunten nauwkeurig en voorkomt dat een platte snelheidstijd-blokkade regels blokkeert, zelfs als de gebeurtenis al enige tijd is voorbij. Het is nu ook snelheid onafhankelijk.
- Apogee detectie: stabilisatievenster vervalt nu van 1500ms bij motoruitbrand naar 400ms, bescherming tegen de korte druk transient vlak bij motoruitbrand die door afdaling wordt verwisseld.
- IMU re-sync: maximale resync-offset schaalt nu met steekproefsnelheid (was beperkt tot een vast 25/50-steekproefvenster dat alleen voor 50/100Hz was afgestemd; een 100Hz-vlucht was al bekend dat hij dat plafond raakte).
- Stabiele-hoogte auto-stop herschreven om een real-time venster (9s/18s) geconverteerd naar steekproefoffsets met de huidige snelheid te gebruiken, in plaats van gecodeerde steekproeftellingen.
- "Truepath" post-flight hoogte-filter: diagnostiek voor het filter worden opgeslagen en geüpload naar de AltimeterCloud voor de werking van het filters.
- Pre-buffer reconstructie: onvergoten ringbuffer-slots uit een vroege lancering (voordat de paddbuffer volledig vol is) worden nu opnieuw opgebouwd als verstandige padbasislijngegevens in plaats van als gezerode vuilnis te worden opgeslagen. Dit beïnvloedt alleen degenen die trigger happy zijn en je lancering echt snel laten gaan nadat je de altimeter hebt ingeschakeld!
3. Betrouwbaarheid & foutafhandeling
- Thermische afschakeling op twee niveaus vervangt de oude single-sample 60°C trip: ≥80°C duurzaam 5s (snelle loopaway) of ≥70°C duurzaam 30s (duurzaam over-temp), beide wall-clock getimed dus korte pieken activeren geen storing. Werkt alleen in WiFi-modus.
- Fatale sensorfouten (geen druksensor / geen IMU gevonden) knipperen nu 10s en starten opnieuw. Sensoren krijgen opnieuw stroom en poging om opnieuw op te starten.
- Trackering van resetreden: Bootreset-redenen worden bij elke opstart vastgelegd (poweron/SW/panic/watchdog timeouts/brownout), plus cumulatieve levensduurzijlers per reden persistent in NVS en gerapporteerd bij elke ping.
Dit laat je zien "wat gebeurde deze opstart" van "deze unit's hele crashgeschiedenis." - I2C-busherstellling: sensorlezingen zijn nu verpakt met een timeout; bij fout of timeout een handmatige 9-klok/STOP-busreset herstelt een glitched-bus zonder volledige sensor-herinitialisatie (wat 50+ms zou kosten en ODR mid-flight zou resetten).
- RAM/heap-snapshots vastgelegd op belangrijke punten (flight-mode entry, eerste flight-loop iteratie, knopgetriggerde stop) voor post-flight diagnostiek.
- Toewijzingsfoutafhandeling: Als de flight ram buffers niet kunnen worden toegewezen, zal het apparaat opnieuw starten om het opnieuw te proberen na een melding van 10 seconden op de status-LED.
- Fabrieksreset via knop ingedrukt houden wist nu echt alle NVS-instellingen (eerder werd alleen WiFi gereset naar open/geen-wachtwoordmodus).
- AP-wachtwoord: eerder een getal van 8 cijfers, nu een string van 8 tekens gemengde-case+cijfer van de hardware RNG met visueel dubbelzinnige tekens uitgesloten. Een minimale lengte van 8 tekens wordt nu afgedwongen.
4. Netwerken, cloud & beveiliging
- Alle cloud-oproepen verplaatst van ruwe HTTP naar een opgelost IP-adres, naar HTTPS.
- HMAC-SHA256 ondertekening (via de hardware HMAC-peripheral van de ESP32, gesleuteld van een eFuse-sleutelblok) toegevoegd aan upload/notify/verify-oproepen, ter vervanging van een eenvoudige checksum-stijl. Dit bewijst dat gegevens van je apparaat afkomstig zijn van je apparaat en vangt ook gegevensbeschadiging.
- eFuse-sleutelinzettingscontrole: eenmaals check-and-request-flow voor inrichting van de unieke per-apparaat HMAC-sleutel bij eerste succesvolle internetverbinding.
- DNS-cacheverniewingsinterval verlengd van 30 min naar 2 uur.
- WiFi TX-vermogenplafond gewijzigd van 17dBm naar 15dBm goed binnen de 20dBm EU-limiet met de standaard PCB-antenne.
5. Data & opslagformaat
- Vluechtlogs verplaatst van CSV naar compact binair formaat (.bin 34-byte vaste records) voor zowel opslag als cloud-upload; CSV wordt nu on-the-fly gegenereerd van het binaire logboek wanneer een .csv wordt aangevraagd (AP download of cloud upload), via een gedeelde expander die de oude CSV exact weerspiegelt. Dit biedt enorme ruimtebesparingen waardoor meer logboeken en meer gegevens op de Mercury kunnen worden opgeslagen.
- JSON-metagegevenszijbalk (2.40+) de oude metagegevensbestanden waren in platte tekstindeling afhankelijk van specifieke regelnummers. JSON-indeling is een goed doel.
6. Remmen controleren
- Bug fix: de drempels voor de "urgentieversterker" (70%/40% boven doel) werden vergeleken met de verkeerde basislijn (overschot is al een verhouding ×100, dus "op doel" = 100, niet 0). Dit betekende dat de vermenigvuldiger permanent actief was, in plaats van alleen wanneer aanzienlijk over doel.
- Nieuw: Air_initial_angle om een geconfigureerde voorinstelling van motoruitbrand tot het begin van actieve modulatie in stand te houden, in plaats van volledig ingetrokken te zitten zonder autoriteit in beide richtingen.
- Nieuw: Air_apogee_lock en air_apogee_angle: optioneel naar een vaste hoek op apogee rijden en deze vast houden in plaats van altijd in te trekken.
- Doelhoogte- en overschot-tolerantie-instellingen worden nu bereik-gecontroleerd voordat ze worden toegepast.

