DIY

Einen ZX Dandanator Mini bauen

Der Hauptweg, um Software in den ZX Spectrum zu laden, war über Audiokassetten. Es gab Diskettenlaufwerk-Erweiterungen und Sinclairs proprietäre Microdrive-Lösung, aber Audiokassetten waren billig und allgegenwärtig, und Kassettenrekorder waren in praktisch jedem Haushalt zu finden.

Der Nachteil war, dass es unkomfortabel war. Kassetten sind langsam. Es dauerte mehrere Minuten, ein Spiel in die Maschine zu laden. Wenn du eine “Sammlung” von mehreren Spielen auf einer Kassette hattest, musstest du sie zuerst an die richtige Position spulen. Als ich meinen ersten Amiga mit Diskettenlaufwerk bekam, habe ich nie wirklich auf diese Zeiten zurückgeblickt, in denen ich Audiokassetten verwenden musste.

Heute besitze ich ein paar ZX Spectrums, aber ich habe keinen Kassettenrekorder mehr. Um Software in den Rechner zu laden, verwende ich normalerweise die Kopfhörerbuchse meines PCs und tzxplay. Aber es gibt einen eleganteren Weg. Der ZX Dandanator Mini von Dandare ist eine Erweiterung mit 512KB Flash-Speicher, in dem du deine absoluten Lieblingsspiele speichern kannst. Ein Boot-Menü erlaubt es, eines dieser Spiele auszuwählen, das sofort in den Speicher geladen wird. Er bietet außerdem einen Kempston-kompatiblen Joystick-Anschluss.

Als ich anfing, meinen ZX Dandanator Mini zu bauen, stellte ich fest, dass die Dokumentation des Projekts ein paar Fragen offenließ. Ich hoffe, mein umfassender Blogartikel wird anderen helfen, ihren eigenen zu bauen.

Teile

Glücklicherweise ist die Stückliste des Dandanator ziemlich kurz, und alle Komponenten sind leicht zu finden, vielleicht mit Ausnahme der Randsteckleiste.

  • 1x GAL 22V10 (+ DIP20 Sockel)
  • 1x PIC 16F1826-I/P (+ DIP18 Sockel)
  • 1x SST 39SF040 Flash ROM (+ PLCC32 Sockel)
  • 1x 1N4148 (TH)
  • 2x 10kΩ Widerstände (TH)
  • 5x 100nF Keramikkondensatoren (TH)
  • 1x D-Sub Stecker, 9-polig männlich, abgewinkelt, Europa-Bauform (z.B. dieser hier)
  • 2x Stiftleisten, 2-polig
  • 1x Jumper
  • 2x 6 mm Taster (17 mm hoch, wenn du das 3D-gedruckte Gehäuse verwendest)
  • 1x Platine (Gerber-Dateien sind hier)
  • 1x ZX Spectrum Randsteckleiste (zu finden in Retro-Shops, Online-Marktplätzen oder einfach DIY)
  • 1x 3D-gedrucktes Gehäuse (optional)

Du brauchst einen Programmer, der in der Lage ist, den PIC, das GAL und das Flash-ROM zu flashen (z.B. XGecu TL-866II Plus mit PLCC32 Adapter). Ich empfehle auch eine gute PLCC-Zieh-Zange.

Klassische GALs werden nicht mehr produziert, können aber immer noch als NOS-Teile auf Online-Marktplätzen gefunden werden. Ein Ersatz, der noch produziert wird, ist der Atmel ATF22V10C-10PU. Wenn du diesen verwendest, brauchst du auch ein 3,3kΩ 6-Pin Widerstandsnetzwerk. Mehr dazu unten.

Zusammenbau

Der Zusammenbau ist unkompliziert. Du fängst mit den flachsten Komponenten an und arbeitest dich zu den höchsten vor. Es gibt keine SMD-Komponenten, daher sollte selbst ein Lötanfänger keine Probleme haben.

Stelle sicher, dass die Sockel richtig ausgerichtet sind. Leider gibt es auf dem Bestückungsdruck keine Markierungen für Pin 1 der beiden DIP-Sockel. Sie sollten mit den Kerben in der Nähe der Taster ausgerichtet werden, wie auf meinem Foto zu sehen. Der PLCC-Sockel sollte mit dem Umriss auf dem Bestückungsdruck übereinstimmen.

Die Randsteckleiste ist normalerweise dafür gedacht, aufrecht eingelötet zu werden, nicht an die Kante der Platine, also musst du zuerst die Pins nach innen biegen. Wenn dies richtig gemacht ist, sollte die Randsteckleiste zentriert sitzen und alle Pins sollten die Pads der Platine berühren. Achte auch darauf, den Anschluss auf die richtige Seite der Platine zu löten, das ist die mit den kurzen Pads. Der Anschluss auf der anderen Seite ist für weitere Erweiterungen gedacht, wie z.B. ein Joystick-Interface, aber du kannst sogar mehrere Dandanatoren zusammenstecken.

