Schmartwatch [15]: Python Support

Vor einigen Jahren wurde Python auf Mikrocontrollern portiert. Damit ist die Programmierung von embedded Applikationen wesentlich einfacher und schneller möglich. Applikationslogik kann auf dem PC getestet werden, bevor sie auf das Target gespielt wird. Testen ist auf dem PC auch wesentlich einfacher und schneller als auf der echten Hardware. Somit spricht eigentlich nichts dagegen, Python auch für die Schmartwatch zu bauen.

Eine funktionierende Schmartwatch mit flexibler Leiterplatte ist leider immer noch nicht komplett bestückt. Das liegt einerseits daran, dass auf den flexiblen Leiterplatten der DCDC Konverter, (6 Bällchen, 2×3 mm) sehr schlecht bestückbar ist, andererseits aber auch daran, dass ich auf noch keiner manuell gelöteten Platte das Funkmodul ansprechen konnte. Diese Tatsache verzögert alles auf eine ungewisse Zeit, bis ich den Prozess der Lötung unter Kontrolle habe. Genügend Bauteile habe ich, es fehlt lediglich die Zeit für langwierige Versuche. In der Zwischenzeit habe ich mich mit einem anderen Aspekt des Projekts beschäftigt. Wir versuche also diesmal den Python Interpreter in der Micropython nRF52 Variante auf der Schmartwatch zu installieren.

Code downloaden

Dazu Klonen wir das Projekt aus dem Github Repository, laden die Module und starten den Prozess.

$ git clone https://github.com/micropython/micropython.git micropython
$ cd micropython
$ git submodule update --init
$ make -C mpy-cross

Jetzt baut das Projekt einmal komplett durch, das dauert einige Zeit. Wenn das Grundsystem steht, wechseln wir in den Pfad mit der nRF Portierung.

$ cd ports/nrf/
$ make

Wenn es hier zu einem Fehler kommt, ist wahrscheinlich der arm-gcc nicht installiert. Wie das geht kann man zum Beispiel hier nachlesen.

Standartmäßig wird die Portierung für das PCA10040 Board gebaut, darauf befindet sich ein nRF52832, also genau der Chip, der auch auf der Schmartwatch das Sagen hat. Somit ist eigentlich schon alles erledigt und mit einem simplen flash Befehl kann der Chip programmiert werden.

$ make flash

Code anpassen

Die Platformspezifischen Konfigurationen befinden sich in dem Ordner boards/pca10040, also kopieren wir diesen

$ cd boards
$ cp pca10040 schmartwatch -r

Hier kann die Modulauswahl und Pinbelegung angepasst werden. Dazu bearbeiten wir die mpconfigboard.h entsprechend der Schmartwatch Konfiguration

#define MICROPY_HW_BOARD_NAME       "Schmartwatch"
#define MICROPY_HW_MCU_NAME         "NRF52832"
#define MICROPY_PY_SYS_PLATFORM     "nrf52-DK"
#define MICROPY_PY_MACHINE_UART     (0)
#define MICROPY_PY_MACHINE_HW_PWM   (1)
#define MICROPY_PY_MACHINE_HW_SPI   (1)
#define MICROPY_PY_MACHINE_TIMER    (1)
#define MICROPY_PY_MACHINE_RTCOUNTER (1)
#define MICROPY_PY_MACHINE_I2C      (1)
#define MICROPY_PY_MACHINE_ADC      (1)
#define MICROPY_PY_MACHINE_TEMP     (1)
#define MICROPY_PY_RANDOM_HW_RNG    (1)
#define MICROPY_HW_HAS_LED          (1)
#define MICROPY_HW_LED_COUNT        (1)
#define MICROPY_HW_LED_PULLUP       (0)
#define MICROPY_HW_LED1             (8) // Frontlight LED
// SPI0 config
#define MICROPY_HW_SPI0_NAME        "SPI0"
#define MICROPY_HW_SPI0_SCK         (27)
#define MICROPY_HW_SPI0_MOSI        (25)
#define MICROPY_HW_PWM0_NAME        "PWM0"
#define MICROPY_HW_PWM1_NAME        "PWM1"
#define HELP_TEXT_BOARD_LED         "1"

Somit haben wir die Bedingungen geschaffen, die Basisfunktionen der Schmartwach nutzen zu können. Jetzt müssen wir den Kompiliervorgang noch für unsere Hardware durchführen, das geht auch wieder mit make.

$ make BOARD=schmartwatch

