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.

Regenbogen LED Tower

Im Letzten Urlaub habe ich meinen LED Turm mit einem AVR ATMega32U2 gebaut. Mit dem Ergebnis bin ich allerdings nicht ganz zufrieden gewesen. Mechanisch war alles wie ich es wollte, allerdings hat der ATMega32U2 nicht so funktioniert, wie ich mir das gewünscht habe. Außerdem war einer der Footprints falsch und der USB Stecker ist nach dem zweiten mal Stecken abgerissen.

Regenbogen Modus

Ebenso habe ich lange auf die Plexiglas Platten warten müssen. In den Bildern sind nur die Untere und die Obere verbaut.

Ich habe wieder einmal Urlaub und habe mir das Projekt nochmal vorgenommen. Versuch 2 ist fertig und bestellt. Diesmal habe ich einen ESP8266 als Controller verwendet. Jetzt hat Die LED Regenbogen Lampe WLAN und kann über MQTT gesteuert werden. Wenn alles glatt geht. Die Hardware habe ich jetzt mal wieder bei PCBWay bestellt. Fertig bestückt mit allem außer ESP8266 Modul und RGB LEDs. Die müssen nachträglich noch eingelötet werden.

Wenn die Leiterplatte geliefert wird, alles funktioniert und die Daten nochmal aufgehübscht sind, werde ich sie online stellen, für jeden, der interessiert ist das nachzubauen.

Nokia 3210 Retro Fit Board Teil 9

Ich habe leider immer noch Probleme mit der Power Versorgung. Der LiPo Chip, der die Ladespannung für den Akku aus die 5V USB zur Verfügung stellt, funktioniert einwandfrei. Der dahintergelegene Teil, der zwei mal 3,3V aus den 4,2 V der Batterie machen soll, hat teilweise Probleme die Spannung stabil zu halten, was dazu führt dass der Microconroller abstürzt.

Die Lösung wird sein, den kompletten Spannungsregler zu ersetzen. Dazu werde ich eine kleine Schaltung aufbauen, die das mit möglichst wenig Komponenten schafft. Dann hoffe ich, dass ich eine stabile Verbindung zum Controller bekomme um die anderen Komponenten in Betrieb zu nehmen.

Für den 3,3V Regler werde ich auf ein integriertes Schaltregler Modul zurück greifen. Das kann dann hoffentlich die Spannung zuverlässig zur Verfügung stellen.

Ein Redesign des PCB werde ich wahrscheinlich nicht durchführen, dafür ist das 6-Lagen Board zu teuer.

Nokia 3210 Retro Fit Board Teil 8

Ich bin mitten in der Inbetriebnahme des Retro Fit Boards für das Nokia 3210. Dabei sind mir einige Probleme aufgefallen.

Das Board hat einen Fehler im Kupfer der Rückseite. Glücklicherweise ist das Kupfer eine große Struktur und kann relativ einfach aufgekratzt werden um den Fehler zu entfernen.

Die Kupferfläche zum Anbinden der Speicherdrossel der 3V3 Versorgung ist mit der GND Plane kollidiert. Beide Planes besitzen die Priorität 0 und werden daher übereinander liegend generiert. Das ganze ist sehr ärgerlich, wird aber im DRC gezeigt… Den hätte ich besser mal komplett durchgeschaut.

Jetzt bleibt nur die manuelle Nachbearbeitung der Leiterplatte. Wenn die beiden Kupferflächen aufgetrennt sind, funktioniert auch der Buck Regler für das 3V3 Netz. Allerdings nur auf instabilen 2,6V.  Die Instabilität der Versorgungsspannung führt dazu, dass die CPU nicht zuverlässig läuft. Die Kommunikation mit JTAG funktioniert nur sporadisch und es kommt oft zu Abbrüchen der Verbindung. Hier helfen 10µF am Ausgang der Spule L202, aber in manchen Situationen bricht auch so die Spannung zusammen.

Der Boostconverter, der Die Batteriespannung auf 4V hochsetzen soll, passt nicht auf das Footprint, das vorgesehen ist. Hier habe ich vorerst eine Brücke zwischen Dem Eingangs Kondensator und der Spule L202 gelötet. Ich habe ein „Texas_S-PVSON-N8_NoThermalVias“ aus der KiCad Bibliothek verwendet. Der Chip der da drauf soll ist allerdings ein WSON Chip mit 2x2mm Kantenlänge der PVSON ist 3x3mm. Da hilft nur manuelles Nacharbeiten.

