Warum er eine eigene Firmware gebaut hat habe ich noch nicht rausgefunden. Vielleicht gibt die Diskussion etwas her. Mich interessiert natürlich auch was ich noch verbessern könnte…
Kategorie: Elektronik
Elektronik und Mikrocontroller
Android und offene Hardware
Sieht so aus als ob man in absehbarer Zeit anfangen kann, selbst irgendwelche Gadgets zu bauen die man an ein Android-Telefon oder -Tablett anschliessen kann. Das ganze basiert auf Arduino, ist also völlig frei zu nutzen. Ich kann es kaum abwarten zu sehen was den Leuten einfällt…
Edit: Und man muss offenbar nicht unbedingt das teure Kit kaufen, es geht auch mit Standard-Arduino. Bin ich eigentlich von ausgegangen…
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.
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.
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…
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!
DIY Thermografie
Über eine Wärmebildkamera habe ich auch mal nachgedacht. Letztens noch im Reichelt-Katalog welche gesehen, ab 1.800 Euro aufwärts. Cooles Projekt, und mit den Informationen auf der Seite kann man sich das ziemlich idiotensicher nachbauen… Mal im Hinterkopf behalten…
Radio-Transmitter
Wenn ich mir ansehe wie einfach es ist, einen FM-Transmitter zu bauen kommen mir direkt Ideen für einen Geocache…
Noch eine hackable Armbanduhr
Die Get inPulse kostet zwar das dreifache von der TI eZ430-Chronos, bietet dafür aber auch Bluetooth und ein Farbdisplay — letzteres ist sicher mitverantwortlich für eine Akkulaufzeit von bis zu vier Tagen. Nichtsdestotrotz: nettes Spielzeug!
TI eZ430-Chronos
Das Texas Instruments eZ430-Chronos ist eine digitale Armbanduhr mit verschiedenen Sensoren, einer Funkschnittstelle und vor allem: einem programmierbaren Controller. Bei der Kombination regen sich sofort wieder sämtliche Geek- und Erfinder-Moleküle im Oberstübchen. Vor allem wenn man sieht dass man das Entwicklungspaket für weniger als 50 Euro kaufen kann, also weniger als so manche Digitaluhr ohnehin schon kostet!
Mittagspausenuhr
Ich habe ja letzte Tage schon meine Passion für merkwürdige Uhren erwähnt… diese hier öffnet aber eine völlig neue Dimension: die Lunchtime Clock dehnt die Zeit in der Anzeige dermassen dass die Mittagspause an jedem Tag 12 Minuten länger ist. Macht wöchentlich eine Stunde Pause für den Arbeitnehmer — so lange es nicht auffällt.
OLED am Bus Pirate
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…