Das nächste mal betrachten wir, wie der Code dann auf der Schmartwatch sinnvoll einsetzbar ist, denn es gibt zum Beispiel keine UART, die über die Schmartwatch nach außen geschaltet ist. Wir müssen also das Projekt so bearbeiten, dass es die REPL anstatt über die UART Peripherie über Semihosting ausgibt.

Pick and Place: Teil2 JUKI Placemat 460 Retrofit Board

Wie im Podcast schon erwähnt, haben wir uns überlegt den 286er der JUKI Placemat 460 durch einen STM32F4 zu ersetzen. Also gesagt getan. Erst war die Überlegung das Steuerboard inkl. PC zu ersetzen und die neue Flachbaugruppe an die gleiche Stelle wie die alte Steuerplatine zu possitionieren. Sozusagen ein Retrofit Board. Alle alten Stecker sollten verwendet werden. Als dann die alten Schaltunterlagen gesichtet wurden, wurde diese Entscheidung kurzerhand überdacht und verworfen. Es wurde ein Board entwickelt, welches zwar den 286er ersetzt, aber nicht die Steuerplatine. Dazu musste einfach nur die 3V3 Welt des STMs in die 5V Welt der Steuerplatine umgesetzt werden.

Wie es so ist, wurden noch ein paar Interfaces neu ergänzt. Da noch Unsicherheit besteht, welches das Richtige ist, sind hier mehrere zum Einsatz gekommen. Es wurden Interfaces für eine µSD Karte, ein 100MBit LAN und ein USB zu UART bereitgestellt. Da auch die Überlegung besteht, den Bestückkopf um mehr als nur 90° drehen zu lassen wurden auch noch 2 Polulu Steckplätze vorgesehen. Alles in allem ist die Platine doch sehr kompakt geworden. Geradeeinmal 100x85mm.

So in der Art soll das Board später mal eingebaut sein. Im Idealfall werden nur die 2 Flachbandkabel benötigt und das Board ist fertig zur Verwendung. Bei den Bauteilen wurde darauf geachtet, möglichst wenig Varianz zu haben. Für das komplette Board, kommen nur 15 verschiedene SMD und nur 5 verschiedene THT Bauteile zum Einsatz. Alle Bauteile waren bei JLCPCB  bzw LCSC bestellbar. Genug Bauteile für 2 Flachbaugruppen, 5 Rohleiterplatten und eine Schablone haben zusammen nur ca. 80€ gekostet. Sobald alles da ist wird es spannend. Mal sehen ob die Flachbaugruppe als erste mit dem Bestückautomat herzustellen geht.

Schmartwatch [14]: Flex Baugruppe bestücken

Die flexieblen Leiterplatten wurden geliefert und ich kann jetzt mit der Bestückung beginnen. Die Bestückung der ersten Leiterplatte werde ich in einzelnen Phasen durchführen. Zuerst wird der DCDC Konverter U2 bestückt. Dieser sitzt auf 6 BGA Bällchen und ist nicht leicht zu platzieren.
Wie man in den Aufnahmen bereits sehen kann, ist die Referenzierung der Siebdruck, Lötstopp und Kupfer Maske nicht ganz akkurat. Daher wurde an den Stellen der kleinen Landepads auch nachgearbeitet. Mit dieser Modifikation sollte es nun möglich sein die Bauteile korrekt und ohne Kurzschluss zu verlöten. Wenn ich die TPS61099 verlötet habe, kann ich mit dem Multimeter die Lötstellen auf Kurzschlüsse prüfen. Das Verlöten wird mit dem Heißluftfön passieren. Dabei wird mit Flussmittel eine Barriere zur Athmosphäre hergestellt (viel hilft viel) und der Chip erhitzt, bis das Lötzinn flüssig ist. Die suaerstoffhaltige Athmosphäre soll absgeschottet werden, um ein oxidieren (verbrennen) des Lot zu vermeiden. Im industriellen Herstellungsprozess wird das mit zum Beispiel einer Schutzathmosphäre erreicht. Anschließend kann dann mit dem Lötkolben die restliche Beschaltung dazugelötet werden. Wahlweise kann auch hier die Heißluft eingesetzt werden um die Bauteile zu verlöten.