Wenn du beabsichtigst, das 3D-gedruckte Gehäuse zu verwenden, lass eine Lücke von etwa 2 mm zwischen der Platinenkante und dem Stecker.

Einige der Pads sind nahe an der Randsteckleiste auf der Rückseite. Es passiert leicht, beim Löten ein paar Tropfen Lot auf die Pads zu kleckern. Ein Stück Kapton-Klebeband ist ein guter Weg, um sie zu schützen.

Ein Problem mit dem ATF22V10C ist, dass er keine internen Pull-Ups an den Eingängen bietet. Das bedeutet, dass die Eingänge floaten, wenn kein Joystick angeschlossen ist, was zu Problemen führen könnte. Auf meinem System wurde das erste Spiel in der Liste immer sofort gestartet, wenn kein Joystick angeschlossen war. Eine mögliche Lösung ist es, ein Widerstandsnetzwerk auf die Unterseite zu löten. Die Widerstände werden mit Pin 8, 9, 10, 11 und 13 des ATF22V10C verbunden. Der gemeinsame Bus wird mit Pin 24 verbunden. Achte darauf, benachbarte Pins nicht zu verbinden oder kurzzuschließen.

Dieses Problem sollte mit dem ATF22V10B nicht auftreten, aber zum Zeitpunkt des Schreibens war diese Variante entweder ausverkauft oder lächerlich teuer.

Obwohl dieses Problem bei älteren GALs wahrscheinlich nicht auftritt, empfehlen die Hersteller dennoch, Eingangs-Pins nicht offen zu lassen. Meiner Meinung nach hätten die Pull-Up-Widerstände ein Teil des Dandanator-Designs sein sollen.

Im letzten Schritt reinigst du die Platine und überprüfst sie auf Lötbrücken und andere Fehler. Ein Kurzschluss kann den Stromwandler im Inneren des ZX Spectrum beschädigen, was ein wenig schwierig zu reparieren ist.

Die “Joystick”-Stiftleiste ist dafür da, den Joystick-Port zu aktivieren, und sollte überbrückt werden, es sei denn, du planst, ein anderes Joystick-Interface zu verwenden. Die “Serial Pins”-Stiftleiste scheint für die In-Circuit-Programmierung da zu sein und sollte nicht überbrückt werden. (Es wird keinen Schaden anrichten, wenn du sie versehentlich überbrückst, aber es ist dann so, als würdest du den Joystick permanent nach rechts drücken.)

Wenn der Zusammenbau abgeschlossen ist, ist der nächste Schritt, die Chips zu programmieren. Sie werden alle unterschiedlich programmiert.

Die Chips flashen

  • GAL: Die Fusemap kann hier heruntergeladen werden. Wenn du ein ATF22V10 und den XGecu Programmer verwendest, stelle sicher, dass du die (UES) Variante als Chiptyp auswählst.
  • PIC: Eine anfängliche Firmware kann hier heruntergeladen werden. Ich habe versucht, sie mit der minipro Software zu flashen, konnte aber keinen funktionierenden PIC daraus erhalten. Letztendlich habe ich die Original-Software von XGecu verwendet, was gut funktionierte.
  • Flash ROM: Das Flash-ROM enthält die Spiele und auch Pokes. Die Image-Datei wird durch ein ROM Assembler Tool generiert.

Der ROM Assembler ist in Java geschrieben, läuft also auf jedem modernen Betriebssystem. Wenn du dich mit Java auskennst, kannst du die neueste Version leicht selbst aus dem Quellcode kompilieren. Du kannst auch eine jar-Datei von der Dandanator Download-Seite herunterladen und sie mit dem Befehl java -jar dandanator-mini-*.jar ausführen.

Die GUI des ROM Assemblers ist ziemlich selbsterklärend. Du kannst einfach TAP-, SNA-, Z80- und POK-Dateien deiner Lieblingsspiele per Drag&Drop hineinziehen, bis der Flash-Speicher voll ist. In den Einstellungen kannst du die Schriftart und Sprache ändern und auch ein individuelles Hintergrundbild verwenden.

Viele Spiele finden sich bei World of Spectrum. Eine umfangreiche Sammlung von POK-Dateien kann hier gefunden werden.

Wenn du fertig bist, deine eigenen Lieblingsspiele zu sammeln, erstelle ein ROM-Image und schreibe es auf das Flash-ROM.

