Lucky FF918: po lewej dane z sondy - linia dna i cztery punkty celow, po prawej kolorowy echogram wygenerowany przez wyswietlacz

O čem ti prodejce zapomněl říct #2 – aneb proč Lucky FF918 kreslí ryby, které nikdy nezměřil

V první části jsem ukázal, jak se parkovací senzor dostane do krabičky a prodává se jako hloubkoměr. Dnes mám na stole zařízení, které opravdu je sonar a hloubku skutečně měří – nejpopulárnější bezdrátovou sondu na trhu, Lucky FF918. 🎣

Nevyčítám Lucky FF918, že nefunguje. Funguje. Otázka zní jinak: kolik z toho, co vidíš na barevném displeji, je měření a kolik kresba? Abych to zjistil, připojil jsem analyzátor na datovou linku mezi rádiovým modulem a displejem a nahrál, co přesně přilétá z vody. Sedm nezávislých záznamů, v různých hloubkách.

Sonar Lucky FF918-C: displej s barevnou obrazovkou, vysílač s anténou 433 MHz a měnič
Sada Lucky FF918-C: displej, vysílač s anténou 433 MHz a měnič. Na displeji 13,6 m hloubky, 2,7 °C a čtyři ryby popsané hloubkami – za chvíli tenhle obrázek rozložíme přesně na devět bajtů, které ho vyrobily. (foto: materiály výrobce/prodejce, použité pro účel kritické analýzy)

Výsledek mě překvapil – a myslím, že překvapí i tebe.

Lucky FF918: vlevo data ze sondy - linie dna a čtyři body cílů, vpravo barevný echogram vygenerovaný displejem

1. Celá komunikace sondy Lucky FF918 s displejem je devět bajtů

Plovák Lucky FF918 vysílá na 433 MHz rychlostí asi 333 bitů za sekundu. To je hodně pomalu – pro srovnání, nejstarší telefonní modem z osmdesátek byl rychlejší. Jedna dávka dat má přesně 9 bajtů, tedy méně než jedno krátké slovo v SMS. Nová dávka přichází každých 0,77 sekundy.

Rádiový rámec Lucky FF918: 9 bajtů - vysílač, hloubka, teplota, čtyři cíle a kontrolní součet

A to je celé. Nic dalšího mezi plovákem a displejem neprojde:

  • číslo vysílače – aby displej věděl, že je to jeho sonda, a ne od kolegy na vedlejším místě
  • hloubka – skutečné měření
  • teplota vody – skutečné měření
  • čtyři pole cílů – po jednom bajtu
  • kontrolní součet – kontrola, že se cestou nic nepřekroutilo

2. Ty čtyři bajty nesou jen výšku – nic víc

Každý bajt cíle je číslo od 0 do 255, natažené mezi hladinou a dnem. Nula znamená „tady nic není“, 255 znamená „těsně u dna“, 128 znamená „v polovině vody“. To je vše.

Pozor, je to důležité při čtení displeje: bajt cíle je zlomek hloubky, ne vzdálenost. Stejný bajt znamená 1 metr, když je dno ve 2 metrech, a 10 metrů, když je dno ve 20. Stupnice se vždycky natahuje od hladiny ke dnu.

Ověřme si to na fotce Lucky FF918 z nabídky výrobce. Je na ní hloubka 13,6 m a ryba popsaná jako 3,7 m. Bajt, který ji nese, má hodnotu 70. Výpočet: 70 děleno 256, krát 13,6 metru, dává 3,72 metru. Sedí na decimetr s číslem vytištěným nad rybou.

V tom bajtu ale není ani jedna informace o síle echa. Ani o velikosti cíle. Ani o tom, jak silně něco odrazilo zvuk. Sonda posílá výhradně odpověď na otázku „v jaké výšce“, nikdy „co“ a „jak velké“.

3. Lucky FF918 neví, jestli je pod tebou ryba, rostlina nebo padlý strom

Plyne to přímo z bodu dva, ale stojí za to říct to zvlášť, protože to má přímý dopad na rybaření. Plovák Lucky FF918 hlásí cíl ve vodním sloupci – tedy fakt, že někde mezi dnem a hladinou něco odrazilo signál. A tím jeho vědomosti končí.

V tom přenosu není žádné pole, které by říkalo „tohle je ryba“ nebo „tohle je rostlina“. Žádná klasifikace. Žádné rozpoznávání. A displej přesto v každém takovém případě nakreslí rybu – protože jinou ikonu prostě nemá.

V praxi to znamená, že rybou na displeji se stane cokoliv: trs rostlin vyrůstající ze dna, padlý strom, čnící větev, pařez nebo jakýkoliv jiný zádev, vzduchové bublinky, teplotní vrstva, zákal po dešti, dokonce i echo od tvého vlastního vlasce nebo montáže. Přístroj nelže – jenom nemá čím jedno od druhého odlišit.

