Introducing FrontCalc

Seit Windows Vista ist der Windows-Taschenrechner mit seinem „Programmierer-Modus“ relativ brauchbar. Eines stört mich jedoch schon immer: Bevor ich in der Taskleiste lange herumklicke oder ihn mit Alt-Tab suche, öffne ich mir sehr häufig einfach einen neuen (Tastatur-Hotkey).

Viel einfacher und praktischer wäre es, ihn ständig im Vordergrund zu haben, sodass man z. B. das Bitfeld ständig vor Augen hat. Zwischendurch habe ich mir mit eda_preview beholfen, aber warum sollte ich jedes mal zwei Programme starten, das eine suchen und das „Stay on top“-Flag  setzen? Das geht doch einfacher.

Mit C# ist zwar mit Kanonen auf Spatzen geschossen, aber arg viel mehr als  10 Zeilen braucht man für das Unterfangen nicht.

Das Progrämmchen FrontCalc (Quellcode und .exe) startet calc.exe, wartet kurz (warum genau die Wartezeit erforderlich ist, weiß ich nicht genau) und setzt dann das TOPMOST-Attribut.

Trotzdem oder gerade deswegen wird erkennt u. a. avast die Anwendung als „verdächtig“. Wer mir oder der EXE nicht traut, kann sie auch gerne selber bauen. Das C#-Projekt sollte man als Konsolenanwendung erstellen, in den Projekteigenschaften aber wieder auf (Ausgabetyp:) Windows-Andwenung umstellen, damit kein  Konsolenfenster aufpoppt.

Himbeere

Ich habe mir für den Sommer wieder zu viel vorgenommen – zumindest bin ich in Sachen Energieerfassung nicht sonderlich weiter gekommen.

Es liegt zumindest nicht (hauptsächlich) an der Motivation – eher daran, dass ich momentan in erstaunlich vielen Dingen eingespannt bin. Wo haben sich in den letzten Wochen anscheinend viele PCs dafür entschieden, kaputt zu gehen oder anderweitig Aufmerksamkeit zu einzufordern. Dass das Zeit frisst muss ich wahrscheinlich nicht erwähnen.

Wie dem auch sei, der Hauptgrund dafür, dass des nicht so recht voran geht ist, dass ich die Energieerfassung auf eine andere Plattform umziehen will.

Zwar ist die Leistungsfähigkeit des Mikrocontrollers nicht nicht ganz ausgeschöpft, dennoch komme ich bei manchen Dingen an gewisse Grenzen. Sei es die Datenhaltung oder die Kommunikation mit dem Datenbankserver (die nicht zuletzt durch Dyndns bzw. dem Routers hier nicht 100% zuverlässig ist). Auch beim Userinterface gibt es ein paar nicht ganz optimale Dinge.

Aber bevor ich noch lange um den heißen Breit rede: ein Raspberry Pi soll es werden. Dieser soll später (wenn ich mehr Gefühl für Linux und die Heizungsregelung habe) auch die Zentralheizung sowie Solaranlage regeln.
Ich weiß, dad Teil ist für die Anwendung schon fast Perlen vor die Säue, dafür aber unschlagbar günstig (und noch dazu sehr energieeffizient).

Der Netzwerkanschluss des größeren Modells lädt zusätzlich noch ein, das Teil im Hausnetz viele und von außen wenige Informationen zugänglich zu machen bzw. E-Mails zu verschicken (oder per VoIP gar einen Rundruf zu machen), wenn irgendwas nicht stimmt. Ferner dürfte es mit der internetfähigen Zentralheizung sogar möglich sein, Wetterprognosen in die Regelung einfließen zu lassen – sodass z. B. vor einem kalten Tag die Wärmepumpe in der Nacht (im Niedertarif) das Wasser im Puffer stärker erwärmt als vor einem warmen Tag, bzw. in der Nacht gar nicht abläuft, wenn der Folgetag sonnig (-> Solaranlage) ist.

Momentan sind es noch Gedankenspiele, aber die Möglichkeiten verleiten eben dazu 😉

Wasserfalldiagramm für die Fritz!Box

Beim Einrichten von Fritz!Boxen komme ich manchmal an den Punkt, dass irgendwas in der näheren Umgebung das DSL stört.