Lass uns spielen

Der Dandanator wird an den Erweiterungsport des ZX Spectrum angeschlossen. Denke daran, ihn zuerst vom Strom zu trennen.

Schalte nun deinen Speccy ein und drücke den rechten Knopf am Dandanator, um das Hauptmenü zu erreichen.

Du kannst ein Spiel auswählen, entweder indem du den Joystick benutzt oder die entsprechende Taste drückst, dann die anzuwendenden Pokes ändern und dann das Spiel starten.

Wenn du den Dandanator zum ersten Mal ausführst, wird empfohlen, den Speccy auszuschalten, dann beide Tasten gedrückt zu halten und ihn wieder einzuschalten. Der Dandanator flasht dann die neueste Firmware-Version auf den PIC.

Der rechte Knopf bringt dich immer zurück ins Hauptmenü. Der Rechner muss nicht mehr zurückgesetzt werden.

Neuer ZX Spectrum 48K

Ich habe diese Platine eines Sinclair ZX Spectrum bekommen. Es muss vorher ein ZX Spectrum Plus Modell gewesen sein, weil dieses Reset-Kabel daran befestigt war. Es gab auch ein paar Etiketten, die die Funktionalität der Bauteile in deutscher Sprache erklärten, vielleicht zu Bildungszwecken.

Ich habe versucht, die Diagnose auszuführen, aber das Modul startete nicht einmal und die D0-LED blieb dauerhaft dunkel. Es muss irgendwo auf dem Datenbus einen Kurzschluss gegeben haben. Aber anstatt sie zu reparieren, war mein Plan, einen komplett neuen ZX Spectrum aus so vielen neuen Bauteilen wie möglich zu bauen und dabei nur die ULA, die CPU, den LM1889N, die Spule und die RAM-Chips wiederzuverwenden.

Also entfernte ich zuerst die wertvollen Komponenten. Die gestrippte Originalplatine bot einen traurigen Anblick, aber die Aussicht, daraus einen neuen Speccy zu bauen, machte es weniger schmerzhaft.

Ich habe die ULA in einem anderen Speccy überprüft und sie stellte sich als in Ordnung heraus. Von den 16 RAM-Chips waren jedoch nur noch 9 funktionsfähig. Das war viel weniger, als ich erwartet hatte. Ich habe einige dieser alten RAM-Chips in meinem Vorrat, aber sie sind wertvoll und schwer zu finden.

Eine neue Platine

Die neue Replika-Platine stammt von PABB und kann bei PCBWay bestellt werden.

Für die benötigten Bauteile habe ich eine Stückliste zusammengestellt. Sie enthält so viele neue Komponenten, wie ich finden konnte, aber einige seltene Teile werden schon lange nicht mehr produziert. Sie können immer noch als NOS-Teile auf Online-Marktplätzen gefunden oder durch Ersatztypen bzw. Nachbauten (wie die Retroleum Nebula oder vRetro vLA82) ersetzt werden.

Es gibt vier Drahtbrücken, die den Typ der oberen RAM-Chips und die Marke des ROM-Chip-Herstellers konfigurieren. Die richtige Konfiguration findet man ebenfalls in meiner Stückliste.

Anstelle des Modulators entschied ich mich, einen S-Video-Mod und eine 3D-gedruckte Grundplatte zu verwenden. Eine einfache Alternative wäre, einfach einen Cinch-Anschluss an COMP und GND zu löten und ihn als Composite-Ausgang zu nutzen.

Nach viel Lötarbeit war der Zusammenbau fast abgeschlossen. Aber bevor ich die wertvollen Chips einsetzte, überprüfte ich zuerst, ob alle drei Spannungen (+5V, +12V, -5V) vorhanden und innerhalb ihrer akzeptablen Toleranz lagen.

Der S-Video-Mod tritt an die Stelle des originalen Modulators, wird aber nicht eingelötet, sondern von zwei Schrauben gehalten. Die Schrauben sorgen auch für die Erdung, dürfen also nicht isolierend sein. Drei Drähte verbinden die Platine dann mit +5V und das Composite-Signal als Luma. Das Chroma-Signal wird an das positive Ende von C65 angeschlossen, der zuerst entfernt werden muss, damit sich die Luma- und Chroma-Signale nicht mischen.

Danach war die neue Platine endlich fertig und bereit für einen ersten Test.

Bugfixing

Aber leider sah ich dies, als ich ihn zum ersten Mal einschaltete.

Die Diagnose zeigte keine Aktivität auf den CPU-Bus-Steuerleitungen. Mein Verdacht bestätigte sich, als ich den Takteingang der CPU mit einem Oszilloskop überprüfte. Es war nur eine flache Linie:

