Preklad článku od inžiniera Georga Hilliarda
Klikateľné
Som inžinier vstavaných systémov. Vo voľnom čase často hľadám veci, ktoré by sa dali využiť pri navrhovaní budúcich systémov, alebo niečo z oblasti mojich záujmov.
Jednou z takých oblastí sú lacné počítače schopné podporovať Linux, a čím sú lacnejšie, tým lepšie. Preto som sa pustil hlboko do králičieho brlohu málo známych procesorov.
Pomyslel som si: „Tieto procesory sú tak lacné, že sa dajú prakticky rozdávať zadarmo.“ A o chvíľu mi prišla myšlienka spraviť holú dosku pre Linux vo formáte vizitky.
Hneď ako som na to pomyslel, rozhodol som sa, že by bolo naozaj skvelé to urobiť. Už som do , a mali rôzne zaujímavé možnosti, ako emulovanie flash kariet, blikanie svetielok alebo aj bezdrôtový prenos údajov. Avšak vizitky s podporou Linuxu som ešte nestretol.
Takže som si jednu takú vyrobil.
Toto je dokončená verzia produktu. Plnohodnotný minimálny počítač na ARM, na ktorom beží moja osobitná verzia Linuxu vytvorená pomocou Buildroot.

V rohu má USB port. Ak sa pripojí k počítaču, nabootuje asi za 6 sekúnd a vidno ju ako flash disk a virtuálny sériový port, cez ktorý sa dá prihlásiť do shellu dosky. Na flash disku je súbor README, kópia môjho životopisu a niekoľko mojich fotografií. V shelli sú rôzne hry, klasiky z Unixu ako fortune a rogue, malá verzia hry 2048 a interpreter MicroPython.
Všetko je urobené pomocou veľmi malej flash pamäte s kapacitou 8 MB. Bootloader sa zmestí do 256 kB, jadro obsadzuje 1,6 MB a celá root súborová systém má 2,4 MB. Preto pre virtuálny flash disk zostáva veľa miesta. Je tam aj domácí adresár dostupný na zápis – ak niekto urobí niečo, čo chce uložiť. Toto všetko sa tiež ukladá na flash pamäť.
Celé zariadenie stojí menej ako 3 doláre. Je dostatočne lacné na to, aby sa dalo rozdávať. Ak ste odomňa dostali takéto zariadenie, znamená to, že sa vás pravdepodobne pokúšam ohromiť.
Návrh a montáž
Návrhol a poskladal som všetko sám. To je moja práca, baví ma to, a väčšina ťažkostí spočívala v hľadaní dostatočne lacných komponentov pre takéto hobby.
Výber procesora bol najdôležitejším rozhodnutím, ktoré ovplyvnilo náklady a realizovateľnosť projektu. Po intenzívnom výskume som zvolil F1C100s, relatívne málo známy procesor od výrobcov Allwinner, optimalizovaný na náklady (t.j. neskutočne lacný). V jednom priehradke sú umiestnené RAM aj CPU. Procesory som zakúpil na Taobao. Všetky ostatné komponenty boli zakúpené na LCSC.
Dosky som objednal u JLC. Za 8 dolárov mi spravili 10 kópií. Ich kvalita je pôsobivá, najmä za takú cenu; nie sú také precízne ako u OSHPark, ale aj tak vyzerajú dobre.
Prvú várku som urobil matne čiernymi. Vyzerali krásne, ale boli veľmi znečistiteľné.

S prvou várkou som mal pár problémov. Po prvé, konektor USB bol nedostatočne dlhý, aby sa spoľahlivo zasúval do všetkých USB portov. Po druhé, cesty pre flash boli zle urobené, ale toto som obchádzal, ohýbaním kontaktov.

Po overení všetkého v prevádzke som objednal novú várku dosiek; foto jednej z nich môžete vidieť na začiatku článku.
Vzhľadom na malé rozmery všetkých týchto malých komponentov som sa rozhodol použiť technológiu reflow soldering s využitím Mám prístup k laserovému rezaciemu prístroju, preto som na ňom vyrezal šablónu na pájku z fólie na laminovanie. Šablóna sa podarila celkom dobre. Otvory pre kontakty procesora s priemerom 0,2 mm vyžadovali osobitnú starostlivosť pri kvalitnej výrobe – kriticky dôležité bolo správne zaostriť laser a nastaviť jeho výkon.

Na udržanie dosky pri nanášaní pasty sú veľmi vhodné iné dosky.
Nanášal som pájkovú pastu a umiestnil komponenty ručne. Dbám, aby nikde v priebehu procesu nebol použitý olovo – všetky dosky, komponenty a pasta vyhovujú štandardu – aby ma netrápila svedomie, keď ich budem rozdávať ľuďom.