Praktischerweise hat AVM eine Anzeige des Spektrums ins Browser-Frontend eingebaut, mit dem man die Störungen gut erkennen kann.
Allerdings hat die Anzeige einen Haken: Manche Störungen sind nur kurzzeitig – schaut man also in dem Moment der Störung nicht hin, hat man sie verpasst.

Aus diesem Grund habe ich mir ein kleines Bookmarklet geschrieben, das ein schönes Wasserfalldiagramm auf die Seite zaubert:

Die Ansicht scrollt mit der Aktualisierung der Spektrumsanzeige (etwa im Sekundentakt) Pixelweise nach oben weg.

Einfach den nachfolgenden Link in die Bookmarkleiste ziehen, in das Webfrontend (Internet -> DSL-Informationen -> Spektrum) der Fritz!Box navigieren und auf den Bookmark klicken.

Nachdem WordPress (oder ich) zu doof ist, Bookmarklets richtig umzusetzen: guckst du hier!

Funktioniert im Firefox 6, Chrome 13 und Internet Explorer 9, ist aber noch etwas ausgegoren (löst beim Ausführen auf anderen Seiten Fehler aus).

Was mir beim Programmieren aufgefallen ist: entweder habe ich oder AVM nicht sauber programmiert – eine der Anzeigen treibt die Speicherauslastung von Firefox massiv in die Höhe…

Gnarg!

Puh. Zwei Wochen sind vorbei, 100m Leitungen verbaut und noch kein Ende in Sicht. Die Züge fahren zwar schon (sogar das segmentweise Schalten des Gleisstromes funktioniert), die Beleuchtung lässt allerdings noch immer auf sich warten.
Unter anderem deswegen, da die bereits für Anfang letzter Woche erhoffte LED-Lieferung aus China immer noch ausbleibt.
Das wäre nicht zu schlimm, wenn nicht immer wieder Murphy’s Law zuschlagen würde:
Zur Verbequemisierung der Anlagensteuerung wurde ein DCC-Decoder zur Steuerung von Weichen und Beleuchtung gebaut. Auf dem Steckbrett hat alles prima funktioniert – auf der Lochraster: naja, ihr wisst schon.
Die Anfangs geschätzten 60 Meter Fahrstromleitung waren um fast genau 2×10 Meter zu kurz. Da die entsprechenden Leitungen im Baumarkt fast das Vierfache der Bestellung gekostet hätten siegte der Schwabe in mir und wir verloren zwei weitere Tage….

Erschwerend kommt hinzu, dass sich nun „endlich“ der Sommer gemeldet hat. Leider mit solch einer Gewalt, dass es unterm Dach angenehme 32°C hat. Ob es unter der Tischplatte besser oder „besser“ ist, möchte ich momentan nicht einschätzen.

Für morgen haben wir uns vorgenommen, wesentlich früher loszulegen (und somit der Hitze am Tag zu entgehen) und einen großen Schritt weiterzukommen.
Ich werde es mir wohl mit dem Oszilloskop und Notebook samt Logic Analyzer und Programmiergerät unter der Tischplatte „gemütlich“ – die Tischhöhe ist zwar für den Modellbahnbetrieb ideal, aufrecht sitzen kann man darunter allerdings nicht.

Jetzt aber genug entfrustet für heute. Mal sehen/hoffen, was der morgige Tag bringt.

Marvin

Zu Weihnachten gab es dieses Jahr etwas extravagantes – eine ca 50cm hohe Spardose in Form eines Roboters:


Zugegebenermaßen hat er mit dem Exemplar aus Per Anhalter durch die Galaxis (ok, am ehesten noch mit der alten Serie) gemein, außer dass es sich bei beiden Marvins um Roboter handelt. Wie dem auch sei, mein Marvin sollte dem manisch depressivem Original etwas näher kommen: Er soll die Sprüche lernen.

Als Basis dafür dient der SD-Wave-Player von ChaN, der auf dem Breadboard in kürzester Zeit aufgebaut war und funktionierte. Ein Taster aus einem Diskettenlaufwerk am Interrupt und los geht’s – momentan spricht er bei lässt er nach Münzeinwurf 25 verschiedene Sprüche vom Stapel, allerdings noch nicht zufällig.