Der CPU-Takt wird von der ULA generiert, aber das Taktsignal war dort vorhanden.

Ein Blick in die Schaltpläne zeigt, dass sich zwischen dem ULA-Taktausgang und dem CPU-Takteingang der Transistor TR3 befindet, wahrscheinlich zur Verstärkung des Signals. Seltsamerweise war das Signal rechts von R24, der direkt mit dem Taktausgang verbunden ist, noch vorhanden, aber links von R24 (der mit der Basis des Transistors verbunden ist) fehlte das Signal bereits. Als ich TR3 entfernte, erschien das Taktsignal auch dort, also muss TR3 die Ursache gewesen sein.

Nach einer längeren Suche fand ich heraus, dass der Spectrum sehr wählerisch ist, was den für TR3 verwendeten Typ angeht. Der originale ZTX313 wird nicht mehr produziert, also verwendete ich zuerst einen BC548, der ein Ersatztyp sein soll, jedoch nicht an dieser Position. Für TR3 ist der einzige empfohlene Ersatztyp der MPS2369, der mittlerweile auch etwas schwer zu finden ist. Mit diesem Typ war das Taktsignal endlich gut (cyan: ULA-Taktausgang, gelb: CPU-Takteingang).

Und zu meiner Freude startete der neue Spectrum endlich und zeigte den berühmten Startbildschirm.

Der nächste Schritt bestand darin, eine vollständige Diagnose durchzuführen. Nun bekam ich einen Fehler, dass das M1-Signal fehlte.

Das M1-Signal wird von der CPU generiert und zeigt den ersten von vier Maschinenzyklen an, in dem der nächste Befehl aus dem Speicher gelesen wird. Der Spectrum selbst nutzt das M1-Signal nicht, aber ein paar Erweiterungen wie das ZX Interface 1 benötigen es.

Nach dem Austausch der CPU wurden schließlich alle Diagnoseprüfungen bestanden.

Unter dem Strich konnte ich vom alten ZX Spectrum also nur die ULA, das ROM, den LM1888N und die Spule wiederverwenden. Ich hatte auf die RAM-Chips und die CPU gehofft, aber mit denen hatte ich nicht wirklich Glück.

Testlauf

Wie auch immer, es war endlich Zeit für einen Testlauf. Ich schloss den neuen Speccy an meinen Computer an und nutzte tzxplay, um die Kassetten-Datei meines Lieblingsspiels, Starquake, abzuspielen. Es lud und lief einwandfrei. Auch die Bildqualität des S-Video-Ausgangs ist hervorragend und wahrscheinlich die beste, die man aus diesem alten Design herausholen kann. Nur der ZX Spectrum Next hat mit seinem nativen, pixelperfekten HDMI-Ausgang eine noch bessere Qualität.

Ich kaufte die originale Platine ohne jegliches Gehäuse. Aber zum Glück gibt es Replika-Gehäuse, Tastaturmatten, Membranen und Frontplatten auf dem Markt, so dass ich ein brandneues Äußeres zusammenbauen konnte. Natürlich entschied ich mich für ein transparentes Gehäuse, damit das schöne schwarze Mainboard von außen gesehen werden konnte. Naja, zumindest ein bisschen.

Und da ist er, ein (fast) neuer ZX Spectrum in neuwertigem Zustand.

Ein neuer Harlequin

Der Superfo Harlequin ist ein ZX Spectrum 128K Klon. Er ist besonders, weil er, obwohl er ein 128K Spectrum ist, immer noch in ein 48K Spectrum Gehäuse passt. Er ist auch deshalb besonders, weil der ULA-Custom-Chip durch diskrete 74HC-Standardchips nachgebildet wird, die leicht ersetzt werden können, falls einer davon kaputtgehen sollte. Das ist allerdings nur ein kleiner Vorteil, da die RAM-Chips, der Soundchip und die Z80-CPU mittlerweile selten sind.

Ich habe das Harlequin 128K Black Large DIY Kit bei ByteDelight bestellt. Es wird mit allen Komponenten geliefert, die zum Bau der Hauptplatine erforderlich sind, sogar mit denen, die anderswo schwer zu finden sind. Dem Bausatz liegt auch ein Flash-ROM-Chip bei, der jedoch aus Lizenzgründen kein Sinclair-ROM-Image enthält. Was noch benötigt wird, um einen kompletten Speccy zu bauen, ist ein ZX Spectrum Gehäuse mit Tastatur und ein Flash-ROM-Programmer für das Sinclair-ROM.

Zusammenbau

