Natuerlich kann man davon ausgehen dass jede halbwegs komplexe Software irgendwelche grösseren oder kleineren Fehler enthält. Dass ich aber innerhalb einer Woche gleich über zwei — ich nenne sie mal Ungereimtheiten — stolpere hätte ich nicht erwartet. Zumindest nicht in altehrwürdigen Programmen wie dem allseits beliebten ;-) Editor Vim und dem Mail-Client Mutt.

Der Reihe nach, erstmal der Vim: Mir hat die Tagline sehr gut gefallen, die Frank Terbeck sich gebaut hat. Bis vor einer Woche habe ich mich noch nicht um Tabs im Vim bemüht, mit der FTTablineSet() von Frank wird das alles aber schön übersichtlich. Klappt auch prächtig… im Vim7. Ich habe aber auch noch Rechner mit Debian Woody im Einsatz, da ist noch ein Vim6 drauf. Der kannte noch keine Tabs, da kann das also nichts bringen. Also wie einige andere Funktionen nach der Versionsnummer ausklammern, aber das klappt in diesem Fall nicht.

Ich habe das Problem mal etwas eingedampft. Sobald ich eine Funktion mit einer For-Schleife in der Konfiguration habe kriege ich einen Fehler. Minimal sieht das so aus:

if version >= 700
  function FunctionTest()
    for tabnum in 1
    endfor
    return 1
  endfunction
endif

Das führt im Vim6 beim Start des Editors zu folgender Ausgabe:

E133: :return außerhalb einer Funktion
Drücken Sie die EINGABETASTE oder geben Sie einen Befehl ein

Täusche ich mich, oder sollte der Vim6 den Teil überhaupt nicht ’sehen‘? Naja, ich denke nicht dass es dafür noch einen Patch gibt der mir auf Woody weiterhelfen wird. Erstmal habe ich mir so beholfen, das funktioniert:

" Zusaetzliche Funktionen fuer Vim ab 7.0.0
if version >= 700
  source ~/.vim/features700.vim
endif

Und als ich Gestern nochmal eine Mail ansehen wollte die ich zu dem Thema geschrieben habe ist mir was merkwürdiges im Mutt aufgefallen. Ich persönlich bin nicht abgeneigt, das einen Fehler zu nennen, aber die FAQ sagt dass das so gewollt ist. Ich frage mich nur ob und wenn ja wie ich das elegant lösen kann.

Ich möchte Kopien meiner ausgehenden Mails monatlich sortiert in Ordnern ablegen. Das macht Sinn, und die Ordnerstruktur passt dann auch schön wenn ich mal mit Squirrelmail darauf zugreife. Also steht in der Konfiguration folgendes:

set record="=INBOX.Sent.date +%Y.%m"

Mein Mutt läuft dauerhaft in einem Screen, wird also in der Regel nur neu gestartet wenn der Rechner neu gestartet wird, was in diesem Fall nur alle paar Monate mal vorkommt — in der Regel nach Stromausfällen. Und die Backticks werden offenbar nur beim Start evaluiert, so dass ausgehende Mails immer im Ordner des Monats landen in dem das Programm gestartet wurde. In der FAQ bei Fefe steht auf die Frage ob das irgendwie mit Bordmitteln geht „No. And that’s on purpose.“ Ich frage mich ob das so immer noch aktuell ist, ich finde das etwas… befremdlich in einem Programm das ansonsten so fein einstellbar ist.

Und eine Cron-Loesung wäre zwar denkbar, aber nicht schön. Wie würde das aussehen? Die Mail-Ordner direkt auf dem Server umverschieben? Geht. Aber auch nur weil ich da Root bin. Ist also nicht allgemein möglich. Und wenn Mutt immer nur nach „Sent“ schreibt, ein Skript sich am Monatsersten per IMAP mit dem Server verbindet und die Ordner umbenennt? Ginge auch, das wäre dann aber nicht mehr kompatibel zur Squirrel-Ordnerstruktur…

Das ModulEigentlich ist es vermessen, die Bastelei Projekt zu nennen. Aber nachdem ich bei den Instructables praktisch genau den gleichen Aufbau gefunden habe dachte ich mir dass ich das doch eben online setze. Obwohl ich das schon im August irgendwann gebaut habe und das eigentlich nicht vor hatte…

Bread-Power (Benamsung ist nicht immer meine Stärke…) ist ein kleines Modul mit dem man ein Steckbrett komfortabel mit einer sauberen 5V-Spannung versorgen kann. Und bei Bedarf nebenbei auch noch mit einer anderen Spannung die das Netzteil liefert, irgendwas zwischen 7,5 und 12V.

Zu finden ist das ganze auf der Schatenseite.

Das Modul

Das Modul

Ja, der Name klingt viel zu großspurig für eine kleine Bastelei wie diese. Aber was besseres fiel mir nicht ein.

Es handelt sich um eine kleine Schaltung für den Einsatz auf einem Steckbrett. Mikrocontroller-Schaltungen laufen meistens mit 5V, billige Steckernetzteile weigern sich aber diese Spannung zu liefern. Also beginnt der Aufbau einer Schaltung auf einem Steckbrett in der Regel mit dem Zusammenstecken der Spannungsversorgung.