Umgewöhnung/ein Schritt weiter

An meinem neuen Notebook merke ich, dass ich mich anscheinend doch recht gut an das etwas verschandelte Tastaturlayout von meinem Toshiba gewöhnt habe. Dort liegen einige Tasten woanders, als man eigentlich erwartet. ^ und ° liegen nicht oben neben der 1, sondern links neben der Leertaste. Das ist nicht besonders schlimm, da man im nicht-französischen Raum relativ selten auf das erste Zeichen (dessen Namen ich noch immer nicht weiß) zurückgreifen muss. Auch Temperaturen oder Winkel sind am Notebook eher Seltenheit.

Nerviger ist dagegen die <>|-Taste. Die lag beim Toshi rechts neben der Leertaste und ich habe mich am Thinkpad schon mehrfach erwischt, dass ich statt Shift+< (also „>“) auf Shift+AltGr gedrückt habe. Bloß gut, dass der Computer bei dieser Tastenkombination nicht herunterfährt, sonst würde ich bei der OOP in PHP nicht sonderlich weit kommen…

Ansonsten gefällt mir das Thinkpad sehr gut. Kein Schnickschnack, eigentlich fast nur Features ;-). Erstaunlicherweise ist die Verarbeitungsqualität, obwohl sie mittlerweile nicht nur in China gebaut, sondern sicherlich auch entwickelt werden, ziemlich gut geblieben. Einzig die mitgelieferte ThinkVantage-Software ist nach meinem Geschmack besser geworden. Waren die OSDs zu IBM-Zeiten noch sehr an die Farbgebung der AS/400 orientiert, ist jetzt alles im Thinkpad-Stil: überwiegend Schwarz und ein bisschen Weiß.

Bei der Energieerfassung gibt es auch ein kleines Update:

Nachdem ich lange darüber gegrübelt habe, wie ich die Sandwich-Platine am besten an der Hauptplatine befestien könnte, ist mir gestern eine Lösung eingefallen:

Ursprünglich wollte ich nach Buchsenleisten mit etwas längeren Kontakten, wie sie auch beim Arduino verwendet werden, ausschau halten. Diese scheinen hier überhaupt nicht erhältlich zu sein. Die zweite Idee war, die Buchsenleisten sehr knapp einzulöten, sodass sie nach unten reichen. Nachdem der Abstand doch sehr groß ist: lieber nicht.

Nachdem ich gestern noch nach Ulm musste und ich sowieso nicht mehr genügend doppelreihige Buchsenleisten hatte, machte ich einen kleinen Abstecher zum hiesigen Mükra. Beim Preis der 2x36er Buchsenleiste (3,95€ – Drei Euro Fünfundneunzig!) musste ich zwar sehr schlucken, aber was hilft’s?

Wie ich daheim feststellte, hat sich der Kauf doch gelohnt: Im Gegensatz zum deutlich preiswerteren Pendant bei Reichelt lassen sich die Buchsenleisten mit gedrehten Kontakten ohne Probleme aufeinander stecken. damit kann man den Platinenabstand von 1mm+8mm+1,5mm um weitere 8mm vergrößern. Wobei das schon fast zu viel des Guten ist. etwas weniger würde auch reichen.

Kurz darauf kam mir die Idee: Ich hatte noch kleine Buchsenleisten  (Höhe etwa 3-4mm) mit Präzisionskontakten  von Reichelt herumliegen. Draufgesteckt: passt!

Auf den AVR-NET-IO gesteckt und Lochrasterplatine aufliegen lassen: Die Platine schwebt vielleicht einen halben Millimeter über den Buchsen der Platine von Pollin: Perfekt!

Ich hoffe, dass die Platine Anfang nächster Woche schon fertig ist, bin sehr gespannt, ob und wie gut sie funktioniert – zumal dadurch auch die stromfressenden Linearregler durch Schaltregler ersetzt werden.

Achja: von der neulich erwähnten Launchpad-Bestellung habe ich bis jetzt leider noch nichts gesehen/gehört. TI hat auch auf meine Anfrage über den Liefertermin (und die Bitte, den Gutscheincode „HALFMSPTOOL“ hinzuzufügen) noch nicht reagiert.

