question

sparky961 avatar image
sparky961 asked

VE.Direct HEX "GET" commands significantly alter BMV-702 battery tracking?

I'm polling a BMV-702 through the VE.Direct port using HEX "GET" commands to read device registers.

I recently ran it overnight and found that the SOC dropped much more quickly than it should have. After some poking around, I noticed that when my polling code is active the current value reads much higher than when it isn't.

I can verify this by watching the on-device display change as I activate/deactivate my polling code while keeping the actual load current constant.

I'm requesting four registers every 2 seconds, and there's a delay of 50ms between each of those requests. Also I have a dummy request every 0.5 seconds to keep the TEXT protocol from activating. (Note 1: I'd love a way to disable reversion to the automatic TEXT output entirely, but I haven't found a way documented anywhere. Note 2: Longer delays between reads seem to have less effect, but it's still significant)

I'm very disappointed by this discovery as the comm port was the main reason for selecting this product over competitors. Even if this was expecting too much from the device, which is unlikely, I should NOT be able to affect the main function of it by requesting data through the serial port regardless of how I do it.

If I'm doing something wrong, I'd love to know how to rectify the problem. If I've discovered a bug/defect then everyone should know and something should be done about it.

BMV Battery MonitorVE.Direct
1 comment
2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

sparky961 avatar image sparky961 commented ·

After more testing, I've discovered this doesn't happen when I'm powering the device doing the polling from an isolated supply (laptop USB port). Initially, it was powered by the same battery supply, through a 12V to 5V USB socket adapter. Device is a Raspberry Pi 3B+ (3.3V), Tx and Rx connected directly.

Can anyone suggest why this is a problem and what I can do to successfully use my own direct serial connection?

[EDIT/UPDATE: I can't be certain that connecting through an isolated (floating) supply like a laptop doesn't still cause the same issue. I have been able to replicate the problem using different USB-ttl adapters and direct connection at 3.3V levels. The connection appears to cause (at least) the measured current being used to increase significantly, which of course affects everything else being calculated from this. ]

0 Likes 0 ·
2 Answers
mvader (Victron Energy) avatar image
mvader (Victron Energy) answered ·

Such issue would be totally not good at all for sure. But also a bit unlikely to have never come up anywhere else.

Are you sure nothing is up with your wiring? And how much current are you drawing from your VE.Direct port?

And have you tried with a genuine Victron isolated TTL -> USB cable? All connections, on a GX Device, and with that USB cable as well as anything else are always isolated.




1 comment
2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

sparky961 avatar image sparky961 commented ·

I'm willing to do more testing and report my results, but only if they will be seriously considered. Otherwise I'm wasting my time.

I have not tried a genuine Victron cable because I don't believe it should be required in order to interface with what should be a simple TTL UART. If it is, then why? I'm using a three wire direct connection with Raspberry Pi UART (GND, TX, RX). The inputs should be high impedance and draw minimal current. I'm not connected to the VCC of the BMV. It's been a while since I had it connected, but I recall the same issue was happening with a USB-TTL adapter.

Under these conditions, what sort of experimental setup would provide useful and trustworthy information to you?

0 Likes 0 ·
rljonesau avatar image
rljonesau answered ·

The change in readings will be due to a ground loop issue between devices, across the VE.direct connection.

I'm in the process of making a small isolation board, that basically uses an opto isolator to 100% disconnect the grounds of each device from each other.
True credit goes to @Rob Duthie 's work on the Pi Hat, where he shows the opto devices on the serial port connections. I found the SI8422 devices he has spec'd are not in stock at Mouser etc, but there are plenty of alternatives. I've chosen the ISO7021D FWIW - same pinout and purpose.


2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

Related Resources

VE.Direct protocol FAQ

Additional resources still need to be added for this topic