Nulleinspeisung DIY...
 
Benachrichtigungen
Alles löschen

[Oben angepinnt] Nulleinspeisung DIY mit Balkonsolar

197 Beiträge
38 Benutzer
23 Likes
37.8 K Ansichten
Dan Dyse
(@dan-dyse)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 31
 

So, habe nun noch ein wenig rumgespielt ... keine Änderung, es kommt immer das gleiche aus dem Apparat. 😐
Doch, eine Änderung gibt es: habe ihn wohl schlussendlich abgeschossen. Roll Na zumindest ist eine Sicherung durch, die ich natürlich nicht zu Hand habe ... muss ich morgen erstmal Ersatz beschaffen.

Habe noch ein Bild bei Aliexpress von einem Ersatz RS485-Board gefunden ... sowas gibts bei meinem 500W Soyo gar nicht - interessant aber: die anderen Bilder dort sehen so aus wie bei mir. Hat denn der "große" Soyo so ein Board schon dabei? Question

https://de.aliexpress.com/item/1005003766395100.html?pdp_npi=2%40dis%21USD%21US%20%248.76%21US%20%248.76%21%21%21%21%21%40211b43e416667074073981217ee4f7%2112000027093264862%21im&gatewayAdapt=glo2deu


   
AntwortZitat
Sebastian
(@syssi)
Vorsichtiger Stromfühler
Beigetreten: Vor 3 Jahren
Beiträge: 99
 

Ja, bei dem grünen Board handelt es sich um den UART-TTL auf RS485-Konverter.


   
AntwortZitat
 wsm
(@wsm)
Vorsichtiger Stromfühler
Beigetreten: Vor 1 Jahr
Beiträge: 61
 

Ich probiere den Datenaustausch mit einem Atmega und RS485-Modul.

Aber mit welchen Bytes funktioniert der Datenaustausch?

Danke


   
AntwortZitat
(@solarboy)
Vorsichtiger Stromfühler
Beigetreten: Vor 1 Jahr
Beiträge: 4
 

Hallo zusammen,

ich bin neu hier und auch gerade dabei ein kleines BKW mit (Nacht)Nulleinspeisung (Ziel ca. 100-150W) zusammenzustellen. Ich habe mich nach einigen Videos und Artikeln auch für den (kleinen) Soyosource 500W entschieden. Hauptgrund war vor allem die mögliche Fernsteuerung der Leitungsabgabe über ein ESP8266 mit digitalem Poti (bspw. X9C503) oder auch direkt dem DAC (0-3.3V) eines ESP32.

Zudem hatte ich gehofft, analog zu den "großen Brüdern" mit 1000/1200W, etwas aus der RS485-Schnittstelle des 500W-Modells herauszuholen (vllt. sogar direkte Regelung statt digitalem Poti?). Ich habe Soyosource schon wg. des Protokolls der Schnittstelle angeschrieben, aber leider keine Antwort erhalten. Bisheriger Plan war deshalb ein mögliches Reverse-Engineering des Codes im Flash der MCU (habe einige Erfahrung mit Ghidra), die wie bspw. im Video von @Solaranlage (siehe Bildchen) zu sehen, ein STM32 zu sein scheint (wie auch in den großen Modellen mit 1000/1200W). Zur RS485 der 1000/1200W Modelle findet man zum Glück hier im Forum, auf secondlifestorage.com und auf Github ja einiges...

Leider hat der über ebay Kleinanzeigen gekaufte 500W Inverter (siehe Bildchen, 2022-07-V5) inzwischen eine andere MCU. 🙁 Der STC8 (auf dem MCU-Board steht bei mir "SCT8-V3") kann leider grundsätzlich nicht ausgelesen werden (Bootloader hat keine entsprechenden Funktion). Ich bin mir nicht sicher, ob man in China aus Preisgründen oder gerade deswegen vom STM32 umgestiegen ist. :o)

 

