Archiv der Kategorie: Allgemeines & Neues

Hier poste ich alles, das keiner speziellen Kategorie entspricht

LEGO Mindstorms EV3 mit Matlab und Simulink

Wer mit Matlab und Simulink arbeitet oder lernt und einen LEGO EV3 Brick samt Sensoren und Aktoren besitzt, kann diese Systeme miteinander verknüpfen. Rund um den EV3 Brick gibt es natürlich eine Community und etliche Plattformen, über die man mit dem Brick kommunizieren kann. Doch dazu später.

Der Lego EV3 Brick ist im Wesentlichen ein Einplatinencomputer der mit einem LC-Display und vier Input- sowie vier Output-Ports (Schnittstellen für Sensoren und Aktoren) ausgestattet ist. Als Datenschnittstellen gibt es einen USB Port als HOST und einen MiniUSB Port als Interface zum PC und den diversen Softwaretools.

Will man mit dem Brick wireless kommunizieren, so ist dies über WiFi, beziehungsweise über Bluetooth möglich. Allerdings ist die Hardware zur Funkübertragung nicht im Brick verbaut und muss als USB Dongle in den Host-Port gesteckt werden.

Folgende USB Wifi Sticks sind lt. Internetrecherche mit dem EV3 und der originalen Legofirmware ab 1.08 kompatibel: (Quelle: Internet)

  • tp-link WL0084E
  • EDIMAX EW-7811Un mit dem Chipsatz RTL8188CUS
  • LogiLink WL0084W auf der Vertriebsseite (Conrad) angeblich mit dem Chipsatz Railink RT5370 jedoch das Herstellerdatenblatt gibt den Chipsatz RTL8188EUS an.

Im Test hat sich gezeigt, dass lediglich Dongles mit dem Realtek RTL8188CUS Chip im embedded Linux des EV3 Driver mäßig implementiert sind. Der Nachfolger von Realtek der RTL8188EUS funktioniert hier nicht.  Und die meisten Hersteller von Wifi USB Dongles (Stand 2021) vertreiben ihre Sticks mit dem 8188EUS Chip, sei dies TPLink, Edimax, LogiLink und wie sie alle heißen. Erkennbar ist das bei manchen an der Typenbezeichnung V2, oder 7811UN V2 (bei Edimax) oder V.02, V.03 bei TPLink. Ist diese Kennzeichnung beim Stick oder dessen Verpackung dabei dann wird das nix. Zumindest nicht, wenn mit der originalen Legofirmware gearbeitet werden will.

Vergleich edimax 7811un und 7811un v2
edimax 7188un mit RTL8188CUS chip
edimax 7188un V2 mit RTL8188EUS chip

Nun weiter zum EV3 Brick:

Auf diesem Einplatinencomputer läuft ein auf Linux basierendes embedded Betriebssystem das auf einem internen Flash- Speicher abgelegt ist. Dieses Betriebssystem wird in Form einer Firmware von LEGO zur Verfügung gestellt und ist zur Zeit in der Version 1.10 verfügbar. Diese Firmware ist beinhaltet sämtliche Partitionen der Laufwerke und deren Inhalt und wird im Rahmen eines Updates in einem „.bin“ File verpackt in den Flash geladen. Mit den Softwaretools „binwalk“ ist es unter Linux möglich, die Struktur der Partitionen aus dem Firmware File wiederherzustellen, zu ändern und wieder als „.bin“ Firmware Image auf die Hardware hochzuladen.

Es gibt aber auch Custom Firmware und Betriebssysteme die per SD-Card gebootet werden können. Welche Treiber hier mitgeliefert werden ist auf den Seiten der entsprechenden Custom OS Hersteller nachzulesen.

