NOTICE:

This bug fix is not officially supported by Victron. Do not request support from Victron for any issues related to this bug fix, rather, contact us directly.

Information about this bug fix:

  1. We have submitted a pull request to Victron to implement this code into future updates of their firmware. We have not yet received any confirmation that they will do so.
  2. Until Victron implements this code, automatic firmware updates on the Cerbo-GX will require re-implementation after updating. For this reason we recommend leaving updates disabled until Victron implements our pull request.
  3. This change is not required if you wish to use the SK48v100 in an open-loop (no communication) configuration. This means an external SOC% monitor such as a SmartShunt or Lynx Shunt will be required.

Option 1 (Recommended): Current Connected Implemented Bug Fix

We highly recommend allowing the trained Current Connected Technical Support Team implement the bug fix on your Cerbo-GX. In order for us to do this, we must gain full access to the files of the Cerbo-GX. For security purposes, there is no way to do this from a remote location through the VRM Portal, so it is required to utilize your local computer connected to the same WiFi/ethernet network as the Cerbo-GX. We will fully explain this process here.

Recommended steps to take prior to calling Current Connected Support

  1. Connect the battery to your Cerbo-GX as described in the Communication Guide.
  2. Connect the Cerbo-GX to your home WiFi Network or mobile WiFi Hotspot. Alternatively, you can plug it to your network with an ethernet cable.
  3. Update to the latest firmware.
    1. Navigate to “Settings -> Firmware -> Online Updates”.
    2. Press “Check for updates”.
    3. If there is a newer firmware version, it will be shown under “Update available”. Press to update to the new firmware version.
    4. After any updates have been installed, make sure to fully disable automatic updates.
  4. Under “Settings ->Remote Console”, verify “Enable on LAN” is turned on. If it is not turned on, turn it on and then restart the Cerbo-GX.
  5. Obtain the IP address of the Cerbo-GX. If you are using WiFi, this will be located in the details of your current WiFi connection on the Cerbo-GX Interface. If using a hardwired (ethernet) connection, it will be under Ethernet settings. The Cerbo’s IP address is 4 number groups separated by a decimal point, usually starting with “192.168.” for example “192.168.1.100”. Take note of this address for later.
  6. Connect your PC to the same network as the Cerbo-GX.
  7. Install Teamviewer.
    1. TeamViewer is a comprehensive remote access, remote control and remote support solution that works with almost every desktop and mobile platform, including Windows and macOS. TeamViewer allows remote access to computers located anywhere in the world and use them as though you were there. Teamviewer is free and safe to use, and you are free to uninstall it when we have completed this process.
    2. Teamviewer can be downloaded from https://www.teamviewer.com/. Select “Free Download”. Do not install Teamviewer from any source aside from www.teamviewer.com
    3. Follow the on screen prompts for downloading and installation.
    4. Once installation is complete, open the program – you will see your “Partner ID” and “Password”. You will need to provide these to support in order for them to connect.
  8. Call technical support and provide them with all information listed above.
  9. The technical support team will then execute the steps as shown in the next section

Option 2: Install the Bug Fix on your own

WARNING:

If you attempt this modification on your own, any error will likely lead to a permanently disabled state [I.E. “bricked”] that we cannot help you resolve. Only attempt this if you are an advanced user and fully understand what you are doing. We will gladly implement the bug fix to your Cerbo-GX for you (recommended).

Every line of code in this article is CASE SENSETIVE. Make certain to follow our instruction, capitalization and punctuation precisely.

Before installing the patch, follow the steps listed in option 1 with the exception of installing TeamViewer.

Click on the photos for an enlarged view.

Locate the IP Address of your Cerbo-GX

This information can be located using the touchscreen connected to your Cerbo-GX.

If you are connected with a hard-wired ethernet cable, then this is listed under “Menu -> Settings -> Ethernet”

Alternatively, if you are using WiFi, this is listed under “Menu -> Settings -> Wifi -> [Your WiFi Network Name]”

Open Cerbo-GX Remote Console in Web Browser

On your computer at the address bar of your web browser, type the IP address of your Cerbo-GX. In the case of our sample here, the IP address is 192.168.33.219. If this doesn’t load, you may need to add an “http://” prefix, for example “http://192.168.33.219”.

This will pull up a webpage that looks similar to the screen of your Cerbo-GX. The best way to navigate the display is by using the keys in the blue “hotkey” panel on the right.

Tip: Instead of typing in the IP address, in some cases you can just use the link http://venus.local/, but this is not guaranteed to work every time.

Set Access Level

Normally, the system files of the Cerbo-GX are locked to prevent regular users from modifying them. Since we need to modify them, we must set our access level to Superuser.

To do this, navigate to “Menu -> Settings -> General” and then click to select the row that says “Access Level”.

Using the buttons in the “hotkeys” panel, press and hold the right-hand arrow button (for at least 3 seconds) until the access level changes to “Superuser”.

