Weihnachten ist „überstanden“ und das neue Jahr ist da. In dem Sinne wünsche ich allen Besuchern hier (und natürlich allen anderen auch) ein gutes neues Jahr!
Vorsätze? Nein. Vorsätze sind wie Wahlversprechen: Viele werden gemacht, wenige gehalten – und manchmal ist es genau das Gegenteil als dem, was man vorher versprochen hat. Vielleicht erklärt das auch die Doppeldeutigkeit von „versprechen“ (siehe Bedeutung 1 und 2) 😉
Versprechen in beiden Bedeutungen trifft mein aktuelles Langzeitprojekt ganz gut – Lange versprochen, aber bis jetzt noch nicht „geliefert“.
Heute hatte ich endlich auch wieder Zeit (und Muße), mich mit der Modellbahn-Lichtsteuerung zu beschäftigen. Letztes Jahr habe ich schon mit der Serverseite (Protokoll auf PC-Seite) angefangen (mit Python). Leider war die Kommunikation etwas unzuverlässig – speziell, wenn mehrere Nachrichten nacheinander gesendet wurden. Das Problem war/ist unabhängig von der Baudrate, also kein Problem der Übertragung selbst. Auch wurde vom „Client“ (dem Atmega8) kein Fehler an den Status-LEDs angezeigt. Debuggen ist also bitter nötig, aber wie? JTAG hat der Mega nicht, DebugWire auch nicht, UART wird für die Kommunikation benötigt und dazu läuft auch etwas halbwegs timingkritisches auf dem Mikrocontroller, das auch noch SPI verwendet. I²C fällt auch flach, weil es im dümmsten Fall deutlich bremst.
Was bleibt: Pins wackeln lassen. Der erste Pin durfte für die Verarbeitungszeit jeder eingetroffener Bytes wackeln – kein Problem, auch das etwas längere Verifizieren der kompletten Nachricht erzeugt noch keine Laufzeit-Probleme. Der zweite Pin „morst“ die Status der Zustandsmaschine – passt auch. Der dritte Pin durfte anschließend wackeln, sobald ein Paket abgeholt wird:
Unten klafft eine große Lücke, in der die Pakete nicht abgeholt wurden. Die Zeit wird vom PWM-„Task“ reserviert, in der nix anderes gemacht wird. Mist. Immerhin weiß ich jetzt, woran es liegt. Verkürzen der „Sperrzeit“ geht nicht (zumindest nicht wirklich einfach), also muss etwas anderes gemacht werden. Die Pakete müssen in eine Warteschlange. Habe ich mir vorher schon überlegt, wollte es aber nicht implementieren, weil Aufwand. Jetzt also doch. Das ist was für morgen…
Genauso bin ich am überlegen, ob es nicht sinnvoll wäre, das Protokoll etwas abzuändern. Momentan gibt es kein Acknowledgement und bei dem Fehler wurde mir klar, dass es im Prinzip gar nicht so dumm wäre…
Aber noch was komplett anderes:
Was mich Ende letzten Jahres noch gefreut hat: Tom hat seine Spendenaktion noch erfolgreich beendet – deutlich früher, als er vermutlich erwartet hat. Ich bin wirklich gespannt, bis wann die Solaranlage dann tatsächlich steht.
Falls ihr euch wundert, warum das Design vom Blog zwischenzeitlich anders ausgesehen hat: Aus irgendwelchen Gründen sind die XML-RPCs in WordPress 4.1 kaputt (wird u. a. für die Android-App verwendet) und eine mögliche Fehlerquelle sind die Themes. Also umgestellt, getestet und gleiches Problem gehabt. Die Fehlerursache war bis jetzt trotz Logs vom Server, von WordPress und der Android-App und Wireshark-Mitschnitten nicht auffindbar. Keine Ahnung, ob und wann das wieder funktioniert. (und nachdem ich gerade versehentlich als Admin gepostet habe, konnte ich auch gleich das Theme wieder umstellen *g*)
Als ob das nicht genug gewesen wäre, ist letzte Woche die ein Monat alte SIM-Karte in meinem Handy kaputt gegangen. Erst dachte ich, dass das Netz von der Telekom einfach nur mies sei, nachdem ich JWD keinen Empfang hatte und sich das Telefon trotz sicher wieder vorhandenem Netz nicht wieder einbuchen wollte. Als dann das Telefon Netz anzeigte, aber Telefonie, SMS und Datenverbindungen verschmähte gab es einen erneuten Reboot, der mit Kartenfehler quittiert wurde. Andres Handy, gleiches Bild. Andere SIM-Karte (auch Telekom): funktioniert – also musste es die Karte sein. Hmpf. Ich hoffe, die Ersatzkarte, die „demnächst“ eintreffen sollte, funktioniert zuverlässiger.