Da ich beim Auslesen der RS232 des STC8 per Python 9800 baud (Pin-Header aufgelötet) nicht wirklich weiter gekommen bin, wollte ich mal in die Runde fragen, welche MCU in euren Soyosource Invertern (500er oder auch 1000er Klasse) verbaut ist (bitte aufgedruckte Version des "Mainboard" angeben!). Habt ihr evtl. sogar ein (altes) MCU-Board mit STM32(!) "übrig", das ihr mir für ein paar Tests (Flash auslesen) vorübergehend zusenden könntet?

Außerdem würde mich interessieren, ob sich neben der MCU in den 500er-Invertern (Modell 2021-XX grünes Board und nun 2022-XX rotes Board?) auch die Bestückung (vor allem unterhalb des MCU-Steckboards) geändert hat (siehe Bildchen)? Steckt(e) vllt. sogar in allen Soyosource Invertern (klein/groß) das gleiche MCU-Modul (früher STM32 heute STC8) oder gab es nur beim 500er Modell ein MCU-Wechsel auf den (billigeren) STC8. Wie sieht die Bestückung eures 500/1000/1200W Inverters - auch unter dem MCU-Board - aus (Fotos per PM willkommen!)? Hab ihr im Falle es 500er Modell den Chip U4 (rechts oberhalb der MCU) bestückt?

Auf Aliexpress habe ich den Shop Jesudom(R) gefunden, der offenbar MCU-Module für die Soyosource 1000/1200W Modelle verkauft...zu sehen sind auf den Bildern sowohl Module mit STM32 aber auch der (neue?) STC8. Hat jemand bei diesem Händler schon gekauft? Was habt ihr bekommen?

Hier zu guter Letzt noch ein paar Mitschnitte der RS232 Daten des STC8 (angeschlossen TX/RX-Cross-Over an einen USB-FTDI-Adapter). Es kommen scheinbar nur Daten, wenn der Inverter im Batteriebetrieb ist (Poti aktiv). Die MCU spuckt immer 5 bytes im Sekundentakt aus, wenn der Inverter produziert. Auf der 12V-Seite hatte ich nur einen kleinen 10Ah Bleiakku zur Verfügung, deshalb war ich in der Leistungsmessung etwas nach oben beschränkt (bei ca. 100W war Schluss).

-----

25W (kleinste Poti-Stellung), 11.95V

496,1,31,0x1f   <----  scheint mehr oder weniger linear mit der Ausgangsleistung zu variieren (bis 100W getestet)
496,2,0,0x0
496,3,99,0x63   <----  kann auch 96, 97, 98 sein. Netzfrequenz (durch 2)?
496,4,0,0x0
496,5,113,0x71  <---  variiert in anderen Mitschnitten zwischen 105-114. Vielleicht die Netzspannung?

1504,6,31,0x1f
1504,7,0,0x0
1504,8,99,0x63
1504,9,0,0x0
1504,10,115,0x73

2512,11,31,0x1f
2512,12,0,0x0
2512,13,99,0x63
2512,14,0,0x0
2512,15,119,0x77

(...)

-----

42W, 11.75V

976,1,48,0x30
976,2,0,0x0
976,3,98,0x62
976,4,0,0x0
976,5,113,0x71

1984,6,48,0x30
1984,7,0,0x0
1984,8,98,0x62
1984,9,0,0x0
1984,10,111,0x6f

2992,11,48,0x30
2992,12,0,0x0
2992,13,98,0x62
2992,14,0,0x0
2992,15,111,0x6f

(...)

-----

74W, 11.35V

867,1,191,0xbf
867,2,0,0x0
883,3,98,0x62
883,4,0,0x0
883,5,109,0x6d

1874,6,191,0xbf
1874,7,0,0x0
1874,8,98,0x62
1874,9,0,0x0
1874,10,105,0x69

2882,11,191,0xbf
2882,12,0,0x0
2882,13,98,0x62
2882,14,0,0x0
2882,15,95,0x5f

(...)

----

Hier noch das Python-Skript zum Auslesen der RS232 des STC8 über zusätzlich aufgelötete Pin-Header auf dem MCU-Modul.