Wenn der Regler aus den 3V Eingangsspannung die gewünschten 3,3V Ausgangsspannung erzeugt, kann die MCU, also der Microcontroller U3 bestückt werden. Dieser hat ebenfalls Landepads, die allerdings größer sind als die kleinen Kreisförmigen des Spannungsreglers. Hier musste nicht nachgearbeitet werden um die Pads mit Lötstopplack zu trennen. Diese Trennung ist wichtig, denn sonst könnnen sich Brücken bilden, die man von Außen nicht sehen kann. Für den Microcontroller kann ebenfalls eine Kurzschlussmessung erfolgen, ebenso wie eine optische Inspektion unter dem Mikroskop. Wenn der Lötvorgang für Gut befunden wird, kann die restliche Peripherie um den Controller gelötet werden. dazu gehören: Stützkondensatoren, und Vorspannungswiderstände. Wenn alle diese Komponenten verlötet sind, sollte der Controller über den Debug-Port erreichbar sein.
Sollte das der Fall sein, kann mit der Bestückung der externen ePaper Beschaltung begonnen werden. Diese, zusammen mit dem Stecker J3 ist für sie Uhrenfunktion absolut notwendig. Die Echtzeituhr und der Bewegungssensor werden nacheinander dazugelötet und auf Kurzschlüsse überprüft. Jede der Komponenten sollte dann einzeln in Betrieb genommen werden.

Die Bilder zeigen, dass der Offset des Siebdrucks leider so stark ist, dass der Rahmen um die Komponenten nicht als Referenz zum Platzieren herangezogen werden kann. Das ist schade, denn jetzt muss ich mich auf die optische von der Seite erfolgende Bewertung der Platzierung verlassen.

Die Rückseite der Flexplatine ist mit einer dicken Schicht Polyimid (PI) versehen. Da auf der Rückseite allerdings auch einige Messpunkte anfgebracht sind, wurde in der Schicht Öffnungen vorgesehen.

Diese Öffnungn sind groß genug um mit dem Tastkopf an das darin liegende Pad zu gelangen. Somit ist das Testen in einem Testadapter möglich. Diesen habe ich allerdings noch nicht entworfen.
Um die Uhr weiter zu stabilisieren wird der Batteriehalter in der Mitte mit einem thermisch aushärtenden Kleber fixiert. Das Kunststoffgehäuse des Halters kann so Längs und Quer Kräfte aufnehmen, die die Platine in der Mitte durchbiegen würden.

Beim Auflöten der zusätzlichen Komponenten habe ich an eine noch unbekannten Stelle einen Kurzschluss, oder besser gesagt eine Diodenstrecke von  0,4V in beide Richtungen. Hier muss ich also erst noch ein bisschen nacharbeiten, bevor ich mit dem Prototyp eine Funktion testen kann.

Wenn die Funktion gegeben ist, werde ich als nächsten Schritt die Software so weit fertig machen, dass sie initial released werden kann. Dazu fehlt noch ein wenig Code, vor allem die Funktion die Updatemuster des ePapers zu kontrollieren.

Schmartwatch [13]: Flex Baugruppe bestellen

Wie bereits von Anfang des Projekt an vorgesehen, soll die Leiterplatte der Schmartwatch gleichzeitig auch das Armband sein. Dazu ist eine flexible Leiterplatte vorgesehen. Diese Art von Leiterplatte ist im Gegensatz zu herkömmlichen Leiterplatten aus eine Kunststofffolie hergestellt und nicht aus Glasfaser verstärktem Epoxid-Harz (FR4). Gewöhnliche Leiterplatten aus FR4 lassen sich mit einer Mindestdicke von 0.4mm herstellen. Das ist aber nicht flexibel genug für unsere Anwendung als Armband.
Eine wichtige Eigenschaft einer Leiterplatte ist die Möglichkeit sie im Reflowprozess zu verlöten. Dazu muss das Leiterplattenmaterial allerdings auch tempertaurresistent sein. Bleifreies Lötzinn schmilzt bei 217°C und ein gewöhnlicher Reflowprozess steigt bis auf 245-250°C an um die Löttemperatur für ca. 30 Sekunden aufrecht zu halten. [Quelle]

Quelle: http://www.gp-ics.com/pdf/far1.pdf

Die flexible Leiterplatte muss diese Temperaturen aushalten können, ohne ihre Form und Festigkeit zu verlieren. Aus diesem Grund ist das Basismaterial der Leiterplatte ein Polyimid mit einer Stärke von 12,5µm. Auf dieses Basismaterial wird eine 13µm dicke Kleberschicht und 18µm Kupfer aufgebracht. Das Kupfer bekommt dann eine Deckfolie aus Polyimid mit 25µm Stärke. Zur Stabilisierung der Leiterplatten an den Stellen an denen Bauteile bestückt werden, sind zusätzlich zu der 170µm dicken Leiterplatte 150µm dicke Stabilisierungplatten aufgeklebt, ebenfalls aus Polyimid.

