Electric Installation in our Toyota HiAce 1994

Now, that we got our Toyota HiAce we thought it might be a good idea to add more power to the vehicle: in form of an 8s EVE LF280K LiFePO4 battery and a Victron MultiPlus Compact 24/1600/40-16 inverter/charger. In the following, we describe our setup and the reason why we built it like this.

The Requirements

  1. The sustained output power of the inverter must be over 1'200W.
  2. Charging via AC via EVSE or generator must be possible.
  3. Charging via alternator must be possible (but is not the norm).
  4. Charging of 60% of the battery (from 20% – 80%) via AC should take less than 180min.
  5. The installation should use the minimum amount of space possible.
  6. We should be able to use our existing Eve LF280K cells, thus limiting the overall current to 140A.
  7. As the vehicle will not have a diesel heater, it should be possible to run a 150W infrared heater for at least 3 * (4+2)h = 18h (^= 2'700Wh).
  8. In addition, the battery should be able to run a refrigerator with an average power consumption of 50W for at least 72h ^= 3'600Wh (next to other power consumption).

Design Considerations

  • With a maximum current of 140A and a cable run length of 1.5m, we should plan with a cross section of at least 35mm2.
  • Basically, with Eve LF280K cells we have three choices regarding the battery size:
    • 1* 4s (“12V”) Configuration
      4 * 3.2V * 280Ah = 3'584Wh
      This would lead to a required nominal AC charge power of at least 716.8W/h and a charge current of at least 56A/h.
    • 2* 4s (“12V”) Configuration
      2* 4 * 3.2V * 280Ah = 7'168Wh
      This would lead to a required nominal AC charge power of at least 1'433.6W/h and a charge current of at least 112A/h.
    • 1* 8s (“24V”) Configuration
      8 * 3.2V * 280Ah = 7'168Wh
      This would lead to a required nominal AC charge power of at least 1'433.6W/h and a charge current of at least 56A/h.
  • The Victron MultiPlus Compact xx/1600VA inverter/charger provides enough sustained power output (while being smaller than the non-Compact edition). Depending on the voltage of the battery, this will slightly impact the amount of charge current.
  • To charge the battery via the alternator we would need a DC/DC converter that depends on the battery configuration as well (either 12-12 or 12-24). So, let’s have a look at the battery first.

1* 4s (“12V”) Configuration

The smallest, lightest and cheapest configuration. But capacity requirements regarding the fridge are only fulfilled, if there are no other loads. In addition, the discharge current is relatively high (scratching the maximum discharge rate of 0.5C).

2* 4s (“12V”) Configuration

More complex setup, as each battery needs a separate BMS, which leads to the need of an aggregator for both batteries to correctly report SoC and calculate CCL and DCL. In addition, more cabling and fusing is required (and probably to a large bus bar). Comes with the advantage of having a redundant battery in case a single battery fails. Most expensive configuration.

1* 8s (“24V”) Configuration

Custom battery build needed, as there is not enough space for a typical 2 * 4 cells setup behind he seats. But, only a single BMS and thus less wiring is needed. Comes with a slight disadvantage of not having native 12V from the battery. This is actually not an isse, as all our DC devices also accept 24V. Cells can better balance voltage differences across a single 8s bank.

The Setup

In the end, I decided for the 8s configuration, due to less complexity. Splitting the 8s configuration across two cell blocks seemed to be an acceptable compromise.

As a regular MultiPlus 24/1600/40-16 would not fulfill my AC charge requirements, I had to decide to either add a second MultiPlus or to add a dedicated charger. I opted for a Phoenix Smart IP43 Charger 24/25 instead of a second MultiPlus. The MultiPlus in parallel would always consume 10W though most of the time I would not need the output power. Whereas, the Phoenix would only need power, when connected to AC. And reconfiguring the MultiPlus every time I charge was not an option for me. And yes, I lose redundancy – but also save some money (Phoenix is much cheaper). So, in the end the nominal charge power is 40A + 25A = 65A, which lets me charge at 1'560W reaching 60% within 165min.

The HiAce comes with a 70A alternator, so I chose a Orion-Tr Smart 12/24-15 DC-DC Charger. With this charger, I could run the engine in standby and still have the car heater running. And this is probably the predominant use case (if charging via alternator at all).

For the DC bus bar I went for a Victron Lynx Distributor, so I could use and install MEGA fuses. Having a 1’000A bus bar seems certainly overkill, but a separate bus bar and fuse box that accepts 35mm2 cable and MEGA fuses would be not be much smaller.

I changed the existing AC inlet of the HiAce to Neutrik PowerCON True1 TOP (congrats to the marketing department, I am still amazed how this name rolls of the tongue) and installed 2 Siemens compact 16A C RCBOs (external AC in, internal AC out). I am aware that theoretically I could support more than 16A on the internal AC out (via PowerAssist). If ever needed, I can replace the RCBO with a 20A version.

I added a VE.Bus Smart Dongle to the MultiPlus and opted against a complete (Raspberry-based) GX installation. The reason, I keep a USB MK3 with me anyway (in case I need to reconfigure the MultiPlus) and still have (Bluetooth) access to the most important settings and information of the MultiPlus. With the GX, I would to be running a WiFi hotspot (and consuming more energy as well). The disadvanage of not being able to use DVCC with information from the BMS is clear to me and accepted.

I selected a B2A8S20P JK-BMS that has an integrated 2A balancer and an RS485, CAN and heat port. In case, I ever add a GX device, I am still able to connect them and use DVCC.

The Specs

  • Nominal power (“capacity”)
    8 * 3.2V * 280Ah = 7'168Wh
  • Maximum discharge power 1’600VA (1'280W, capped by the inverter)
    with a maximum current of 80A/63A/55A (at 2.5V/3.2V/3.65V)
  • Maximum AC charge power 1'560W
  • AC Charging from 20% – 80% in 165min
  • Maximum DC charge power 360W
  • MultiPlus self-power consumption 10W

The Build

As mentioned before, due to space constraints I had to split the battery in 2 parts (with each having 4 cells). Instead of using utz RAKO boxes I used 12mm (sanded) plywood which I did not screw together but tied down with a banding/tensioning tool and a ratchet strap. With this setup, I can easily access und disassemble the cells if needed, while still having a sturdy case. Both cell blocks are connected with a (blue) Anderson SB175 connector.

The BMS itself is mounted to the side of one of the cases (I took extra care to use short screws, in order not to drill into the cell casing). I used M6 Weidmüller 35mm2 90° angled compression cable lug to get the wire away from the BMS and into the bus bar. All other compression cable lugs are DIN 46235 from Klauke (M6 35mm2 on the cells, and M8 16mm2/35mm2 on the bus bar).

The AC and DC wires are all Eland H07RN-F (except for the last two points):

  • Charger to bus bar, battery to bus bar: 35mm2
  • Cell block to cell block: 2 * 35mm2
  • Alternator to DC-DC converter, DC-DC converter to bus bar: 16mm2
  • External AC in to RCBO, RCBO to inverter/charger (both directions), RCBO to internal AC out: 3G2.5mm2
  • For the balancer cables on the cell blocks I used WAGO 221 inline splicing connectors with levers and bullet connectors with 2.5mm2 wire and M6 ring terminals.
  • For the connection of the Inverter/charger to the bus bar, I used the Victron installed 25mm2 welding cables.

Images

The installation is barely visible behind the seats
View from the back with preliminary wiring
Connection of cell blocks with SB175 connectors, cell block 2 and DC-DC converter
Lynx Distributor with cell block 1
Inverter/charger with space for second charger and cell block 2 (left)

Note: the Phoenix charger is not visible on the images, as I am still waiting for it to be delivered.

Charging via EVSE

Conclusion

We now have more than 7'000Wh of additional energy without losing any storage space for roughly 2'850 CHF/2’500 GBP (parts without labour). We can survive an extended weekend of 72h without recharging while still being able to enjoy amenities as using a coffee machine, heating and refrigerator. In case of longer periods of usage, we can recharge at any EVSE, or via shore power. And in emergencies, we can also charge via our Honda EU10i or via the alternator of the vehicle.

The battery is placed directly over the engine which helps in cold weather conditions to easily warm up the batteries to a chargeable level.

The installation can be monitored via Bluetooth (Victron Connect and JK-BMS app).

Recovering a Victron MultiPlus Compact 12/1600/70-16 after a failed firmware update

The other day, I received my Victron MultiPlus Compact 12/1600/70-16. One of the first steps to do upon commissioning was to update the firmware. In my case from v481 to v502.

With my Windows PC running the latest VictronConnect App and a MK3 to USB-C Interface, I connected to the MultiPlus and enabled the advanced settings by entering the infamous zzz password (which you officially can only get from an official Victron training or distributor or simply by searching the internet).

I was offered to install 2606502.vff to which I happily clicked OK. So it seemed, I was running on a new microcontroller with 230V (hence 26) and really had a MultiPlus Compact 12/1600 (06). But I did not know this at that time.

Note: For a list of the current model numbers see the document VE.Bus firmware versions explained and its link to VE.Bus firmware versions explained on Professional Victron Energy (account needed).

After a couple of seconds into the update process, the operation stopped by telling me something failed. And after a restart, the only thing I could see was the yellow LED constantly flashing as soon as power was connected to the device and regardless of the main switch position.

Victron MultiPlus Compact flashes yellow after failed firmware update

When I tried to reconnect with the VictronConnect app, the detection phase took very long – but the MultiPlus was not recognised.

VictronConnect trying to detect the MultiPlus after the failed firmware update
Detection unsuccessful after the failed firmware update

Even when I tried the “Force detection” option (which is intended to be used after a failed firmware update) no usable result was yielded.

“Force detection” did not work either

So, then I resorted to VEFlash (which is deprecated and has to be selected explicitly when installing the Victron tools on Windows).

But this did not work either, as it could not find anything behind the MK3:

VEFlash failed to recognise the MultiPlus

However, having a closer look at the hints VEFlash gave me before the recovery I was confused that VEFlash asked me to unplug the AC power source. How would I be able to update the firmware? Via DC? And why would it matter anyway which power source was connected?

VEFlash hint at not using AC power on a MultiPlus Compact

So I carefully re-read the VE.Bus Configuration guide and apparently the connection would have to be made via DC as it is pointed out in Chapter 5 Connecting:

MultiPlus Compact requires DC power source

How strange. And even stranger – it worked!

Using a Blue Smart Charger as a DC power source for the MultiPlus

As soon as I connected a Blue Smart IP65 Charger in “Power Supply” mode to it (and configured a voltage of 14.4V) the “Force detection” option in VictronConnect worked.

Note1: I did not alter any of the DIP switches as recommended by VEFlash.

Note2: when reading the manual I learned about the firmware numbers and where to download them. The current firmware is on https://updates.victronenergy.com/feeds/VEBus/firmware-archive/ and not on https://professional.victronenergy.com.

I was then again presented with the option of a firmware update which eventually succeeded.

And the MultiPlus is running happily on 2606502 ever since …

Connecting a BYD Battery-Box Premium LVS 8.0 to a Victron MultiPlus-II 48/3000/35-32 and a Venus OS Raspberry Pi 4

The other day, I connected my BYD Battery-Box Premium LVS 8.0 to a Victron MultiPlus-II 48/3000/35-32. Here are the steps I took to do it and some errors I ran into.

The Battery-Box needs to communicate via CAN with the inverter. And as Victron inverters do not come with a CAN port by default (unless you go for a MultiPlus-II GX or EasySolar-II GX) we need a GX device. Originally, I wanted to use my Victron Cerbo GX for that, but since we moved into the caravan the device is gone missing. Luckily last year, I supplied myself with a couple of Raspberry Pis (at least model 3 and 4 are supported) that could run a Venus OS and act as a GX device. And as I was not the first one doing that, I thought it would be just too easy – well, it was easy after I did everything right.

Normally, Victron requests to use a VE.Can to CAN-bus BMS Type A cable to connect to a BYD battery. This is actually an ordinary CAT 5e network cable with RJ45 connectors where only the relevant CAN pins (and GND) are connected.

VE.Can to CAN-bus BMS Type A cablec pin layout

Note: on the original Victron Type A cable, all three pins seem to be connected:

VE.Can to CAN-bus BMS Type A cable

In order to screw the wires to the CAN hat terminal, I used uninsulated ferrules. Otherwise the Cat 5e wires would have been too soft and light for the terminal.

Installing Venus OS on the Raspberry PI 4

For the Raspberry PI 4, I followed the documentation and installed the standard (and not the large) image. At that time, v2.93 was the newest version (see here for directory of all versions). I uncompressed it and used Win32DiskImager to write the OS to a MicroSD card (all done on a Microsoft Surface Go2 running Windows 11).

I then enabled remote access via SSH by becoming superuser and setting a root password.

Note1: at first, I did the install with a Raspberry Pi 3 Model B V1.2 which also worked fine. However, the CAN device on the Victron UI then did not show any packets but worked without problem.

Note2: The Raspberry Pi 4 is a model B Rev. 1.5 (I mention this, as I saw comments that indicated that there might be a difference between different revision from 1.2 onwards).

Note3: I activated the “Mobile” tile to be able to change the charge current via the overview screen.

The CAN driver then had to be installed separately. As I did not have direct internet access from the Pi, I used the offline install method with a USB memory stick.

Installing SetupHelper

As written in the documentation, I copied the compressed installation files as venus-data.tar.gz to the root of the USB drive and restarted the Pi.
To verify the automatic installation was successful check if there is a new menu item Package manager at the end of the Settings list. If not visible check if you can find SetupHelper in /data. You can always manually copy it from the SDCard (use mount to see where the card is mounted) and then run setup yourself. I did a reboot after every package.

New menu item in Settings after installation of SetupHelper

Installing VECanSetup

Same procedure here. Copying the compressed installation files to the SDCard as /venus-data.tar.gz. Then run the package installation manually if for whatever reason the automatic install does not succeed. See below what the package manager should look like after the installation of both packages.

List of active packages in Package manager

Installing the driver

Configuring the driver had to be done from the terminal. There was a minor issue for me which I did not get right the first time. When asked to install an interface via the i option I actually had to type in a hat. I named the device hat0 and after the reboot it showed up as hat0 (can8) can8 spi0.0. In my case it was the “Waveshare 1-channel CANbus Hat 12 MHz crystal” (check the imprint on the silver part on the hat to see the crystal speed).

Configuring CAN bus

There is really not much to configure. The only option under “Services” is to set the communication speed which is 500kB/s for BYD. If the CAN adapter does not show up make sure the correct type has been selected in VeCanSetup. For me it just worked out of the box.

CAN hat showing up in Services
Setting the CAN speed for BYD Battery-Box BMU
Configured CAN bus

Before the BMS is connected the CAN should show up as ERROR-PASSIVE. As soon as the communcîcation worked it changed to ERROR-ACTIVE.

CAN bus ERROR-ACTIVE with actual traffic

Note: When I tried with the v2.93 on the Raspberry Pi 3 the RX/TX counters were always empty (but nevertheless worked). Via ifconfig the packets were correctly shown. But with the Pi 4 traffic was shown on the UI right from the start.

CAN bus traffic via ifconfig

I did not connect the CAN cable at that point but configured the Battery-Box and the inverter first.

Commissioning the inverter

I used a USB MK3 adapter with an RJ45 Cat 5e cable connected to the VE.Bus of the inverter to configure the MultiPlus.

I used VEConfigure 3 and VictronConnect (to be able to configure via VictronConnect I had to use the zzz password to get out of the read-only mode).

First, I updated the firmware of the MultiPlus via VictronConnect and then continued with VeConfig.

Basically, I set the inverter to off-grid and did not enter a country code. For the battery type I selected “Lithium Iron Phosphate” and accepted the default settings. I set the “AC current limit” to a maximum of 20A (the maximum my generator could handle) and activated the option to have it overruled by “Remote” (which can also be done via the GX Remote Console or VictronConnect).

Setting AC current limit via GX remote console

I also activated DVCC to later have the BMS tell the inverter when to charge and how to discharge. This was pretty much it. So I connected the MultiPlus via the VE.Bus and the MK3 cable to the Raspberry where it showed up instantly.

Inverter shows up after connecting VE.Bus to the Raspberry via MK3

Commissioning the Battery-Box

After assembling the battery which conisted of only stacking both battery modules on top of each other followed by the PDU on the very top I connected the BMU via the grey RJ45 to the PDU. After turning on the top most battery the BMU started as well and I was able to connecto to the WiFi of the BMU from the BeConnect app (Android or Windows both worked for me, the latter actually showed more information).

Via the app I pre-downloaded a current firmware and after switching to the BYD access point I applied the firmware (actually two different firmwares). After some waiting the new firmware had been applied and I could configure the basic settings: inverter manufacturer, number of battery modules.

At this stage I connected the 35mm2 cables from the battery to the inverter. I bought the cable preconfigured with the battery. And I used a Littelfuse JLLN-125X (class T) as a fuse between both devices.

Connecting the battery to the Venus OS

And then I connected the BMU to the GX. After some seconds, the inverter clicked and started charging. Essentially, DVCC turns on automatically (even if turned off before) as soon as the CAN communication is established.

In the GX overview the battery appeared and gave some additional information (see next section for details). All parameters between battery and inverter were exchanged automatically.

Things I noted

  1. The battery turns itself off after a while when no communication via CAN is possible. This behaviour is described somewhere in the BYD manuals.
  2. Charging the battery does not work when no CAN connection can be established. The inverter stays in “Absorption” mode with a current of 0A.
  3. A more detailed description of the pin layout can be found on the BYD manuals. See images below.
  4. The GND pin is not required for communication between the BMU and the VE.Can GX. Only BLUE for CAN-H and BLUE-WHITE for CAN-L are going into the CAN hat.
  5. In addition to the official web site bydbatterybox.com the web site eft-systems.de provides additional information and downloadable documentation.
  6. When charging the Battery-Box for the first time, I eventually reached a 100% SOC. Until that point the charge current stayed nearly constant at around 30A (Bulk). It decreased to around 1.2A and the inverter turned to “Absorption” but never stopped charging. At some point one of the cells reached a voltage of over 3.7V which resulted in a warning on the GX. Nevertheless, charging continued. I manually switched off the charger after the second time I received a warning due to high cell voltage. I would have expected to have the inverter automatically stop charging at a 100% SOC.
    Maybe the BMS only measures the charge voltage limit (CVL) which is defined as 58.4V and not the individual cells?
  7. The cells in a battery were not really well balanced (delta >= 100mV). I would have expected a better balancing. Actually, I do not know if the BMS has a balancer at all. I could not find anything in the documentation.
  8. Each LVS 4.0 has a capacity of 78Ah @ 51.2V = 3993.6Wh. The GX shows this information in the “Details” item within the battery. I could not find this information in the manual.
  9. The BYD manuals state, that the lifetime of the battery can only be achieved at 0.2C, which limits a single LVS 4.0 to 798.72W (or 1597.44W for a LVS 8.0) – this is a ridiculous small amount.
  10. Charge current was initially restricted to 38.4A by the battery, only after a day or so, the charge (CCL) and discharge current (DCL) went up to 128A. In my case the inverter only support 35A max, so no issue with that.
  11. Startup sequence
    Start top-most battery first by pressing the power button for a couple of seconds; then start the BMU if not automatically started; next start the inverter; then start the GX (in my case currently on the AC side).
  12. Shutdown sequence
    Turn off the inverter; turn off the BMU; turn off the individual batteries (keep buttons pressed for a couple of seconds); GX turns off automatically.
  13. Adding a CAN hat in VeCanSetup needs to be entered literally as a hat.
  14. Though I set the AC charge current to 20A the inverter only drew 16A at most.
  15. The WiFi of the BMU cannot be changed, nor the password.
BYD RS485 CAN pin layout, taken from the BYD BMU maual
BYD to Victron CAN pin layout, taken from the BYD BMU manual
BYD Battery-Box voltage and charge limits
Specification of BYD LVS 8.0, taken from the BYD manuals

Future improvements

  • I want to connect the Raspberry to the DC side with a 48V/12V step-down converter and a 12V to USB-C adapter. Inbetween I want to add a power bank, so the GX can be configured even if all power sources are down.
  • Replace the CAN hat with a USB CAN adapter
  • Strengthen the connection of the CAN wire to the CAN adapter
  • Try a Raspberry Pi Zero 2 W (when they become available again).

Conclusion

All in all, the installation was straightforward. A couple of uncertainties are probably normal when doing this the first time. I would have expected more documentation (articles, videos) for this to be around. But I could not find anything for a BYD, Victron, VenusOS via Raspberry setup. Maybe others are only using a Cerbo GX?

The batteries are well built (all IP55) but extremely bulky and pricey. With around 400 CHF per KW this is more than 300% of regular LiFePO4 cells. But nevermind, lead and delivery times are in the magnitude of months.

I would have liked the BMU to be integratable into one of the PDU boxes. Now it is just hanging around separately.

Would I buy another Battery-Box? Probably not – too pricey. But good for starters. Plug and play when used with Victron and a Cerbo GX.