Es ging weiter mit dem 3210 Board. Das Layout ist in der ersten Version fertig! Genauere Infos dazu gibt’s auf dem Hackaday Post zum heutigen Fortschritt.
Hackaday Post |
Es ging weiter mit dem 3210 Board. Das Layout ist in der ersten Version fertig! Genauere Infos dazu gibt’s auf dem Hackaday Post zum heutigen Fortschritt.
Hackaday Post |
Ich möchte einige Änderungen in KiCad einfügen und dazu will ich mir die aktuellste Version aus dem Sourcecode übersetzen. Das ganze werde ich mit Ubuntu 17.4 durchführen. Dazu benötigen wir aber erst mal ein paar zusätzliche Funktionen
sudo apt install build-essential libwxbase3.0-dev libwxgtk3.0-dev libglew-dev libglm-dev libcurl4-gnutls-dev libcairo2-dev libboost-all-dev swig python-wxgtk3.0-dev doxygen libssl-dev git cmake
Mit all diesen Bibliotheken können wir nun anfangen den Code herunterzuladen, für unser System zu konfigurieren und zu übersetzen. Dazu laden wir den aktuellsten Code vom Git Repository herunter:
git clone -b master https://git.launchpad.net/kicad
Danach legen wir einen Ordner an in dem wir die Übersetzung vornehmen möchten und konfigurieren unsere Umgebung:
cd kicad
mkdir -p build/debug
cd build/debug
cmake -DCMAKE_BUILD_TYPE=Debug \
-DKICAD_SCRIPTING=ON \
-DKICAD_SCRIPTING_MODULES=ON \
-DKICAD_SCRIPTING_WXPYTHON=ON ../..
Wenn das dann durchgelaufen ist, können wir die eigentliche Übersetzung starten:
make
Der Prozess kann je nach Systemleistung einige Zeit dauern. Bei mir waren es ca. 30 Minuten. Nach Fertigstellung der Programme stehen sie in dem aktuellen Ordner zur Verfügung. Installieren kann man dann KiCad mit dem Befehl
sudo make install
Das nächste mal schauen wir dann, wie wir den Quellcode bearbeiten können um ein weiteres Menüfenster hinzuzufügen.
Ich versuche gerade ein Android Image für den i.MX7 auf meinem Nokia Retro Fit Board zu bauen. Das Buildsystem für Android ist gigantisch. Es besteht aus über 100 Git repositories, die mit Hilfe eine Tools heruntergeladen werden. Dazu benötigt man über 90GB Festplattenspeicher! Zusätzlich zu Android benötigt man auch noch den Linux Kernel und die passenden Patches um das originale Android und Kernel auf die CPU anzupassen auf der das System später laufen soll. Das alles dauert eine ganze Zeit, bis es einmal steht. Anschließend muss das System aus dem Quellcode kompiliert werden. Damit man nicht jede einzelne Datei selbst kompilieren muss, gibt es auch hierfür ein Tool, dass den Prozess automatisiert. Dieses Tool, mit dem Namen ‚lunch‘ geht durch die Verzeichnisstruktur und sammelt alle Informationen, welche Dateien für welches System wann kompiliert werden sollen. Danach wird noch ermittelt, welche Dateien zum System Image hinzugefügt werden sollen und zum Schluss in welchem Format das System Image erzeugt werden soll. Wenn das alles fertig ist, dann kann der Prozess starten, der aus dem Android Open Source Project ein Firmware Image erstellt, dass auf einem Embedded System lauffähig ist.
Ich habe den Prozess, wie man zu der passenden Buildsystem kommt hier dokumentiert:
https://github.com/DasBasti/NokiaRetrofitAplications
Jetzt bin ich dabei herauszufinden, wie man das Android anpasst, sodass es nicht für das Sabre Board baut, sondern für meine Hardware mit meinen Treibern und meiner Boot Konfiguration. Danach werde ich versuchen, das System auf Android Wear umzustellen, da das für so kleine Bildschirme wie ich ihn verwenden möchte optimiert ist. Wie das geht weiß ich noch nicht. Aber ich werde es versuchen.
Android im Simulator |
Ok, zugegeben. Das ganze Projekt ist ziemlich lächerlich, aber trotzdem ein interessanter Ansatz. Nicht umsonst gibt es für Android eine Hardware Mindestvoraussetzung, die unter Anderem auch die Displaygröße vorgibt. Das sind für gewöhnliche Android Hardwaren mindestens 426 x 320 pixel. Anders sieht es aber bei Android Wear aus, der Version für smart watches. Ich werde also weiter in Richtung Android Wear schauen, dort ist der Android App Starter besser aufgebaut und mit den Eingabe-Buttons des Nokias kann man sicherlich alle wichtigen Funktionen abbilden. Es sind immerhin mehr als an einer Armbanduhr.
Zum Schluss noch ein kleines Video, dass euch die Hardware ein wenig näher bringen soll.
Ich hatte früher ein Nokia 3210. Heutzutage ist es allerdings ein wenig außer Mode geraten. Nagut, es ist eigentlich nicht mehr benutzbar. Deshalb habe ich begonnen ein Mainboard zu designen, dass in die Mechanik des alten Nokia Knochens passt.
Frontansicht der Retrofit Platte (es fehlen noch viele Bauteile) |
Das ganze Projekt wird auf Github zur Verfügung stehen. Die aktuelle Version umfasst folgende Features:
Allerdings bin ich mir bei der MCU nicht sicher, da ich gerne ein Android als Betriebsystem verwenden möchte. Dazu würde ich die MCU durch einen Prozessor tauschen. Genauer würde ich gerne den i.MX7 von NXP einsetzen. Dieser ist ein Dual Core Prozessor mit bis zu 1,2GHz. Das ist für ein Android ausreichend.
Weiterhin hätte ich auch gerne Bluetooth mit an Board. Dazu habe ich die TI WiLink Module ins Auge gefasst.
Das Board kann nach Fertigstellung dann in die Mechanik eines Nokia 3210 eingebaut werden. Also nicht wie los und noch schnell eins der letzten kaufen.
SLG4653X -Adapterboards, sowie Programmieradapter |
Das originale Programmierboard kann verwendet werden. Dafür gibt es das kleine Board mit der Pinleiste und dem IC-Sockel drauf. Jetzt kann ich mit dem Simulationstool die Logik entwickeln und mit dem Adapter eine elektrische Schaltung drumherum bauen, die nicht immer einen neuen Chip verpasst bekommen muss. Wenn ich dann alle Adapterboards programmier habe, muss ich lediglich die Chips darauf tauschen.
Ich bin gerade in der Vorbereitung ein paar Beispielschaltungen mit dem Chip zu realisieren.
Das Projekt ist hier auf Github zu finden: https://github.com/DasBasti/SLG4653-DIP20-Adapter
Ein ganzer Haufen Boards |
Im Sommer habe ich meinen Ormerod für das Diamond-Hotend umgerüstet. Dazu habe ich an den Extension-Stecker drei Pololu-kompatible Schrittmotortreiber angelötet. Damit ihr das nachzubauen könnt, gibt es jetzt das Adapterboard mit Aufnahmestellen für vier Pololu Module.
3D Rendering der Baugruppe in KiCad |
Das Board wird einfach nur an den Erweiterungssteckplatz gesteckt. Die Konfigurationsdatei auf der SD-Karte kann angepasst werden um die neuen Schrittmotoren zu unterstützen.
Fertig bestücktes Duex X Board mit vier Pololu Stepper Treibern |
Die Änderungen in der Konfigurationsdatei müssen auf der SD-Karte des Duet Boards durchgeführt werden. Jede Farbe, die mit dem Diamond Hotend gedruckt werden soll erhält eine eigenes Werkzeug. Dazu müsst ihr die Befehle G10 und M563 verwenden.
Mit M563 wird das „Werkzeug“ angelegt. Werkzeug deshalb in Anführungszeichen, weil ein Werkzeug eine bestimmt Farbe im Hotend ist. M563 legt die Parameter fest, mit denen die Farbe erzeugt wird.
M563 P0 D0 H1
Diese Zeile erzeugt das erste Werkzeug T0 und teilt mit, welche Motoren und welche Heizer zum Werkzeug T0 gehören. D0 ist der Extrudermotor 0 und H1 ist der Heizer Nummer 1. Heizer Nummer 0 ist das Druckbett. Motor 0 ist der erste Extruder auf dem Duet Board. Um Motoren des Extension Board zu verwenden müsst ihr die Nummer an der jeweiligen Pinleiste nehmen. Das gilt jedoch nur für ein Duet Board der Version 0.6! Mit der neuen 0.8.5 Version wurde auch ein weiterer Motortrieber auf das Basisboard gebracht. Somit muss die Nummer um eins erhöht werden.
Als nächstes müssen wir einstellen, mit welcher Arbeitstemperatur (220°C) und welcher Standby-Temperatur (120°C) das Werkzeug arbeitet:
G10 P0 S220 R120
Auch hier muss die Werkzeugnummer 0 angegeben werden.
Duex Board mit zwei zusätzlichen Schrittmotoren angeschlossen |
Mit den beiden Zeilen die wir oben sehen können wir jetzt eine ganze Liste an neuen Werkzeugen definieren. Der Drucker ist jetzt in der Lage 5 (oder 6) Motoren zu steuern. Für das Diamond Hotend benötigen wir nur 3. Wenn alle drei Motoren an das Extension Board E1, E2 und E3 angeschlossen sind, steht in der config.g also:
G10 P0 S220 R120
G10 P1 S220 R120
G10 P2 S220 R120
M563 P0 D1 H1
M563 P1 D2 H1
M563 P2 D3 H1
Damit können wir schon drei Farbige Drucke erzeugen. Das Schöne kommt allerdings, wenn wir die Eigenschaften eines Werkzeugs so definieren, dass mehr als nur ein Motor verwendet wird.
Zu diesem Zweck gibt es in der Firmware für das Duet Board den Befehl M567. Dieser legt ein Mischverhältnis für ein bestimmtes Werkzeug fest.
M567 P0 E0:0.1:0.2:0.7
Dieser Befehl legt fest, dass das Werkzeug T0 ab sofort die zu extrudierende Länge gleichzeitig auf folgenden Motoren ausgibt: