Il mio biglietto da visita esegue Linux

Traduzione di un articolo da blog l'ingegnere George Hilliard

Il mio biglietto da visita esegue Linux
cliccabile

Sono un ingegnere di sistemi embedded. Nel tempo libero cerco spesso qualcosa che possa essere utilizzato nella progettazione di sistemi futuri o qualcosa che rientri nei miei interessi.

Uno di questi è quello dei computer economici che possono eseguire Linux, e più economici sono, meglio è. Così ho scavato una profonda tana di processori oscuri.

Ho pensato: "Questi processori sono così economici che possono praticamente essere regalati". E dopo un po 'mi è venuta l'idea di realizzare una carta nuda per Linux sotto forma di un biglietto da visita.

Una volta che ci ho pensato, ho deciso che sarebbe stata una cosa davvero interessante da fare. ho già ho visto elettronico biglietti da visita a essoe avevano varie capacità interessanti, come l'emulazione di schede flash, lampadine lampeggianti o persino trasmissione dati wireless. Tuttavia, non ho visto biglietti da visita con supporto Linux.

Quindi me ne sono fatto uno.

Questa è la versione finita del prodotto. Un computer ARM minimale completo che esegue la mia versione personalizzata di Linux creata con Buildroot.

Il mio biglietto da visita esegue Linux

Ha una porta USB nell'angolo. Se lo colleghi a un computer, si avvia in circa 6 secondi ed è visibile come una flash card e una porta seriale virtuale attraverso la quale puoi accedere al guscio della scheda. Sulla chiavetta USB c'è un file README, una copia del mio curriculum e diverse mie foto. La shell contiene diversi giochi, classici Unix come Fortune e Rogue, una versione ridotta del gioco 2048 e un interprete MicroPython.

Tutto questo viene fatto utilizzando un chip flash molto piccolo da 8 MB. Il bootloader occupa 256 KB, il kernel occupa 1,6 MB e l'intero file system root occupa 2,4 MB. Pertanto, c'è molto spazio rimasto per l'unità flash virtuale. C'è anche una directory home scrivibile nel caso in cui qualcuno faccia qualcosa che vuole salvare. Tutto questo viene salvato anche su un chip flash.

L'intero dispositivo costa meno di $ 3. È abbastanza economico da regalare. Se hai ricevuto da me un dispositivo del genere, molto probabilmente sto cercando di impressionarti.

Progettare e costruire

Ho progettato e assemblato tutto da solo. È il mio lavoro e lo adoro, e gran parte della sfida è stata trovare pezzi abbastanza economici per l'hobby.

La scelta del trasformatore è stata la decisione più importante che ha influito sul costo e sulla fattibilità del progetto. Dopo una ricerca approfondita, ho scelto l'F1C100s, un processore relativamente poco conosciuto di Allwinner che ha un costo ottimizzato (cioè dannatamente economico). Sia la RAM che la CPU si trovano nello stesso pacchetto. Ho acquistato processori su Taobao. Tutti gli altri componenti sono stati acquistati da LCSC.

Ho ordinato le schede da JLC. Mi hanno fatto 8 copie per 10 dollari. La loro qualità è impressionante, soprattutto per il prezzo; non pulito come quello di OSHPark, ma ha comunque un bell'aspetto.

Ho realizzato il primo lotto di nero opaco. Sembravano belli, ma si sporcavano molto facilmente.

Il mio biglietto da visita esegue Linux

Ci sono stati un paio di problemi con il primo lotto. Innanzitutto, il connettore USB non era abbastanza lungo per adattarsi saldamente a qualsiasi porta USB. In secondo luogo, le tracce del flash sono state realizzate in modo errato, ma ho risolto il problema piegando i contatti.

Il mio biglietto da visita esegue Linux

Dopo aver controllato che tutto funzionasse, ho ordinato un nuovo lotto di schede; Puoi vedere una foto di uno di loro all'inizio dell'articolo.

A causa delle dimensioni ridotte di tutti questi piccoli componenti, ho deciso di ricorrere alla saldatura a rifusione stufa economica. Ho accesso a un laser cutter, quindi l'ho usato per ritagliare uno stencil di saldatura dalla pellicola del laminatore. Lo stencil è venuto abbastanza bene. I fori da 0,2 mm di diametro per i contatti del processore richiedevano un'attenzione particolare per garantire una produzione di alta qualità: era fondamentale focalizzare correttamente il laser e selezionarne la potenza.

Il mio biglietto da visita esegue Linux
Altre tavole funzionano bene per sostenere la tavola mentre si applica la colla.

Ho applicato la pasta saldante e ho posizionato i componenti a mano. Mi sono assicurato che il piombo non fosse utilizzato in nessuna parte del processo: tutte le schede, i componenti e la pasta soddisfano lo standard RoHS - in modo che la mia coscienza non mi tormenti quando li distribuisco alle persone.

Il mio biglietto da visita esegue Linux
Ho fatto un piccolo errore con questo lotto, ma la pasta saldante perdona gli errori e tutto è andato bene