Der Harlequin hat nur ein einziges SMD-Bauteil, und dieses war sogar schon vorgelötet. Alle anderen Bauteile sind Through-Hole (Durchsteckmontage), sodass dieser DIY-Bausatz sogar für Löt-Anfänger geeignet ist.

Den Rest des Tages verbrachte ich damit, die Bauteile aus ihren Tüten zu holen, ihren richtigen Platz zu finden und sie dann einzulöten. Das ByteDelight-Kit wurde sorgfältig zusammengestellt. Jedes Bauteil kommt in separaten Tüten pro Wert und ist in der optimalen Reihenfolge für den Zusammenbau nummeriert. Es ist buchstäblich einfach Löten nach Zahlen. 😄

Der langweiligste Teil war das Einlöten der 51 Sockel. Der DIY-Bausatz wurde mit Standardsockeln geliefert, aber ich bevorzuge generell Präzisionssockel, also habe ich stattdessen diese verwendet.

Der Bausatz enthält auch den Quarz, der für ein NTSC-Setup benötigt wird, sodass du zwischen einer PAL- und einer NTSC-Maschine wählen kannst. Die Platine selbst ist jedoch für PAL vorkonfiguriert. Für eine NTSC-Maschine müssen einige Leiterbahnen auf der Unterseite der Leiterplatte durchtrennt werden.

Das ROM flashen

Der DIY-Bausatz wird mit einem AMD AM29F040B Flash-ROM geliefert. Es ist groß genug, um bis zu 8 ROM-Images aufzunehmen. Ein DIP-Schalter wählt das zu verwendende Image aus. Das vorgeflashte Image enthält ein Diag-ROM, etwas andere Software, aber aus Lizenzgründen kein ZX Spectrum ROM. Die Platine selbst unterstützt auch originale Spectrum 48K und 128K ROMs sowie 27C256 und 27C512 EPROMs.

ROM-Dateien können im Internet gefunden werden. Ich habe mich entschieden, die ersten sechs Flash-ROM-Bänke beizubehalten und Bank 7 für ein Spectrum 48K ROM sowie Bank 8 für ein Spectrum 128K+2 ROM zu verwenden.

Zum Flashen verwende ich den XGecu TL866II+ Programmer und die Open-Source-Software minipro. Zuerst lese ich den ursprünglichen Inhalt des Flash-ROMs aus:

minipro --device 'am29f040b@DIP32' --read harlequin.bin

Dann habe ich eine Kopie der ersten sechs Bänke gemacht. Das ist mit dem dd-Befehl einfach. Mit einer Blockgröße von 65536 Bytes können die Bänke mit den Optionen skip und count ausgewählt werden. Um die ersten sechs Bänke zu behalten:

dd if=harlequin.bin of=harlequin-6banks.bin bs=65536 count=6

Danach verwende ich cat, um ein neues Binary zu kompilieren. Beachte, dass jede Bank 65536 Bytes groß sein muss. Wenn ein ROM-Image also kleiner ist, muss es verdoppelt (oder vervierfacht) werden:

cat harlequin-6banks.bin \
  48k.rom 48k.rom 48k.rom 48k.rom \
  128k+2.rom 128k+2.rom \
  > harlequin-new.bin

Das neue Image kann dann auf das Flash-ROM gebrannt werden:

minipro --device 'am29f040b@DIP32' --write harlequin-new.bin

Nachdem das Flash-ROM in die Harlequin-Platine eingesetzt war, war sie endlich fertig und bereit für einen ersten Start. Leider hat der Macher der Harlequin-Platine an einem Brückengleichrichter gespart, daher ist es immer noch wichtig, auf die richtige Polarität des Netzsteckers zu achten. Wie der ZX Spectrum benötigt der Harlequin ein Netzteil mit einem 5,5/2,1 mm Hohlstecker, bei dem der Minuspol innen liegt. Die meisten Netzteile auf dem Markt haben den Pluspol innen.

Obwohl der Harlequin viel mehr Chips als ein originaler ZX Spectrum hat, ist er sehr sparsam. Er verbraucht nur 1,7W bei 9V, während der originale Speccy 4,8W verbraucht. Andererseits benötigt der Harlequin keine 12V und -5V, um zu laufen, daher werden diese Spannungen nicht erzeugt. Das könnte für ein paar sehr exotische Erweiterungen ein Problem sein.

Das Gehäuse

