Posts mit dem Label OSHW werden angezeigt. Alle Posts anzeigen
Posts mit dem Label OSHW werden angezeigt. Alle Posts anzeigen

Sonntag, 19. November 2017

Nokia 3210 Retro Fit Board Teil 7

Die Prototypen Boards sind da. 10 Leiterplatten des 6-lagigen Designs sind letze Woche angekommen und ich habe mit der Bestückung einer Leiterplatte begonnen. Wie in den Videos 1 und 2 gezeigt, ist das manuelle Löten ein zeitaufwändiges Unterfangen.


Die über 150 Komponenten müssen zuerst einmal sortiert und bereitgelegt werden. Dann kann die eigentliche Bestückarbeit beginnen. Für dieses Projekt habe ich mich entschieden alles per Hand zu löten, also keine Schablone mit Lötpaste zu verwenden. Das hätte den Bestückungsprozess zwar beschleunigt, aber macht es für die Inbetriebnahme schwerer. Die kann nämlich jetzt Stück für Stück erfolgen, da nicht alle Komponenten bestückt sind. Für einen zweiten Produktionslauf, würde ich die Lötpasten-Schablone bevorzugen.

Mit etwas Übung und einem professionellen Lötkolben* kann man 0402 Bauteile problemlos löten. Für die ICs habe ich Lötpaste, Flussmittel* und ein Heißluftfön*.

Beim Zusammensetzen sind mir ein paar kleine Fehler aufgefallen. Einige Löcher, die für Befestigungsschrauben oder Kuststoffbolzen im Gehäuse vorgesehen sind, passen nicht genau. Hier muss das Gehäuse angepasst, oder das Loch aufgefeilt werden. Es ist aber nichts dramatisches.

Ebenso passt die Metall-Rückseite nicht mehr drauf, wenn der JTAG Stecker und die Kopfhörerbuchse bestückt sind. Auch hier muss das Gehäuse angepasst werden.

Die Nächten Tage wird es mit der Software weiter gehen.

* Links gehen auf Amazon.de

NRF3210 soldering part 2



NRF3210 soldering part 1

Montag, 18. September 2017

Nokia 3210 Retro Fit Board Teil 6

Es geht voran mit dem Projekt. Nachdem ich den Audio Teil der Schaltung durch ein paar einfacher lötbare Teile getauscht und das Layout angepasst hatte, konnte ich mit den Feinheiten beginnen. Dazu gehören alle DRC Fehler zu betrachten. Jeder dieser Fehler könnte im späteren Produkt also der Leiterplatte zu Kurzschlüssen oder anderen Problemen führen. Nachdem in einem weiteren Review das Design vollständig überprüft ist, kann ich die Leiterplatte bestellen. Es gibt eine vielfältige Auswahl an PCB Herstellern. Viele dieser Hersteller sind aus dem Asiatischen Gebiet und können Leiterplatten zu unglaublich günstigen Preisen zu erstaunlicher Qualität herstellen. Bei einer 6-lagigen Platte ist das allerdings ein wenig anders. Hier muss ein wenig mehr Aufwand getrieben werden um die Leiterplatte zu erzeugen. Dadurch treten auch bei den Asiatischen Herstellern Kosten auf, die an den Kunden weitergegeben werden. Es ist also nicht ungewöhnlich Angebote zu bekommen, die im Bereich der europäischen Konkurrenten liegen.

Hersteller Eurocircuits multicb EasyEDA Smart Prototyping PCBJOINT
Anzahl 5 5 5 5 5
Stückpreis 54,88 38,78 25,81 48,30 50,92
Gesamtpreis 274,41 193,90 129,07 241,52 254,61
Lieferzeit 7 6 14 16 14
Porto 0 20 19,82 19,34 20,69
Summe 274,41 213,90 148,89 260,86 275,30






Anzahl 10 10 10 10 10
Stückpreis 35,38 26,26 13,44 24,76 26,93
Gesamtpreis 353,79 262,60 134,44 247,60 269,30
Lieferzeit 7 6 14 16 14
Porto 0 20 19,82 19,34 20,69
Summe 353,79 282,60 154,26 266,94 289,99

Wie es im Moment aussieht wir des wohl entweder multicb als europäischer Hersteller, oder eben EasyEDA also asiatischer Anbieter.