Je tu ještě jedna past, mnohem méně zřejmá. Vysoká rostlina, padlý strom nebo čnící větev vracejí echo z několika výšek naráz – ode dna až po svůj vrcholek. Sonda pak nahlásí několik cílů nad sebou a displej z nich nakreslí několik samostatných ryb postavených do sloupku. Ten typický „komín ryb“ nade dnem, který vypadá jako žírující hejno, je velmi často jen jeden keř nebo potopená větev.

Proto tři „ryby“ stojící nehnutě na stejném místě čtvrt hodiny jsou skoro jistě porost, zádev nebo potopená struktura, ne hejno kaprů čekající na tvou montáž. A funguje to i obráceně: o zádevu se taky nedozvíš, protože ti ho přístroj ukáže jako rybu místo toho, aby varoval, že tam raději montáž nepokládat.

4. Velikost ryby na displeji Lucky FF918 se losuje

Tady se dostáváme k věci, která mě u stolu opravdu zastavila a která o Lucky FF918 říká nejvíc. Když v přenosu není pole popisující velikost cíle – odkud bere displej malé, střední a velké ryby?

Losuje je. Při každé přijaté dávce dat se pro každý cíl spustí generátor náhodných čísel, který přidělí velikostní třídu:

Výsledek losováníŠanceCo vidíš na displeji
118,75 %velká ryba – největší ikona, k tomu zvukový alarm
250,00 %střední ryba
331,25 %malá ryba

Z toho jednoho losování pak plyne všechno, co odlišuje „velkou rybu“ od „malé“: který hotový obrázek se nalepí na displej, jak velká bude barevná značka a jestli přístroj pípne alarmem.

A aby bylo jasné, odkud ta jistota – nejde o to, že by byl algoritmus špatný. Jde o to, že v rádiovém rámci neexistuje pole, které by velikost cíle přenášelo. I kdyby displej velmi chtěl ukázat ji poctivě, neměl by z čeho.

Jak si to ověřit sám, úplně bez vybavení

Nemusíš mi věřit na slovo a nemusíš umět číst kód:

  • Spusť na provázku plechovku, kámen nebo větev – zhruba do poloviny hloubky.
  • Sleduj výšku ikony – bude stabilní, protože poloha se počítá poctivě.
  • Teď sleduj její velikost – tatáž nehybná plechovka bude jednou „malá ryba“, jednou „velká“, a bude se to měnit každou sekundu.

Tenhle jeden test ukáže obě věci naráz: stálá výška je důkaz, že měření polohy je pravdivé, a blikající velikost, že velikost je vymyšlená. Natoč to na telefon, je to vidět jako na dlani.

5. Barevný echogram Lucky FF918 z větší části není měření

Vrať se na chvíli ke grafice Lucky FF918 ze začátku článku. Vlevo je všechno, co přiletělo z vody: červená linie dna a čtyři body. Vpravo tatáž data po zpracování v displeji.

Všimni si, že červená linie dna se na obou obrázcích kryje na pixel. Protože obrys dna je pravdivý – jedno poctivé měření na každou dávku dat. Pravdivá je i výška, ze které se echo vrátilo – i když o tom, co ho odrazilo, sonda neříká nic.

Celý zbytek ale vzniká na místě, v displeji, z hotových vzorů uložených v jeho paměti:

Prvek obrazuOdkud pochází
Linie dna, hloubka číselněměření
Teplotaměření
Výška, ze které se vrátilo echoměření
Velikost a typ ikony rybylosování v displeji
Žlutočervená textura dnavzor z paměti přístroje
Zelený porost u dnagenerátor tvarů, nezávislý na vodě
Pás rušení u hladinykreslí se vždy, s náhodnou tloušťkou
Plynulé posouvání obrazuvýplň mezi dávkami dat

Vodní sloupec na tomhle displeji má 445 pixelů na výšku. Kreslí se ze čtyř čísel.

6. Proč Lucky FF918 funguje takhle? Protože na 433 MHz se obraz nevejde

A tady chci být k výrobci férový: tohle není zlomyslnost ani šetření. Tohle je fyzika a předpisy.

Spočítejme, kolik potřebuje slušný sonar, který kreslí skutečný obraz dna. Vezměme skromných 300 vzorků na jeden ping:

SložkaKolik je to bitů
Obraz: 300 vzorků po 8 bitech2 400
Telemetrie: hloubka, teplota, napětí, stav, kontrolní součet+ 80
Celkem na jeden ping2 480
Ping každých 100 ms, tedy 10krát za sekundu24 800 bitů za sekundu
Režie rádiového protokolu, asi 30 %32 000
Obsazenost pásma jen 65 %, aby zbyla rezerva na opakování ztracených rámcůasi 50 000 bitů za sekundu

Lucky FF918 přenáší asi 94 bitů za sekundu. To je zhruba 500krát málo. Přes 433 MHz se skutečný obraz dna protlačit nedá – takže obraz musí vzniknout v displeji. A vzniká.