Somit ergibt sich eine Dicke von 0,325mm für die Leiterplatte mit Stabilisierungsplatte. Diese soll die benötigte Stabilität mitbringen, um die Bauteile nicht durch einfache Biegung abreißen zu können. Für das Handhaben wird allerdings noch ein stabilerer Rahmen benötigt. Dieser soll ebenfalls reflow geeignet sein und muss daher auch aus einem temperaturstabilen Kunststoff hergestellt werden. Aktuell werde ich eine unbestückte FR4 Leiterplatte als stabilisierendes Element verwenden und die flexible Leiterplatte mit Kapton Klebeband befestigen. Kapton ist ebenfalls ein Polyimid und kann einen Reflow-Prozess locker verkraften. Wenn die Bauteile der Uhr einmal verlötet sind, sollten sie für mehr Eigenstabilität sorgen. Im Design ist zu erkennen, dass der Batteriehalterung in der Mitte der Schaltung sitzt. Dieser ist selbst noch zusätzlich mit doppelseitigem Klebeband fixiert und somit eines der stabilisierenden Elemente.

Wenn die Uhr trotzdem zu instabil ist, werde ich eine gefräste Aluminiumplatte als Basis verwenden können. Die Testpunkte am Boden der Leiterplatte sind nur mit Messspitzen durch kleine Öffnungen in der stabilisierende Folie erreichbar, sind aber nicht durch eine flache Metalloberfläche kontaktierbar.

Bestellt habe ich die Flex Boards bei PCBgogo. Mit 8 Tagen Herstellungszeit sind die Flex-Boards bereits fertig und zur Zeit befinden sich die Leiterplatten bei der Post in Hongkong. Kann also nur noch ein paar Tage dauern, bis sie geliefert werden. Dann sehen wir weiter, Bauteile sind genügend vorhanden.

Pick and Place: Teil1

Wir haben uns einen Bestückautomat gekauft. Wie das mit unseren Käufen meistens so ist, spontan. Chris hat den Automat bei ebay Kleinanzeigen gesehen und 2 Tage später haben wir ihn in den Keller von Basti gebracht. Der Automat wiegt stolze 300kg und besteht hauptsächlich aus Stahl.

Der Automat  besitzt einen Transformator, der die Eingangsspannung von 230VAC in 100VAC umwandelt. Dieser wiegt stolze 12 kg und besteht aus ziemlich viel Kupfer. Die 100VAC Spannung wird im Automat in zwei DC Spannungen konvertiert. 24V und 5V. Bei Kauf und Erst-Inbetriebnahme im Keller zeigt der Steuerungsrechner eine Fehlermeldung an. Diese war leider in den Unterlagen nicht dokumentiert und lautete „Notstop betätigen! PWB-Stecker nicht verbunden.“ Der Steuerungsrechner ist ein 286er der mit dem Automaten über parallele Schnittstellen kommuniziert. Die parallelen Schnittstellen sind zwei Einsteckkarten in den ISA-Bus des Rechners. 

Bei der Fehlersuche wie wir die Fehlermeldung loswerden, hat Chris herausgefunden, dass die LED des 5VDC Nezteil nicht leuchtet. Wir haben uns mit einem Labornetzteil an den 5V Kreis gehängt, nachdem wir mit einem Multimeter auf Kurzschluss nach Masse getestet haben. Die Stromaufnahme war ca. 500mA und die Fehlermeldung verschwand. Also haben wir uns entschlossen das Netzteil zu reparieren. Bei näherer Untersuchung hat sich gezeigt, dass einer der Elektrolyt -Kondensatoren ausgelaufen ist und das ganze Netzteil mit klebriger Pampe verschmiert hat. Das hat wohl zu einem Kurzschluss geführt. Ziemlich erstaunlich, dass in einem 30 Jahre alten Gerät die Elkos noch flüssiges Elektrolyt haben. Spricht für deren Qualität.

Wir haben also eins der super kleinen 230VAC auf 5VDC/2A Netzteile anstelle des alten Netzteils eingebaut und siehe da, die Kiste läuft und reagiert auf Steuerbefehle vom Rechner. Beeindruckend ist auch der Unterschied in der Bauform der Netzteile. Das kaputte Netzteil konnte aus den 100VAC 5VDC mit 1A Strom erzeugen. Das neue Netzteil ist ist ungefähr so groß wie eine Briefmarke, hat einen breiteren Eingangsspannungsbereich und kann den doppelten Strom am Ausgang liefern.