-----

#!/usr/bin/python3

import serial
from time import time

t0 = int(time()*1000)
s = serial.Serial(port='/dev/ttyUSB0',baudrate=9600,timeout=0)
print("connected to " + s.portstr, flush=True)
count=1
while True:
for c in s.read():
t = int(time()*1000) - t0
print(str(t) + ',' + str(count) + ',' + str(c) + ',' + hex(c), flush=True)
count = count+1
s.close()

-----

Freue mich auf eure Rückmeldungen! Smile


   
AntwortZitat
(@danielm)
Vorsichtiger Stromfühler
Beigetreten: Vor 1 Jahr
Beiträge: 83
 

um die Bautrate festzustellen wäre ein Oszi,  oder ein logicanalyzer praktisch. 

Das günstigste wäre so ein teil:

https://www.amazon.de/AZDelivery-%E2%AD%90%E2%AD%90%E2%AD%90%E2%AD%90%E2%AD%90-Logic-Analyzer-gratis/dp/B01MUFRHQ2/ref=sr_1_12?keywords=logic+analyzer+usb&qid=1673375442&sprefix=logic+anal%2Caps%2C134&sr=8-12

 

Mit der Software von saleae kann man das teil auslesen, 

https://www.saleae.com/de/

 

Dann hängste das an GND und den UART und siehst high und low signale. 

Damit kannst du die Zeit messen, wie lange da ein high/ low anliegt und die baudrate berechnen.

 

 

 


   
AntwortZitat
(@solarboy)
Vorsichtiger Stromfühler
Beigetreten: Vor 1 Jahr
Beiträge: 4
 

Keine Bange, bei der Baudrate der RS232 des SCT8 von 9600 bin ich mir recht sicher. 😉

- Pulsebreite 100us im Oszi und Logic-Analyzer
- Dekodierung der 5 Bytes im LogicAnalyzer analog zum Pythonskript

 

 

 

 


   
E-t0m and danielm reacted
AntwortZitat
 5v3n
(@5v3n)
Vorsichtiger Stromfühler
Beigetreten: Vor 1 Jahr
Beiträge: 12
 

Moin,

 

erstmal Danke @dan-dyse für den Verweis auf diesen Thread.

Ich hab auch einen SoyoSource 500/600 mit 12 Volt und bin auch über die RS-232 aka RS-485 gestolpert.

Meiner Meinung nach ist es so das hier TTL mit 5 Volt eine RS-232 vorliegt, welche über einen Adapter (meine sowas bei Ali gesehen zu haben) mit 3 Optokoplern zu RS-485 gemacht werden kann. Ohne die Platine ist es aber wohl "nur" RS-232. Der mittlere PIN scheint einen Takt rauszugeben, ggf. den Takt in dem die Daten lesen soll?!
Wenn man NICHT jede Sekunde liest sondern alle 0.5 oder 2 Sekunden ist das "Bild" unstabil.

Mit einem gefundenen C# für Windows und etwas gespiele (9600 Baud, gelesen jede Sekunde) ergibt sich bei mir nach 2 Frames folgendes Bild:

----------
Byte 0: 96
Byte 1: 0
Byte 2: 105
Byte 3: 0
Byte 4: 130
Byte 5: 0
Byte 6: 0
Byte 7: 0
----------

Byte 0 entspricht etwa der Einspeiseleistung (hier 96), mein externes Wattmeter zeigt "113.2".

Poti am Max sind es "240" zu Wattmeter "229.7" und Poti am Min sind es "28" zu "32.5".

Byte 2 ändert sich eigentlich nie und könnte "/2" = Frequenz sein?
Byte 4 könnte (!) man ggf. als Spannung interpretieren "*2"?

Halt alles sehr grobschätzig, keine Ahnung ob das so gedacht ist. Prüfsummen scheinen es jedefalls keine zu sein.


   
AntwortZitat
(@tobimg)
Vorsichtiger Stromfühler
Beigetreten: Vor 1 Jahr
Beiträge: 28
 

