ESP-01S Relais Board patchen

Für ein kleines Projekt, eine Zweitklingel für unsere Türsprechanlage, habe ich mir im Makershop.de ein Relaisboard bestellt, das mit „ESP-01S Relay V1.0“ beschriftet ist. Ich wollte mir damit das Verkabeln einzelner Relais Boards ersparen und ein paar alte ESP-01 Boards hatte ich hier sowieso noch herumliegen – also genau das Richtige für das Projekt. Wie ich, nachdem ich das Board erhalten habe, leidvoll feststellen musste, funktioniert es überhaupt nicht und der ESP-01 startet erst gar nicht. Nach ein wenig Sucherei im Netz habe ich dann auch den Schaltplan für das Board gefunden und dabei fällt sofort ins Auge, dass CH_PD nicht mit VCC verbunden ist und was macht überhaupt der 10k Widerstand da, der GPIO0 auf GND zieht? Das ist doch der Bootloader Mode… Also heisst es wohl: das Board muss gepatcht werden, sonst funktioniert es „Out-of-the-box“ überhaupt nicht.

Da diese Boards auch noch über AliExpress verkauft werden und damit die Wahrscheinlichkeit hoch ist, dass noch ein paar andere Bastler darüber stolpern, hier zwei Bilder, wie ihr das Board modifizieren müsst, damit es auch bei euch reibungslos funktioniert.

Also erstmal auf der Oberseite des Boards den Widerstand auslöten:

…und danach dann noch die zwei Pins (CH_PD und Vcc) miteinander verbinden:

Insgesamt eigentlich ziemliche Anfängerfehler im Design. Passt also auf, dass ihr beim Bestellen nicht auch an diese Boards geratet, sonst ist Handarbeit gefragt, um die beiden Bugs auszumerzen.

Neues Atmel AVR Programmiergerät

Vor ein paar Jahren habe ich mir den USBasp nachgebaut und er hat eigentlich immer ganz gut funktioniert – bis auf eine Ausnahme: das Programmieren der Fuses. Irgendwie habe ich das mit dem Programmiergerät nicht hinbekommen und dann doch immer wieder mein altes Programmiergerät für den Druckeranschluß rausgeholt nur um die Fuses zu setzen. Wenn ich eine Schaltung mit 3.3V zusammengebaut habe, ist das Programmiergerät auch nicht mehr zu verwenden gewesen und deshalb konnte das so nicht bleiben. Ein neues Programmiergerät musste her. Nur welches? Gerade im Hobbybereich gibt es sehr viele, die auch noch in unterschiedlichen Preisklassen liegen und evtl. sogar mehr als nur die Atmel Mikrocontroller unterstützen.

Nach langem Überlegen und vielen Preis- / Featurevergleichen ist meine Wahl dann doch auf ein original Atmel AVRISPmkII gefallen. Warum ist eigentlich einfach zu erklären: Die günstigeren Modelle aus China oder Hong Kong haben bspw. keinerlei Support und man kann froh sein, wenn alles funktioniert. Vielleicht klappt es, vielleicht auch nicht. Dann gibt es die Varianten, die von unterschiedlichen Firmen angeboten werden und separate Programmiertools benötigen und z.B. nicht direkt aus dem AVR Studio heraus arbeiten. Auch nicht so das Wahre. Dann gibt es noch kompatible Programmiergeräte zum AVRISPmkII und zum Schluss sogar noch welche, bei denen man unterschiedliche Firmwares einspielen kann, um diverse Mikrocontroller zu unterstützen, bzw. serielle Schnittstellen oder einen kleinen Logic Analyzer, etc. Leider liegen die auch preislich mindestens gleich auf. Auch nicht das Richtige. Was man auch nicht vergessen darf: nicht alle Programmiergeräte unterstützen auch 5V und 3.3V. Das sollte heute aber üblich. Viele Programmiergeräte haben auch kein Gehäuse und fallen damit auch schon bei mir durch.

Den AVRISPmkII von Atmel habe ich jedenfalls bei Reichelt Elektronik für ~40 EUR bekommen und bin damit ganz zufrieden und wenn es Probleme gibt, kann man sich direkt mit dem Hersteller des Mikrocontrollers und des Programmiergerätes auseinandersetzen. Allerdings muss ich mir jetzt noch einen kleinen Adapter von 6pol. ISP beim AVRISPmkII auf 10pol. basteln, da meine bisherigen Projekte immer diesen Anschluss verwendeten, aber das ist ja das kleinste Problem Smiley.

avrispmkii

Ab und an muss mal ein Prototyp her