Wir haben einen Initialisierungstest durchgeführt uns alle Funktionen einmal getestet. Wie nicht anders zu erwarten ist die Bedienung etwas umständlich. Es gibt kein USB (Verison 1.0 wurde erst 4 Jahre nach Baujahr der Maschine veröffentlicht) und eine serielle Schnittstelle ist auch nicht zu finden, also werden wir um ein Update nicht herum kommen wenn das Teil sinnvoll eingesetzt werden soll. Denn irgendwie wollen wir unsere Daten automatisch vom PC in den Bestückautomaten bekommen.

Wir haben uns entschlossen die Kiste auf eine aktuelle Hard-/ und Software zu bringen. Dazu werden wir ein neues Interface-Board entwickeln, dass so aufgebaut ist, dass es mit den originalen Bedingungen des Bestückautomats herstellbar ist. Quasi ein selbst replizierendes Ersatzteil. Das soll später an die gleiche Stelle wie die aktuelle Interface Karte, und mit den gleichen Steckern arbeiten.

Wie genau müssen wir noch besprechen. Das ist dann eine Sache für den nächsten Eintrag.

Kurzschluss Junkies [0x06]: Gemischte Tüte

Feedback zur letzten Folge war positiv. Ob wir YouTube Videos machen, werden wir sehen. Firma in der wir arbeiten ist unbekannt. Ob wir die irgendwann erwähnen werden wir sehen.
3000+ Downloads in diesem Jahr.

Podcast wird auf jeden Fall fortgeführt. Wir machen weiter.

Allgemeines:

RIGOL1054Z das kleine Osziwunder für <400€ mit Sofwareencoder, FFT und das Beste ist es kann ein eigenes Augendiagramm erstellen. Hat 1G/Sample und 50MHz Bandbreite. Top Hobby-Oszi.

Aus Fehlern lernen:

DRC ist immer von Vorteil und sollte man nicht vergessen.
Zuken ist nicht das beste Tool wenn es darum geht Busse von Subsheet zu Subsheet zu führen. Daher der „gesunde“ Blauton im Bild (Videosignal) auf einer seiner Baugruppen. Wir nutzen das etwas ältere CR5000 mittlerweile gibt es CR8000.

Layoutsoftware:

KiCad, Zuken, Pulsonix und Altium mal kurz erwähnt.
KiCad ist ein kostenloses Layouttool was durchaus mit den professionellen Tool mithalten kann.
Zuken ist zumindes bei uns etwas buggy aber durchaus nutzbar für Großprojekte.
Pulsonix ist das modernere Zuken welches auch etwas günstiger ist.
Altium ist ein Tool welches etwas besser sein soll jedoch auch teuerer, aber vom Hörensagen ein sehr gutes Programm ist.

Basti hat für KiCad einen Bugfix bereit gestellt für einen Haken und Stacked-Vias in seine Version implementiert.

Projekt Genesis:

Das Alexagame für zwischendurch. Wer wollte schon immer mal ein KI sein und über die Zukunft der Menschheit entscheiden? 😉

Der Minidrucker:

Beim Minidrucker geht der Stepperdriver von ST zumindest wenn das Board extern ist. Um das Mini-Drucker-Mainboard richtig bestücken zu können brauchen wir einen Fineplacer. Der Bausatzlink folgt. Bei motedis kann man günstig mechanische Teile kaufen.

PC Hardware:

Ein paar Geheimtipps für PC Hardware. Netzteil aus dem T7500 (1KW für unter 60€)
Aktuelle Preis/Leistungssieger ist die RX580.

Schmartwatch:

Neue Schmartwatchversion ist öffentlich zum Review, da das Board für Prototypen sehr teuer ist.

Chip(s) der Woche:

Microchips MCP6411. Ein Sehr günstiger OPAMP für ca. 25ct.
Analogs AD8515. Auch nicht schlecht für grad mal 5ct mehr.

Schmartwatch [12]: Finales Layout Review

