Übersetzung eines Artikels aus Ingenieur George Hilliard
Anklickbar
Ich bin Ingenieur für eingebettete Systeme. In meiner Freizeit suche ich oft nach etwas, das bei der Gestaltung zukünftiger Systeme verwendet werden kann, oder nach etwas, das meinen Interessen entspricht.
Ein solcher Bereich sind kostengünstige Computer, die Folgendes unterstützen können LinuxUnd je billiger, desto besser. Also begab ich mich in die Tiefen der Recherche nach obskuren Prozessoren.
Ich dachte: „Diese Prozessoren sind so billig, dass man sie praktisch verschenken könnte.“ Und nach einer Weile hatte ich die Idee, eine einfache Platine dafür herzustellen. Linux im Format einer Visitenkarte.
Nachdem ich darüber nachgedacht hatte, kam ich zu dem Schluss, dass es eine wirklich coole Sache sein würde. Ich habe bereits auf Sie verfügten über verschiedene interessante Funktionen, wie die Nachahmung von Speicherkarten, blinkende Lichter oder sogar drahtlose Datenübertragung. Visitenkarten mit Unterstützung Linux Ich habe noch niemanden getroffen.
Also habe ich mir eins gemacht.
Das ist das fertige Produkt. Ein voll funktionsfähiger, minimaler ARM-Computer, auf dem meine angepasste Version läuft. Linux, erstellt mit Buildroot.

In der Ecke befindet sich ein USB-Anschluss. Wenn Sie es an einen Computer anschließen, startet es in etwa 6 Sekunden und ist als Flash-Karte und virtueller serieller Port sichtbar, über den Sie sich in die Kartenhülle einloggen können. Auf dem Flash-Laufwerk befinden sich eine README-Datei, eine Kopie meines Lebenslaufs und mehrere Fotos von mir. Die Shell verfügt über mehrere Spiele, Unix-Klassiker wie Fortune und Rogue, eine kleine Version des Spiels 2048 und einen MicroPython-Interpreter.
All dies geschieht über einen sehr kleinen 8-MB-Flash-Chip. Der Bootloader passt in 256 KB, der Kernel nimmt 1,6 MB ein und das gesamte Root-Dateisystem nimmt 2,4 MB ein. Daher bleibt viel Platz für das virtuelle Flash-Laufwerk. Es gibt auch ein beschreibbares Home-Verzeichnis für den Fall, dass jemand etwas tut, was er speichern möchte. Dies alles wird ebenfalls auf einem Flash-Chip gespeichert.
Das gesamte Gerät kostet weniger als 3 US-Dollar. Es ist billig genug, um es zu verschenken. Wenn Sie ein solches Gerät von mir erhalten haben, bedeutet das höchstwahrscheinlich, dass ich versuche, Sie zu beeindrucken.
Designen und Bauen
Ich habe alles selbst entworfen und zusammengebaut. Es ist mein Job und ich liebe ihn, und die größte Herausforderung besteht darin, ausreichend günstige Teile für das Hobby zu finden.
Die Wahl des Prozessors war die wichtigste Entscheidung, die sich auf die Kosten und die Durchführbarkeit des Projekts auswirkte. Nach ausführlicher Recherche habe ich mich für den F1C100s entschieden, einen relativ wenig bekannten Prozessor von Allwinner, der kostenoptimiert (also verdammt günstig) ist. Sowohl RAM als auch CPU befinden sich im selben Paket. Ich habe Prozessoren auf Taobao gekauft. Alle anderen Komponenten wurden von LCSC gekauft.
Ich habe die Boards bei JLC bestellt. Sie haben für mich 8 Exemplare für 10 Dollar angefertigt. Ihre Qualität ist beeindruckend, vor allem für den Preis; nicht so ordentlich wie die von OSHPark, sehen aber trotzdem gut aus.
Ich habe die erste Charge mattschwarz gemacht. Sie sahen wunderschön aus, waren aber sehr leicht verschmutzt.