Enable SSH on LAN & Set Password

Under the option for “Enable SSH on LAN”, click the switch to enable SSH on LAN.

Click on the text entry box in the “Set root password” to pull up the entry field. We typically use the password “Victron”, but this can be any password of your choosing.

Connect via SSH

In this example, we will be using Windows Terminal, which is built into Windows 11. If you are using an older version, we recommend using Windows PowerShell, or a suitable alternative if using Mac/Linux.

Enter the following code, replacing [Cerbo-GX IP Address] with the actual IP of your Cerbo:
ssh [Cerbo-GX IP Address] -l root
You may be prompted with an authenticity notice and if you would like to continue connecting. If you get this message, just type “yes”.

Enter the root password that we set in the previous step. In our example, we will use “Victron”.

Check Effective Charge Voltage

Enter the following code:
dbus -y com.victronenergy.system /Control/EffectiveChargeVoltage GetValue
This will query the current effective charging voltage value. You will notice it is set to 52.4v, rather than the 57.6v that we need in order to fully charge the battery.

If you get a value that is anything but 52.4v, stop and contact Current Connected support. If you do not get a value here, then confirm that the battery communication cable has been connected to the Cerbo-GX before contacting support.

Why is the voltage so low?

The SK48v100 uses the same BMS protocol as a Pylontech battery. The catch is, a Pylontech battery is constructed with 15 cells, as compared to the 16 cells the SOK battery is constructed with. This means that Pylontech batteries operate at 48.0v as compared to the 51.2v that all other 48v nominal batteries operate at.

Normally this is not an issue as the battery instructs the inverter to target the correct setpoint. In this case, Victron needed to fix a over-voltage shutdown quirk and only ever anticipated Pylontech batteries to be a 15 cell configuration. Victron put a hard-cap on the charging voltage for any battery using the Pylontech protocol at 52.4v. In this patch, we are adding compatibility for 16 cell batteries using the Pylontech protocol, as Victron should have implemented from the start.

As you noticed in the previous step, the effective charge voltage is only 52.4v. After we implement our fix, we will check this again to make sure the fix was effective.

Enable File Editing

By default, the file system on the Cerbo-GX is mounted as read-only. In order to make the modifications required, we must remount it as read-write. Run the following code to remount:
mount -o remount,rw /

Change Directories

We must navigate to the correct folder containing the file we need to edit. Run the following code to change directories:
cd /opt/victronenergy/dbus-systemcalc-py/delegates/

Open in Visual Editor

Visual editor is a Unix file editor. Think of this similar to opening a document in Notepad.
vi dvcc.py

Locate pylontech_quirk

The code we are interested is the Pylontech Quirk Fix. We are going to insert on line 59. Use the arrows on your keyboard to scroll through the lines until you have located this code. Place your cursor as shown in the image.

Switch to Insert mode

As the file is opened, you cannot just start editing it like notepad, you must switch from view-only mode to edit mode.

To do this, press the “I” key. You will see an indicator at the bottom of the terminal switch to insert mode.

You can now enter anything you need.

This is where special attention and caution must be taken; a mistake here is guaranteed to corrupt your system.
There is NO UNDO! DO NOT TRY TO PRESS CTRL + Z TO UNDO.
If you make a mistake, start fresh – close the SSH window and start over.

Add New Code

Copy the code from this page and paste it into your SSH window. Sometimes, the final line-break does not copy over properly, in which case you may need to hit the “Enter” button on your keyboard to maintain proper formatting.
if charge_voltage > 55:
return (charge_voltage, charge_current, feedback_allowed, False)

Save & Quit

After triple-checking that there are no errors in spelling, capitalization and that the formatting is correct, press the “ESC” key on your keyboard, followed by the following command:
:wq
This will write the changes and then quit the Visual Editor, returning to the command prompt.

Reboot Cerbo-GX to load changes

reboot
A simple way to reboot is by simply typing “reboot” into the SSH console. Alternatively you can power-cycle the unit, but using the command is preferred. After rebooting, reconnect to the Cerbo-GX via SSH (close Windows PowerShell and re-open).
ssh [Cerbo IP Address] -l root
[Enter root password]

Verify Changes Worked

dbus -y com.victronenergy.system /Control/EffectiveChargeVoltage GetValue
Run the above snippet to query the effective charge voltage. This should return a value close to 57.6v but often is off a very miniscule amount. If so, you have successfully implemented the fix and your system is ready to use.

Revert Access Settings

Close the SSH session and return to the web browser showing the remote console. Navigate to “Menu -> Settings -> General -> Access Level”. Turn off the “SHH on LAN” selector. Select “Access Level” and then choose “User and Installer”. If prompted for the password, it is “ZZZ” by default. Disable Remote console on LAN if desired under “Menu -> Settings -> Remote Console”