Der DIY-Bausatz umfasst nur alles, was zum Zusammenbau der Hauptplatine benötigt wird. Was fehlt, ist ein Gehäuse mit Tastatur und ein Netzteil. Die Platine hat die gleichen Abmessungen wie eine originale ZX Spectrum 48K-Platine, also kannst du Originalgehäuse (z. B. das Standardgehäuse mit den Gummistasten oder das ZX Spectrum Plus-Gehäuse) verwenden oder ein neues Replika-Gehäuse mit neuen Membranen, Tastenmatte und Frontblende kaufen. Letzteres ist teurer, aber dafür bekommst du ein brandneues Gehäuse und kannst aus einer Vielzahl von Farben wählen.

Ich habe mich für eine weiße Tastatur und ein transparentes Gehäuse entschieden, damit man die schöne Harlequin-Platine auch in einem geschlossenen Gehäuse noch bewundern kann.

Der Harlequin verfügt über einen separaten RGB-Mini-DIN-Anschluss. Er ist so konzipiert, dass er nicht mit einem klassischen Gehäuse kollidiert. Du möchtest jedoch wahrscheinlich den RGB-Anschluss nutzen, da er eine viel bessere Bildqualität bietet. Shops wie ZX Renew bieten spezielle Harlequin-Gehäuse mit einer Aussparung für den RGB-Anschluss an. Wenn du ein klassisches Gehäuse verwenden möchtest, musst du vielleicht ein Stück aus dem schönen alten Gehäuse herausschneiden, um an den Anschluss zu gelangen.

Da wir gerade davon sprechen, Löcher in alte Gehäuse zu machen: Der Harlequin hat ein eingebautes Joystick-Interface. Wenn du möchtest, kannst du einen Platz für einen 9-poligen Sub-D-Stecker ausschneiden und ihn mit der Platine verdrahten. Ich habe darauf verzichtet, einen Schnitt in mein schönes Harlequin-Gehäuse zu machen, und verwende stattdessen ein klassisches Kempston-Joystick-Interface.

Lass uns spielen

Der einfachste Weg, Software in den Harlequin zu laden, ist über den Mic/Ear-Anschluss. Es gibt Smartphone-Apps und auch viele Tools, die die Töne erzeugen können, um TAP- oder TZX-Dateien zu laden, also musst du nicht den alten Kassettenrekorder und die Audiokassetten ausgraben.

Ich verwende meine tzxtools. Der Befehl tzxplay spielt TZX- und TAP-Dateien über den Standard-Audioausgang ab. Ich verbinde den Ausgang der Soundkarte mit einem klassischen Klinkenkabel mit dem Mic/Ear-Anschluss.

Da der Harlequin ein vollwertiger 128K-Klon ist, kommt er auch mit einem AY-3-8912-Soundchip und sogar einem Stereoausgang. Das Erste, was ich also getan habe, war ein Spiel zu laden, das diesen Soundchip für die In-Game-Musik nutzt.

Wir bauen uns einen Feinstaubsensor

Das Projekt luftdaten.info bietet eine Bauanleitung für einen Feinstaubsensor an. Er ist günstig und auch mit wenig Elektronikkenntnissen leicht zusammenzubauen. Die Bauteile gibt es in verschiedenen Elektronikläden und mittlerweile sogar bei Amazon.

Der originale Bausatz benutzt zwei Kunststoffrohre als Gehäuse. Die sind preiswert und in jedem Baumarkt leicht zu bekommen, sehen allerdings nicht besonders ansprechend aus. Ich wählte stattdessen eine handelsübliche UV- und wetterfeste Außen-Abzweigdose als Gehäuse. Ein selbst konstruierter Rahmen aus dem 3D-Drucker wird dort hineingesetzt und die Elektronik darauf montiert.

Der Rahmen bringt bereits einen Windkanal für die angesaugte Luft mit, so dass im Gegensatz zur Originalanleitung kein Schlauch notwendig ist. Gitter vor den Luftöffnungen verhindern, dass Insekten in das Gehäuse kriechen können. Im Gegensatz zu manch anderer gedruckter Lösung ist der Feinstaubsensor außerdem wie vom Hersteller vorgeschrieben ausgerichtet und die Einsaugöffnung vor Licht geschützt.

Im Gegensatz zur Originalanleitung kommt man hier allerdings nicht darum herum, den Lötkolben in die Hand zu nehmen.

Folgende Teile werden benötigt:

  • 1x Satz Rahmenteile aus dem 3D-Drucker
  • 1x OBO Bettermann T60 Kabelabzweigkasten mit Einsteckdichtungen
  • 1x NodeMCU ESP8266 (von Lolin, andere Marken passen eventuell nicht)
  • 1x ILS-Nova SDS011 Feinstaubsensor
  • 1x DHT22 Temperatur- und Luftfeuchtesensor (normalerweise optional, hier aber erforderlich, da er eine Öffnung im Windkanal abdichtet)
  • 1x BMP180 Temperatur- und Luftdrucksensor (optional)
  • 11x Holzschrauben 3,0 x 12 mm
  • 4x Holzschrauben 3,5 x 12 mm (oder vier weitere 3,0 x 12 mm)
  • Ein wenig Flachbandkabel
  • Etwas Schrumpfschlauch
  • USB-Kabel (flach)
  • USB-Netzteil (ein ausgedientes Handy-Ladenetzteil reicht völlig aus, der Sensor braucht weniger als 200 mA)

