Helligkeit 75 von 127Und wieder ein neues Mikrocontroller-Projekt auf der Schatenseite: der I2C-Dimmer.

Eigentlich ist es nur ein Teilprojekt, aber da man das Ding ziemlich universell verwenden kann habe ich es in ein einzelnes Projekt verpackt. Es handelt sich um einen ATtiny2313, der über ein gängiges Bussystem namens I2C (Inter-Integrated Circuit)gesteuert werden kann. I2C ist ein Warenzeichen von Philips, bei anderen Herstellern wird der Bus TWI (Two Wire Interface) genannt. Es handelt sich dabei um einen Bus an dem viele Bausteine wie Temperaturfühler, Echtzeituhren, Speichergeräte und vieles mehr angeschlossen werden können, mit denen sich ein Mikrocontroller dann unterhalten kann. Und jetzt eben auch mein I2C-Dimmer.

In meinem nächsten großen Projekt will ich wieder mehrere LEDs faden lassen. Unter anderem. Da soll auch eine Echtzeituhr und ein Speicher rein, daher wird es wohl eh auf einen I2C-Bus herauslaufen. Da es für einen Mikrocontroller halbwegs stressig ist, neben ‚richtigen‘ Aufgaben dauernd die LEDs ein- und auszuschalten, und man es ziemlich schnell sieht wenn er sich zwischen der ein- und ausschalterei noch mit anderen komplizierten Sachen beschäftigt, habe ich nach einem separaten Baustein gesucht der mir (bzw. dem Controller) das abnehmen kann. Ohne Erfolg. Ich habe zwar was gefunden mit dem man LEDs dimmen kann, aber der Baustein ist zum einen für mich unlötbar (SMD), zum anderen kann man die Ausgänge nicht frei steuern: jeder Ausgang ist entweder an, aus, oder er nimmt eine von zwei gedimmten Helligkeiten an. Die sind dann zwar variabel, aber man ist eben nicht voll flexibel.

Also habe ich mir überlegt, dafür einen eigenen Baustein zu bauen. Die AVRs können per I2C auch Kommandos entgegen nehmen, also muss nur noch eine Pulsweitenmodulation implementiert werden. Nach mehreren Versuchen ist Thomas Stegemann auf eine blendende Idee gekommen wie man das sehr effizient machen kann. Der Algorithmus ist auf der Projektseite beschrieben, ich weiß nicht ob es dafür einen Namen gibt. Sachdienliche Hinweise nehme ich gerne entgegen.

So ist es jetzt möglich, den Baustein quasi als Black Box in zukünftigen Projekten einzusetzen. Der ATtiny2313 wird mit 20MHz getaktet und kann so bis zu 13 Kanäle auf 128 Helligkeiten halten. Theoretisch wären da sogar noch mehr Kanäle möglich, allerdings müsste man dann einen anderen Controller benutzen: der kleine hat nicht mehr Pins… :-)

Notgedrungen arbeite ich im Moment beruflich unter Windows. Dabei ist mir was merkwürdiges aufgefallen: Ich bin in cmd.exe und starte eine Batch-Datei. Darin steht ein falscher Pfad. In Ermangelung eines vi öffne ich die Datei mit einem grafischen Editor (PSpad) und korrigiere den Pfad. Alt-Tab in die Kommandozeile, Pfeil nach oben (ja-haa, das ist nämlich komfortabel!), Enter. Ich erwarte den schönsten Programmstart der Welt, aber was ist? Immer noch flasch.

Mehrere Fehlversuche später schließe ich das Fenster, starte es wieder, wechsele in das alte Verzeichnis, starte die Batch-Datei und: es geht.

WTF? Puffert die verdammte cmd.exe meine Batch-Datei? Oder ist das nur Gehässigkeit mir gegenüber?