Klar, wenn man etwas entwickelt, will man ja so schnell wie möglich fertig werden, aber ab und an ist es ganz praktisch, wenn man Teile seiner Ideen schonmal testen kann. Genau das habe ich mir bei meiner aktuellen Hardwarentwicklung gedacht und erstmal nur den Mikrocontrollerteil nachgebaut. Als Bonus habe ich an die Datenleitungen ein paar LEDs drangehängt, um zu sehen, ob das, was ich mir ausgedacht habe, auch wirklich so funktioniert. Der Mikrocontroller-Teil wird per USB Stack an den PC gehängt, weshalb ich auf dem Prototypen erstmal einen USB Bootloader installiert habe. Damit ist es mir möglich, Programme auch ohne ISP Programmiergerät auf den Prototypen einzuspielen und das sogar ohne spezielle Treiber auf der PC Seite. Der nächste Schritt ist die Implementierung einer Firmware, die ein Custom-Gerät simuliert und die ich dann mit einem kleinen Programm über einen USB Treiber ansprechen kann. Hört sich einfach an – ist es bestimmt auch, aber ich brauche dafür wohl noch ein Weilchen :-).

Das ist jedenfalls der momentane Aufbau:

cpc-prototyp

Mein kleines Netbook samt USBasp Programmiergerät (links unten) und dem Prototypen (links oben).

Neuer Spielkram

In den letzten Monaten habe ich mir einiges an komischen Zeug für diverse Projekte bestellt. Zu einem meiner Projekte zählt ein “Super 8 Digitizer”, also eine Vorrichtung, mit der man Super 8 Filme digitalisieren kann. Klar, man könnte einfach den Film an die Leinwand projizieren und dann abfilmen, das Problem ist aber dabei, dass ein Super 8 Film mit 18 fps läuft und eine Digitalkamera die Bilder mit 25 fps aufnimmt. Dadurch, dass die Kamera schneller läuft, bekommt man ein Flimmern im Bild, das zumindest mich stört. Selbst wenn die Kamera gleich schnell wie der Projektor läuft, müsste man beide perfekt miteinander synchronisieren, was so ohne weiteres nicht möglich ist.
Meine Idee ist es deshalb, jeweils Einzelbilder mit einer Digitalkamera / Webcam aufzunehmen und dann später wieder einen Film daraus zu erzeugen. Ein Problem ist bei diesem Projekt der Projektor. Hier muss man sich die Frage stellen, ob man lieber einen alten Projektor umbaut oder sich einen neuen besorgt und durch Zufall bin ich über folgenden Projektor gestolpert:

DSCF1376

Japp, ziemlich viel Plastik, aber dafür nagelneu und läuft mit LED. Er bietet sich jedenfalls sehr für einen Umbau an.
Zur Steuerung habe ich überlegt, wie man am besten und einfachsten eine Ansteuerung hinbekommen kann. Dazu fällt mir natürlich sofort ein Mikrocontroller samt Schrittmotor ein, aber diesmal wollte ich nicht erst einen eigenen kleinen Prototypen selbst bauen, sondern gleich auf etwas fertiges setzen, also fiel die Wahl auf einen Arduino Uno. Den kann man günstig bei Watterott bekommen und man kann ihn auch spielend leicht programmieren.

DSCF1381

Zusätzlich zum Arduino Uno habe ich mir noch gleich ein Ethernet-Shield dazugeholt, da ich anfangs die Bilder auch gleich per Netzwerk auf einem Server ablegen wollte, allerdings habe ich das Modell mittlerweile schon wieder verworfen, da ich die Digitalkamera nicht mehr mit dem Arduino ansteuern werde, denn die Ansteuerung der Kamera wird von einem von mir programmierten, kleinen Programm erfolgen, das eine Logitech C910 Webcam ansteuert. Auch wenn sich Webcam direkt schon nach Qualitätsverlust anhört, trifft das auf diese Webcam nicht zu, denn sie hat eine Auflösung von 10 Megapixel und liefert HD Qualität. Die Ansteuerung ist dadurch auch ziemlich einfach.

Im Prinzip habe ich also schon alles zusammen, was ich für den Digitizer benötige, jetzt fehlt mir nur noch die Zeit dafür ;-).

USB-ZXJoy – diesmal ein Joystick Konverter

Im vorigen Blogeintrag habe ich ja schon beschrieben, dass ich mit USBasp ein Atmel Programmiergerät zusammengebastelt habe und da es gerade so viel Spaß gemacht hat, an USB Geräten herumzubasteln habe ich gleich mal weitergemacht und mir als nächstes einen Joystickkonverter gebaut. Mit diesem Joystickkonverter kann ich nun digitale Joysticks (z.B. die meines Amstrad CPCs) per USB an einen PC anschliessen. Und hier ist ein Bild des Lochrasterplatinenaufbaus (noch ohne 9 polige D-SUB Stecker, die muss ich noch bestellen ;-)):

usb-zxjoy

Einen ersten Test habe ich natürlich schon durchgeführt und es funktioniert soweit alles. Dank dem umständlichen Aufbau auf Lochrasterplatine habe ich diesmal gelernt, dass Kupferlackdraht doch komfortabler ist und ich das wohl in Zukunft doch endlich mal mehr einsetzen werde. Ein nächstes Projekt steht schon an, mal schauen, ob ich vielleicht schon über Ostern dazu komme, daran zu arbeiten.