pocitadlo

Aktualizace OGN krabiček

Někdy začátkem února, kdy už tak nějak oskar šajnoval ale i přesto byla furt jestě kosa, jsem začal testovat nový softvér pro sezónu 2023. Testované škatulky jsem měl v hokně na střeše, neboť zkoušky na čersvém luftě nejsou žádné laboratoř a projeví se tam i to, co ve sklepě nejde vidět. Obzvláště mi v tom napomáhal medlánecký Dynamik, který bóchal okruhy hned a blízkým hrbem.

Za polních podmínek používám pro aktualizaci androidí aplikaci OGN Cube Control, kterou jsem napsal proto, aby se nemusely krabičky aktualizovat jako Flarmy – kuchat to z éra, nebo nosit počítač do hangáru. Ještě v pondělí odpoledne všechno chodilo jak má, úpravy jedna za druhou mi dělaly radost, paráda. Ve sředu, kdy jsem zamýšlel flešnout finální verzi, se něco stalo. V aplikaci jsem viděl jen čínské znaky. ___!? V telefonu mám zakázány jakékoliv aktualizace a všechno dělám ručně, především proto, aby se veci děly konzistentně a měl jej aspoň trochu pod kontrolou. OGN Cube Control mám ve vývojové verzi (tudíž ne z play storu). Tak co se ***** mohlo stát? Jak jsem se dozvěděl o pár měsíců později, tak v ono úterý se soudruzi z Googlu rozhodli změnit „něco“ v API a jakmile byl telefon připojen k iternetu, tak protlačili toto „vylepšení“ i přes zákaz aktualizací do všech našich telefonů. Aplikace, které používaly starší knihovny tak ze dne na den přestaly fungovat. No tvl!

Řešení bylo na snadě – tak upgraduju android dev kit, Flutter, Dart a obecně celý workspace, překompiluju aplikaci, deploynu a bude hotovo, ne? To ani náhodou! Od té chvíle je projekt kompletně rozbitý a nejde ani zbuildovat. Jak to tak vypadá, tak to bude chtít přepsat OGN Cube Control úplně od začátku.. až jednoho dne bude čas (a chuť). A protože to není záležitost úplně na jeden víkend a krabičky tu aktualizaci opravdu chtějí, přináším (pro lehce zkušeněší uživatele) návod, jak krok po kroku provést aktualizaci vašich OGN krabiček.

Co k tomu budete pořebovat: počítač s nejakou verzí linuxu (popis bude pro *buntu, ale jakékoliv jiné distro je ok) a fungujícím modrozubem (bluetooth). Celé je to stále možné provést ve vymrzlém hangáru bez vymontování krabičky z letadla.

Krok #1: V terminálu/konzoli nainstalujte nástroje potřebné pro běh aktualizačního programu, skriptů a kominukaci mezi skripty a krabičkou přes modrozub:

sudo bash
apt install bluez git python3
hcitool scan
^D

Pokud jste už měli krabičku zapnutou, měla by být vidět ve výpisu po provedeném scanu na posledním řádku. Pokud ne, proveďte scan znovu.

Krok #2: Stáhněte aktualizační program (skripty) z githubu:

git clone https://github.com/ibisek/firmwareLoader.git
cd firmwareLoader
python3 -m venv venv
source ./venv/bin/activate
pip install -r requirements.txt 
deactivate

Krok #3: Stáhněte si (ideálně ten nejnovější) firmware pro vaši konkrétní krabičku z repozitáře ognCubeReleases. Pro tento krok je nutné přesně vědět, jaký mikrokontrolér v ní máte. To můžete určit podle následující tabulky, ale pokud si chcete být fest jistí, tak ji kuchněte a přečtěte si typ přímo na MCU (na tišťáku černý čtvereček vlevo dole).

  • OGN CUBE 2 -> STM32F103CBT6
  • OGN CUBE 3 -> STM32F103CBT6
  • OGN CUBE 3.5 -> STM32L152CC..

!!VAROVÁNÍ!! Pokud flešnete firmware pro nesprávný typ MCU, tak další přeflešování už nebude úplně tak jednoduché. Stále to jde udělat doma, ale je s tím poněkud víc práce..

Krabičky s MCU F103 (CUBE 2 + 3) mají pevně nastavený typ letounu (kluzák/motorová mašina/uav), takže stahujte ten firmware, který potřebujete. CUBE3.5 mohou být nakonfigurovány (na počátku jsou všechny GLD), ale konfigurace by měla přežít aktualizaci firmwaru, takže nemusíte nic řešit. Pokud byste ale potřebovali nějakou změnu, můžeme to tu v budoucnu rozebrat..

cd bin-files

wget https://github.com/ibisek/ognCubeReleases/raw/master/releases/ognCube3.5.l152-2023-11-30-GLD-0x2800.bin

wget https://github.com/ibisek/ognCubeReleases/raw/master/releases/ognCube3.f103-2023-02-10-UAV-0x2800.bin

wget https://github.com/ibisek/ognCubeReleases/raw/master/releases/ognCube3.f103-2023-03-06-GLD-0x2800.bin

wget https://github.com/ibisek/ognCubeReleases/raw/master/releases/ognCube3.f103-2023-03-06-POWERED-0x2800.bin

cd ..

Krok #4: Flešovnání firmwaru. Před tímto krokem je třeba mít krabičku nějakou chvíli zapnutou (řekněme 20s), aby už nebyla v boot módu (prvních 10s po zapnutí). LEDůvka by měla signalizovat vyhledávání družic (dva hned po sobě následující záblesky, –), nebo v případě, kdy už má GPS fix dva velmi krátké každou sekundu.

sudo ./findAndFlash.sh

Po úspěšném naflešování se krabička sama restartuje.

Otázku a dopovědi:

  • Jak poznám stávacící verzi firmwaru v mé krabičče? V androidím telefonu lze využít aplikaci Serial Bluetooth Terminal, připojit se ke krabičce a po zapnutí z vypsaných informací vyčíst verzi. Jdou tam vidět dva datumy – první je verze bootloaderu (hned po zapnutí). Bootloader po 10 sekundách předá řízení samotnému programu a tak se v cca 11. sekundě vypíše verze firmwaru. A to je to číslo, o které vám jde.