Es ist so weit, ich habe mein Layout in ein Stadium gebracht, dass so weit komplett ist. Jetzt steht die Entscheidung im Raum: Bestellen, oder sind noch Verbesserungen möglich? Daher habe ich das Design der Öffentlichkeit zur Verfügung gestellt und möchte, dass so viele Augen wie möglich auf das Design schauen und Fehler finden, die ich nicht finden konnte.

 Ich habe schon einige Rückmeldungen bekommen und einige Änderungen eingepflegt. Wie die GitHub Historie zeigt, sind zum aktuellen Zeitpunkt 6 Änderungen eingeflossen. Jeder, der seine Meinung einbringen möchte ist eingeladen das zu tun. Schließlich kostet der nächste Produktionsschritt erheblich mehr Geld als die Leiterplatte aus FR4 zu bestellen und dann selbst die Bauteile aufzulöten.
Ich erwarte Herstellungskosten von ca 120€ pro Baugruppe, da ich lediglich 10 Stück bestellen werde. Das ist dann die Uhr inklusive Display. Für Fans einer ziemlich nerdigen Armbanduhr, die garantiert nicht wasserdicht ist, kann ich einen der Prototypen für 150€ anbieten. Wenn die Anzahl der bestellten Prototypen groß genug ist, wird der Preis sicher sinken.
Dazu werde ich allerdings eine eigene Seite im Blog einrichten, wenn es so weit ist die Bestellung aufzugeben. Zeitgleich mit der Bestellung soll auch die Firmware für die Uhr öffentlich verfügbar sein. Zur zeit liegt sie noch in einem privaten Repository und wartet auf ein klein wenig Politur und Dokumentation. So fehlt zum Beispiel noch einiges beim BLE Teil der Software, oder beim Powermanagement. Ich habe zwar schon ein paar Dinge mehr implementiert, als im letzten Artikel zu dem Thema stand, aber es ist noch nicht perfekt. Ebenso wie die Ansteuerung des Displays zur Zeit noch keine eigene LUT Muster kann, sondern nur den 12 Sekunden langen Updatezyklus, der im OTP Speicher der Uhr liegt. Auf jedem Fall könnt ihr in der nächsten Zeit mit einer Reihe neuer Artikel zum Schmartwatch Projekt rechnen.
Für den einfachen Zugriff auf den Schaltplan findet ihr hier die aktuelle Version. Ich habe für das Layout noch keine Gerber-Daten erzeugt, aber als PDF findet ihr die einzelnen Lagen der initialen Version hier.
 
Das GitHub Projekt findet ihr hier: 
 
Über Kommentare und Verbesserungsvorschläge, sowie über Fragen freue ich mich natürlich.

PCBWay Board Quality – Leiterplatte für das Differenzielle I2C Interface

 
Ich habe vor einigen Tagen einen Gutschein von PCBWay bekommen. Im Gegenzug dazu veröffentliche ich auf meiner Webseite eine Rezension. Dieser Artikel ist die Rezension zu den kostenlos erhaltenen Leiterplatten. Zuerst die fertig bestückte Leiterplatte bereits auf dem RaspberryPi montiert. Wenn ihr euch über den Link anmeldet und eine Bestellung aufgebt, bekomme ich einen kleinen Bonus für weitere Platinen.

Die Leiterplatte kam in einem Fedex Paket. Als Express. Innerhalb von 5 Tagen nach Bestellung. Unglaublich schneller Service auf Seiten von PCBWay. Deutsche Leiterplatten Hersteller haben ähnliche oder längere Lieferzeit bei weit höheren Kosten.

Im Paket waren Aufkleber, ein Weihnachtsgeschenk und die Leiterplatten. Das Weihnachtsgeschenk ist ein PCB Weihnachtsmann, der über Batterie betrieben leuchtet. Die Leiterplatten sind wie üblich eingeschweißt um sie vor Korrosion und Schmutz zu schützen.

Ausgepackt zeigt sich die hervorragende Qualität der Boards. Bei der ersten Inspektion lassen sich keine Fehler erkennen. Sowohl auf der Vorder- als auch auf der Rückseite. Auch die Abmessungen der Leiterplatte ist genau getroffen, so weit ich das mit dem Messschieber nachmessen kann. Die Bilder unten zeigen die Leiterplatte von beiden Seiten. Die Fräskontur ist wie in den Gerberdaten angegeben ausgeführt. Die Kerbe an der linken Seite, sowie der Schlitz sind wie gewünscht ausgeführt.

 

Ich habe neben den Bildern noch Aufnahmen mit dem Mikroskop gemacht. Dabei zeigen sich weitere Qualitätsmerkmale der Leiterplatten.