S touto várkou som sa trochu pomýlil, avšak pájková pasta odpúšťa chyby, a všetko sa poskladalo normálne.
Na usporiadanie každého komponentu som potreboval asi 10 sekúnd, preto som sa snažil minimalizovať ich počet. Viac podrobností o navrhovaní dosky si môžete prečítať v inej .
Zoznam materiálov a náklady.
Dodržiaval som prísny rozpočet. Vizitka dopadla presne tak, ako som zamýšľal – vôbec mi je ľúto ju rozdávať! Samozrejme, nebudem ju rozdávať každému, pretože výroba každého kusu si vyžaduje čas, a môj čas nie je zahrnutý v cene vizitky (je akoby zadarmo).
Komponent
Cena
F1C100s
$1.42
PCB
$0.80
8MB flash
$0.17
Všetky ostatné komponenty
$0.49
Spolu
$2.88
Samozrejme, sú tu aj ďalšie náklady, ktoré sa ťažko odhadujú, ako napríklad doprava (keďže sa rozdelila medzi komponenty zamerané na niekoľko projektov). Avšak pre dosku so podporou Linuxu je to rozhodne veľmi lacné. Taktiež tento rozpočet dáva slušnú predstavu o tom, aké náklady majú firmy pri výrobe zariadení v najnižšej cenovej kategórii: môžete si byť istí, že pre firmy je to ešte lacnejšie, ako pre mňa!
Možnosti
Čo povedať? Doska načíta veľmi obmedzený Linux za 6 sekúnd. Z dôvodu formátu a ceny doska nemá I/O, sieťovú podporu, ani nejakú významnú pamäť na spúšťanie náročných programov. Napriek tomu som dokázal do obrazu firmvéru narvať množstvo zaujímavých vecí.
USB
S USB sa dalo vymyslieť veľa zaujímavých vecí, ale zvolil som najjednoduchšiu variantu, aby to u ľudí s vysokou pravdepodobnosťou fungovalo, ak sa rozhodnú vyskúšať moju vizitku. Linux umožňuje doske správať sa ako «zariadenie» s podporou. . Niektoré ovládače som bral z predchádzajúcich projektov, ktoré zahŕňali tento procesor, takže mám prístup ku všetkej funkcionalite platformy USB gadget framework. Rozhodol som sa emulovať vopred generovaný flash disk a poskytnúť prístup k shellu cez virtuálny sériový port.
Skripty
Po prihlásení pod používateľom root na sériovú konzolu je možné spúšťať nasledujúce programy:
- rogue: klasická unixová adventúra o podzemiach;
- 2048: jednoduchá hra 2048 v konzolovom režime;
- fortune: zobrazuje rôzne pompézne výroky. Rozhodol som sa nezahrnúť sem celú databázu citátov, aby zostalo miesto na iné funkcie;
- : veľmi malý interpret Pythonu.
Emulácia Flash Drive
Počas kompilácie nástroje na zostavovanie generujú malý obraz FAT32 a pridávajú ho ako jednu z partícií UBI. Gadgetová subsystém Linuxu predstavuje jeho PC ako zariadenie na ukladanie dát.
Ak vás zaujíma, čo sa objavuje na flash pamäti, najjednoduchšie je to zistiť cez . Nachádzajú sa tam aj niektoré fotografie a môj životopis.
Zdroje
Zdrojové súbory
Moje Buildroot stromy sú dostupné na GitHub — . Tam je kód na generovanie flash obrazu NOR, ktorý sa inštaluje pomocou režimu sťahovania cez USB procesora. Obsahuje tiež všetky definície balíčkov pre hry a iné programy, ktoré som pridal do Buildroot po tom, čo všetko fungovalo. Ak chcete použiť F1C100s vo vašom projekte, toto bude vynikajúci východiskový bod (nehanbite sa ).
Použil som Linux v4.9 pre F1C100s od Icenowy, trochu som ho upravil. Na mojej karte funguje takmer štandardná v5.2. Je na GitHub — .
Myslím, že mám dnes najlepší port U-Boot pre F1C100s na svete, a je čiastočne založený na práci Icenowy (prekvapivo, dostať U-Boot do poriadku sa ukázalo byť dosť nepríjemným úkonom). Môžete ho získať aj na GitHub — .
Dokumentácia pre F1C100s
Našiel som dosť chudobnú dokumentáciu pre F1C100s a zverejňujem ju tu:
- – základné informácie a zapojenie pinov.
- – definície registrov pre F1C600, ktorý je v skutočnosti tým istým F1C100s, ale premenovaným s deklarovanou podporou Linuxu (ha!).
- Aktívne som si požičal informácie zo schémy od – vývojová doska, ktorú som použil na nastavenie softvéru.
Pre zvedavých zverejňujem .

Záver
Na tomto projekte som sa veľa naučil – ide o môj prvý projekt, kde som používal pec na spájkovanie odlievaním spájky. Rovnako som sa naučil nachádzať zdroje komponentov so zlou dokumentáciou.
Využil som svoje skúsenosti so vstavaným Linuxom a vývojom dosiek. Projekt má chyby, avšak pekne ukazuje všetky moje zručnosti.
Tým, ktorých zaujímajú podrobnosti o práci so vstavaným Linuxom, odporúčam prečítať si moju sériu článkov o tom: . V ňom podrobne opisujem, ako vytvárať softvér a hardvér od nuly pre maličké a lacné Linuxové systémy, ako je táto moja vizitka.
Zdroj: habr.com