Für den 3V3 Buck-Konverter habe ich einige Experimente mit dem Layout gemacht. Die stabilste Spannung habe ich bei zwei Spulen je 4,7µH und verteilter Ausgangkapazität > 22µF erhalten.

Zwei Spulen und verteilte Ausgangskapazität

Diese Schaltung werde ich nun auf dem komplett bestückten Board ausprobieren und dann sehen wir weiter.

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.

Nokia 3210 Retro Fit Board Teil 2

Ich bin dabei ein Mainboard zu designen, dass sich als Nachrüstbausatz in ein Nokia 3210 einbauen lässt. Es wird das Nokia mit Android versorgen und ein OLED Display mitbringen. Anders als in einem früheren Beitrag werde ich kein STM32 Mikrocontroller, sondern einen Applikationsprozessor mit allem was dazugehört verwenden. Ziel dieser Übung ist es ein i.MX7 Board zu designen, zu layouten und mit Software in Betrieb zu nehmen.
In den letzten Tagen habe ich das Github Repository umgestellt, um die Symbole, Footprints und Software nicht im Board Repository zu haben. Ich hoffe so lässt es sich besser verwalten.

DDR3L Schaltung für das Retro Fit Board

Schaltplan für PMIC und DDR3 sind fertig. Alles andere muss noch vom Schaltplan für den STM32 chip konvertiert und neu verdrahtet werden. Diesmal wird das TI-BLE/WIFI Modul WL1807MOD wieder zum Einsatz kommen. Die aktuellen Daten sind bei Github zu finden. Außerdem poste ich Updates auch auf meinem Hackaday.io Profil.

Projekt Steinofenpizza

Hier soll der Ofen später mal stehen. Das Gelände ist sehr uneben, es müssen fast 25cm Höhenausgleich von links nach Rechts durchgeführt werden. Der Baum ist auch im Weg und muss umgesetzt werden. Die Schaufel steckt und die Schubkarre steht bereit. Los geht’s.

Loch graben, einebnen und Feststampfen. Viereck aus Rasenkanten platzieren, ins Wasser legen und vier Löcher für die Fundamentsäulen graben. Fundamentsäulen mit Eimern und Beton füllen. Stahlarmierung einsetzen und senkrecht ausrichten. Setzen lassen, dann das Viereck mit Split auf 15 cm unter den Rand auffüllen. Den Split abziehen und mit Beton bis 5 cm unter den Rand füllen.

Stahlmatte einlegen und bis unter die Kante mit Beton füllen. Kontinuierlich stochern und klopfen, um so viel Luft wie möglich aus dem Beton zu bekommen. Zum Schluss mit dem Gummihammer noch an den Seiten klopfen. Oberfläche abziehen und mit einer Plane abdecken. Mindestens eine Woche abbinden lassen. Dabei die Oberfläche Feucht halten.

Als nächstes haben wir die Platten für Außenrum gelegt und die Rasenkaten befestigt. Alles mit Split aufgefüllt und festgestellt, dass wir ungefähr 100kg Split zu wenig haben um alle Platten zu verlegen. Also nächste Woche wieder in den Baumarkt fahren.

Porotonsteine eignen sich hervorragend, um schnell Mauern im Außenbereich hochzuziehen. Allerdings sind die Steine wohl aus zwei verschiedenen Chargen gewesen und unterschiedlich hoch. Auch haben wir nicht genügen Mörtel gekauft um die steine satt damit einzuschmieren. Also alles ein wenig sparsamer verteilt. Schlussendlich hat es aber trotzdem gut gehalten.
Die fertige Mauer muss jetzt einmal trocknen, damit der Mörtel hart wird. Danach kommt die Arbeitsplatte aus Beton auf die Mauer. Dazu benötigen wir eine Verschalung aus Holz. Die freihängenden Flächen werden mit Holzplatten gestützt und später mit einem Stahlgitter im Beton stabilisiert.

Alles gründlich befeuchtet und abgedeckt. jetzt muss die Arbeitsplatte erst einmal abbinden. Nächstes Wochenende geht’s weiter.

Um alles vor dem Regen zu schützen (keiner möchte auf seine Pizza verzichten, weil es drei Tage vorher geregnet hat und der Ofen noch nass ist) haben wir ein einfaches Dach vorgesehen. Mit 9x9cm Balken aus Holz haben wir die Dachkonstruktion aufgebaut. Als nächstes müssen noch Dachlatten und Wellblech aus Dachpappe drauf. Dann kann der Ofen aufgebaut werden.