Spätestens nach dem dritten Mal ist das langweilig, deshalb habe ich mir das so zusammengebaut dass es ‚en bloc‘ zu verwenden ist. Im Nachhinein denke ich, dass eine Diode zum Verpolungsschutz nicht schlecht gewesen wäre. Die Herausforderung für den ambitionierten Nachbauer besteht also darin, die passende Stelle dafür zu finden… ;-)

Die Beschriftung habe ich übrigens mit Eagle zusammengebastelt, obwohl die eigentlich absolut unabhängig von der Schaltung ist. Wer sie haben möchte: ich stelle sie hier mit zum Download.

Plagiarismus?

Der Schaltplan

Der Schaltplan

Ich wollte das eigentlich nicht veröffentlichen. Nachdem ich aber im Make-Magazin einen Link auf ein ähnliches Projekt bei Instructables gesehen habe, und einen Link auf die Bauanleitung bei SparkFun, habe ich es doch gemacht.

Ich kann nur sagen: mein Aufbau ist zumindest älter als der Instructables-Beitrag. :-)

Wahrscheinlich ist die Idee einfach nur so naheliegend dass da jeder von alleine drauf kommt.

Download

Siehe auch…

  • SparkFun – detaillierte Beschreibung eines ähnlichen Aufbaus
  • Instructables – Schritt-für-Schritt Beschreibung eines ähnlichen Aufbaus

OK, das ist eigentlich kein Buzzword sondern quasi eine Buzzphrase. Ich habe das Gestern im Radio gehört, es ging um ein spezielles Olivenöl das gerade neu vorgestellt wurde (Jahaa, ich höre nämlich nur die spannendsten Sendungen! :-) ). Übersetzt heisst das soviel wie: „Es schmeckt nach nix“, das war nämlich die Herausragende Eigenschaft dieses phänomenal neuen Produktes. „Im Eigengeschmack sehr schlank“ klingt aber wohl besser…

Der PrototypIn den letzten Wochen habe ich mich ziemlich intensiv um ein Projekt gekümmert das schon seit fast einem dreiviertel Jahr in der Mache ist: einer Tagesablaufsteuerung für mein Aquarium.
Am Rande: Ja, ich habe ein Aquarium. Seit etwa einem dreiviertel Jahr. Und eine Menge Spaß dran gefunden, ein grösseres ist schon bestellt. Das aber auch nur am Rande. :-)
Böse Zungen behaupten, ich hätte das Hobby nur angefangen um da ein Mikrocontroller-Projekt raus zu machen. Ein für alle Mal: Das stimmt nicht — wenngleich ich nach der Anschaffung auch ziemlich schnell die Idee für ein Projekt hatte… und gemessen an meinen bisherigen Basteleien ist das ein echtes Mammutvorhaben. Ein kleiner Schritt für die Menschheit…
OK, was tut es?
Es steuert Aquarientechnik. Ich gebe mal ein paar Stichworte:

  • Leuchtstoffröhren dimmen (momentan vier Kanäle)
  • Nachtlicht- oder Effekt-LEDs dimmen (momentan auch vier Kanäle)
  • Temperaturen messen
  • Relais schalten — demnächst auch abhängig von Temperaturen, also ein Thermostat
  • Schalter zum manuellen Überbrücken der Automatik
  • Übersichtliche Darstellung der Zustände auf einem Display
  • Serielle Konsole zum Debuggen
  • Programmierung über Textdateien / SD-Karte

Der Aufbau wird modular sein, also ein Basisteil, ein Bedienteil mit Schaltern und Display, ein Dimmer-Teil (unter Verwendung meines I2C-Dimmers) und ein Relaisteil. Die Module werden per I2C-Bus untereinander verbunden. LEDs werden direkt an das Dimmer-Modul angeschlossen, dimmbare Vorschaltgeräte für Leuchtstoffröhren werden mit einer Spannung von 0-10V versorgt.
Programmiert wird das Gerät mit einer Textdatei die einfach auf einer SD-Karte gespeichert wird, also ohne Spezialsoftware und am Computer. So laesst sich einfach regeln welche Lampe um welche Uhrzeit wie hell sein soll, welches Relais wann und wie lange an sein soll, welche Relais zur Steuerung von Temperaturen benutzt werden sollen und noch einiges mehr. Damit die Betriebszustände auch nach einem Stromausfall wiederhergestellt werden können wird eine batteriegepufferte Echtzeituhr eingebaut.
Und das beste: durch den modularen Aufbau wird es möglich sein, das Gerät später um weitere Funktionen zu erweitern. Denkbar sind Module zur pH- oder Luftfeuchtigkeits-Messung und eben auch -Steuerung.
Vielleicht war das auch nur das zweitbeste: ich werde die Schaltpläne und die verwendete Software im Elektronik-Bereich der Schatenseite zur Verfügung stellen sobald es fertig und dokumentiert ist. Ich schätze dass ein Nachbau für etwa 50 Euro machbar wäre…
Wie man auf dem Bild sieht ist ein Prototyp auf einem Steckbrett fast fertig. Eigentlich kann ich die Hardware schon zusammenbauen, an der Software fehlt noch einiges. Allerdings nichts wirklich kompliziertes, die ganzen schwierigen Sachen laufen schon.
Jetzt der Aufruf an interessierte Aquarianer: welche Funktionen habe ich vergessen, was würdet Ihr Euch für so ein Gerät noch wünschen? Ich bin für alle Vorschläge offen. Ach ja, und: ich suche noch nach einem geeigneten Namen für das Projekt… ;-)