Ich hatte mir ja vor einiger Zeit einen Bus Pirate gekauft (und damit dann mein OLED befeuert). Gerade bin ich über einen Clone gestolpert der vielleicht gerade für AVR-Bastler — der originale Pirate basiert auf PIC — interessant sein könnte: Bus Ninja.

Q. Why is it called Bus Ninja?
A. Because Ninjas are better than Pirates and Yarrrrrduino sounds silly.

Das sollte also auf einem Arduino funktionieren, den hat vielleicht der eine oder andere eh rumliegen. Wenn ich jetzt spontanen Bedarf hätte könnte ich mir mit den Teilen die ich habe was passendes zusammenstellen.

Allerdings habe ich aktuell keinen Bedarf: den Piraten habe ich ja schon, und der wird mir auch weiter gute Dienste leisten. Bin immer noch überzeugt von dem Ding, der Ninja nur nach einer interessanten Alternative.

Vielleicht wäre die Firmware auch für den USBprog portierbar. Der ist halbwegs verbreitet, und das würde den meiner Meinung nach nochmal deutlich aufwerten. Meinen USBprog wollte ich ursprünglich auch als Logic Sniffer benutzen, das habe ich aber nie vollständig befriedigend hingekriegt. Dafür habe ich mittlerweile den OBLS, seitdem ist der USBprog nur noch Programmer — und als solcher eigentlich zu schade…

OLED am Bus Pirate

OLED am Bus Pirate

Am Wochenende habe ich mich mal etwas mit zwei neuen Spielsachen beschäftigt. Hier der aktuelle Spielstand:

Für eines meiner nächsten Projekte möchte ich ein kleines farbiges Display verwenden. Ich war erstaunt dass man kleine OLEDs teilweise wirklich günstig kaufen kann. Es gibt verschiedene Größen, ich habe mir erstmal das mit einer Auflösung von 160×128 Pixeln vorgenommen. Das ist etwa so gross wie eine Sonderbriefmarke. Dieses Display gibt es wiederum in zwei grundlegenden Varianten: einmal als ‚dummes‘ Display, da ist zwar ein Controller dabei aber man muss die Verwaltung komplett selbst übernehmen. Der Spass kostet an verschiedenen Stellen knapp 40 Euro.

Und es gibt die Variante die ich gekauft habe. Die nennt sich uOLED-160-G1 (Specs) und ist mit 63 Euro spürbar teurer. Aber auch spürbar angenehmer: auf dem Modul ist ein recht intelligenter Controller verbaut. Der übernimmt die eigentliche Ansteuerung des Displays. Angesprochen wird er über eine einfache serielle Schnittstelle, darüber frisst er nicht nur ‚male einen Punkt an dieunddie Stelle‘, sondern auch komplexere Anweisungen (Befehlssatz): Kreise oder Polygone malen, Text darstellen, Font ändern…

Ich muss mich in meinem kleinen Mikrocontroller also nicht mehr damit rumschlagen wie ich den Grafikspeicher verwalte, wie ich einen Kreis auf den Schirm kriege, oder wie ich eine Linie von hier nach da zeichnen kann. Sehr praktisch, das ist nämlich erfahrungsgemäß recht aufwändig für die Hardware.

Und es kommt noch besser: enthalten ist auch ein Steckplatz für eine MicroSD-Karte. Darauf können Daten, Bildchen oder kleine Videos abgelegt werden die dann direkt vom Display abgespielt werden können. Ich freue mich darauf, damit alberne Sachen zu machen… :-)

Natürlich möchte man mit so einem Teil erstmal etwas rumspielen und Erfahrungen sammeln. Normalerweise krame ich dazu das Steckbrett raus und baue mir eine kleine Schaltung die das Ding befeuern kann. Dann etwas C schreiben, compilieren, flashen, testen. Wieder C schreiben, compilieren, testen… und so weiter.

Das geht einfacher. Kommen wir also zum zweiten neuen Spielzeug: ein Bus Pirate.

Als fertiges Modul kostet der zusammen mit Kabelpeitsche und Gehäuse etwas über 30 Euro. Ich habe meinen bei eHaJo gekauft — sympathischer kleiner Händler, die Ware war nach einem unkomplizierten Einkauf schnell da. Wer die Ausgabe scheut kann sich das Ding auch selbst bauen, es handelt sich hier um Open Source Hardware. Ich bereue den Kauf aber nicht, das Modul ist wirklich professionell gefertigt und seinen Preis absolut wert.

Aber was tut es? Ich kann es nicht besser formulieren als die Entwickler:

The Bus Pirate is an open source hacker multi-tool that talks to electronic stuff.

Ich schliesse das Ding mittels USB an mein Notebook an. Es erscheint als /dev/ttyUSB0, dorthin kann ich mich per screen verbinden und bekomme eine Kommandozeile. Jetzt schliesse ich am anderen Ende irgendein (geeignetes) Bauteil an mit dem ich kommunizieren möchte. Da geht alles was die unterstützten Protokolle (unter anderem 1-Wire, I2C, SPI, JTAG, MIDI, PC keyboard, UART…) spricht, zur Not kann man aber auch direkt Pins ein- und ausschalten. Jetzt kann ich Sachen messen, Protokolle sniffen, oder eben auch spontan bestimmte Protokolle ’sprechen‘. Die kompletten Features geben eine Übersicht was möglich ist, die Dokumentation zeigt dann wie es geht.

In meinem speziellen Fall klemme ich also vier der Klemmen an mein OLED an (GND und VCC zur Spannungsversorgung, sowie TX und RX für UART-Kommunikation), gehe per Kommandozeile in den UART-Modus und schalte dort erstmal die Stromversorgung für das Display ein. Jetzt kann ich einfach an der Kommandozeile Werte (sprich: Kommandos) eingeben die dann direkt an das Display gesendet werden.

Der Bus Pirate enthält sogar eine Art Basic-Interpreter, damit habe ich dann spasseshalber das Testbild programmiert das auf dem Foto zu sehen ist. Ich hätte das aber auch auf dem PC in irgendeiner anderen Sprache machen können, der Bus Pirate kann auch direkt aus Perl, Python oder C angesprochen werden.

Alles in allem war das ein erfolgreiches Wochenende. Und im Moment glaube ich dass das Display für mein angedachtes Projekt die richtige Wahl ist, da kann die Planung also weitergehen…