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.

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

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.

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í | Šance | Co vidíš na displeji |
|---|---|---|
| 1 | 18,75 % | velká ryba – největší ikona, k tomu zvukový alarm |
| 2 | 50,00 % | střední ryba |
| 3 | 31,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 obrazu | Odkud pochází |
|---|---|
| Linie dna, hloubka číselně | měření |
| Teplota | měření |
| Výška, ze které se vrátilo echo | měření |
| Velikost a typ ikony ryby | losování v displeji |
| Žlutočervená textura dna | vzor z paměti přístroje |
| Zelený porost u dna | generátor tvarů, nezávislý na vodě |
| Pás rušení u hladiny | kreslí se vždy, s náhodnou tloušťkou |
| Plynulé posouvání obrazu | vý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žka | Kolik je to bitů |
|---|---|
| Obraz: 300 vzorků po 8 bitech | 2 400 |
| Telemetrie: hloubka, teplota, napětí, stav, kontrolní součet | + 80 |
| Celkem na jeden ping | 2 480 |
| Ping každých 100 ms, tedy 10krát za sekundu | 24 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ásmo | Reálná propustnost | Unese skutečný echogram? |
|---|---|---|
| 433 MHz (tohle sedí v FF918) | asi 94 b/s | Ne – 500krát málo |
| 868 MHz | od několika desítek bitů do 1 kb/s | Ne – limit doby vysílání |
| 2,4 GHz LoRa | několik desítek kb/s | Ano, s rozumnou rezervou |
| 2,4 GHz WiFi | 20-35 Mb/s | Ano, 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í
- Rozhodnutí Komise 2006/771/ES – harmonizace spektra pro zařízení krátkého dosahu v EU, zdroj limitů pro pásma 433 a 868 MHz
- ETSI EN 300 220-2 – harmonizovaná norma určující výkony a přípustnou dobu vysílání
- Český telekomunikační úřad – český regulátor, všeobecná oprávnění pro zařízení bez individuální licence
- Semtech SX1280 – obvod LoRa 2,4 GHz, příklad pásma s propustností dostatečnou pro obraz sonaru
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.

Asystent pomocy Extreme One