Das oben gezeigte Bild ist mit einem USB Mikrokop aufgenommen und zeigt 0,25mm breite Leiterbahnen und Vias mit 0,4mm Loch und 0,4mm Restring. Sehr gut ist zu erkennen, dass die Löcher der Vias sehr genau in der Mitte des Rings liegt. Das ist ein Zeichen für hohe Genauigkeit beim Referenzieren der Panels bei der Fertigung. Rechts neben dem Bild sind die originalen CAD-Daten des fotografierten Ausschnitts. Gut zu sehen ist auch, wie genau der Siebdruck zu den Kupferstrukturen ausgerichtet ist.

Dieser kleine Siebdruck zeigt, wie filigran PCBWay in der Lage ist Siebdruck auf die Platine zu bringen. Für Prototypen wird meistens kein Sieb hergestellt sondern mit einem Rasterverfahren gearbeitet. Dabei geht ein Druckkopf, ähnlich wie beim Tintenstrahldrucker, Zeile für Zeile die Platine entlang und positioniert tröpfchenweise Tinte, die Später entweder getrocknet, oder über UV-Licht ausgehärtet wird.

Zum Schluss noch einige Nahaufnahmen der Lötstellen. Rechts vor und links nach dem Löten sehen die Strukturen sehr gut aus. Auch mit dem Lötkolben war es sehr angenehm zu arbeiten. Die Pads sind gut verzinnt (HASL) und nehmen Lötzinn (bleihaltig und bleifrei) sehr gut an.
PCBWay ist also ein Leiterplattenhersteller, den ich sehr empfehlen kann. Ich habe auch schon bestückte Leiterplatten bestellt. Die waren von der Qualität auch sehr zufrieden stellend.

Hier noch ein Video von der Leiterplatte im Ofen

Knöpfchenspiel 1 – Systemübersicht

Heute beschreibe ich das Knöpfchenspiel. Wie bereits im Podcast erzählt, ist das primäre Ziel das Spiel bis April fertig zu bekommen. Daher gibt es bereits einige fertige Komponenten.

Das originale Knöpfchenspiel steht meistens in Spielhallen und kann dort gegen Geldeinwurf gespielt werden. Dazu müssen die leuchtenden Knöpfe gedrückt werden. Jeder Knopfdruck gibt einen Punkt. Wenn ein nicht leuchtender Knopf gedrückt wird, wird ein Punkt abgezogen. Das sieht dann so aus:

Das von mir geplante System ist ähnlich aufgebaut. Nur dass die Spieler nicht gegenüber, sondern nebeneinander spielen und dass die Punkteanzahl an einem großen Fernseher dargestellt wird und nicht auf einer 7-Segementanzeige. Dazu wird das System in mehrere Submodule aufgeteilt.

 
  • System-Controller (Raspberry-Pi)
  • Bus-Interface (Differenzieller I²C Bus Treiber)
  • Knöpfchen-Controller (STM32F030)
  • Knöpfchen
  • LED-Band-Controller
  • Power Supply

System-Controller

Der Raspberry Pi übernimmt die Steuerung des Spiels und die Anzeige der Punkte am Bildschirm. Dazu wird das HDMI Interface in maximaler Auflösung (1920×1080) betrieben. Weiterhin hängt am Pi noch eine Webcam (USB) mit der die Spieler für die High-score Liste fotografiert werden.
Auf dem Raspberry steckt die DIIC Baugruppe. Das Bus-Interface Board
Bus-Interface

Bus-Interface

Um einen stabilen I2C Bus über alle Baugruppen zu bekommen, habe ich mich für einen Differenziellen Bustreiber entschieden. Dieser ist in der Lage die Eindraht-Signale der I2C Strecke auf zwei differenzielle Signale aufzuteilen. Diese sind wesentlich unempfindlicher gegenüber elektromagnetischer Störung. Das Bus-Interface Board besitzt die nötigen Stecker für den Knöpfchenspiel Bus, ein RJ45 Stecker, der über normale LAN-Kabel miteinander verbunden werden kann.

Knöpfchen

Das Knöpfchen ist ein 60mm durchmessender Plastik Druckknopf (Schließer), der von hinten beleuchtbar ist. Die Beleuchtung wird von einer weißen LED übernommen.

 

Knöpfchen Controller