Für die gedruckten Teile ist kein besonders UV- oder wetterfestes Filament notwendig, da sie vom Abzweigkasten geschützt werden. Das Filament sollte nur nicht so spröde sein, dass die Schrauben es zerbrechen. Und es sollte möglichst dunkel sein, damit kein Streulicht in die Öffnung des Staubsensors fällt. Ich verwendete einfaches schwarzes PLA.

Wichtig: Der Druck sollte ohne Stützstrukturen (“supports”) erfolgen, da sie nachher sehr schwer zu entfernen sind und den Luftkanal blockieren könnten. Die Teile sind so designed, dass sie mit PLA auch ohne Stützstrukturen gedruckt werden können.

Als erstes entfernt man die beiden Einsteckdichtungen von einer Seite des Abzweigkastens und schneidet sie bei 19-20 mm Durchmesser auf.

Jetzt steckt man das USB-Kabel durch das linke Loch, setzt dann von innen den unteren Trägerrahmen ein und schraubt ihn mit den 3,5 x 12 mm-Schrauben fest. Mit den Einsteckdichtungen kann nun das Gehäuse wieder abgedichtet werden.

Es wird Zeit, die Elektronik nach Anleitung zusammenzulöten. Die Pins des DHT22 sollten mit dem Schrumpfschlauch geschützt werden. Wie der optionale Luftdrucksensor BMP180 angeschlossen wird, steht in der FAQ. Am besten installiert man jetzt die Firmware und macht einen Testlauf. Wenn das Gerät erst einmal zusammengesetzt ist, könnte es schwieriger werden.

Die NodeMCU und der BMP180 werden auf die Grundplatte geschraubt und das USB-Kabel eingesteckt. Der DHT22 wird einfach an die vorgesehene Stelle in den Windkanal gesteckt (siehe Foto), er braucht nicht festgeschraubt werden.

Als nächstes wird die obere Platte aufgesteckt und festgeschraubt. Der Feinstaubsensor wird angeschlossen und dann vorsichtig in die Luftöffnung gesteckt und festgeschraubt. Eventuell ist es notwendig, ein klein wenig vom Stecker abzuschneiden, damit es passt.

Das war es schon. Der Deckel des Abzweigkastens kann aufgesetzt und fixiert werden. Der Sensor ist einsatzbereit.

Der fertig montierte Sensor wird mit den Öffnungen nach unten außen an einer Wand montiert. Regen, Schnee und Hagel sollte das Gehäuse gut überstehen. Da PLA ab 60°C weich wird, sollte ein Platz in direkter Sonne aber vermieden werden. Der Sensor kann auch liegend betrieben werden, allerdings sollten die Öffnungen dann ein wenig vor Regen geschützt werden.

Versorgt wird der Sensor über das USB-Kabel. Da keine Daten übertragen werden, kann das Kabel problemlos mehrere Meter lang sein.

Nachdem man seinen Sensor bei luftdaten.info angemeldet hat, kann man die Messdaten in der Karte sehen und als CSV-Datei abrufen. Die aktuellen Messdaten können auch direkt per WLAN im JSON-Format abgefragt und beispielsweise in einer Datenbank abgelegt werden. Ich verwende ein selbst programmiertes kleines Tool, das die Daten regelmäßig abholt, in eine PostgreSQL-Datenbank ablegt und per Grafana darstellt.

Viel Spaß beim Basteln! 😀

PS: Bitte seht von Anfragen ab, ob ich euch den Rahmen drucken kann. Der 3D-Drucker gehört mir nicht. Ich kann deshalb keine Druckaufträge annehmen, auch nicht gegen Bezahlung.

Treppenlicht 2.0

Es ist schon fantastisch, was man mit modernen LEDs alles anstellen kann.

Diese Wendeltreppe zum Beispiel soll dezent und Strom sparend beleuchtet werden, damit man sie auch im Dunkeln sicher benutzen kann. Eine Weihnachtslichterkette erfüllte den Zweck bisher. Allerdings war sie recht schwach und gab der Treppe außerdem einen hässlichen Partykeller-Look.

Dieser Blogartikel beschreibt, wie man sich mit ein wenig handwerklichem Geschick und geringem Aufwand eine Treppenbeleuchtung selbst bauen kann.

