Charging ahead

It has been a while since my last update. My inverter control board was off getting repaired, the cold weather, rain and snow made outdoor work either unsafe or unappealing, and right up until the break I was buried with work. But getting there again now.

With everything else ruled out I decided to focus on my battery pack and charging. If you’ve been following this build blog you’ll know I had SimpBMS running on a Teensy 3.2 to manage the batteries (5 cells from a BMW 330e hybrid) and a 3.7kw charger from a Mitsubishi Outlander PHEV (same as my motor). Since the last update I picked up a cheap Pod Point Type 1 charging point (£60 from Facebook) which doesn’t have huge capacity but matches the charger. I had planned to modify the BMS software to control the charging but this required a bit more work than I realised. So in the short term I decided to experiment with a sketch for the Arduino Due shared by one of the forum members also playing with the Outlander charger.

This sketch has three inputs and one output. It pulls information from the charger over CAN about the battery voltage, AC etc. It connects to the PP (promixity pilot) pin of the charging port via a voltage divider. And it has a push button.

The charger itself connects to the other signalling pin from the charging port (I picked one of these up, also from an Outlander). When you plug in the charger, the Arduino sketch recognises that is plugged in and sends messages over CAN to the charger to tell it to start charging, and sets a target voltage.

I had a bunch of problems getting this all working. My charging handle had a lower resistance on the PP line than the person who wrote the sketch, so pulled the input pin to a level where the sketch went into an error state. The CAN transceiver I used received messages fine but refused to send them – I had to swap it out. But after some messing around there were some satisfying relay clunks and the system started charging.

I then started to look at the BMS and had to work out how to put it manually into the mode where it would monitor charging. There is a digital input for this which puts the sketch into the right state when pulled high, so it was just a question of identifying this from the code (pin 18 in this case).

With the BMS in charging mode I could monitor the voltage on my battery slowly climbing – I was limiting charging current to 1A out of a maximum of 15 since I didn’t have any cooling hooked up to the charger or the batteries.

After a while the charger did get a little warm but everything was clearly working so I turned it off until I could add some cooling in. The batteries seemed to be absolutely fine so I just added a pump and a bucket of water to the charger for now. After an initial small leak, this worked fine with some tightened hose clamps.

The bigger challenge now is coding for the BMS since I don’t want to add yet another chip into the system to control the charging. I have two spare pins on the connector that goes into the battery box. I’ll need a way to turn the BMS on and flip it into the appropriate mode so that it can begin charging and monitor it. And I’ll also need to get the external CAN interface working on it – something another forum member is kindly helping me with.

For now it’s going to be more indoor work so that is a sensible goal for a January that looks to be pretty packed workwise. Though I did get contributions towards some new tools for Christmas and have invested in some things that should make (finally) getting the rear subframe out and fixing the rusted spring mounts. Hello 18V angle grinder & impact wrench…

Other stuff

Writing these posts is always good for reminding me that while I don’t think I’ve done a lot, I actually have. Since the last post I have also:

  • Learned how to use SavvyCan to monitor and interpret CAN bus traffic, including writing my own DBC files – effectively little translators that turn the incomprehensible hex values includes in CAN messages into nicely marked-up signal readings like ‘Battery Voltage’ – see screenshot below for an example
  • Redesigned and reprinted the battery box connector to make it much simpler and more robust – see image below
  • Finished modifying the S-Box and all the relevant wiring from the BMW hybrid battery pack to replace my rather large and unwieldy (and expensive) high voltage junction box. No great loss as this can be used in future projects, but I could have shaved a few hundred quid off the cost of this project if I had done this first. Since this can sit inside the battery box, this also creates the space I needed to mount the charger under the bonnet.
  • Made some progress removing the rear subframe. All the brake lines had to be cut because the unions were completely seized but the handbrake cables are now out and I’m down to three very crusty allen-head bolts that don’t want to move. They have been repeatedly soaked in WD-40 and cleaned with a wire brush. Next step when it’s a bit drier and warmer is a few smacks with the hammer and maybe an assault with the new impact wrench.
Test charge controller
Charger and cooling pump
Screenshot from SavvyCan signal viewer
battery box connectors v2

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.