Bei der ersten Charge gab es ein paar Probleme. Erstens war der USB-Stecker nicht lang genug, um sicher in alle USB-Anschlüsse zu passen. Zweitens waren die Blitzspuren falsch gemacht, aber ich habe das durch Biegen der Kontakte umgangen.

Nachdem ich überprüft hatte, dass alles funktionierte, bestellte ich eine neue Charge Platinen; Ein Foto von einem davon sehen Sie am Anfang des Artikels.
Aufgrund der geringen Größe all dieser kleinen Komponenten habe ich mich für das Reflow-Löten entschieden . Da ich Zugang zu einem Laserschneider habe, habe ich damit eine Lötschablone aus der Laminierfolie ausgeschnitten. Die Schablone ist ganz gut geworden. Die Löcher mit einem Durchmesser von 0,2 mm für die Prozessorkontakte erforderten besondere Sorgfalt, um eine qualitativ hochwertige Fertigung zu gewährleisten – es war entscheidend, den Laser richtig zu fokussieren und seine Leistung auszuwählen.

Andere Bretter eignen sich gut, um das Brett beim Auftragen von Kleister zu halten.
Ich habe Lotpaste aufgetragen und die Bauteile per Hand positioniert. Ich habe darauf geachtet, dass bei dem Prozess nirgends Blei verwendet wurde – alle Platinen, Komponenten und Paste entsprechen dem Standard - damit mich mein Gewissen nicht quält, wenn ich sie an die Menschen verteile.

