Bootloader - řešení vzdálené aktualizace firmware.
Co je to bootloader ? - zásadní zjednodušení vzdálené aktualizace.
Výhody a ukázka z praxe.
Potřebujete dát svoje řešení na trh co nejdřív a víte, že v budoucnu ho budete chtít vylepšovat novými firmware funkcemi, jak to dělá například Tesla pro svoje vozy?
Není třeba stahovat Vaše zařízení s trhu, protože existuje možnost vzdáleného upgradu firmwaru! Řešením je využití bootloaderu, díky kterému bude aktualizace firmwaru rychlá, bezpečná a uživatelsky přívětivá. V ASN Plus takové know-how máme!
Vzdálená aktualizace přináší finanční úsporu
Možnost vzdálené aktualizace firmwaru elektronických zařízení je mezi našimi zákazníky stále žádanější. Výrobcům i dodavatelům totiž přináší výraznou finanční úsporu. Nemusí totiž výrobky složitě stahovat z trhu.
Díky vzdálené aktualizaci se vyhnete riziku poškození dobré pověsti, navíc získáte náskok před konkurencí. Pomocí vzdáleného upgradu jednoduše přidáte nové funkce a vylepšení, a tak budete na požadavky a připomínky uživatelů pružně reagovat. Význam aktualizace na dálku si v ASN Plus dobře uvědomujeme a s její implementací máme bohaté zkušenosti.
Bootloader = program pro aktualizaci firmware
Existuje několik způsobů, jak vyřešit aktualizaci firmwaru elektronického zařízení. Jeden ze způsobů je, že o řízení hardwaru se stará hlavní program, jeho aktualizaci pak zajišťuje bootloader.
Pomocí bootloaderu lze jednoduše aktualizovat hlavní program, a to jak z pevného úložiště, tak z cloudu. Případný hromadný upgrade většího počtu zařízení je také bezproblémový. Je přitom na uživateli elektronického zařízení, jestli k aktualizaci přistoupí. Princip je podobný jako u systému mobilních telefonů, kde je na zvážení uživatele, jestli jej chce aktualizovat, nebo bude dále využívat původní verzi. Zároveň existuje varianta, kdy aktualizaci provádí výrobce zařízení. Bootloader je neměnný a sám o sobě se neaktualizuje. Je jen prostředkem pro upgrade hlavního programu.
Vzdálená aktualizace a její výhody
Pokládáte si otázku, zda má význam investovat čas a finanční prostředky do implementace bootloaderu pro vzdálenou aktualizaci? Podle nás rozhodně ano. Tato funkcionalita Vám jakožto výrobcům elektronických zařízení nebo vývojářům přinese řadu výhod:
-
Snadná aktualizace velkého počtu zařízení – implementace bootloaderu s možností vzdálené aktualizace má velký význam pro zařízení, kterých je na trhu významný počet.
-
Uživatelsky přívětivé řešení – vzdálenou aktualizaci zvládne i laik. Rozhraní je intuitivní. Výrobce nebo uživatel má navíc možnost svobodně se rozhodnout, jestli k upgradu přistoupí, nebo se bude dále používat původní verze programu.
-
Odstranění chyb bez stahování z trhu – pokud se po uvedení na trh projeví u elektronického zařízení kritická chyba firmwaru, snadno ji odstraníte bez stahování výrobků z trhu.
-
Náskok před konkurencí – díky bootloaderu je možné elektronické zařízení soustavně vylepšovat a přidávat nové funkce. Získáte snadno náskok před konkurencí, aniž byste museli na trh uvést zcela nový produkt.
Bootloader v zařízení Leviathan
Abyste pochopili význam a výhody bootloaderu v praxi, nastíníme vám způsob jeho implementace v zařízení Leviathan. Vyvinuli jsme jej pro firmu JeffTron, která se zaměřuje na prodej elektroniky do airsoftových zbraní.
Leviathan zajišťuje propojení airsoftové zbraně s mobilní aplikací a přináší možnost sledování statistik střelby. Současně umožňuje i nastavení různých parametrů, ať už jde o kadenci, virtuální zásobník, přednatažení nebo kalibraci optických senzorů. Protože je řídící jednotka airsoftové zbraně vyráběna ve velkých sériích a využívá ji velké množství uživatelů, byla funkce snadného a rychlého upgradu firmware jedním ze zásadních požadavků vývoje.
Upgrade firmware probíhá přes mobilní aplikaci
Součástí firmwaru zařízení Leviathan je hlavní program a bootloader. Připraví-li náš tým vývojářů novou verzi hlavního programu, který přinese nové funkce, nahraje ji na server. Po zapnutí mobilní aplikace a spárování s jednotkou vždy dochází k ověření aktuální verze firmwaru a porovnání s verzí, která je na serveru dostupná. V případě, že aplikace objeví verzi novou, upozorní na tuto skutečnost uživatele nebo výrobce. Ten pak má možnost ji přijmout a spustit, nebo odmítnout.
V případě, že uživatel aktualizaci potvrdí, stáhne se do paměti telefonu datový soubor s novou verzí hlavního programu. Aplikace následně vyšle prostřednictvím Bluetooth hlavnímu programu informaci o nadcházející aktualizaci. Hlavní program na tento podnět zareaguje – ukončí se a provede spuštění bootloaderu (není-li aktuálně spuštěný, viz níže). Aplikace následně zajistí přesun dat přes Bluetooth. Bootloader postupně data přijímá a zapisuje na místo původního hlavního programu. Ve chvíli, kdy je přenos dokončen, provede bootloader kontrolu funkčnosti. Nejsou-li data poškozená, ukončí se a spustí hlavní program v nové verzi.
Na riziko selhání aktualizace jsme nezapomněli
Ne vždy probíhá vše podle plánu. Samozřejmě se může stát, že proces aktualizace selže, ať už z důvodu ztráty signálu, poklesu napětí ve zbrani, nebo poškození dat. Pokud by byl hlavní program přepsaný nefunkční verzí, byla by airsoftová zbraň nefunkční. S tímto rizikem jsme samozřejmě počítali a máme několik řešení, která taková rizika zcela eliminuje.
Jedno z řešení spočívá v tom, že pokud bootovací program po upgradu odhalí nefunkčnost hlavního programu, tak bootloader zabrání jeho spuštění a neukončí se, naopak zůstane dál spuštěný a umožní opětovné provedení aktualizace. Aplikace v mobilním telefonu provede kontrolu verze hlavního programu a při poškození dat bootloader odpoví, že je hlavní program nefunkční. Uživateli pak bude k instalaci nabídnuty všechny verze, která jsou na serveru dostupná. Uživatel tak bude moct vybrat, jestli provede znovu upgrade nejnovější verze firmwaru nebo zůstane u aktuální verze. Výrobce nebo uživatel se tak nemusí obávat, že by při selhání aktualizace elektronické zařízení přestalo fungovat.
Různé typy firmwaru pro odlišný hardware
Zařízení Leviathan existuje v různých variantách. Některé jsou například určené pro modely s optickým spínačem, jiné pro modely se spínačem mechanickým. Každý typ hardwaru se pak neobejde bez vlastního individuálně řešeného firmwaru. Na serveru je pro každou variantu hardware jiný soubor s firmware. Při spárování s Leviathanem mobilní aplikace kromě jiných informací zjistí i typ hardwaru. Na základě toho stáhne příslušnou aktualizaci. Firmware je tak bez problému možné upravovat a vylepšovat pro různý typy zařízení společně, případně se zaměřit jen na jeden konkrétní typ.
Omezení funkcí firmwaru pomocí bootloaderu
Jak jsme již uvedli, hlavním úkolem bootloaderu je spouštění a aktualizace hlavního programu. Přesto i bootovací program dokáže přímo ovlivňovat funkčnost zařízení. Toho jsme v ASN Plus využili právě při vývoji firmwaru pro Leviathan. Vyřešili jsme tak požadavek na omezení funkčnosti jednotek, které jsou určené pro prodej do vybraných států. Konkrétně jde o ty státy, jejichž zákony zakazují možnost automatické či dávkované střelby.
Z hlediska firmwaru i hardwaru jsou všechny jednotky totožné. Některé jednotky však mají omezený (tzv. „semi only“) bootloader. Po dokončení aktualizace vždy zapíší do paměti informaci o tom, že je automatická střelba zakázaná. Hlavní program si tuto informaci po spuštění přečte a automatickou střelbu nedovolí.
Ať už patříte mezi vývojáře, nebo výrobce elektroniky, možnost vzdálené aktualizace pomocí bootloaderu rozhodně zvažte.S implementací vám rádi pomůžeme. U nás v ASN Plus jsme už mnohokrát překonali řadu překážek a specifických požadavků. Díky našemu týmu jsme připraveni pomoci s komplexním vývojem firmwaru, ale i s návrhem PCB nebo komplexním vývojem včetně aplikace na míru vašim požadavkům a potřebám.