- I can't put a 0-5V signal into the inverter as throttle signal. I have to query the ECU for the nominal position, convert the numbers and send a CAN message to the inverter.
- My motor won't be idling on a stop light because I have a manual transmission. So I fear the ECU might not be happy with that. It might even open the throttle to keep the motor idling at 700rpm.
- The original ICE has a low-pressure turbo. This means potentially more inputs to fake.
But back to my shopping day. Today I bought some things:
- Payed the Brusa bill for the motor, inverter, charger and DC-DC converter. Sure some fine pieces of engineering but still my biggest financial commitment besides the batteries. So this is as real as it gets. No stepping back anymore - only one way to go: forward!
- Bought a used car-lift on ricardo - although I'm not entirely sure yet that it can be safely mounted on a wooden floor in my wood shed. It's a two column, 4 finger lift. So the underside of the car will be easily accessible.
- Bought an Arduino Due board, an ehternet shield, a 2 row LCD display and a prototyping shield.
- I also ordered the stickers that go to the side of the car as part of the sponsoring agreement.
Another advantage of the Due is that it offers two DAC outputs (analog audio). So it's possible to playback .wav files. My (somewhat crazy) idea is to simulate the output of the crankshaft wheel sensor this way. The sensor generates 58 pulses and two missing pulses per revolution. If it's not possible to simulate this behavior with a PWM (pulse width modulated) output, it might be possible to playback a square-wave sound at different speeds to simulate the crankshaft wheel for the ECU. This way I don't need to transfer the wheel to the electric motor and I could solve the idling problem. If the rpm of the electric motor drops below 700rpm, the Arduino could just keep faking the 700rpm.
If the engine speed of the ICE is between 600rpm and 9000rpm, the following would apply:
600rpm means 10 revolutions per second. With 60 dents (incl. 2 missing) this would mean a square wave at 600Hz (and 9kHz at 9000rpm). It would have to be switched off precisely from 10 times per second (@600rpm) to about 150 times per second (@9000rpm) and back on after 3ms (@600rpm) to only 0.2ms (@9000rpm). I'm not sure if the 0.2ms are within reach of the Arduino due PWM output. So as a fallback, I might use the approach via the audio output.
So although not everything is proven to work, I'm quite confident to have a valid approach. Sure, there will be many pitfalls. But with some luck and some help from a very supportive community, I might get this heavy luxury car running some day this or next year.
Thanks for reading and stay tuned! There's more to come: I'm planning a video tutorial on CAN sniffing to find the throttle signal.