Ich habe bei dieser Charge einen kleinen Fehler gemacht, aber die Lotpaste verzeiht Fehler und alles hat gut geklappt
Die Positionierung jeder Komponente dauerte etwa 10 Sekunden, daher habe ich versucht, die Anzahl der Komponenten auf ein Minimum zu beschränken. Weitere Details zum Kartendesign können Sie in einem anderen lesen .
Material- und Kostenliste
Ich habe mich an ein strenges Budget gehalten. Und die Visitenkarte ist wie vorgesehen geworden – ich habe kein Problem damit, sie wegzugeben! Natürlich werde ich es nicht an alle weitergeben, da die Erstellung jeder Kopie Zeit kostet und meine Zeit bei den Kosten für die Visitenkarte nicht berücksichtigt wird (sie ist quasi kostenlos).
Komponente
Preis
F1C100s
$1.42
PCB
$0.80
8 MB Flash
$0.17
Alle anderen Komponenten
$0.49
Insgesamt
$2.88
Natürlich gibt es auch Kosten, die schwer zu berechnen sind, wie beispielsweise Versandkosten (da diese auf Komponenten verteilt werden, die für mehrere Projekte bestimmt sind). Für eine Platine mit Unterstützung Linux Das ist wirklich ziemlich günstig. Diese Aufschlüsselung gibt auch einen guten Überblick darüber, wie viel die Herstellung von Geräten im absoluten Niedrigpreissegment kostet: Sie können sicher sein, es kostet sie sogar noch weniger als mich!
Capabilities
Was soll ich sagen? Die Karte lädt sehr schlecht, sie ist abgeschnitten. Linux in 6 Sekunden. Aufgrund ihrer Bauform und des Preises bietet die Karte weder Ein-/Ausgänge noch Netzwerkunterstützung oder nennenswerte Speicherkapazität für rechenintensive Programme. Trotzdem ist es mir gelungen, eine Menge interessanter Funktionen in das Firmware-Image zu integrieren.
USB
Mit USB konnte man viele coole Dinge anstellen, aber ich habe mich für die einfachste Option entschieden, damit die Leute eine gute Chance haben, dass es funktioniert, wenn sie meine Visitenkarte ausprobieren. Linux ermöglicht es der Karte, sich wie ein "Gerät" mit Unterstützung zu verhalten. . Ich habe einige Treiber aus früheren Projekten übernommen, in denen dieser Prozessor enthalten war, sodass ich Zugriff auf alle Funktionen des USB-Gadget-Frameworks habe. Ich habe beschlossen, ein vorgeneriertes Flash-Laufwerk zu emulieren und Shell-Zugriff über einen virtuellen seriellen Port zu gewähren.
Schale
Nachdem Sie sich als Root angemeldet haben, können Sie die folgenden Programme auf der seriellen Konsole ausführen:
- Rogue: ein klassisches Unix-Dungeon-Crawler-Abenteuerspiel;
- 2048: ein einfaches Spiel von 2048 im Konsolenmodus;
- Vermögen: Ausgabe verschiedener prätentiöser Sprüche. Ich habe mich entschieden, nicht die gesamte Zitationsdatenbank hier aufzunehmen, um Platz für andere Funktionen zu lassen;
- : Ein sehr kleiner Python-Interpreter.
Flash-Laufwerk-Emulation
Während der Kompilierung erzeugen die Build-Tools ein kleines FAT32-Image und fügen es als eine der UBI-Partitionen hinzu. Gadget-Subsystem Linux wird dem PC als Speichermedium präsentiert.
Wenn Sie sehen möchten, was auf dem Flash-Laufwerk angezeigt wird, können Sie dies am einfachsten durch Lesen tun . Es gibt auch mehrere Fotos und meinen Lebenslauf.
Ressourcen
Quellen
Mein Buildroot-Baum ist auf GitHub veröffentlicht - . Es gibt Code zum Generieren eines NOR-Flash-Images, das über den USB-Download-Modus des Prozessors installiert wird. Es enthält auch alle Paketdefinitionen für Spiele und andere Programme, die ich in Buildroot verschoben habe, nachdem ich alles zum Laufen gebracht habe. Wenn Sie daran interessiert sind, die F1C100 in Ihrem Projekt zu verwenden, wäre dies ein guter Ausgangspunkt (zögern Sie nicht). ).
ich benutzte Linux Icenowys Version 4.9 für F1C100s, mit einigen kleineren Anpassungen. Meine Karte läuft mit der nahezu standardmäßigen Version 5.2. Sie ist auf GitHub verfügbar. .
Ich glaube, ich habe heute die beste U-Boot-Portierung für F1C100 auf der Welt, und sie basiert teilweise auch auf Icenowys Arbeit (überraschenderweise war es eine ziemlich frustrierende Aufgabe, U-Boot richtig zum Laufen zu bringen). Sie können es auch auf GitHub herunterladen - .
Dokumentation für F1C100
Ich habe eine eher spärliche Dokumentation für F1C100 gefunden und veröffentliche sie hier:
- – Allgemeine Informationen und Pinbelegung.
- - Registerdefinitionen für F1C600, das im Grunde dasselbe ist wie F1C100s, aber mit der deklarierten Unterstützung umbenannt wurde. Linux (Ha!).
- Ich habe aktiv Informationen aus dem Diagramm übernommen – das Entwicklungsboard, mit dem ich die Software konfiguriert habe.
Ich lade es für die Neugierigen hoch. .

Fazit
Ich habe bei der Entwicklung dieses Projekts viel gelernt – es war mein erstes Projekt mit einem Reflow-Lötofen. Außerdem habe ich gelernt, wie man Ressourcen für Komponenten mit schlechter Dokumentation findet.
Ich nutzte meine Erfahrung mit integrierten Funktionen. Linux und Erfahrung im Leiterplattendesign. Das Projekt ist zwar nicht fehlerfrei, aber es stellt meine Fähigkeiten recht gut unter Beweis.
Für diejenigen, die sich für die Details der Arbeit mit den integrierten Funktionen interessieren Linux Ich empfehle Ihnen, meine Artikelserie zu diesem Thema zu lesen: Dort beschreibe ich detailliert, wie man Software und Hardware von Grund auf für winzige und günstige Zwecke entwickelt. Linux-Systeme, die meiner Visitenkarte ähneln.
Source: habr.com
