My first full week as the driver of a DIY EV was…eventful.
Let’s start with the bad. On Tuesday, I did what you might call an ‘accidental full range test’. As in, I ran out of juice on the way to collect my daughter from a class and had to dump the car and jump in a taxi to get her. Because I haven’t really worked out the range yet, and nor do I have a real gauge in the car for how much juice is left in the batteries, this was perhaps predictable. Hope is no substitute for electrons.
In order to recover the car I had to swap the modules for spares on the side of the road. This attracted a few comments and interesting conversations. Big thanks to my friends and neighbours Brook and later Owen (who has a very cool YouTube channel) for helping me to push the car to safety.
I was worried I hadn’t done the batteries much good, running them down to about 2.8V. But actually with some gentle charging on the bench, hooked up to a variable power supply and a bodged version of the battery management system, they came back up to voltage with very little persuasion.
Turns out 2.8 is about the minimum specified for the pack so I hope there’s no lasting damage. Unfortunately, I killed yet another Teensy – the microcontroller running the BMS – in the process. These are parts that should not be consumables.
Gauges and charging
So, a ‘fuel’ gauge is something of a priority. This is a work in progress, using a CANbus-controlled variable resistor hooked up to the original sender lines (thank you Jamie). I could put this behind the dash but I’m trying to avoid taking that out for now.
Also a priority is automating the charging process. For two reasons. First, I can’t really afford to spend hours sat outside in the car with my laptop while it charges. And second, I keep screwing up the charging sequence and blowing pre-charge resistors.
Typically I’m very careful the first time, and get the car mostly charged. Then I have to go in for some reason, so have to turn everything off, disconnect my laptop and take it inside. When I come back out, I do things in a slightly more distracted fashion. e.g. forgetting to stop SavvyCan from spamming out the messages that control the charger before I connect it up and turn the car on. As soon as the car gets to pre-charge, the charger kicks in and the pre-charge resistor is toast. Again, these are parts that should not be consumables.
Automating charging isn’t quite as easy as it sounds. Right now my car has three modes:
- On (pre-charge)
‘Run’ means that everything is on: dc-dc converter, cooling pumps, vacuum pump, power steering. But it is also the only mode in which the contactors are closed – i.e. the batteries are connected directly to the charger and inverter and not through the pre-charge system. For charging, I want the contactors closed but only the water cooling system enabled. And I want drive to be disabled.
Originally I did this with a switch and a button in the cabin.
- The switch turns on the ‘on’ mode relay. This has the water cooling pumps and fans on it.
- The button tells the inverter to close the contactors, but it doesn’t turn on the ‘run’ relay. This locks out the direction switch, ensuring the car stays in neutral.
The problem with this right now is that the switch is also connected to the ‘charge mode enable’ line on the BMS. If this were working properly, it would start the BMS communicating with the charger to tell it to pull in current BEFORE the contactors are closed, blowing the pre-charge resistor (and possibly more). And, because the dc-dc converter enable line is connected to the ‘run’ relay, the 12V system wouldn’t charge while the high voltage system does. This could see the 12V battery go flat due to the drain of the cooling pump.
So, what’s the answer?
- I add an extra relay that is latched when the ‘charge’ button is pressed. I move the ‘charge mode enable’ line to this relay, and add a connection for the DC-DC converter enable line here. This will need a diode on it to stop current feeding back to the rest of the distribution from the ‘run’ relay. This is the simple option
- I finally get around to adding a proper VCU – vehicle control unit – an extra brain that does a lot of the smart stuff. Like turning things on and off at the right time.
- I add a sensor to detect when the charging plug is inserted (another Jamie innovation). This triggers the ‘on’ relay and the charge mode line to the BMS. The BMS code is tweaked to send a ‘run’ signal over CANbus to the inverter and ONLY starts sending out the commands to the charger once this is confirmed. I move control of the DC-DC converter over to the BMS as well, having it trigger a relay whenever the inverter is in run mode, ensuring the 12V battery remains charged.
3 is my preferred option right now. It avoids me redoing all the wiring on the project at this stage and keeps things very neat. To that end I have printed a case for Jamie’s PP detector (snigger) and installed that under the front bumper next to the charging port (which I had forgotten also needs redesigning/mounting, and is broken anyway as I tripped over the open flap cover). I am building up a second BMS to modify and test code on and hoping to get that installed at some point in the next week, along with the additional wiring to the ‘run’ relay.
Right now, CANbus communication between the BMS and the inverter isn’t working and I don’t exactly know why, so that might be the stumbling block. Investigation needed.
Cooling & heating
The one fix I have made to the car is on cooling, albeit only a temporary measure. On my first days driving the car, the temperature sensor on my inverter was frequently hitting 100 degrees and the coolant temperature was settling out after a long journey (~5 miles is long at this stage) at about 70 degrees. My radiator is too small and there just wasn’t enough water in the system to give it a chance to chill.
At the same time, it is getting bloody cold and I needed some heating. So I figured why not plumb the cooling loop into the heater matrix and kill two birds with one hose?
It half worked. Cooling is sorted. The inverter rarely spikes over 70 now and the coolant settles down at more like 30 degrees, especially if you put the heater fan on low.
But because the cooling has been so effective, I don’t really get any heat into the cabin from the blowers. Ultimately, I need to pull the whole lot out, fit a bigger radiator, and a proper heater and pump to the heater matrix, as well as a header tank to fill it. I’m assembling parts for this but not there yet.
Speed and range
Let’s finish up the bad stuff before I get onto the good. Simply put, range is a fraction of what I was hoping for. And the performance is a bit pathetic.
At the moment, maximum range seems to be about 15 miles. I was expecting over 20 and hoping for more like 30-40. I’m not sure why it is so poor but it may be connected to the issues with performance.
The car still trips out if you try to increase the current to the motor beyond certain levels. When it works at these higher levels, performance is more respectable. But the frequency of the cutouts and their unpredictability makes it undriveable.
There are various things that could be causing this and I will try to address them. But I have come to the conclusion that fundamentally this motor is too small to deliver the sort of performance that I want. So I will definitely be upgrading that before too long. In fact, not sure if I have already mentioned it, but I already have the upgrade…
The good things
OK, that’s all the negatives out of the way. What about the good stuff?
The car drives brilliantly. Despite all the changes to the weight distribution, handling remains confidence-inspiring and I’m now quite happy chucking it around roundabouts. There are a few knocks and rattles to sort but otherwise, I’m very happy to just get in it and go (assuming it is charged).
It puts a massive smile on my face every time I get in it.
So, lots to do but still very happy with where I’m at. So happy, I have started project 2…