Ich hoffe zwar, dass ich nie wieder damit arbeiten muss, aber wie ich den Laden kenne… Was kann ich außer einem Neustart machen um die geänderte Version starten zu können? hash -r gibt’s da nicht… :-(

Spätestens wenn nicht nur von Verschwörungstheoretikern berichtet wird, dass Handys als Wanzen benutzt werden können ist der Zeitpunkt an dem man mal über ein durchschaubareres Mobiltelefon nachdenken sollte. Abgesehen davon ist meine Beobachtung, dass freie Entwickler weniger auf Produktzyklen als auf Features Wert legen, daher könnte ich mir vorstellen dass ein wirklich freies Telefon für einige Überraschungen sorgen kann.

OpenMoko beim BootenHandys mit Linux gibt es schon einige. Allerdings ist es bis jetzt in der Regel so, dass Linux als Kern benutzt wird und eine mehr oder weniger proprietäre Benutzeroberfläche darauf gelegt wird. Außerdem gibt es auch unter den Linux-Geräten noch keines bei dem die Hardware wirklich samt Spezifikationen offen gelegt ist.

Zumindest gab es das bis vor kurzem nicht. Seit ein paar Tagen ist vom Hersteller FIC die Entwicklerversion des Neo1973 erhältlich, mit dem alles anders werden könnte. Ab Oktober soll eine Endkundenversion verfügbar sein, und das wie es im Moment aussieht zu erstaunlich akzeptablen Preisen.

Die Firmware und somit die Benutzeroberfläche kann man aber auch ohne die Hardware ausprobieren, indem man sie auf einem PC installiert. Das geht unter Linux mit einer angepassten Version des Hardware-Emulators Qemu. Auf openmoko.org finden sich die technisch orientierten Seiten des Projektes, da kann man das MokoMakefile herunterladen. Dann reicht ein einfaches ‚make run-qemu‚, und eine Weile später (diese ‚Weile‘ hat bei mir wegen der ISDN-Anbindung und einiger fehlender Pakete etwas länger gedauert…) kann man der Firmware beim Booten zusehen. Das ist für Linux-Nutzer ein gewohnter Anblick, denn abgesehen vom Bildschirmformat sieht es aus wie auf einem großen Rechner.

Wichtiger Kontakt :-)Bildschirmformat ist ein gutes Stichwort: um eine Vorstellung von der Bildschirmauflösung zu bekommen möge man einen der Screenshots auf volle Größe aufklicken. 640 Punkte in der Vertikalen und 480 in der Horizontalen sind wirklich beeindruckend für ein Telefon, besonders wenn man das kleine Format des Bildschirms bedenkt. Ich kann kaum erwarten, das in Natura zu sehen. Nebenbei bemerkt ist die Auflösung damit doppelt so groß wie bei einem anderen bekannten Handy, das im Moment sehr gehyped wird… ;-)

Leider habe ich hier nur vergleichsweise schwache Rechner zur Verfügung. Auf meinem Notebook mit 800MHz und 256MB RAM dauert allein der Bootvorgang mehrere Minuten, auch die spätere Oberfläche ist alles andere als flüssig zu bedienen. Kein Wunder wenn man bedenkt dass da die komplette Hardware emuliert wird, die Software läuft in dieser Konstellation halt nicht nativ auf der PC-Hardware.

Dementsprechend hat die weitere Rumspielerei nicht wirklich Spaß gemacht, auch wenn es sehr interessant gewesen ist. Man muss sich für die Oberfläche an einige Icons gewöhnen, aber das wird nicht lange dauern. Und wenn man nicht nach jedem Tastendruck mehrere Sekunden auf eine Antwort warten muss wird das Erforschen auch wesentlich mehr Spaß machen. Nettes Gimmick, wenn auch vielleicht selbstverständlich: Bestandteil der Software ist natürlich ein Terminal in dem man eine Shell öffnen kann. Sogar ein vi ist drauf. Leider kein vim, aber über die Bildschirmtastatur ist das eh nicht das was man den ganzen Tag benutzen will… ;-)

Auf openmoko.com finden sich auch eine Menge Bilder und Informationen über das Neo1973, ich überlege noch ob ich mir das direkt im Oktober leisten sollte… das ist aber mehr eine Frage der persönlichen Finanzplanung, weniger des Interesses. Wenn es danach ginge würde ich sofort zuschlagen.