Kopf hoch: Mindestens 3 Redesigns sind normal. Je einfacher die Platine, desto mehr Redesigns braucht sie. Wichtig ist sehr sorgfältig einen Todo Liste zu machen. Ansonsten ist der gleiche Fehler bei der nächsten Version noch immer drin. Man weis den Fehler zwar in dem Moment wo man ihn feststellt, aber später wenn man das Layout korrigiert vergisst man ihn weil die Gier auf eine schnelle Bestellung zu groß ist.
An den CAN Tranceiver Modulen sehe ich keine 100n Kondensatoren. Das ist deshalb wichtig, weil die auch noch auf einer Steckerleiste mit hohen Impedanzen sitzen. Daran hängt die Funktion natürlich nicht aber sie halten möglicherweise nicht ihre gesamte Spec in hohen Geschwindigkeiten. Grundsätzlich aber ich verstehe sowieso nicht warum du diese dämlichen Module nimmst wo du doch sowieso ein eigenes Layout hast.
@janvi das Beste ist: diese dämliche Module funktionieren, denn da habe ich nichts vertauscht {green}:crazy:
100n habe ich überall drin wenn man auf SMD setzt.
Warum ich die "dämliche" Module nutze: Die Platine ist an sich als Grundträger für käufliche Module gedacht. Vor allem für die Leute die nicht so tief in der Materie stecken und gerade mal 2.54mm Pinheader einlöten können.
Für die Profis gibt es Alternativweg mit SMD und mehr Funktionalität (wie z.B. MCP2515 ICs)
Bei den RS485 will ich nicht mal selbst so viel löten, denn diese sind gut, auch wenn die sehr groß sind.
Bei dieser Version setze ich nur noch auf C6, aber in groß, wie hier zu sehen:
Damit gewinne ich ein paar zusätzliche Pins, aber ich bessere Antenne/Empfang.
Auch wird damit der Platz für 3. fertigen RS485 Module gewonnen.
Somit sind wir bei 2x CAN + 3x RS485 wenn man fertige Module nutzt
Zusätzliche 2x CAN (also insgesamt 4x) wenn man MCP2515 IC verlötet.
Wenn man auf einen bestimmten RS485 verzichtet könnte man sogar RS232 IC drauflöten.
Ich habe noch Ein Goodie: DC-DC Stepdown Modul könnte man einlöten um z.B. von 12 V die Deye WR zur Verfügung stellt das Board zu versorgen.
Ich denke da an: Statt WLAN-Stick am Deye WR einen RS232->RS45 Kabel (muss man selbst machen) und den Deye über RS232 auslesen und gleichzeitig von dort 12V nehmen für die Stromversorgung.
RS232 könne man auch nutzen um bestimmte BMSen wie PACE per RS232 auslesen zu können.
Ach ja, ein aktuelles Board habe ich zum laufen bekommen und geht bald ins Produktivbetrieb (keine Zeit bis neue Boards kommen):
2x CAN (MITPylon) + 1x RS485 JK BMS auslesen + 1x RS485 Solis S5 Inverter auslesen + Wireguard damit ich Remotezugriff habe und evtl. mit OTA Updates nachbessern kann.
Kleines Update:
o.g. Board im Gehäuse ist nun produktiv im Einsatz, 2000 km von mit entfernt und sendet über Wireguard Daten Updates klappen auch nice.
In der zwischen Zeit habe ich noch ein Board zum Laufen gebracht. Eigentlich ohne HW Probleme. Die SW war aber herausfordend: irgendwo ist ein Bug drin in der ESP-IDF, denke ich, USB + 2xUARTs führen zum Bootloop.
Nach dem ich das gefunden habe habe ich nun bei mir im täglichen Einsatz:
2xCAN (mitpylon) + 1x RS485 Deye WR Logger + 1x RS485 JK BMS Logger.
Ich muss die Tage noch MCP2515 über SPI testen, dann kann ich neue Boards bestellen
Ich würde dein Projekt gerne nach bauen.
Bei mir läuft ein Deye 12k und in Kürze drei AkkuBoxen mir dem JK BMS.
C6 ESP und CAN Module hab ich mir schon besorgt. Einen Esp32 aus HA Esphome bekomme ich hin wenn ich den yaml-code habe.
Aber was muss ich den tun um diese Sache mit den zwei unterschiedlichen CAN Busen in den Griff zu bekommen.
erstmal gute Idee fertige Module zu verwenden. Falls noch ein Relayout / Modifikation ansteht die Option vorsehen galavanisch getrennte CAN und RS485 Module berücksichtigen wäre ein großer Zug.
Was bringt die galvanische Trennung in diesem Fall?
Welche Module hast du im Kopf?
Ich nutze es zwar, aber der Code ist nicht bereinigt und ich will nun doch anders machen.
Hintergrund: JK BMS über RS485 "zuhören" ist irgendwie nicht stabil, ich kann das jetzt nicht erklären. Entweder JK an sich ist nicht stabil (ab und zu geht Slave verloren) oder es liegt an der SW die mitlauscht.
Meine Idee ist nun, JK über JK-CAN Protokoll abhören und selbst die CAN Messages für WR zur Verfügung stellen. JK-CAN Bietet auch einzelne Zellinformationen, (ich glaube aber keine Steuerung, die eh nicht nutze).
Also eigentlich das hier: GitHub - Sleeper85/esphome-yambms: Yet another multi-BMS Merging Solution
Und an sich bin ich mir nicht mehr sicher ob ich beim C6 bleiben soll:
Es wird von ESPHome immer noch nicht vollständig unterstützt.
Wenn man eh schon MCP2512 für 3. und 4. CAN braucht, dann kann man gleich z.B. S3 nehmen und noch einen MCP2512 statt "nur Tranceiver" nutzen.
S3 gibt es in Zig varianten, C6 nur ganz wenigen und alle passen irgendwie nicht.
Ich bin aktuell mit anderen Dingen beschäftigt, weil es bei mir läuft, fasse ich es halt nicht an
Neues Board muss aber so oder so her.
Danke für die Infos!
Ich weiss, Du möchtest eigendlich nicht mit Platinen dealen ...
Liegt da bei Dir zufällig noch eine Platine rum für den grossen C6 mit RS485?
Im Moment hab ich hier so einen fliegenden Drahtverhau
Für das JK läuft hier schon ein anderer ESP über Bluetooth, aber dann könnte ich zumindest mal versuchen die Deyedaten noch mit über den C6 abzuholen. Das CAN-Kabel steckt ja sowieso im BMS-Port.
Ich hoffe ich gehe Dir nicht auf die Nerven...
Und natürlich ersetze ich Dir deine Kosten!!
Für den großen C6 habe ich generell nicht, daran habe ich nur gedacht.
Für den kleinen C6 "Super mini" (Lilafarbe bei Aliexpress) habe ich bestimmt noch eine Platine.
Wenn man nur 2x CAN mit den Steckmodulen und 2x RS485 funktioniert sie sogar.
1x CAN mit MCP2512 selbst löten kann auch funktionieren. 4. CAN ist komplett defekt (2x PINs beim CAN vertauscht )
Oh, Dann hab ich da was durcheinander bekommen.
ich dachte hier das wäre ein grosses Dev board. Also das letzte Bild mit Platine im Gehäuse und den zwei USB's
Ich brauche glaube ich die "Grossen" für bessere WLan.
Ach und SMD löten ist auch nicht wirklich meins (Augen werden nicht besser und richtiges Equipment hab ich auch nicht)
Die blöden RJ45 Buchsen mit den diagonalen Pins passen nur nicht auf meine Lochraster Platinen ...
Ähm, wenn du genau schaust, ESP32 liegt einfach nur so rum da auf dem selben Dev-Board wo das Lila-C6 drauf sein sollte, als Beispiel... passt vorne und hinten nicht
P.S. wenn man Lila-C6 nicht direkt auf die PCB lötet sondern mit Pinheader als Abstand, passt es mit der Reichweite. Aber gut, mein AP ist nur 3m Luftlinie entfernt
Galvanische Trennung ist immer ratsam. Gerade in einer Umgebung Wechselrichter / Batterie / Stromnetz und dann USB Verbindung zum PC da kannst du die schnell ein Groundschleife einfangen oder gar Zerstörung vom MicroController und / oder PC.
Es ist daher ratsam galvanisch getrennt die Interfaces zu gestallten.
Beispiel RS485
Für CAN habe ich direkt kein isoliertes DIY Modul gefunden aber TI hat einige ICs
Bei mir läuft eine HV-Batterie. Akuell habe ich die galvanische Isolierung so gelöst das ich mit den 4 BMS via BLE kommuniziere. Hier kann ich in keinem Fall die RS485 ohne galvanisch Isolierung benutzen da jedes BMS rund 80V Offset zum Nachbarn hat.
Wenn ich es richtig weiss die ESP C-Typen sind single Core. Bei WiFi und BLE ist da wahrscheinlich eine dual Core Variante die bessere Wahl.
Und wenn die SW komplexer wird sollte auch das von ESP beigestellte FreeRTOS mit Erwägung gezogen werden.
An sich gebe ich dir Recht, aber wenn man ein paar Punkte beachtet braucht man es IMHO nicht:
BMS und WR mit einander auch ohne Galvanische Trennung verbunden
das macht mein ESP genauso
Unterschied ist: Spannungsversorgung, und hier darf man die Spannung nicht aus der Batterie nehmen! Aus einem 230->5V Netzteil bzw. aus Deye 12V klauen kein Problem.
Bezüglich ESP32 Version: C3 ist an sich ausreichend, wenn man nur CAN manipuliert.
Wenn man RS485 aus JK klaut, RS485 aus Deye, 2xCAN dann C6 und S3. Diese beiden langweilen sich dann aber.
Gut ich kenne deine Umgebung nicht aber schon deine Vorsichtsmasnahme "Spannungsversorgung nicht aus der Batterie" zeigt die Problematik. Sobald mehrere Teilnehmer (zum Teil auch räumlich verteilt) miteinander drahtgebunden kommunizieren sollen gibt es Potentialunterschiede im Ground die nicht bekannt und nicht wegzubekommen sind.
Bei mir speziell mit 4 Batterieblöcken in Reihe für meine HV-Batterie mag die erste Batterie noch Ground als Bezug haben. Die nächste hat ca.80V als Bezug usw (160V / 240V)
Die Preise für die ESP sind für unsere Einzelstücke so gering das es keine Rolle spielt. Und wenn WiFi /BLE dabei sein soll ist Dual Core von Vorteil.