Gerade habe ich erstmalig von GKOS gehört. Das ist wohl ein Konzept für eine Tastatur mit nur sechs Tasten, gedacht für kleine Eingabegeräte. Wenn man sich die Beispielvideos ansieht scheint das auch ganz passabel zu funktionieren, auch wenn ich mich frage wie lange ein Bewegungslegastheniker wie ich bräuchte um das zu verinnerlichen…

Vielleicht wäre das mal wieder ein interessantes Bastelprojekt. Wie man grundsätzlich eine USB-Tastatur baut weiss ich ja durch das Dulcimer-Projekt

Ich habe gerade ein weiteres Bastelprojekt online gestellt: die Fotokiste die den meisten Gästen unserer Hochzeit im Sommer 2010 noch in Erinnerung sein dürfte. Naja, dem einen oder anderen vielleicht auch nicht mehr… aus dem einen oder anderen Grund. :-)

Diesmal ohne Downloads, aber es war eh nur eine Kombination aus dem Schaltplan des USB-Servos und der Firmware der Dulcimer-Tastaturen.

Ich habe die Kiste mittlerweile wieder zerlegt. Die ist nur auf dem Polterabend und der Hochzeit eingesetzt worden. Dabei sind aber mehr als 1.300 Bilder entstanden — und wir freuen uns immer noch über jedes einzelne. :-)

Ach ja, und: Nein, ich habe nicht nur geheiratet um da ein Mikrocontroller-Projekt raus zu machen! ;-)

Open Bench Logic Sniffer an meiner Binäruhr

Open Bench Logic Sniffer an meiner Binäruhr

Vor einer Weile hatte ich meiner Begeisterung über den Bus Pirate Ausdruck verliehen. Gestern habe ich ein neues Spielzeug ausprobiert das von den gleichen Machern stammt: der Open Bench Logic Sniffer.

Es handelt sich dabei um einen Logic Analyzer, also ein Werkzeug mit dem man sich den Signalverlauf auf mehreren digitalen Leitungen ansehen kann. Solche Geräte sind normalerweise sehr teuer, und selbst für ein gebrauchtes Stück Hardware legt man noch mehrere hundert Euro hin. Es gibt deshalb eine ganze Reihe von Ansätzen, sowas als Bastelprojekt zu bauen. Unter anderem kann man auch den oben erwähnten Bus Pirate dazu benutzen, auch für den USBprog den ich hier habe gibt es eine passende Firmware. Der Nachteil an diesen Dingern ist aber, dass sie langsam sind: die gelesenen Signale müssen verarbeitet und weitergeleitet werden, damit ist der kleine Mikrocontroller auf denen die beiden Lösungen basieren schwer überfordert.

Ausgefeiltere Ansätze — und dazu zähle ich den Open Bench Sniffer — basieren auf einem FPGA. Das ist etwas komplexer, aber der ist in der Lage die Daten schnell genug aufzunehmen und zwischenzuspeichern. Das Ding arbeitet mit bis zu 200MHz, und das bei bis zu 32 Kanälen. Mehr als genug also für Hobbyanwendungen.

Auge in Auge mit I2C

Auge in Auge mit I2C

In einem freundlichen Mailwechsel nach dem Kauf des Bus Pirate habe ich dem Betreiber von eHaJo gegenüber erwähnt dass ich auch Interesse an diesem Gerät habe, und am Dienstag hat er mich darüber informiert dass er ein paar importiert hat. Mittwoch habe ich bestellt, am Freitag war das Päckchen da. Gekauft habe ich die Platine und zwei Kabelsätze, so bin ich für Messungen auf bis zu 16 Kanälen gewappnet. Zusammen also 55 Euro plus Versand. Wirklich günstig für den Gegenwert finde ich.

Da ich für diese Lösung im Moment eigentlich kein passendes Problem habe, ich das aber auf jeden Fall schon mal ausprobieren wollte, musste meine Binäruhr nochmal zeigen was in ihr steckt. Die LEDs werden auf dem Ding von einem SAA1064 angesteuert, der Controller kommuniziert damit per I2C-Protokoll. Es gibt also eine Clock- und eine Daten-Leitung. Mit den Klemmen habe ich also den Sniffer an die beiden Pins angeschlossen, sowie an Masse. Dann die passende Software gestartet, und los geht’s.

I2C dekodiert

I2C dekodiert

In der Oberfläche kann man schnell klicken was mitgeschrieben werden soll: wie viele Kanäle, bei welchem Zustand die Messung getriggert werden soll, wie viele Messpunkte in welchem Abstand genommen werden sollen und vieles mehr. Dabei sind offenbar auch komplexe Trigger möglich, im Falle von I2C reicht es die Messung zu starten wenn beide Kanäle auf 0 gehen. Wenn die Parameter richtig gesetzt sind ist es sehr simpel die Daten mitzuschreiben: auf Klick schaltet das Programm die Hardware scharf, und sobald der geforderte Trigger auf den Leitungen zu sehen ist wird gemessen. Die Messwerte sind dann als Diagramm zu sehen. Darin kann man zoomen, scrollen und beispielsweise Abstände zwischen Signalen messen.

Das wirklich coole kommt dann: wir haben I2C-Daten mitgeschrieben. Das Programm verfügt über ein Tool mit dem diese Daten direkt in mehr oder weniger lesbare Daten decodiert werden können. Man erhält also detaillierte Informationen darüber wann welches Byte über die Leitung gegangen ist. Die erhaltenen Daten können auf verschiedene Arten zur weiteren Analyse exportiert werden, unter anderem als schicke HTML-Tabelle.

In diesem Fall wurden übrigens alle vier LED-Zeilen der Uhr neu befeuert, man kann mit etwas gutem Willen also tatsächlich der Tabelle entnehmen wann wir die Messung vorgenommen haben. Mit Funkuhr-Genauigkeit. Und es ist nicht viel schwieriger abzulesen als die Uhr an sich. Hint: wir sehen die Uhrzeit, BCD-kodiert und vertikal dargestellt. Wer mir als erster die Zeit in die Kommentare schreibt wird von mir anerkennend als Geek tituliert… :-D

Mein Fazit: das Ding ist sein Geld in jedem Fall wert, und ich kann mich an mehrere Situationen erinnern bei denen mir ein solches Werkzeug echt weitergeholfen hätte. Ich kriege nichts dafür das zu schreiben, aber auf jeden Fall gebe ich eine Kaufempfehlung für jeden ambitionierten Mikrocontroller-Bastler!

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…

USB-LED-Fader auf Steckbrett

USB-LED-Fader auf Steckbrett

Gestern hat mich jemand mit dem Namen Ilie Catalin — zumindest glaube ich dass das der Name ist — wegen meines USB-LED-Faders kontaktiert. Er hat den auf einem Steckbrett nachgebaut um zu verstehen wie es funktioniert und um damit weiter zu basteln, und er hatte ein paar Fragen dazu.

USB-LED-Fader auf Steckbrett

USB-LED-Fader auf Steckbrett

Ich hoffe dass ihm meine Antworten geholfen haben. Er hat mir in Gegenzug ein paar Bilder seines Aufbaus geschickt. Danke dafür! Es ist immer schön zu sehen wenn jemand was mit den Sachen anfangen kann die man veröffentlicht. :-)