Das Design sieht im Moment so aus wie oben gezeigt. Für die Fertigung der Leiterplatte muss an den von KiCad erzeugten Gerber Daten allerdings eine Kleinigkeit geändert werden. KiCad bietet nicht die Möglichkeit die Restringe der Vias auf den einzelnen Lagen gesondert zu bearbeiten. In diesem Design musste das Pad des Controllers an Masse angebunden werden, einerseits um einen guten elektrischen Anschluss an die Masseplane zu bekommen, andererseits um Temperatur an das Kupfer der Leiterplatte abgeben zu können. Das Problem dabei ist leider, dass das Pad direkt hinter einer Kontaktfläche für die Knackfrösche der Tastatur liegt. Also müssen wir in dem Isolationsbereich der Kontaktfläche Vias bohren. Dabei bleiben aber auf der Oberseite nur ein sehr kleiner Bereich zwischen Kontaktring und Via übrig.

Wie man sieht ist im linken Bild die Wahrscheinlichkeit eines Kurzschlusses zwischen den Kontaktflächen und der Via sehr hoch. Der Kupferring der Via ist aber für diese Schaltung auf der Top Seite nicht wichtig. Also können wir das überflüssige Kupfer entfernen. Zur Sicherheit machen wir dann noch einen Tropfen Beschriftungslack drauf und gut ist. Das geht mit GerbV ganz einfach.

Montag, 11. September 2017

Nokia 3210 Retro Fit Board Teil 5

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

Donnerstag, 27. Juli 2017

KiCad auf Ubuntu selbst kompilieren

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.

Freitag, 30. Juni 2017

Nokia 3210 Retro Fit Board Teil 4

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.


Hardware

Ich bin im Schaltplan ein wenig weiter gekommen, auch wenn ich noch kein Update in das Repository übertragen habe. Ich bin im Moment dabei die Ladeschaltung für den originalen NiMH Akku zu zeichnen. Zusätzlich wird ein LiPo Akku anschließbar sein. Ich weiß noch nicht, wie viel Strom der i.MX7 benötigt und wie lange dann der original Akku hält. Er ist mit 1200mAh angegeben. Das ist einiges, wenn man bedenkt, dass das kleine Display nur 30mA benötigt, wenn es an ist. Eine detaillierte Stromverbrauchsrechnung ist auch in Arbeit, die wird zeigen, ob die Verwendung der originalen Batterie überhaupt ein gangbarer Weg ist.


Sonntag, 25. Juni 2017

Nokia 3210 Retro Fit Board Teil 3

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.

Donnerstag, 20. April 2017

Nokia 3210 Retro Fit Board

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:
  • STM32F439 MCU
  • 160x128 OLED Display
  • Audio Codec LM4930
  • Stereo Mikrofon
  • Haptic Feedback Engine
  • A7 GSM/GPRS Mobile Radio Module
  • ESP8266 WiFi Module
  • µSD-Card Interface

Montag, 26. September 2016

GreenPAK5 im DIL-20 Pinout - Adapterboard

Ich habe die Silego GreenPAK Chips entdeckt. Das sind super kleine (2x3mm, 20 Pins), günstige programmierbare Logik-Chips mit OTP Konfiguration. Einziger Nachteil: Sie sind super klein. Der OTP (One Time Programmable) Speicher hilft nicht gerade bei der Entwicklung, da ein Chip immer nur einmal programmiert werden kann. Daher habe ich für Entwicklungszwecke ein paar kleine Adapterboards erstellt. Auf jedem Board ist jeweils ein GreenPAK Chip aufgelötet und jeder Pin geht an eine Pfostenleiste. Das Beste daran ist, dass die Pfostenleisten im DIP-20 Standard-Abstand platziert sind. Somit passt das Adapterboard perfekt in ein Steckbrett/Lochraster/IC-Sockel. Das macht die Entwicklung der Außenbeschaltung für den Logik-Teil viel einfacher.
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

Sonntag, 6. März 2016

Ormerod Erweitungungsboard für Diamond Hotend

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:

  • Motor 0 : 0%
  • Motor 1: 10%
  • Motor 2: 20%
  • Motor 3: 70%
Wie wir oben sehen sind an Motoren 1 bis 3 die Motoren für das Diamond Hotend angeschlossen. Somit erhalten wir eine heterogen gemischte Masse am Ausgang der Düse. Mit transparenten Filamenten sollte das allerdings brauchbare Ergebnisse liefern. Ob das funktioniert wird sich in der Zukunft zeigen. Im Moment warte ich noch auf Teile um drei funktionierende Extruder zusammen zu bauen.

In der Zwischenzeit kann man die Extensionboards auch nachbauen, oder käuflich erwerben. Die Daten sowie eine Anleitung werden in den nächsten Tagen online gestellt.