EV46 went for its first real drive around the neighborhood the other night. Sorry for lack of updates. Will try to back fill with some of the work that has been done.
Postmortem:
What went well:
It worked. Drove a few loops around my house and then up to the local store and back.
It feels quick even at 50% throttle limit.
Everything stayed in place.
What could go better:
All wifi based telemetry failed since it had been configured to talk to the house Wifi. I’ve ordered a LTE Wifi access point to add to the car to create a stand alone car network that should be able to failover between house wifi and LTE for uplink.
Jerkiness at very low speed. Others have reported the same, no solution right now.
Desperately need an alignment. Steering wheel about 45 degrees to the right to go straight. This caused the signals to not auto cancel.
No heat. Getting a 12V defroster from Harbor Freight to keep windows clear and the heated seat should keep me warm for now.
High effort at low speed from manual steering. Will eventually install Volvo Electric Power steering pump.
APM cooling fan is very loud. Will try sending a PWM signal to the MOSFET controlling it to see if I can control the speed. I can repurpose one of the T15 pins on the battery controller.
Occasional DSC flashes. Will look at CAN logs and may need to send more/better data on CAN.
Tach bounces around when not moving. It seems to settle down once RPM is actually > 750.
Hood is now stuck shut. Will have to see if I can get it open from underneath.
Oil pressure light comes on and eventually goes out on its own.
No monitoring of temp of MG1/MG2 and no cooling. Need to change the bias resistor. New resistors have been ordered. Inverter warmed up from 10C to 24C during drive. I have the cooling loop from a Prius ready to go in.
The engine is finally out. My plan worked really well. I disconnected everything, then put the engine on the support bar and put the transmission jack under the transmission. Then I supported the front subframe with the hydraulic table. I found a hint to just undo the pinch bolts on leave the struts in the car for now and that made pulling the front subframe easier. Just lowered the hydraulic table and wheeled the front suspension away. Took a little bit to figure out to store it and eventually settled on an old tire. Luckily its not too hard to move around.
I then supported the engine with the hydraulic table and alternated slowly dropping the transmission jack and the hyrdraulic table. I had missed one coolant hose that I think was for the cabin heater and the oxygen sensors on the headers. I thought I had already pulled them as part of the rest of the engine electrical harness. I also had to finesse some of the heat shields, but very smooth otherwise. It did of course make a giant mess since there is always more coolant hiding somewhere.
It was pretty stable even without the transmission jack so that probably wasn’t strictly necessary, but since I’m working alone it was good backup. The engine is mostly stable on the car, but I think that is only because it is using the headers as a kick stand, not sure it would stay upright if I removed those.
This did confirm an issue I was worried about. With the engine out the car and the battery in the back it tilted itself backwards against the rear wall of the garage. Thankfully I had some padding there already so it wasn’t a big deal, but wasn’t terribly stable. So I put a floor jack under the rear diff and a jack stand under the rear suspension to try to keep things stable for now. Unfortunately neither are quite tall enough to really get it back to where it was, but should be ok for now.
I then wanted to get the engine and transmission split to make it easier to store and move around. Lesson learned here is that I should have pulled the bolts I could easily get to from underneath when I still had it in the car. I also learned that you really need to pull the starter first or the flex plate gets trapped when you are trying to separate them. I snapped a couple of bolts off in the block. One of the small ones because the ratchet managed to reverse itself and I wasn’t paying attention. The other was one of the big ones and it was just seized in the block and I ended up just snapping the bolt.
So lots of cleanup left and I have to figure out the best way to dispose of them now. I had posted on FB Marketplace, but no bites. I’m hoping that now it is out of the car someone might be more interested. I know at the least I can sell the cats for a couple hundred bucks and I figure it has to have some scrap value since its a couple hundred pounds of aluminum.
I’ve ordered replacement parts for most of the front suspension and a rebuilt steering rack since it wasn’t significantly more expensive than just replacing the tie rods and my existing rack. I’m going to take the front subframe to get re-powder coated since it has some spot rust on it.
I’m starting to think about how I’m going to mount the front of the transmission and wondering if I can build a custom reinforcement plate with mounts for the transmission. I have both the BMW and the Lexus rear transmission mounts, so I’ll need to take a look and see what I can do there. The driveshaft will be a tricky one to figure out, but I know there is a custom driveshaft shop that can probably solve it relatively easily.
I also have the parts to do a service on the Lexus transmission, but I need it suspended so I can get to the pan first. There are some bearings in the oil pump that need replacing before that.
Lots to do, but very happy to hit this major milestone!
My original plan for power brakes was to use a vacuum pump to provide vacuum to the existing brake booster. Jon Volk (@tesla_bimmer) posted about using an iBooster instead in his conversion so I started researching it. It is purely electrical booster and you can talk CAN to it to integrate it into your regen setup. You can run it in failsafe made without CAN to just be an electrical booster. Here is a great source about the iBooster and also for the hard to source connectors.
There is also someone on eBay selling the connectors. I picked up an iBooster from a Chevrolet Malibu Hybrid since it was much cheaper than the Tesla ones. I’ll have to confirm the pinout is the same as the Tesla.
I’ll have to see how it fits and if it would be possible to to just reuse the E46 master cylinder or if I’ll need to re-pipe it to use the master cylinder that comes with the iBooster.
I have finally started removing the old engine and transmission. I’m going to remove the frontend of the car so I pull the engine out of the front. I bought a hydraulic table to help and I already have a QuickJack to get the car up a decent distance and keep it stable.
I’m going to use my engine support bar to hold up the engine and then drop the front subframe with all of the front suspension and steering attached. Then I can use the hydraulic table to take up the weight of the engine from the support bar. I can then put the front suspension back in once I service everything. I have new coil-overs and probably going to get a rebuilt steering rack since its only $100 more than the kit just to do the boots and tie rods. We’ll see if this slippery slopes into an entirely new front suspension.
Anybody need a pretty beat up M54B25? Come with an automatic transmission that can barely go backwards!!!
My garage is on the smaller side (17′ deep * 18′ wide) for this kind of project. So I’ve been working on getting it cleaned up to have enough space to start working on pulling the engine and transmission. I’ve got everything on wheels to be able to move it around.
I worked out exactly how much my Quickjack moves the car fowards/backwards while it lifts it (roughly 11.5″). I worked out that if I parked the car rear in roughly a foot from the wall I could put it up on the Quickjack and leave the maximum amount of clearance at the front of the car.
It isn’t pretty, but its time to start working on removing all of the ICE components.
Getting the car into that position was a bit of an ordeal. The car barely moves in reverse. It basically just creeps. Giving it any throttle makes no difference with how fast it moves. So I had to get a running start to get over the lip into the garage. I managed to get the rear wheels in, but the front wheels stuck. I tried to rock it to get it to clear the lip, but no luck. So I put my ramps in front of the car and drove onto them. I found a 2×4 to try to bridge the gap on the steeper side, then took another run at it and it worked, but it did snap the 2×4.
I really like having Android Auto in my cars and I thought having an Android head unit could come in quite handy for working with the various microcontrollers in the car. So I asked for an Eonon GA9450 for Christmas.
Recently I wasn’t quite ready to start pulling the engine, so I decided to install the new head unit. The best install video I found was from ShopLifeTV. I used the Dynavin HVAC relocation bracket to move the HVAC controls.
The trickiest part was installing the backup camera. I did it properly and routed the cable through the hold with the handle and then up through the two grommets to get out of the hatch and back into the car.
I got the Eonon dongle that was supposed to do Android Auto, but it is junk. It caused my phone to immediately reboot when I plugged it in. They claim a software fix is coming, but I found Headunit Reloaded instead and that was worked really well so far for $5 instead of $60.
Since my battery had been out of a car for at least a year the cells were pretty unbalanced (more than 70mv difference).
The commands necessary to get the battery modules (BICM) to balance have been found. Nobody has been able to figure out what the ECU sends to the main battery frontend (BECM) to get it to start balancing. I tried a couple of guesses, but was never able to get it to start.
So I decided to try a man in the middle attack on the CAN traffic. I had a Teensy 4 CAN board from earlier testing that I wired up to the BICMs. I saw that SimpBMS had implemented support for talking directly to the BICMs and doing the balancing, but it had quite a bit of code I didn’t need since it wasn’t going to be the full BMS. I found someone else who had simplified the code quite a bit and forked it for my use case.
I messed around with balancing algorithms and I my primary finding was that you needed to let it rest for a second and take new measurements before you could trust the readings to make decisions about which cells need to be balanced. When you balance a cell the voltage on the adjacent cells spikes up. So if you just chase the highest cell all of the time you’ll just slowly drain the whole thing. If I wanted to go fast I’d select everything from max to max – threshold to balance. Once we started to get within 2 x threshold that stopped working and I just started balancing all the cells that were at the highest voltage reading. This managed to get everything back within 5ms.
To be able to live with this long term I need the BECM to be able to talk to the BICMs, so I had to get the pass through mode working. Initially I was using interrupt driven CAN traffic and the timing ended up being so inconsistent that the BECM really didn’t like it. So I went back to polling and it was happy again. I also spent a bunch of time trying to keep the BECM happy while I balanced thinking the problem was the format of the packets and not just the timing, eventually I realized I could just wait for the 0x300 and 0x301 packets came by from the BECM and modify the data to do the balancing.
I also ordered the male and female connectors that the BICM and BECM used and built a little harness that just connects all of the non-CAN pins directly to the other one. I forked 5V and GND to power the teensy and ran the CAN from the BICM side to Can0 and the BECM side to Can1 on the Teensy.
Eventually I want to need to figure out a more permanent mounting location for the MiTM Teensy, but it is working great for now.
Last night, I went to test my heating loop and it immediately shot to max temp and didn’t come down. Obviously the heater was dry and the pump wasn’t moving anything. I managed to panic shut it down and don’t think I did any lasting damage.
I realized that my weak coolant tank was the problem since it was collapsing and not allowing me to get a good vacuum. The original fill I just vacuumed on the hose directly and didn’t have the tank on there. It also started leaking after cutting crushed by the vacuum.
So I took a quick look at O’Reilly’s for something pressurized and cheap. I found this one. It was cheap and in stock. I had to get a T fitting and some caps to find something that could go from 3/4″ (outlet on tank) and 3/8″ (hose to my system). I also capped off the overflow opening on the new tank.
The vacuum this time was much better and it managed to pull a good vacuum and hold it for a couple hours while I did dinner and bedtime. I went around the squeezed all of the hoses just to be sure. I let it fill and hit the pump and it is much better. Now I need to figure out how to mount it and if I want to drain the tank and shorten up the hose going to it.
Unfortunately during testing I managed to short out the Teensy on my battery controller. So now I need to solder up and program a new one before I can test the heating system again.
The Volt battery pack has a very advanced thermal management system. I’m using most of the stock parts. I had to add some extra hose to deal with the battery being broken up into 3 chunks. I’ve also looped in the charger and a heater core in case I want to try to use it to cool.
There is an integrated heater as well to keep it from getting too cold.
For my initial testing I just used tap water. There was enough left over coolant to turn it all orange, so I wasn’t too worried about getting it replaced, but I had a good window today to finally get it replaced.
So I drained it out, vacuumed it and filled with the proper dexcool coolant.
They haven’t found what you need to send to the BECM to get it to send commands to the BICM. I combed through some captures and have a guess that it is a 0X20E message. It gets sent with a cycle of numbers and bunch of zeros, I think if you change the zeros it might start balancing those cells.
To test this I need to be able to watch the CAN on the backside of the BECM. So I tried unplugging the BICM 4 and hooking up my CANDue to that plug to see if I could see the traffic, but I wasn’t able to get it to work with jumpers stuck in the connector.
Will report back when I have another chance to try this.