Folgende Betriebssysteme habe ich für den EV3 auf die Schnelle gefunden:

  • ev3dev (https://www.ev3dev.org/)
  • leJOS (https://sourceforge.net/projects/lejos/files/lejos-EV3/)

Man kann den EV3 mit folgenden (und ich nenne hier auch nur die gängigen die auch mir eingefallen sind) Tools bzw. Programmiersprachen programmieren:

  • LEGO EV3 Originalsoftware
  • NI Labview bist Labview Fall2016 ? (Unterstützt bzw. EV3 Plugins implementiert)
  • Matlab und Simulink (Harware Supportpackage für EV3 notwendig) link
  • MicroPython EV3 link

Fakt ist jedoch: der in die originale Lego EV3 Firmware (1.08H , 1.09D) integrierte Treiber für WLAN-Sticks unterstützt nur den Chipsatz RTL8188CUS. Und den benötigt man, wenn man über SIMULINK im „Monitor und Tune“ Modus mit dem Brick arbeiten will. Denn interessanter Weise klappt das NUR über eine WiFi Verbindung und NICHT über einen direkten USB Link zwischen PC und EV3.

Es ist auch NUR mit der Firmware 1.08H möglich mit Simulink zu kommunizieren da hier TELNET und SSH als Kommunikationsprotokoll genutzt werden. Und nur in der 1.08H ist eine ungeschützte Verbindung der Weg zum Erfolg. Ab der Version 1.09D ist ein Login notwendig.

Da die Firmware Versionen mittlerweile schwer zu finden sind, stelle ich hier einen Link zum Download herein.

Download EV3 Firmware 1.08H
Download EV3 Firmware 1.09D

Was benötigt man nun, um über Simulink mit dem EV3 sprechen zu können ?

  • zunächst muß Matlab und Simulink installiert sein
  • dann muss man das Support Package EV3 für Matlab und EV3 für Simulink herunterladen und installieren
  • auf dem EV3 Brick solltedie originale Firmware 1.08H vorhanden sein. Ist dies nicht der Fall kann die Version über den Firmwaredownloader in der orginalen EV3 PC Software auf das Gerät übertragen werden.
  • im EV3 Brick muß ein USB Wifi Dongle mit dem „CUS“ Chipsatz stecken
  • der PC muß idealerweise im selben Netz hängen wie auch das Wifi-Funknetz mit dem sich der Brick verbindet. Ein DHCP Server muß die IP Adressen für die Funkgeräte verteilen
  • jetzt kann der Brick gestartet werden. Danach muß er mit dem WLAN Netz verbunden werden (es sollten WPA2 Passwörter ohne Sonderzeichen festgelegt sein, da der EV3 Brick diese nicht zur Verfügung stellt)
  • ist der EV3 mit dem Netz verbunden, dann ist unter dem Menu „Brick Info“ die aktuelle IP Adresse des Bricks und die Brick ID zu notieren. Diese Infos werden gleich im Simulink Setup benötigt
  • nun zu Simulink: dort ist im Menu „configuration Parameters“ unter „Hardware Implementation -> Hardware board“ Mindstorms EV3 zu wählen 
  • das Setup wird im selben Menu unter „Hardware board settings“ -> Target hardware resources -> Groups -> Host to Target Connection festgelegt. Hier ist „Ethernet“ als Connection Type einzustellen. Die vorher ermittele IP Adresse und ID des Brick sind hier auch einzugeben.Das war´s dann auch schon. Nun sollte es möglich sein eure Simulink Modelle mit der EV3 Hardware zu nutzen und auch die Tune Infos während der Simulation am PC zu sehen …

 

 

 

Das zweite Buch zum Blog

Nach dem großen Erfolg meines ersten Buches zum Retroblog, habe ich mich nun durchgerungen und ein zweites Buch verfasst – NEIN SPASS – es gab gar keinen Erfolg. Das Buch habe ich damals verfasst, um für mich selber ein in Papier gedrucktes Werk meiner (Un)taten dieser Website in Händen zu halten. Denn erstens ist es wesentlich praktischer, einmal schnell was nachsehen zu können – ohne immer ein Internet zu Verfügung zu haben und zweitens: was wenn der/die Server nicht mehr erreichbar sind, oder gelöscht werden, oder gar abbrennen? Oder noch schlimmer, wenn jemand das Internet löscht… 😀

Ich dachte mir damals zwar, es über eine „Druck on Demand“ Option aufzulegen, aber wer weiß ob das irgendjemanden interessiert und ob ich das überhaupt so einfach darf. Und wer würde dafür auch so viel Geld ausgeben. Denn die Einzeldrucke sind auch ganz schon kostenintensiv. Also sind die hier Vorgestellten, gedruckten Exemplare quasi Unikate. Und ich bin auch ein bisschen stolz darauf, denn es steckt doch einiges an Arbeit drinnen.

Also nun gibt es das Retrobuch Nr.2 mit der Fortsetzung der Blogeinträge vom Ende der ersten Version bis zum Eintrag „Schukosteckdose mit USB (reparieren)“ vom 19.Dezember 2020 und das sind immerhin wieder 96 „Geschichten“ die diesmal 498 Seiten belegen. Auch für diesen Druck habe ich wieder „epubli“ gewählt und dort bestellt. Das hat den Vorteil, dass ich, sollte ich noch einen Druck eines der bestehenden Bücher haben wollen, einfach nur wieder auf „bestellen“ klicken muss, da ja alle Produktionsdaten bereits vorhanden sind.

Ich habe auch einiges dazu gelernt, was die Formatierung der Texte, Fonts, Schrittgrößen und Verzeichnisse betrifft. Die Bilder sind jetzt mit einer höheren Auflösung gedruckt und es sieht alles in allem besser aus.

So bleibe ich dran und werde in ein paar Jahren, wenn wieder genug Content verfasst ist, wieder an einer Ausgabe basteln.

Aufräumen und Archivieren

Hinter dem, in der Beitragsüberschrift genannten Titel versteckt sich meine Idee, in dem „ingmarsretro“ Blog einmal etwas Ordnung zu machen und ein wenig aufzuräumen. Mit „Aufräumen“ meine ich, die einzelnen Beiträge wieder mal auf Rechtschreibfehler zu prüfen, vielleicht auch den einen oder anderen Beitrag neu zu formatieren und ihn auch zu ergänzen. Darum wird es im Jänner 2021 auch keinen anderen Beitrag geben.

Es haben sich auch reichlich neue Beiträge angesammelt, die zwar digital auf dem Server gesichert sind, jedoch eine Papierform davon gibt es noch nicht. So will ich alle Posts, die seit der letzten Sicherung entstanden sind, wieder in Form eines Buches zu Papier bringen. Und das ist leider nicht ruck-zuck gemacht, sondern bedarf einiges an Arbeit. Der Beruf und die „Familienzeit“ mit meinem kleinen Sohn erlauben es nur, meistens nachts an den Beiträgen zu arbeiten. Und zwischen den Beiträgen bastle ich ja auch an den Projekten (Projekt’chen), über die ich dann ja schreibe. Davon habe ich auch noch viele im Kopf, die vielleicht einmal realisiert werden. Und dann gibts noch einige, an denen ich arbeite und die noch fertiggestellt, oder zumindest daran weitergearbeitet werden soll.

So bastle ich seit den letzten Monaten an einer Nixie-Uhr, die ziemlich diskret aufgebaut werden soll. Die Uhr hat mittlerweile auch einen vernünftigen Status erreicht, so dass hier Platinen vom selber geätzten Prototyp bis zum vernünftigen, industriell gefertigten Zustand, entstanden sind.

der NixieUhr Prototyp

Auch der „Röhrenradioempfänger“ mit dem ich vor einigen Jahren begonnen habe, wartet darauf, dass daran weitergebastelt wird.

Das Thema Retro Computer lässt mich natürlich auch nicht los. Hier sind ein paar Geräte noch zu restaurieren und warten darauf, wieder zum Leben erweckt zu werden. (Hier fällt mich gleich ein: ich suche eine RUN/STOP Taste für einen Commodore Plus 4 – würde mich freuen, wenn irgendein Leser da helfen könnte…)

auf der Suche nach einer RUN/STOP Taste

Das Projekt mit der MOS8501 CPU als Lattice – FPGA – Miniplatine steht auch in der „Weitermach-Warteschlange“ hier gibts noch einiges zu tun (Die Levelshifter tun noch nicht so, wie sie sollen, der VHDL Code muss noch weiter angepasst werden, die Prototypen Platinen müssen auf ein Board zusammengefasst werden und dann auch noch miniaturisiert werden…) ist also auch noch genug zu tun.

Dann gibt´s auch noch alte Geräte, die ich hier im Blog vorstellen möchte und noch etliche Reparaturen, die mir immer wieder in die Hände fallen… Auch das eine oder andere HomeMatic-Gebastel steht noch an.

Auch habe ich mit dem Gedanken gespielt, Content hier aus dem Blog in Form von Videos auf YouTube zu veröffentlichen. Aber ich kann zum einen nicht abschätzen, ob das jemanden interessiert und ob ich mir das antun möchte, meine Visage vor der Kamera zu präsentieren. Wahrscheinlich wäre es sinnvoller, es mit einem didaktisch begabteren Menschen als Protagonisten zu machen. Und das natürlich für Lau, als Spaß an der Sache. Andererseits gibt es hier ja etliche Youtuber, die hier sehr erfahren (z. Bsp.: Dave Jones mit seinem EEVblog, NoelsRetroLab, Adrians Digital Basement, GreatScott, ZeroBrain, JanBeta, etc.)  sind und das schon lange betreiben. Auch nicht zu vernachlässigen ist der immense Aufwand, solche Filmchen zu Produzieren. Wenn ich hier meine Aufbauvideos betrachte: So geht fast ein Tag für das Aufnehmen des Rohmaterials beim Zusammenlöten des jeweiligen Bausatzes drauf und zusammengerechnet fast drei Tage für den Schnitt und Nachbearbeitung. Mal sehen ob daraus einmal etwas werden kann…

 

 

 

HomeMatic Rauchmelder HM-SEC-SD Schnellreparatur

Auch dieses Mal wieder ein schneller Beitrag zum Thema „Alterung und Homematic Smart Home“. Es geht um folgendes Gerät: Den Homematic Rauchmelder HM-SEC-SD, also die ältere Version der Rauchmelder aus dem Hause eq3.

Eines gleich vorweg: Dieser Beitrag zeigt lediglich, wie ich dieses Gerät wieder in Betrieb gesetzt habe. Da es sich um ein sicherheitsrelevantes Gerät handelt, müsste nach der Reparatur wieder eine Abnahme durch ein zertifiziertes Prüfunternehmen stattfinden um es weiter verwenden zu dürfen. Der Beitrag stellt also nur das, was in dem Gerät kaputt geworden ist.

Worum geht es also?  Der Funkrauchmelder HM-SEC-SD zeigte im Rahmen des monatlichen Tests (ja man sollte einmal im Monat die Prüftaste drücken) folgendes Symptom:

Ein kurzer Druck auf die Taste und es kam kein akustisches Signal – dafür blinkt die rote Signal-Led mehrfach im ca. 0.5s Takt. Ein Erneuern der Batterien ändert nichts, das Verhalten bleibt. Das Funkmodul des Melders verhält sich normal. Man kann es Rücksetzen und auch wieder anlernen. Ein Blick in die Bedienungsanleitung sagt in diesem Fall (unter Punkt 9.2 Seite 24)

Beginnt nach dem Drücken der Taste nur die Leuchtdiode zu blinken, ist der Rauchmelder defekt und muss ausgetauscht werden
 
Also Zeit, den Melder zu öffnen und nachzusehen. Mein erster Verdacht fiel auf die Detektorkammer und dass hier eine Verunreinigung vorliegt oder sich ein Tierchen in der Kammer niedergelassen hat…
Rauchmelder geöffnet

Doch nach Entfernen des Deckels der Detektorkammer waren keine tierischen Eindringlinge zu entdecken. Jedoch an der Innenseite des Deckels war ein eigenartiges Muster zu erkennen:

Schlieren innen am Detektordeckel

Diese Schlieren, so dachte ich zuerst, sind im Rahmen des Spritzens des Kunststoffbauteils entstanden und müssen so sein. Doch bei näherer Betrachtung und einem „Darüberwischen“ mit dem Finger ließen sie sich entfernen. Kurz gesagt, diese Schlieren sind Staubpartikel. Und wenn sie am Deckel sind, dann auch in der gesamten Messkammer. Also mit Druckluft ausgeblasen, Deckel wieder draufgesteckt und getestet. -> selber Fehler wie zuvor. Also nochmal Deckel runter und etwas genauer mit einer Lupe hingesehen. Der gröbere Staub, wenn man von „grob“ sprechen kann war zwar weg, aber die Oberfläche der Photodioden hatte noch ganz feine und schwer erkennbare Schlieren. Also reinigte ich die Kammer und die Dioden mit ein wenig Alkohol an einem Wattestäbchen.

gründliche Reinigung erforderlich

Ein neuerlicher Funktionstest zeigte einen Erfolg – besser Teilerfolg. Nach Drücken des Prüftasters quäkte der Piezo – jedoch nur sehr, sehr leise – und damit meine ich kaum hörbar und die LED blitzte neun Mal im Abstand einer Sekunde. Also eigentlich so wie es sein soll. Nur eben viel zu leise. Also musste noch etwas kaputt sein. So untersuchte ich die Schaltung beginnend beim Piezo und wurde schnell fündig. Der Piezo wird von einem 40106 eine 6fach Schmitt-Trigger angesteuert. Um satt Strom zu treiben sind je drei „Schmitts“ parallelgeschaltet. Der Ausgang war niederohmig, was eigentlich nicht sein darf. Also den 40106 ausgelötet und noch einmal gemessen. Zwischen Pin 1,2 und 7 (Eingang und Ausgang des ersten Schmitt-Triggers und dem VSS-Pin) war ein satter Kurzschluss. Das bedeutet der IC-ist defekt.

6fach Schmitttrigger IC 40106

Nachdem der IC getauscht war, konnte der Rauchmelder endlich wieder wie gewohnt „schreien“.

Restauration / Umbau eines Arcadeautomaten

Zuerst einmal die Frage – was bedeutet eigentlich „Arcade“?  In Wikipedia findet man dazu folgendes:

Arcade-Spiel ist eine Bezeichnung für Videospiele, die seit den 1970er Jahren in öffentlichen Spielhäusern in den USA, so genannten Penny Arcades, bzw. in Europa in Spielhallen kostenpflichtig angeboten werden. In den frühen 1980er Jahren wurden Arcade-Automaten in Deutschland außer in Spielhallen auch in vielen Imbissbuden, Kiosken und Supermarktvorräumen aufgestellt, bis dies gesetzlich verboten wurde. An Arcade-Automaten kann der Nutzer gegen Geldeinwurf spielen. Der Spielpreis betrug in Deutschland in der Regel eine D-Mark, während er im Ausland meist geringer war. Erfolgreiche Spiele wurden später häufig für den PC sowie für verschiedene Videospielkonsolen umgesetzt. (wikipedia)

Aber das erklärt mir noch nicht warum dafür das Wort „Arcade“ verwendet wird. Als Begriffserklärung für „Arcade“ oder „Arkade“ ist zu finden:  die Arkade – der Säulengang oder „eine Arkade ist eine Abfolge von Bögen, von denen jeder gegen den nächsten stößt und der von Säulen oder Pfeilern oder einem überdachten Gang getragen wird.“ Darin würde sich für mich eher der Sinn der Wortwahl ergeben, da die Spielautomaten in den Hallen dicht an dicht aufgestellt wurden und so das Bild eines Ganges ergeben – und so nannte man dann die Spielautomaten einfach Arcade-Automaten… so meine Idee. Wenn jemand die Herkunft genauer oder richtig erklären kann – bitte darum.

Nun aber zu meinem kleinen Projekt. Mein Kollege hat einen alten Scheunenfund – einen Arcade Spielautomaten – mit der Jamma – Spielplatine „COMBAT SCHOOL“  bei Räumungsarbeiten gefunden und vorbeigebracht. JAMMA (Japan Amusement Machinery Manufacturers Association) bezeichnet auch eine 56-polige Schnittstelle, die das Automatenkabinett mit der Spielplatine verbindet. Bevor mit der technischen Inspektion begonnen werden konnte, musste einmal reichlich Schmutz entfernt werden. Nach einigem Staubsaugen und Wischen im Inneren des Kabinetts kam die Elektronik wieder zum Vorschein.  Augenscheinlich sah auch alles sehr vollständig aus. Die Bildröhre war auch nicht gebrochen und es fehlten keine Kabel und es war auch nichts abgeschnitten worden. Also wurde die Kiste mutig ans Netz gesteckt und der Hauptschalter betätigt. Ich erwartete alles, vom Knall und Rauch, bis hin zum Zischen der überspringenden Anodenhochspannung der Bildröhre. Doch es verhielt sich ziemlich normal. Der Entmagnetisierungsvorgang der Röhre war kurz zu hören und wenige Augenblicke später war am Monitor ein komplett farbfleckiges, verzerrtes Bild zu sehen. Mit etwas Fantasie konnte man den Schriftzug „Combat School“ erkennen. Und das Erfreuliche daran – trotz dass der Automat einige Minuten eingeschaltet ist, blieb der Zustand stabil. Es gab keine Rauchzeichen, noch irgendwelche Gerüche oder andere Veränderungen. Ausgenommen der modrige Geruch, alter in Kellern gelagerter Geräte. Also alles in allem, ein Projekt mit Erfolgsaussicht. Die folgende Aufzählung zeigt die Schritte, in denen ich die Reparatur bzw. Restaurierung durchführen möchte bzw.  auch durchgeführt habe:

(1) … Gerät reinigen und auf Vollständigkeit prüfen
(2) … kurzer Funktionstest
(3) … Monitor reparieren
(4) … kurzer Funktionstest um die Spielplatine zu testen
(5) … parallel zur Spielplatine einen auf Raspberry PI basierenden Emulator einbauen. Der Emulator soll über ein kleine Jamma Platine wahlweise an das Kabinett angeschlossen werden können.
(5.1) … Jamma Steckerplatine Ätzen
(5.2) … RGB Videoplatine für Raspberry PI zeichnen und ätzen (auf Basis eines R2R Widerstandsnetzwerkes zur D-A-Wandlung)
(5.3) … Raspberry Pi auf Trägerplatte montieren, mit Audioverstärker und Joystickinterface ausstatten und ein geeignetes Emulator-Image installieren
(6.0) … Funktionstest mit dem Raspberry PI Emulator

Zur originalen Spieleplatine vorab: Diese funktioniert nur teilweise. Es wurden einige Sprites nicht korrekt dargestellt. Die Fehlersuche und Reparatur des „Gatterfriedhofs“ habe ich bisher noch nicht durchgeführt. Der Schwerpunkt der Restauration lag vorerst auf der Raspberry Emulator Plattform, die anstelle der Originalplatine das Kabinett versorgen soll.

Monitor Platine mit 50Hz Videomonitor mit RGB Eingang

Im ersten Schritt wurde der Monitor, bzw. die Monitorplatine repariert. Hier waren in erster Linie im Bereich der Kissenentzerrung ein paar kleine Fehler durch defekte Kondensatoren und eine thermisch ausgelötete (kalte Lötstelle) Induktivität das Problem der fehlerhaften Bildgeometrie. Nach einer gründlichen Reinigung, und einem neu justieren der Bildgeometrie mit einem Bildmustergenerator konnte das Board dann wieder an seinen Platz.

Monitor Platine wieder an ihrem Platz

Ein weiteres Problem war die Bildröhre. Sie wies in den Ecken eine Falschfarbendarstellung auf. So wurde eine rote Farbfläche teilweise violett dargestellt. Dieser Effekt ist auf ein Problem mit der, in der Röhre vorhandenen Lochmaske zurückzuführen. Diese wurde entweder lange Zeit stark magnetisiert, oder noch schlimmer, durch eine raue Handhabe des Gerätes verbogen. Jedenfalls treffen die Elektronenstrahlen nicht an jeder Position auf die vorgesehene Leuchtschicht. Dieses Problem konnte ich zum größten Teil durch Entmagnetisieren mit einem mit Wechselstrom betriebenen Elektromagneten realisieren. (Ähnlich, wie es auch die ohnehin vorhandene Degausspule an der Röhre nach dem Einschaltvorgang macht – nur gezielter und wesentlich stärker)

Nachdem der Monitor wieder seinen Dienst verrichtet, ging es an den Bau eines Jamma – Steckverbinders. Dazu übernahm ich einfach die Abmessungen des originalen Steckverbinders in das Layout Tool und zeichnete ein neue Steckerplatine.

der originale Jamma Platinensteckverbinder mit 44 Polen
der gebastelte neue Steckverbinder

Jetzt ging es daran, auf einer kleinen, ca. 20 x 25cm großen Trägerplatte die Komponenten für die neue Hardware aufzubauen. Das Herzstück ist der viel geliebte Raspberry Pi 3, den ich mit Abstandhaltern auf der Platte befestigte. Für die Eingabe, also alle Joysticks, Buttons, Münzzähler etc. kamen fertige USB-Joystickplatinen zum Einsatz. Diese wurden ebenfalls auf der Platte montiert.

Raspberry PI auf Trägerplatte mit Joystickinterface

Erweitert wurde das Arrangement um einen Audioverstärker, der ebenfalls auf der Platte seinen Platz fand. Alle Leitungen zum und vom Raspberry bzw. auch zu den Joystickinterfaces führen zur Jamma Steckerplatine. Diese wird dann einfach anstelle der originalen Platine angesteckt und der Automat soll dann zur Schonung der alten Hardware mit dem Raspberry Image laufen.

im Bild links, das Raspberry Board, rechts die originale Spieleplatine

Das Bild oben zeigt das Raspberry Board montiert neben der alten Spieleplatine. Die Joysticks sind bereits auch alle funktionstüchtig. Hier ist nur zu erwähnen, dass die originalen Joys und Buttons high-aktiv sind und das USB-Joystickboard low-aktiv. (oder war es umgekehrt?) Dieses Problem ließ sich einfach mit einem Potentialumschalter der Summenleitung der Bedienkonsole des Kabinetts lösen…

Was jetzt noch fehlt, ist die Videoausgabe des Raspberry auf dem originalen 50Hz Röhrenmonitor. Dies könnte man mit einem HDMI – CVBS Converter und einem CVBS – RGB Komponentenkonverter lösen. Aber es ist doch viel cooler, die Möglichkeiten des Raspberry zu nutzen.

Hierzu habe ich eine kleine Platine gebastelt, die über ein R2R Netzwerk aus fünf Widerständen je R G B Kanal aus den Raspberry GPIOs die analoge Ansteuerung des Monitors erzeugt.

Infos und Anregungen dazu findet man auch auf GitHub unter vga666. Um den Raspberry zu motivieren, den HDMI Ausgang abzuschalten um über die GPIOs das Videosignal zu senden, muss lediglich die config.txt im root Verzeichnis der SD-Karte angepasst werden.

 

Das „Hineinhorchen“ mit der Osziprobe in einen der drei Kanäle zeigt ein sauberes Sync- und Videosignal. Also die drei Ausgänge und die Synchronisation über Elkos entkoppelt und über den Jamma Stecker an den originalen alten Monitor geschaltet:

Das Ergebnis ist doch ganz zufriedenstellend… Jetzt ist nur mehr der Fehler an der originalen Platine zu beheben und einige kleinere Schönheitsarbeiten am Holzgehäuse des Kabinetts durchzuführen. Aber das ist eine andere Geschichte…

 

 

 

FPGA CPU für Commodore 16

Meine erste Begegnung mit Computern hatte ich in den frühen 80iger Jahren, als meine Kollegen im Gymnasium ihren ersten VC20 und C64 von Commodore bekamen. Das war damals eine völlig neue Welt für mich – ein Computer – ein Gerät mit Tasten, wie bei einer Schreibmaschine, das man am Fernsehgerät anschließt. Und man kann in einer Sprache, die sich „Basic“ diesem Computer Befehle erteilen, die er dann ausführt.  Man konnte sogar ganze Programme schreiben und diese dann mit dem Befehl „RUN“ starten. Und dieser Computer arbeitete diese Programme dann ab. Das war faszinierend und eröffnete uns damals neue Welten. Erst recht als ich Kassetten bekam, die wie Musikkassetten aussahen, jedoch für den Computer gedacht waren. Darauf befand sich, spielte man sie in einem Kassettenspieler ab, ein Gepiepe, das man später von Faxgeräten oder der Einwahlsequenz von Modems kannte.

Stöpselte man den Kassettenplayer jedoch mit einem Klinkenkabel in den Computer und gab dort den Befehl „LOAD“ ein, so wurde aus dem Gepiepe ein Spiel oder ein Musikprogramm, oder was auch immer auf der Kassette gespeichert war. Jedenfalls war das das Tollste was man als Kind besitzen konnte. Und den jugendlichen Adrenalinschub bekam ich, als unter dem Weihnachtsbaum mein eigener Commodore C16 mit zugehöriger Datasette und der Spielekassette BigMac lag. Der Commodore C16 war also mein erster richtiger Computer. Es dauerte nicht lange, da waren die 16kB (KiloByte) Ram, die der C16 hatte zu wenig für die selbst gebastelten Basic Programme. Und was noch schlimmer war, es gab auch tolle Spiele, die mit 16k nicht liefen. Dazu gehörte der Kampfflugsimulator „ACE“ und das Vector-Grafikgame „MERCENARY“. Also musste der Computer aufgerüstet werden. Das war aus heutiger Sicht sehr einfach – es mussten lediglich zwei DRram Bausteine ausgelötet und gegen andere ersetzt werden. Damals jedoch, im Alter von – ich denke 11-12 Jahren, war das mangels geeignetem Lötwerkzeug und Erfahrung eine Herausforderung. Doch irgendwie hat es geklappt und der C16 meldete sich mit folgender Statuszeile:

COMMODORE BASIC V3.5 60671 BYTES FREE

READY

Das war im Vergleich zum originalen Speicher, von dem für den Basic Interpreter gerade einmal 12277 Byte frei verfügbar waren, ein Paradies an neuen Möglichkeiten. Leider war die Lebensdauer des Commodore 16 im Dauerbetrieb nicht sehr lange. Ich denke, es hat nicht mal ein Jahr gedauert, da zeigte der Rechner erste Probleme. Entweder reagierte der Cursor nicht mehr, es kamen wirre Zeichen am Bildschirm, oder er startete erst nach häufigem Aus- und wieder Einschalten. Irgendwann blieb der Bildschirm dann ganz schwarz.  Schuld daran war, zumindest vermute ich das heute, der Hitze Tod der CPU und/oder des TED IC´s. Damals konnte man diese Chips in den einschlägigen Elektronikläden noch für kleines Geld bestellen. Heute sieht das aber anders aus. Eine MOS7501 oder MOS8501 CPU findet man, wenn überhaupt, dann nur bei eBay und co. und das für Preise von 50 Euro und mehr für gebrauchte Chips.

MOS7501 (MOS8501) CPU der Commodore 264er Reihe

In meiner Sammlung besitze ich einige wenige Exemplare der 264er Serie von Commodore, die mehr oder weniger alle in einem originalen, einwandfreien Zustand sind (C16, C116, Plus4). Aber eben nicht alle. So habe ich mir in den Kopf gesetzt, die 8501 CPU in einen FPGA zu implementieren, eine kleine Platine zu entwerfen, die die Größe eines DIL40 IC´s hat und direkt in den CPU-Sockel des C16 bzw. Plus4 passt. Es existieren ja bereits einige erfolgreiche Projekte, die sich mit der Implementierung eines 8Bit CPU Core in einen modernen FPGA befassen.  Hier die Links:

Sellmy Retro: https://www.sellmyretro.com/offer/details/mos–7501~~8501-cpu-replacement-for-c16~~116~~%2B4-30475

oder ein universal konfigurierbarer CPU – FPGA Ersatz: https://hackaday.io/project/165624-mocka65xx-universal-650285xx-cpu-replacement

Ich habe mich aus Kostengründen und auf Empfehlung entschlossen, mit einem Lattice MACHXO FPGA zu arbeiten. Ein Evaluation Board ist für unter 30 Euro zu bekommen und für die Entwicklungsumgebung bekommt man bei Lattice eine gratis Lizenz. Einziger Nachteil – ich hatte bis dato keine Erfahrung mit Lattice Produkten. In meinen beruflichen Projekten wird hauptsächlich mit XILINX gearbeitet. Aber nach der Installation der Lattice-Software und ein bisschen Übung war schnell klar, damit sollte ich zurechtkommen.

LATTICE MACH XO Evaluationboard

 

Ich habe mir also vorgenommen, diesen Beitrag als dynamischen Beitrag zu gestalten und immer wieder zu erweitern. Da meine letzten FPGA Projekte wieder einige Zeit zurückliegen und ich mich auch wieder in die FPGA-Welt eingewöhnen muss, wird es wohl einige Zeit dauern bis (falls) ein brauchbares Ergebnis zustande kommt. Zu Beginn steht die Analyse des Datenblattes des MOS8501 IC und dessen Pins zur Außenwelt. Der 8501 ist eine abgeänderte Version des 6502 (die CPU aus dem Jahr 1975 die in vielen Rechnern eingesetzt wurde). Dazu zählen unter anderem der VC20, der Atari800, auch der APPLE 1 usw. arbeiteten mit dem 6502 Prozessor. Der 6502 ist auch schon als Verilog und VHDL Modell verfügbar… Diese Cores mit den Anpassungen für den 8501 will ich in den MachXO reinquetschen und mit entsprechender Anpassung der Signallevels direkt statt dem originalen MOS-Chip in das C16 Mainboard stecken…

 

 

 

 

 

 

 

HomeMatic Bilder über Telegram pushen – UPDATE fix

Update 2: scheinbar klappt es bei einigen Usern noch immer nicht, oder nicht mehr, Bilder von IP-Kameras zu speichern und dann per Telegram Nachricht zu versenden. Bei mir hat es auf meiner ziemlich vollgestopften CCU2 immer funktioniert.

Jetzt, da ich ja aufgrund der Covid Ausgangsbeschränkungen, wie viele Österreicher immer zuhause sein muss, habe ich mir die Zeit genommen und mich ein wenig genauer mit der Thematik beschäftigt. Und da niemand lange um den „heißen Brei“ herum lesen möchte, komme ich gleich zur Sache: Dass es auf meiner CCU2 funktioniert hat, liegt daran, dass sie aufgrund des „mit Skripten und Programmen vollgestopften Zustandes“ in ihrer Abarbeitungsgeschwindigkeit ziemlich gebremst war. Darum funktionierte es auch in ein und demselben Skript, die Bilder von den IP Kameras abzuholen und im /tmp/ Ordner zu speichern und sie nur zwei Zeilen weiter im Skript per Telegram API zu versenden.

Die Bilder waren einfach noch nicht fertig im Filesystem gespeichert und die unvollständigen Dateien wurden schon gesendet.

Hier die einfache Lösung:

Das Skript in zwei separate Teile zerlegen und nach einander mit einer Verzögerung von ein bis zwei Sekunden abarbeiten lassen:

anklicken zum Vergrößern

Im ersten Skript werden jetzt lediglich die IP-Cams aufgerufen und die Bilder als Dateien gespeichert. Im zweiten Skript wird, wie schon zuvor die Telegram API aufgerufen. Jedoch wird das zweite Skript 1-2 Sekunden später gestartet. Dann sind schon alle Files gespeichert und kommen auch über Telegram an…

getestet auf CCU2, RaspiMatic (sollte auch auf der CCU3 klappen)

 

Homematic Aktor Schnellreparatur (Dimmaktor RS485)

Zum Thema „Alterung und Homematic Smart Home“ habe ich wieder einen kleinen Beitrag beizusteuern. Vielen Dank an Fritz für die Aufbereitung und Analyse. 

Wie im letzten Post „Homematic Aktor Schnellreparatur“, geht es auch dieses Mal wieder um ein Gerät der Smart Home Serie.  Es handelt sich um den Dimmer Aktor mit der Bezeichnung „HMW-LC-Dim1L-DR“. Das ist ein Phasenanschnitt Dimmer Aktor für Glühlampen und Niedervolt Halogenlampen mit konventionellem Transformator. Auch viele moderne LED-Lampen lassen sich mit diesem Dimmer steuern. Der Aktor gehört der „wired“ Reihe an, was bedeutet, er ist nicht über das BidCos Funkprotokoll mit der CCU verbunden, sondern über den RS485 Bus. Die Stromversorgung für die Datenkommunikation bekommt der Aktor von einem 24V Netzteil. Damit wird auch der µC im Aktor versorgt. Die Netzseite wird mittels Optokoppler von der Niedervoltseite mit Steuerdaten versorgt.  So ist die galvanische Trennung gewährleistet. Auf der Netzseite befindet sich einer Dimmer Controller Baustein, der wiederum den Triac steuert. Dieser Controller muss mit einer Spannung von ca. 15V versorgt werden. Um die zu erzeugen, hat der Hersteller einen Kapazitiven Spannungsteiler eingebaut. Und hier beginnen die Alterungsprobleme….

Das Fehlerbild äußert sich wie folgt: Die angeschlossene Lichtquelle lässt sich nicht dimmen beziehungsweise einschalten. Der Dimmer kommuniziert jedoch korrekt mit dem Bus. Die rote Funktions Led leuchtet korrekt. Die Befehle für „Aus“ und „Ein“ per Taster werden auch in der CCU angezeigt.

Schaltplan der Netzseite auf der „Hauptplatine“
defekter 330nF X2 Kondensator

Die Ursache: Der IC U2008, ein Dimmer-Control Baustein wird laut Datenblatt mit einer Spannung von DC 15V versorgt. Die Versorgungsspannung war in diesem Fall aber deutlich kleiner (bei ca. 5,8V) Diese Versorgungsspannung wird den 330nF / 275V X2 Kondensator C4 gemacht. Optisch ist der Kondensator in einwandfreiem Zustand, jedoch eine einfache Kapazitätsmessung zeigt schnell, dass hier nichts mehr passt. Der Kondensator C4 hatte nur mehr eine Kapazität von ca. 30-40nF. Es ist also wie so oft -> Der Kondensator war´s  😀

Dimmer Modul Seitenansicht

Nach Austausch war die Spannung am U2008 wieder ok und der Dimmer verrichtet wieder seinen Dienst. Präventiv wurden auch noch die zwei weiteren auf dem Board befindlichen X2 Kondensatoren (C1 47nF/275V und C2 100nF/275) erneuert.

Einbauorte von C1 und C2

 

 

 

 

 

 

Homematic Nachrichten per Telegram UPDATE

Update: bei mir war auch die Pfadangabe zum „curl“ Befehl das Problem. Mit Angabe des „pseudo“ absoluten Pfades zum Befehl wurde er nicht mehr gefunden. Siehe unten:

 es genügt, den curl Befehl direkt aufzurufen, also anstelle von : ….State(„extra/curl -s -k https://api.telegram.org/bot“#botAPI#“/sendMessage…..

die Pfadangabe „extra/“ entfernen, je nach CCU Variante und Cuxd Version, also:  …… State(„curl -s -k https://api.telegram.org/bot“#botAPI#“/sendMessage …..

Wer sich nicht sicher ist, wo das Kommando liegt, am besten im cuxd oder über SSH nachsehen…

Update Ende.

In den Kommentaren zum Beitrag „Nachrichten pushen mit Telegram“ wurde mehrfach darauf hingewiesen, dass die Push Nachrichten nicht mehr gesendet werden. Zuerst dachte ich es gibt irgendwelche grundlegende Änderungen bei der Telegram Api. Aber dem war nicht so. Also habe ich noch einmal ein Skript zusammengebastelt. Um zu debuggen, habe ich einen gesamten String aus einzelnen Teilen zusammengebaut. Das ist zwar alles andere als schön, aber es lässt sich leichter nachvollziehen was funktioniert oder eben nicht. Auch den Pfad zum curl-Kommando habe ich vollständig angegeben. Mit dem folgenden Beispiel Skript funktioniert bei mir die Textausgabe wieder:

 string msg = "Hallo Telegram";  
 string chatid = "123456789";                     
 string botAPI = "987654321:AABBCCDDEEFFGGGHHIIJJKKLLMMNNOOPPQQ";   
 string request;  
 string command1 = "/usr/local/addons/cuxd/curl -s -k https://api.telegram.org/bot"; !#botAPI#   
 string command2 = "/sendMessage -F text="; !#msg#   
 string command3 = " -F chat_id="; !#chatid#  
 request = command1+botAPI+command2+msg+command3+chatid;  
 dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State(request);  

 

Dann sollte alles wieder klappen….

Smartes Licht mit Philips und Ikea

Von der Firma Philips wird das smarte Lichtsystem mit der Bezeichnung „hue“ angeboten. Es handelt sich dabei um Lampen und Leuchten, die über integriertes Funkmodul von einem Zentralgerät, oder auch Gateway genannt („hue bridge“) gesteuert werden können. Steuern bedeutet, dass die Lampen (solange sie mit Netzspannung versorgt sind) in Ihrer Helligkeit gedimmt, aus- und eingeschaltet und je nach Ausstattung auch in ihrer Lichtfarbe geändert werden können. Das Zentralgerät (die „hue-bridge“) ist dabei über eine LAN Schnittstelle mit dem im Haus befindlichen Internetrouter verbunden. Es ist sozusagen der Server für die Lampen. Die Kommunikation zwischen der Bridge und den Lampen findet über das Funkmodul statt. Hier hat Philips den ZigBee Standard implementiert. ZigBee wird übrigens auch bei vielen anderen Herstellern eingesetzt.

Um nun eine smarte Lampe mit der Bridge zu verbinden, benötigt man ein Terminal um auf die Bridge zugreifen zu können. Da ja heutzutage fast jeder auch ein Smartphone besitzt, ist es ein Einfaches, dieses als Konfiguration- und Steuerterminal zu verwenden. Die Hersteller haben, passend zu ihren Bridges, eine „App“ zur Verfügung gestellt, über die die Einrichtungsvorgänge am einfachsten zu realisieren sind. So muss eine neue Lampe nur eingeschaltet sein und in der App unter „Einstellungen -> Lampeneinstellungen -> Leuchte hinzufügen“, gewartet werden, bis die Lampen in Funkreichweite gefunden werden. Dann können sie im Netzwerk verbunden, benannt und in Gruppen arrangiert werden.

Auch die Homematic CCU bietet mit den aktuellen Firmware-versionen einen Zugriff auf Bridges zweier Hersteller. (Es werden die Bridges von Philips HUE und Osram Lightify unterstützt). So können die smarten Lampen auch über Homematic-Skripten und Programme gesteuert werden.

Jede Firma bringt also zu seinen smarten Lampen und Leuchten ein passendes Gateway mit.

Aber wie sieht es aus, wenn man in ein Hue-System eine Ikea – Trådfri Lampe integriert, oder es zumindest versuchen möchte? Ganz einfach – es klappt.  Voraussetzung ist nur, die Ikea Lampen in den Werkszustand zu versetzen. Auch das ist ganz einfach. Das Leuchtmittel in eine passende Fassung drehen und den Strom zur Lampe einschalten.  Jetzt die Lampe AUS – und wieder Einschalten. Und das insgesamt 6x in kurzen Abständen (ca. 500ms). Nach dem letzten „Aus – Ein“ sollte die Lampe langsam in der Helligkeit schwanken.  Jetzt kann sie im Hue-Gateway angelernt werden.

Somit stehen alle Smarten Leuchtmittel, die im Hue-System angelernt sind, auch im Homematic System zur Verfügung.