Trying to get CAN communication working from an AFBMS to a GX

I am trying to get a GX to talk to a no-name battery that has an AFUPS BMS.
This battery is a “known-good” battery, it works with Growatt over either CAN or RS485.
I’ve changed the CAN options in SETTINGS, SERVICES, VE.Can Port to 500kb, as we do with Dyness batteries
I’m using a data cable with the same pinout as a Dyness cable, and it seems to work so far, in that i’m seeing valid packets, and candump sees the packets as valid

The GX (in this case its a EasySolar GX) is getting data, as shown in the State page - no dropped packets, no errors, and “ERROR-ACTIVE” as expected;

However … the next step is checking that the device shows up in the Devices list, which it does for a Dyness, but not for this battery

My understanding of VenusOS is that something similar to a udev rule fires when CAN traffic is seen, and depending on the look of the packets, a decision is made as to what this CAN device is. If its a battery, the action is different to if its a CAN enabled MPPT for example.

In a Growatt, this would be manual - i.e. you would set the “Protocol Number” to 01 or 02 or 03 if your BMS talked RS485, or to 51, 52 etc if your BMS talked CAN. The majority of batteries work on 51, but 52 is necessary for those that speak a different dialect of CAN.

I know that PACE bms works - communicates without error, and sends the appropriate string that is used for the battery name in the Device List. Some of our no-name batteries are PACE, but this one is AFUPS.

I was wondering if anyone on the Victron team, maybe @alexpescaru with knowledge of the internals can point me in the right direction for how to get some debugging info on what’s going on.

So far, this is what i can see on candump

root@nanopi:~# candump -n40 -e -x -a can0
  can0  TX B E  305   [8]  00 00 00 00 00 00 00 00   '........'
  can0  TX B E  307   [8]  12 34 56 78 56 49 43 00   '.4VxVIC.'
  can0  RX - -  311   [8]  02 40 00 00 03 E8 04 29   '.@.....)'
  can0  RX - -  312   [8]  00 00 00 00 01 00 00 10   '........'
  can0  RX - -  313   [8]  14 DE 00 00 01 0E 64 64   '......dd'
  can0  RX - -  314   [8]  27 0D 27 10 00 07 00 01   ''.'.....'
  can0  RX - -  319   [8]  C0 0D 10 0D 09 0C 08 10   '........'
  can0  RX - -  320   [8]  00 00 00 00 64 62 BA 25   '....db.%'
  can0  RX - -  311   [8]  02 40 00 00 03 E8 04 29   '.@.....)'
  can0  RX - -  312   [8]  00 00 00 00 01 00 00 10   '........'
  can0  RX - -  313   [8]  14 DE 00 00 01 0E 64 64   '......dd'
  can0  RX - -  314   [8]  27 0D 27 10 00 07 00 01   ''.'.....'

I never see IDs above 320

My current theory is that the battery is not sending 351, 355, 35A, all of which are mandatory?

Thanks team.

A quick update.

There is a field in the provided software where you can switch the protocol from Growatt to Victron (and about 6 other brands), but this field only appears when the password is entered.

I changed the protocol to Victron, and now i’m getting the right message IDs in candump;

 can0  TX B E  305   [8]  00 00 00 00 00 00 00 00   '........'
  can0  TX B E  307   [8]  12 34 56 78 56 49 43 00   '.4VxVIC.'
  can0  RX - -  356   [8]  D3 14 0A 00 04 01 00 00   '........'
  can0  RX - -  35A   [8]  A9 AA AA 02 A9 AA AA AA   '........'
  can0  RX - -  35C   [8]  C0 00 00 00 00 00 00 00   '........'
  can0  RX - -  35E   [8]  52 6F 61 72 50 6F 77 65   'RoarPowe'
  can0  RX - -  35F   [8]  4C 69 0A 0A 00 00 00 00   'Li......'
  can0  RX - -  370   [8]  52 6F 61 72 50 6F 77 65   'RoarPowe'
  can0  RX - -  371   [8]  72 20 34 38 2F 31 30 30   'r 48/100'
  can0  RX - -  372   [8]  01 00 01 00 00 00 0F 00   '........'
  can0  RX - -  373   [8]  03 0D 05 0D 2A 01 2C 01   '....*.,.'
  can0  RX - -  374   [8]  30 31 00 00 30 30 30 30   '01..0000'
  can0  TX B E  305   [8]  00 00 00 00 00 00 00 00   '........'
  can0  TX B E  307   [8]  12 34 56 78 56 49 43 00   '.4VxVIC.'
  can0  RX - -  375   [8]  30 34 00 00 30 30 30 30   '04..0000'
  can0  RX - -  376   [8]  30 31 00 00 30 30 30 30   '01..0000'
  can0  RX - -  377   [8]  30 31 00 00 30 30 30 30   '01..0000'
  can0  RX - -  378   [8]  00 00 00 00 00 00 00 00   '........'
  can0  RX - -  379   [8]  10 27 00 00 FF 25 00 00   '.'...%..'
  can0  RX - -  380   [8]  30 4A 48 50 42 59 38 45   '0JHPBY8E'
  can0  RX - -  381   [8]  32 52 30 30 51 30 30 30   '2R00Q000'


Battery capacity is not yet correct, but i’ll take that up with the manufacturer and get a new firmware - its sending the capacity as mAh, but the GX is interpreting it as Ah, and the number of online/offline is wrong, but these are minor;

I now have another working system!

Thanks everyone!

Interesting :face_with_monocle:, thanks @RoarPowerNZ glad we could help…or did we :face_with_raised_eyebrow: a problem solved by yourself is a lesson learned by everyone else!

Thanks for sharing. :+1:

Thanks for sharing and finding out how it works, for future references.
Also a thread with some info similar with this topic, here:

1 Like

Thats one of the threads that helped me :slight_smile:

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.