@5v3n 

Viel aufwand um das protokoll herraus zu finden. Bei meinem gtn-600 bin ich nur soweit gekommen das ich 5 Byte bei 9600 8N1 gesehn hab. Grob waren die letzten beiden Byte die anliegende Batteriespannung. Kann natürlich sein das sich die Firmware unterscheidet. Hab die Richtung aber aufgegeben und bin zur DigiPot lösung übergegangen. Ein Wemos und ein MCP4151 reichen um das Ding zu steuern.


   
AntwortZitat
 5v3n
(@5v3n)
Vorsichtiger Stromfühler
Beigetreten: Vor 1 Jahr
Beiträge: 12
 

Is ja auch mehr Spaß bzw. wäre halt schön gewesen direkt digital zu steuern als analog irgendwelche Widerstandswerte zu setzen.
Evtl. bau ich mir auch einfach nur ein Display wo ich sehen kann was, je nach Poti-Stellung, grad rausgeht. Reicht mir ggf. schon aus.

Der kleine 500/600 hat ja auch noch einen 4 poligen Anschluss, welcher auch an das CPU Board geführt wird, und beim großen 1000/1200er als Schnittstelle für das LCD und Tasten-Feld benutzt wird. Verbunden ist das alles, aber es funktioniert offenbar anders bzw. nicht.
Das Schaltungsdesign wird vermutlich irgendwie kopiert worden sein und der Rest ist dann über Software angepasst worden. Auch der Poti geht direkt an das CPU Board.
Könnte man ja mal versuchen was passiert wenn man das CPU Board vom Großen in den Kleinen verpflanzt. Scared  


   
AntwortZitat
(@tobimg)
Vorsichtiger Stromfühler
Beigetreten: Vor 1 Jahr
Beiträge: 28
 

Ich hab bei meiner Bastelei das CPU Board gehimmelt. Bei Aliexpress gibt es in verschiedenen Varianten für verschiedene Spannungen und extra für die 500W oder 600W. Hatte mir ein solches passend Bestellt. Weil ich nicht wusste ob es nur die CPU erwischt hatte hab ich noch einen neueren GTN-600 mit Spindelpoti gekauft.   Der ist im inneren fast identisch aber das Gehäuse ist kleiner und hat jetzt 2 Lüfter. Meiner meinung nach macht es keinen Sinn das Protokoll zu analysieren. Die ändern in der Firmware irgendwas und dann geht das alles nicht mehr.


   
AntwortZitat
 5v3n
(@5v3n)
Vorsichtiger Stromfühler
Beigetreten: Vor 1 Jahr
Beiträge: 12
 

Du hast vermutlich recht was die Spontanität des Herstellers betrifft, möglicherweise kann man den 500/600er auch garnicht steuern weil die Firmware nur den Poti abfragt.

Bliebe noch die Variante das CPU Board durch ein eigens zu ersetzen, aber ob der Aufwand lohnt ... vermutlich auch nicht.


   
AntwortZitat
(@johuebner)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 60
Themenstarter  

Gerade nicht so die besten Zeiten mit meinem Batteriesystem. Ich habe ein Relais eingebaut, dass das Ladegerät abschaltet wenn es nicht gebraucht wird. Doch damit fingen die Probleme an. Erst Verlust der CAN-Kommunikation und jetzt keine Kommunikation mehr mit dem Soyo 🤨 

Weder über RS485 noch über TTL. Wenn ich ihn ans Netz anschließe speist er eine Zeit lang mit um die 70W ein (vielleicht durch mein Labornetzteil begrenzt) obwohl es keinen Befehl dafür gibt. Es kommt keine Antwort auf die Requests über die TTL-Schnittstelle und keine Reaktion auf Leistungsvorgaben über RS485. Die blaue LED blinkt manchmal, manchmal ist sie ganz aus und manchmal immer an. Die grüne LED auf dem kleinen Schaltnetzteil flackert etwas. Unstabile Versorgungsspannung?