Der Ofen wird auf die Isolierfläche auf Gasbetonsteinen gestellt. Auf die Gasbetonsteine kommen zuerst die Schamottplatten. Dazu müssen die Gasbetonsteine bündig mit der Betonoberfläche sein. Die Gasbetonsteine haben wir leicht überstehen lassen, um im Nachhinein eine ebene Fläche zu bekommen. Ein Brett, dass mit Schrauben, die gerade so auf der anderen Seite herausschauen eignet sich hervorragend um die porösen Steine abzuhobeln.
Die Schamottsteine bilden den Boden des Ofens und sind gleichzeitig auch die Fläche, auf der die Pizza gebacken wird. Die Gasbetonsteine sind zwar außen mit dem Beton der Arbeitsplatte verbunden, aber untereinander und am Boden nicht, dadurch können sie sich leicht bewegen, wenn sie sich durch die Hitze der Schamottsteine ausdehnen.
Gleiches gilt für die Schamottsteine, die sind auch nur lose nebeneinander gelegt. Dadurch kann man sie bei Bedarf auch auswechseln.
Die Steine werden so zugeschnitten, dass sie unten in der Halbkugel des Ofens liegen können. Dann wird der Ofen außenrum gemauert.

Das Iglu wird aus vier Teilen zusammen gesetzt. Dann wird am Eingang noch die Tür und der Kamin
mit dem Iglu verbunden und alles mit Mörtel verklebt.
Um die Wärme im Ofen zu halten und die Oberfläche auch im Betrieb anfassen zu können, wird der Ofen isoliert. Dazu verwenden wir eine Mineralwolle.

Der Ofen muss jetzt nur noch komplett durchtrocknen und so gut wie Wasserfrei sein, damit er beim Anheizen nicht reißt oder platzt. Also wieder abdecken und auf das nächste Wochenende warten.

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

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.

Tischfuß selbst gebaut

Wir haben eine wunderschöne Tischplatte gekauft. Dafür brauchten wir noch ein Unterbau. Im Internet gibt es viele Anbieter für Tischbeine, -platten und komplette Tische. Aber wir hatten unsere Platte schon und es fehlten die Beine. Wir haben auch ein Modell gefunden, aber für den Preis, der verlangt wurde haben wir uns nicht durchringen können den Fuß zu kaufen. Also haben wir eine eigene Lösung gebaut.

Fertiges Ergebnis zuerst. Das ist der neue Tisch.

Ein CAD Modell war schnell erstellt und die Zeichnungen die abgeleitet wurden waren die nötigen Abmaße für das Stahlgestell. Als Material haben wir S235 Stahlbleche und H-Profile verwendet. Mit einem Preis von ca. 270€ für alles waren wir bei 20% des Kaufpreises für das fertige Gestell.

Mit ein wenig Erfahrung mit Elektroden-schweißen ging es dann an die Konstruktion. Als ersten habe ich die Tischplatten-Auflage geschweißt, da diese aus 3mm Blechstücken besteht. Das Blech ist dick genug um sich nicht sofort zu verflüssigen, wenn man mit der Elektrode in die Nähe kommt und dünn genug um nicht Unmengen an Wärme aufzunehmen. Somit sind diese Schweißnähte die einfachsten gewesen.

Blechstreifen heften, schweißen und dann die Auflagefläche plan schleifen

Nachdem der einfache Teil erledigt war, mussten die H-Profile  (10cmx10cm) an das Bodenblech angeschweißt werden. Das Bodenblech hat eine Stärke von 4mm und damit wesentlich weniger Thermische Masse als das Stahlprofil. Allerdings ist das Stahlprofil im Winkel von 50° geschnitten und besitzt somit eine Kante am Kontaktpunkt. Das Schweißen des Profils war schwerer als Erwartet. die spitze Kante des Profils ist beim schweißen weggelaufen und hat sich nicht mit der Bodenplatte verbunden. Daher brauchte ich ein paar Versuche, bis das Ergebnis akzeptabel war.

Profile auf Bodenplatte und Tischplatten-Auflage an die Profile schweißen
Zum Schluss haben wir den Stahl mit Stahlwolle abgerieben um die losen Rostpartikel zu entfernen, danach dann mit Aceton gereinigt und mit mattem Klarlack lackiert. Das Ergebnis kann sich meiner Meinung nach absolut sehen lassen.