Ogni componente ha impiegato circa 10 secondi per posizionarsi, quindi ho cercato di mantenere il numero di componenti al minimo. Maggiori dettagli sulla progettazione della mappa possono essere letti in un altro il mio articolo dettagliato.

Elenco materiali e costi

Mi sono attenuto a un budget rigoroso. E il biglietto da visita si è rivelato come previsto: non mi dispiace regalarlo! Ovviamente non lo darò a tutti, perché ci vuole tempo per fare ogni copia, e il mio tempo non viene preso in considerazione nel costo del biglietto da visita (è abbastanza gratuito).

componente
Prezzo

F1C100
$1.42

PCB
$0.80

8 MB di flash
$0.17

Tutti gli altri componenti
$0.49

In totale
$2.88

Naturalmente ci sono anche costi difficili da calcolare, come quello della consegna (poiché è distribuito tra componenti destinati a più progetti). Tuttavia, per una scheda che supporta Linux, è decisamente abbastanza economica. Questa suddivisione dà anche una buona idea di quanto costa alle aziende realizzare dispositivi nella fascia di prezzo più bassa: state certi che costa alle aziende anche meno di quanto costa a me!

opportunità

Cosa dire? La scheda avvia un Linux molto spogliato in 6 secondi. A causa del fattore di forma e del costo, la scheda non dispone di I/O, supporto di rete o quantità significativa di spazio di archiviazione per eseguire programmi pesanti. Tuttavia, sono riuscito a inserire un sacco di cose interessanti nell'immagine del firmware.

USB

C'erano molte cose interessanti che si potevano fare con l'USB, ma ho scelto l'opzione più semplice in modo che le persone avessero maggiori probabilità di farlo funzionare se avessero deciso di provare il mio biglietto da visita. Linux consente alla scheda di comportarsi come un "dispositivo" con supporto Quadro dei gadget. Ho preso alcuni driver da progetti precedenti che includevano questo processore, quindi ho accesso a tutte le funzionalità del framework dei gadget USB. Ho deciso di emulare un'unità flash pregenerata e di fornire l'accesso alla shell tramite una porta seriale virtuale.

conchiglia

Dopo aver effettuato l'accesso come root, è possibile eseguire i seguenti programmi sulla console seriale:

  • rogue: un classico gioco d'avventura Unix dungeon crawling;
  • 2048: un semplice gioco di 2048 in modalità console;
  • fortuna: produzione di vari detti pretenziosi. Ho deciso di non includere qui l'intero database delle citazioni per lasciare spazio ad altre funzionalità;
  • micropitone: Un interprete Python molto piccolo.

Emulazione di unità flash

Durante la compilazione, gli strumenti di compilazione generano una piccola immagine FAT32 e la aggiungono come una delle partizioni UBI. Il sottosistema gadget Linux presenta il suo PC come un dispositivo di archiviazione.

Se sei interessato a vedere cosa appare sulla chiavetta, il modo più semplice per farlo è leggere fonti. Ci sono anche diverse fotografie e il mio curriculum.

Ресурсы

Fonti

Il mio albero Buildroot è pubblicato su GitHub - trentatrequaranta/businesscard-linux. Esiste un codice per generare un'immagine flash NOR, che viene installata utilizzando la modalità di download USB del processore. Contiene anche tutte le definizioni dei pacchetti per giochi e altri programmi che ho inserito in Buildroot dopo aver fatto funzionare tutto. Se sei interessato a utilizzare gli F1C100 nel tuo progetto, questo sarebbe un ottimo punto di partenza (sentiti libero fammi delle domande).
ero solito progetto splendidamente eseguito Linux v4.9 per F1C100 di Icenowy, leggermente modificato. La mia scheda funziona quasi con la versione 5.2 standard. È su GitHub - trentatrequaranta/linux.
Penso di avere il miglior porting di U-Boot per F1C100 al mondo oggi, ed è anche in parte basato sul lavoro di Icenowy (sorprendentemente, far funzionare correttamente U-Boot è stato un compito piuttosto frustrante). Puoi anche scaricarlo su GitHub - trentatrequaranta/u-boot.

Documentazione per F1C100

Ho trovato documentazione piuttosto scarsa per gli F1C100 e la pubblico qui:

Lo carico per chi è curioso. il diagramma del mio progetto.

Il mio biglietto da visita esegue Linux

conclusione

Ho imparato molto durante lo sviluppo di questo progetto: è stato il mio primo progetto utilizzando un forno di saldatura a rifusione. Ho anche imparato come trovare risorse per componenti con scarsa documentazione.

Ho utilizzato la mia esperienza esistente con Linux incorporato e l'esperienza di sviluppo di schede. Il progetto non è esente da difetti, ma mostra bene tutte le mie capacità.

Per coloro che sono interessati ai dettagli su come lavorare con Linux incorporato, suggerisco di leggere la mia serie di articoli a riguardo: Padroneggiare Linux incorporato. Lì parlo in dettaglio di come creare software e hardware da zero per sistemi Linux piccoli ed economici, simili al mio biglietto da visita.

Fonte: habr.com

Aggiungi un commento