Habs auch mal über den PC mit USB-Adapter probiert, da kommt auch keine Antwort. Ich vermute dass ich irgendwie unzulässige Spannungen durchs System geschickt habe. Was mir nicht klar war, ist dass der DC-Eingang vom Soyo nicht galvanisch vom Logik-GND getrennt ist.

Jemand eine Idee?


   
AntwortZitat
(@johuebner)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 60
Themenstarter  

Update: Ich habe das Netzteil ausgebaut und die 12V Versorgunsspannung kommt jetzt von meinem Labornetzteil. Damit hört er zumindest wieder auf Leistungsvorgaben. Jetzt mal noch nach dem TTL Interface schauen...

Update2: aus der TTL Schnittstelle kommt definitiv nichts mehr raus, auch das mitgelieferte Wifi-Modul kommuniziert nicht mehr.

Ich habe den RS485 Konverter ausgebaut und direkt einen Logic Analyzer an RX/TX gehängt. So kann ich auch die Leistung regeln (Kommunikation geht also grundsätzlich) aber ich kann der Schnittstelle keinen Status entlocken. Also request nutze ich 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 , stimmt das?

Ansonsten ist die 5V Schiene irgendwie stärker belastet (270 mA). Der LDO der aus 12V 5V macht wird sehr heiß und steigt irgendwann aus. Dann muss ich mit externer Spannung 5V zufüttern damit ehr nicht aus geht. Ich hoffe ich finde eine neues CPU Board.

Diese r Beitrag wurde geändert Vor 12 Monaten 2 mal von johuebner

   
AntwortZitat
(@johuebner)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 60
Themenstarter  

Neues Prozessor-Modul eingebaut und das hat genau gar nichts gebracht 🤨 

Immer noch keine Kommunikation über die TTL Schnittstelle, weder mit dem Wifi-Modul noch mit meinem Skript. Durchgang ist aber da. Also entweder falsche Software drauf oder gar keine. Blaue LED blinkt aber, RS485 ist immer noch stumm, sowohl mit als auch ohne Pegelwandler.

Langsam geht mir das Ding aufn Sack.


   
AntwortZitat
(@johuebner)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 60
Themenstarter  

Zwischenfazit: hatte mir gemäß hier beim Händler Jesudom ein Ersatz CPU-Board bestellt. Griff ins Klo, weil es irgendwie nicht kompatibel ist.

Immerhin weiß ich jetzt, dass ein gutes CPU Board nur 7 mA zieht, während mein beschädigtes 150 mA zieht and heiß wird. Dass das Ding noch halbwegs funktioniert, ist mir ein Rätsel.

Also die UART Schnittstelle zum Wifi-Modul ist wiegesagt tot. Zusätzlich werden kleine Leistungsanforderungen nicht mehr sauber verarbeitet, also wenn ich 20W haben will bringt er 300W raus oder sowas. Über 50 oder 60W funktioniert es aber noch.

5V muss ich extern einspeisen, weil der Linearregler das kaputte CPU-Board nicht mehr sicher betreiben kann. Immerhin, das ganze ESS läuft jetzt wieder.

Jetzt stellt sich mir tatsächlich die Frage, ob ich irgendwann mal versuchen soll, Reverse-Engineering zu betreiben. Ich würde jetzt mal annehmen, dass der Prozessor die eigentliche Netzeinspeisung gar nicht in Software macht, sondern dass das irgendein Spezial-IC übernimmt, das vom Prozessor bloß Befehle bekommt. Auf die Idee komme ich deshalb, weil ich mir nicht vorstellen kann, dass der halbtote Prozessor noch sinnvoll Netzeinspeisung hinbekommen würde.

Mit vernünftiger Software müsste man dann auch die RS485 Schnittstelle vernünftig nutzen können und vielleicht ist noch etwas Leistungssteigerung drin...


   
AntwortZitat
Seite 8 / 14
Nulleinspeisung DIY...
 
Teilen: