Solare Wechselrichteranzeige auf Commodore 64

Projekt Sunny 64

Da ich für meine eigene private solare Wechselrichteranzeige auf dem Mac bzw. auf einem ATMega644-Prozessorboard bereits 2010 eine neue Micro-Implementierung des Kommunikationsprotokolls geschrieben hatte (komplette Neuentwicklung, nichts von SMA), hab ich mich dem Spass hingegeben, diese auf eine noch kleinere Maschine als dem ATMega644 (was Prozessorleistung angeht) zu portieren. Dies sollte ein Commodore C64 sein! Noch ein wenig C-Code zusätzlich hinzugefügt und eine C64-Implementierung des SMAData2plus-Protokolls war 2011 fertig.

Auf dem C64-Bildschirm sieht das dann so aus:

Zur Abfrage über Bluetooth wurde ein alter Bluetooth-Chip seriell an den C64 angeschlossen. Die C64 Schnittstelle lässt leider nur sehr bescheidene 1200 bzw. 2400 Baud zu (mit Tricks etwas mehr, vielleicht später), dennoch ist die Anzeige schnell genug. Zusätzlich steuert der C64 auch noch ein Matrix-Display an, dass per I2C-Bus (eine Schaltung am Kassettenport) angesteuert wird.
Das sieht als Prototyp dann so aus (das C64-Mainboard liegt frei auf dem Tisch):

Aktuell hat das C64-Programm mit seriellen und i2c-Bus Diagnosefunktionen eine Groesse von ca. 115 Diskettenblocks (ca. 33 kb). Derzeit beschränke ich mich nur auf die Anzeige der aktuellen Messwerte und der Leistungshistorie der letzten 6 Stunden (wo soll er sie hinloggen, ins Internet auch schwierig zu übertragen).


Umgekehrt geht das auch: Der C64 ist sichtbar als Bluetooth-Gerät. Tja, wer hätte das mal gedacht....vor 30 Jahren...:-)


Das hier ist schlussendlich der sauber aufgebaute Bluetooth-Adapter am C64-Userport...


Nächste Stufe: Fertig gelötete Hardware, nun bereits ohne Steckboard. I2c-Bus-Interface am Kassettenport mit vernümpftigen Stecker statt angelötet, Bluetooth am Userport...

Update 10.03.2012:
Support für einen MOS6551 ACIA wurde hinzugefügt (komplett in 6510-Assembler). Damit kann man die Baudrate bis auf 19200 verwenden. Derzeit verwende ich diese Möglichkeit nur im VICE-Emulator, der die Hardware emulieren kann. Zusammen mit Hardware Handshake ist er jetzt sehr fix geworden.

Update 12.03.2012:
Die original Routinen für die RS232-Schnittstelle wurden durch neue ersetzt, mit denen es möglich ist, die Schnittstelle mit 2400 Baud zu betreiben. Durch dies und weitere Optimierungen kann der C64 die Momentanwerte des Wechselrichters in etwa 1 Sekunde abfragen (das ist schneller als so manches mir bekannte Geräte/Software; und das mit einem Bruchteil der Ressourcen...:-) )

Update 28.06.2017:
Nach 5 Jahren und unzähligen kleinen Verbesserungen ist das Projekt in meinen C64 mit Acrylglasgehäuse umgezogen...



... und es gibt endlich ein Video:

Sunny 64 from MOS6510 on Vimeo.


Das Flackern der Rahmenfarbe ist übrigens keine Bildstörung sondern eine Debug-Option: Zu den Zeitpunkten, an denen die Farbe von gelb auf rot wechselt wird in der Interrupt Routine das nächste Bit der seriellen Kommunikation dekodiert :-).