Die 16 Knöpfchen sind an dem Knöpfchen-Controller angeschlossen. Der Controller ließt den Schaltzustand der Knöpfchen ein und vergleicht ihn mit den Lampen. Wenn die Lampe an war, wird der Punktestand um eins erhöht, wenn die Lampe aus war, wird der Punktestand reduziert, bis er bei 0 angekommen ist.
Auf dem Knöpfchen-Controller Board ist ein DC/DC Wandler, der die 12V Bus-Spannung auf 5V herab setzt. Die 5V werden dann mit einem linear Regler auf 3,3V für den Controller heruntergesetzt. Die Knöpfchen und Lampen in den Knöpfchen können mit 12V, 5V, oder 3,3V versorgt werden.
Der Controller besitzt ein I2C Slave-Interface, dass die Spielinformationen an den Spiel-Controller übertragen kann.

LED-Band-Controller

Um das Spiel von Außen attraktiver zu gestalten, habe ich vor eine LED-Leiste an der Kante anzubringen, ähnlich wie bei der oben gezeigten Variante. Dafür habe ich WS2812 LEDs als Leitungsband vorgesehen. Gesteuert werden die LEDs von einem eigenen Controller. Wahrscheinlich der Arduino Nano, den ich schon für die Bühnenkulisse verwendet habe. Den kann man über die USB -> UART Brücke auf dem Arduino vom Raspberry Pi ansprechen.
Für das System werden zwei AC/DC Netzteile eingesetzt. Ein 5V und ein 12V Netzteil. Das 5V Netzteil ist für die Versorgung des Raspberry Pis und LED-Band vorgesehen. Das 12V Netzteil übernimmt die Versorgung des Bus-Systems, Knöpfchen-Controller Boards und der Knöpfchen. Beide werden über den gleichen Kaltgeräte-Stecker angeschlossen und abgesichert.

Schmartwatch [11]: Neue Hardware

Die erste Version der Hardware hatte einige kleine Bugs. Darunter war ein Fehler in der Booster Schaltung für VCOM des E-paper Displays, Kondensatoren, die nicht spannungsfest genug waren und kein Piezo Piepser. Alles das ist in der zweiten Version der Hardware vorhanden. Mit der Bestellung habe ich eine ganze Weile gewartet, da ich erst alle Teile der Hardware, die bereits vorhanden ist und funktioniert testen wollte. Das ist jetzt geschehen und die zweite Version kann hergestellt werden.

Die alte Version der Hardware hat einige Pinbelegungen anders als die Neuere. Daher ist die Software bereits dafür ausgelegt, die richtige Header Datei einzubinden, wenn für die eine oder andere Hardware kompiliert wird.

Hier eine Übersicht der aktuellen Funktionen.
Links oben befindet sich der Piezo Buzzer. Um dafür Platz zu machen, ist der Bewegungssensor U4 und der Mikrocontroller U3 weiter nach rechts gewandert. Die RTC, die unabhängig vom Controller läuft, ist ein wenig weiter nach unten gewandert und sitzt jetzt rechts oberhalb der Batteriehalterung. Unterhalb der Batterie befindet sich der Teil der E-paper Ansteuerung. Im Gegensatz zur Version 1 ist hier die Schaltung mit 0603 Bauelementen ausgelegt. Daher können Kondensatoren mit höheren Spannungsfestigkeiten eingesetzt werden. Ein zusätzliches Feature ist die Beleuchtung des Displays. Dafür ist ein weiterer Flat-Flex-Stecker vorgesehen: J4.

Das PCB, das ich bestellt habe wird aus 0,4 mm dickem FR4 hergestellt und kommt damit der Dicker eines Flex-Boards mit Stiffner nahe. Eventuell ist sie auch flexibel genug um für das Handgelenk gebogen zu werden. Der Stecker sollte zwar mit einem 0,3 mm dicken Flex-Board verwendet werden, aber vielleicht passt das 0,4 mm dicke ja trotzdem.

Auch hier ist die Wahl wieder auf FR4 als Boardmaterial gefallen, da die Flex Boards alle viel teurer sind. Wenn mehr als 5-10 PCBs bestellt werden können, weil ich mir sicher bin, dass es das endgültige Design ist, dann ist Flex wieder nicht zu teuer. Bis dahin wird FR4 genügen müssen.

Einer der nächsten Schritte wird es sein, die Hardware und die Software für die Veröffentlichung vorzubereiten. Im Moment schließe ich die BOM ab, sodass eine Liste aller benötigten Bauelemente zur Verfügung steht. Weiterhin kommt dann noch ein neueres 3D Modell zum Einsatz. Auch hier sind einige Design Änderungen eingeflossen, die in der ersten Version noch nicht beachtet wurden. Dazu aber später mehr.