SmartSolar 150/45 won't communicate with Cerbo over VE.Direct, but will over usb

To the experts;

I have a SmartSolar 150/45, which worked for me out of the box while connected to my Raspberry Pi venus OS.

I configured it, and sent to the customer.
The customer tried various VE.Direct cables, but couldn’t get it to communicate. The MPPT worked, it just wouldn’t talk to the GX, and therefore wouldn’t show up on the VRM.

The customer sent it device back, and it worked for me, i did an upgrade of the FW, and sent it back.

It still worked for the customer (from an MPPT pov) but didn’t communicate.

I went to site, replaced the cerbo first (cerbo s-gx, replaced with cerbo gx) which I considered was the most likely fault, but no resolution to the issue. Then i replaced the SmartSolar, and the replacement worked fine.

Back at the factory; factory reset the cerbo S-GX, and set it up again, plugged in a 150/35, which showed up in the device list. Plugged in the suspect 150/45, and it doesn’t show up. SSH into the cerbo, and nothing shows in the logs at all when plugging in the suspect 150/45. Plugging in the known-good 150/35 causes logging on a bunch of logs in /var/log/vedirect*/current , so i know i’m watching in the right places. For completeness, i watched all the logs;

tail -f /var/log/*/current

Here’s the strange thing; the same suspect device comes up happily using a USB-serial VE Direct cable. This is the reason that it all looked fine to me , but not for the customer … I was using a Raspberry Pi, which requires me to use the USB-serial cable.

What could be going on, and is this an RMA or can i resolve this in software?

Just to be sure;

  • The VE.Direct cable is fine - tested this on other systems, and always works, plus i tried 4 different VE.Direct cables
  • The Cerbo S-GX is fine, as was the Cerbo GX - talks to all the other devices, including a MP and 2 other SmartSolar MPPT units.
  • The suspect SmartSolar 150/45 is mostly fine - its never skipped a beat on the MPPT side.
  • The fault is easily repeatable, and ultra consistant.
  • There is no issue with the VE.Direct socket that i can see - no damage, and the plug is firm, no issue with the pins being bent or missing, and anyway this same port works fine when the USB-serial VE.Direct cable is used.

This one has me stumped.

I have SSH access, so i can run any diagnostic commands y’all recommend.

Hi Rob

Have you put a multimeter between pins 1 & 4 on the VE.Direct connector to check the voltage, i believe it should be 5v on this MPPT.

This might help to if not already checked

Thanks for your reply Dave.

Both controllers (the perfect 150/35, and the suspect 150/45) have 5.58v between pins 1 & 4

I’ll read that VE.Direct protocol FAQ.

Hi Rob

To quickly rule out any obvious grounding issues, could you please check the ground pin on the VE.Direct connector and the following connections?

Disconnect the power ( i know you will just for anyone else reading this)

  • Connection to the ground screw on the side of the MPPT

  • Connection to the battery negative terminal

  • Connection to the PV negative terminal

Are both MTTP,s the same.

After checking these, could you measure the resistance from each of these points to the power on the VE.Direct connector?

Are the resistance (hopefully none) measurements the same on both MPPT,s?

After this we’re just down to the communication.

MPPT 150/35

VE.Direct pin 1 to bat neg = 0.3ohms
VE.Direct pin 1 to PV neg = 0.3ohms
VE.Direct pin 1 to chassis earth = inf. ohms

MPPT 150/45

VE.Direct pin 1 to bat neg = 0.4ohms
VE.Direct pin 1 to PV neg = 0.4ohms
VE.Direct pin 1 to chassis earth = inf. ohms

My multimeter leads are not perfect, 0.2 ohms with the probes shorted, so 0.3 vs 0.4 is actually probably 0.1 to 0.2 ohms. Either way, the response is the same for each MPPT.

Given that the VE.Direct cable doesn’t work, but VE.Direct via usb-serial works (which transfer data on the same pins 2 & 3 of the ve.direct sockat), and the data paths for ve.direct vs ve.direct via usb-serial are different in the cerbo (for example, at least the logging is different; vedirect.ttySx/current vs vedirect.ttyUSB0/current)
my conclusion is that something in the bad mppt is not connecting the data from the vedirect.ttySx device to whatever in the dbus stuff. My instinct is to look at udev rules but stepping back, this all happens in the cerbo which is not the suspect device - its the MPPT that has proven to be at fault?

So what happens differently on the MPPT when a usb-serial used vs a plain ve.direct cable?
One thing might be that the mppt is auto detecting the voltage on the tx/rx pins (pins 2 & 3) and auto-selecting something based on 3.3 vs 5v, so does ve.direct-usb-serial use a different signal voltage from plain ve.direct?