Für den Bau der neuen Treppenbeleuchtung verwendte ich für 15 Stufen folgendes Material:

  • 2 flexible, selbstklebende LED-Leisten zu je 50 cm, teilbar alle 5 cm, ergibt 20 Module
  • 20 m Kabel, 2 Adern, 0,75 mm² (z. B. Lautsprecherkabel)
  • 1 Steckernetzteil 12 V, 1 A
  • 1 passende Kupplung
  • 20 Klebesockel, schwarz
  • 20 Kabelbinder, schwarz
  • 30 Twin-Aderendhülsen für 0,75 mm²
  • schwarzes Isolierband

Da ich wenig Lust darauf hatte, die gesamte Lötarbeit auf der Treppe zu verrichten, verlegte ich zuerst einen Kabelstrang an der Säule entlang. Dazu klebte ich unter jede Stufe in der Nähe der Säule einen Klebesockel. Das Kabel trennte ich auf und fügte es mit zwei Aderendhülsen wieder zusammen. Diese Abzweigung zurrte ich dann mit einem Kabelbinder am Sockel fest. Für die Montage brauchte ich nur einen Seitenschneider und eine Aderendhülsenzange, der Lötkolben blieb vorläufig kalt.

Da die LEDs mit Gleichspannung versorgt werden, muss man penibel auf die richtige Polarität achten, um das Modul nicht zu zerstören. Bei Lautsprecherkabel ist in der Regel eine Ader markiert, zum Beispiel durch eine Rille auf der Isolation. Für den Pluspol wählte ich die markierte Ader, verband die gleichen Adern miteinander und schrieb mit einem Permanentmarker die Polung auf die Hülse.

Nachdem alle Stufen verdrahtet waren, verlegte ich das Kabel zur Steckdose und lötete die Kupplung an. Und um noch einmal ganz sicher zu gehen, dass die Beschriftung stimmt, prüfte ich mit einem Messgerät bei eingestecktem Trafo die Polarität an den einzelnen Abgriffen auf jeder Stufe.

Als nächstes schnitt ich für jede Stufe einen 5 cm langen Streifen von der LED-Kette ab und lötete ein Kabel daran. Die Länge des Kabels ist so gewählt, dass das LED-Modul nachher etwa 20 cm von der Treppensäule entfernt einen großen Teil der darunter liegenden Stufe ausleuchtet. An der obersten und untersten Stufe leuchtet mit 40 cm Abstand außerdem noch ein weiteres Modul.

Die LED-Streifen lassen sich mit einer Haushaltsschere leicht an den dafür vorgesehenen Stellen auseinanderschneiden und auch gut verlöten. Allerdings muss man schnell arbeiten, denn zu große Hitze beschädigt die Trägerfolie und die LED. Und natürlich muss man auch hier die Polung beachten.

Die fertig verkabelten LED-Module sahen so aus:

Jetzt ging es doch noch mit dem Lötkolben an die Treppe. An jede Stufe lötete ich ein Modul mit seinem Kabel an die Aderendhülse und isolierte die Lötstelle mit Isolierband. Schrumpfschlauch hätte besser ausgesehen, allerdings fand ich keinen in meiner Bastelkiste. Lüsterklemmen ersparen den Lötkolben, machen aber optisch nicht so viel her.

Nachdem das Kabel sicher verbunden war, zog ich die Schutzfolie von der Rückseite des LED-Moduls ab und klebte es unter die Stufe.

Mit etwas Gewebeband entlastete ich die Konstruktion. Besser wäre für die Zuleitung zum LED-Modul ein Kabel mit dünnerem Querschnitt gewesen, denn das Kabelstück ist recht kurz und es fließt nur ein sehr geringer Strom.

Eine letzte Endkontrolle: War die Polung überall korrekt, alles sicher montiert und gut isoliert? Dann konnte die Treppenbeleuchtung endlich in Betrieb genommen werden!

Und so sieht die Wendeltreppe bei Dunkelheit mit der neuen Beleuchtung aus:

Die LEDs sind enorm hell. Man kann jede Stufe deutlich erkennen und die Treppe auch ohne eine weitere Lichtquelle sicher benutzen. Durch das Tageslichtweiß, das gut zu den Metallstufen passt, ist die Treppe außerdem ein richtiger Hingucker geworden. Je nach Blickwinkel sieht man die Reflektion der LED-Module nicht in den Stufen. Die Treppe scheint dann auf magische Weise selbst zu leuchten. Und mit einem Stromverbrauch von etwa 6 Watt eignet sich die Beleuchtung auch für den Dauerbetrieb.