Am fleißigsten ist man,…

…wenn man eigentlich etwas anderes machen muss.

Das geht denke ich vielen so: man muss auf Klausuren lernen, macht aber erst alles andere. Da ist dann plötzlich alles auf Hochglanz poliert, alle nervigen Dinge erledigt oder das Zimmer bis in die letzte Ecke aufgeräumt (bei mir nicht so). Ich habe mich die letzten 2-3 Abende (nach dem Lernen natürlich!) etwas mit PWM-Chips von TI auseinandergesetzt, um endlich mal mein Moodlight in die Gänge zu bekommen. Nach etwas Gehirnverbiegen funktioniert es nun sogar erstaunlich gut. Nur werde ich wahrscheinlich bei bem 12-Bit-PWM bleiben, da ich mit dem 16-Bitter (bei 16MHz AVR-Takt) auf nur 120Hz PWM-Frequenz komme (mit kleinen Tricks evtl. noch aufs doppelte, mehr wird aber schwierig).

Da es dann aber unweigerlich zum erwähnten Regenbogeneffekt kommt und man die Farbübergänge bei den ersten Versuchen nicht einmal erahnen kann, hab‘ ich keinen größeren Drang.

Nur sind meine LEDs (RGB, je Modul ca. 3 Watt) etwas zu schwach. Dieses Monster werde ich zwar nicht einbauen, muss aber trotzdem schauen, dass ich etwas mehr Lichtleistung in das Teil hier bekomme.

Die nächsten Tage ist aber nochmal Breitseite an Lernen angesagt, da werde ich vermutlich auch die Stunde basteln am Abend streichen. Ab 13.07. wirds dann zum Glück wieder etwas ruhiger und ich kann mich endlich wieder um die Energieerfassung kümmern…

Diesen Sommer: MSP430

Gerade eben habe ich zwei MSP430 Launchpads geordert. Der Preis ist in Anbetracht der übliches Evalboards absolut unschlagbar.

Zwar sind die hochkarätigeren Prozessoren bei Reichelt noch rar und teuer, aber hey: Dreifuchzig (wenn der Wechselkurs so bleibt) für ein Board mit zwei Prozessoren und inklusive Versand – das lohnt sich nur für den Käufer!

Bin mal gespannt, wann die Dinger hier ankommen – die Nachfrage scheint massiv zu sein…

Erfolg!

Nachdem ich schon am überlegen war, ob ich  nicht einfach „’ne Stange RAM“ an den AVR klemme (hat zumindest dieses hier ein kleines Stück nach vorne gebracht, Entdecken eines blöden Design-Fehlers inklusive) habe ich mir noch etwas Gedanken über die Verarbeitung der Daten gemacht.

Resultat: Geht, man muss nur asynchron denken 😉

Hintergrund ist der: Das Versenden der Daten ist nicht, wie ich anfangs annahm, dass man einfach nacheinander die Pakete „rausballern“ kann. Stattdessen fordert das Stack die einzelnen Pakete beim an. Man muss sich also danach richten, was der Controller von einem will.

Hier im LAN funktioniert es tadellos. Wie das Verhalten ist, wenn einzelne Pakete verloren gehen (und dadurch nochmal angefragt werden) habe ich noch nicht geprüft. Ebenso ist noch ein kleiner Glitch möglich: Da das Ganze mehr oder weniger asynchron ist (muss ich nochmal nachschauen, ob/wo Interrupts im Spiel sind) könnte es passieren, dass Daten während dem Schreiben in die Historie angefordert werden. Dadurch kann es (in Verbindung mit dem verwendeten Puffer) dazu kommen, dass durch die veränderten Werte Lücken entstehen oder die Strings länger werden, was zu einem korrupten String oder sogar Pufferüberlauf führen kann.

Nach meiner aktuellen Überlegung sollte es recht einfach sein, das in den Griff zu bekommen. Wenn ein Datensatz angefordert wurde, wird die Datenübernahme gesperrt. Problem dabei: Was, wenn die Abfrage fehlschlägt und nie zum Ende kommt? Lösung: Die Übernahme nur für eine gewisse Zeit sperren.

Wie auch immer: Zeit für die Horizontale!