Proč je rezerva na opakování důležitá? Protože na velkou vzdálenost se rámce ztrácejí. Když je linka nacpaná na doraz, ztracenou dávku není jak zopakovat a obraz se trhá. A proč pingat častěji než jednou za 100 ms? Protože každý ping je jeden sloupec obrazu – při 10 pinzích za sekundu je každý sloupec skutečné měření. Když je pingů méně, mezi nimi vznikne díra, kterou musí přístroj něčím vyplnit.

Co to znamená při koupi zavážecí loďky se sonarem

Tohle je závěr, který stojí za to vzít si s sebou na nákup. Když ti někdo nabízí zavážecí loďku, která má na jedné úzké rádiové lince zároveň řídit loďku – motory, kormidlo, světla, klapky, rozmetadlo – a podávat obraz ze sonaru, pak se ty dvě věci perou o stejnou, velmi úzkou trubku.

Řízení musí letět nepřetržitě a bez zpoždění, protože na tom závisí, jestli loďka zatočí. Obraz potřebuje pásmo. V pásmu 868 MHz k tomu přibývá právní omezení – vysílat se smí jen zlomek času, takže i rychlý modem dá průměrně několik set bitů za sekundu.

PásmoReálná propustnostUnese skutečný echogram?
433 MHz (tohle sedí v FF918)asi 94 b/sNe – 500krát málo
868 MHzod několika desítek bitů do 1 kb/sNe – limit doby vysílání
2,4 GHz LoRaněkolik desítek kb/sAno, s rozumnou rezervou
2,4 GHz WiFi20-35 Mb/sAno, s obrovskou rezervou

Proto se vyplatí položit prodejci prostou otázku: na jaké frekvenci a jakou rychlostí u vás letí obraz sonaru? Odpověď ti řekne víc než celý popis produktu.

Shrnutí – co ti Lucky FF918 neřekne naplno

Shrnuto poctivě, protože tohle není atrapa a nebudu předstírat, že je:

  • Hloubka a teplota jsou pravdivé – jako kontrola místa před nahozením přístroj svou práci odvede.
  • Výška echa je zobrazena věrně, ale to neznamená, že tam je ryba. Když sonda nahlásila cíl ve 4 metrech, ikona bude ve 4 metrech – jenže pod ní může růst keř, ne plavat kapr.
  • Velikost ikony neber jako informaci – losuje se, velká ikona neznamená velkou rybu.
  • Ikona ryby neznamená „ryba“ – sonda hlásí jen cíl ve vodě a rostlina, padlý strom, zádev nebo bublinky vypadají na displeji stejně.
  • Barevný echogram není obraz dna – textura, porost a barvy jsou grafika z paměti přístroje.
  • Čtyři cíle naráz jsou strop – hejno nemá jak se ukázat.

Jinými slovy: Lucky FF918 je slušný hloubkoměr s teploměrem a ukazatel „něco tam ve vodě visí“. Není to sonar v tom smyslu, jak ho chápe rybář dívající se na obraz dna.

Jak jsem sonar Lucky FF918 zkoumal

Logický analyzátor připojený na datovou linku Lucky FF918, mezi rádiovým modulem a displejem, sedm nezávislých záznamů v různých hloubkách a teplotách. Data tam letí otevřeným textem, bez jakéhokoliv šifrování. Všech sedm záznamů se rozpadá na stejné 9bajtové dávky – a teplota z nich přečtená stojí v každém záznamu jako přibitá, zatímco hloubka se plynule mění. Takhle vypadá správně přečtený protokol. Navíc jsem prošel logiku samotného displeje, abych zjistil, co s těmi daty dělá.

Co jsem netestoval, a proto o tom nepíšu: nevyjadřuji se ke kvalitě samotného měniče ani k tomu, jak dobře sonda zachytí cíle ve vodě – na to nemám data. Netvrdím ani, že přístroj měří hloubku špatně. Popisuji výhradně to, co jsem doložil: co sonda posílá a co s tím displej dělá. Analýza se týká konkrétního kusu a té verze firmwaru, kterou jsem v něm našel.

Srovnávací grafika na začátku článku je moje rekonstrukce, nakreslená tímtéž algoritmem, který jsem našel v displeji – ne snímek obrazovky přístroje.

Zdroje a materiály k ověření

Upozornění. Analýza se týká konkrétního kusu a té verze firmwaru, kterou jsem v něm zastihl – jiné série a varianty modelu (FF918-C, CWLS a odvozeniny) se mohou lišit. Rádiové limity a propustnosti uvádím orientačně, podle předpisů EU pro zařízení krátkého dosahu; přesné hodnoty závisí na podpásmu a konkrétním řešení. Jestli to u tebe vypadá jinak – napiš, rád zkontroluju další kus.

Takhle to u nás chodí: než se cokoliv dostane do našich loděk, projde přes tenhle stůl. A když něco neprojde – řekneme to nahlas, i když to zrovna nikdo slyšet nechce.

Podobné příspěvky

Napsat komentář