Hacking Phocos CXN

 

Ich mag Daten. Ich kann Ewigkeiten damit verbringen, aus Zahlenkolonnen bunte Diagramme zu basteln, um mir und anderen Zusammenhänge zu visualisieren.

Deshalb kam für meine Solaranlage auch nur ein Laderegler in Frage, der seine Betriebsdaten über eine Datenschnittstelle zur Verfügung stellt. Beim Phocos CXN10 kann ich solche Betriebsdaten, wie z.B. die Batteriespannung, PV- und Laststrom, Ladezustand, uvm. über eine serielle Schnittstelle auslesen.

Um die Daten auszulesen, erwartet der Hersteller allerdings vom Anwender, dass er sich ein wahnsinnig teures Adapterkabel kauft, das mehr kostet als der Laderegler selbst. Deshalb beschloss ich, die Sache selbst in die Hand zu nehmen (Disclaimer: seid euch im klaren, dass man beim unvorsichtigen Herumbasteln das Gerät schnell zerstören kann).

Dabei waren mehrere Probleme zu lösen:

Problem 1: Die vierpolige Steckverbindung der Schnittstelle besitzt ein relativ selten genutztes Format. Nach mehreren Fehlkäufen diverser Batterie-Steckverbindern und anderen Kuriositäten bin ich letztendlich auf den passenden Stecker gestoßen: JST-Stecker

Problem 2: Serielle Schnittstelle ist nicht gleich serielle Schnittstelle. Zwar nutzen die meisten Geräte den UART-Standard zur Kommunikation, allerdings muss man immer auf den Spannungspegel achten. Der Phocos ist besonders hinterhältig. Statt für die Bezugsspannung (GND) den Minuspol der Batterie zu benutzen, benutzt er den Pluspol (+12V). Versorgt man nun das Auslesegerät (Arduino – s.u.) mit dem Lastausgang des Ladereglers und verbindet die Bezugsspannungen der beiden Geräte, gibt es einen Kurzschluss zwischen 0V und 12V. Glücklicherweise bemerkte ich diesen Fauxpas noch rechtzeitig, bevor eines der Geräte Schaden nahm (das Kabel war allerdings schon sehr verschmort).

Abhilfe schafft eine galvanische Trennung der seriellen Verbindung mit einem ADUM1201-Baustein:

Problem 3: Wie spreche ich überhaupt mit dem Phocos? Das ist das einfachste Problem gewesen. Der Arduino Uno, das Mikrocontroller-Board schlechthin, bietet mit der SoftwareSerial-Funktion die Möglichkeit, den Laderegler auszulesen, weiterzuverarbeiten (z.B. umrechnung der Daten, bilden von Mittelwerten, etc.) und über die USB-Schnittstelle weiter an die einen Computer, z.B. den Raspberry Pi, zu schicken.

Problem 4: Welche Sprache spricht der Phocos überhaupt? Das war schon ein wenig mehr kompliziert. Nach langer Recherche stieß ich in einem französischen LabView-Forum auf die Protokollbeschreibung der seriellen Schnittstelle. Darin steht, dass man dem Laderegler nur ein Leerzeichen schicken muss, dann fängt er an zu quatschen.
Das sieht dann z.B. so aus:

024 022 000 112 147 160 000 000 255 010 090 017 -002 -002 000 0000 0003 000 000

Diese Zahlen bedeuten z.B., dass die Batterie eine Spannung von 12,6V besitzt und gerade 73% “Füllstand” (SOC) hat.

Meinen kleinen Beispiel-Arduino-Sketch kann man hier betrachten (ohne Gewähr).

3 Gedanken zu „Hacking Phocos CXN

  • 25. August 2014 um 11:10
    Permalink

    Hi:
    Congratulations for your job… I was testint your scope and woks fine. I tested with Phocos CX. I work with 24 volts and i changed some dates, but i want add two parameters more. I write de lines in scope but checking i have this error..
    „recordl was not declared in this scope“

    in function ‚void loop()‘:
    error: ‚recordl‘ was not declared in this scope

    Can you help me?

    Many thanks and god job.

    Antwort
  • 25. August 2014 um 13:44
    Permalink

    Hi nasked,

    The variable that is used to read the data from the charge controller was named „record1“ and you used „recordl“

    I updated the Arduino sketch with better names for the variables.

    Please let me know if that is working for you.

    Regards,
    Jonas

    Antwort
  • 8. September 2014 um 19:29
    Permalink

    WOW – SUPER!!!
    Leider zu spät …… ich hab meinen Laderegler vor 2 Jahren zerstört. Hab versucht einen Laptop (im Batteriebetrieb) mit 3 Stecknadeln an die 3 PINs des CXN zu koppeln. Erst ging nix (mit dem CX-I Software) und mit einer anderen …..
    Naja, obs die war oder ob ich einen KURZSCHLUSS fabriziert habe weiss ich nicht. SCHADE – war wirklich der Geilste Laderegler den ich hatte!

    Habe anschliessend mehrer billige gekauft ….
    Der SOLAR30 ist ok aber nicht so gut wie ein CXN + CXM-Display. Eigendlich schade das die Phocos so wenig verbreitet sind im gegesatz zu den Steca PR1010.

    Antwort

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

This site uses Akismet to reduce spam. Learn how your comment data is processed.