Inside the BMW cruise buttons. The chip on the left is an Ibus transceiver with built in voltage regulator.
1 Jan 2018 update:
Well we got a oscilloscope for Christmas. The perfect thing to try out on the cruise buttons. But first let's talk about the LH buttons, the stereo and phone buttons. As mentioned above there is an ibus transceiver and a micro controller on the RH button circuit board. But I don't believe the RH buttons use ibus. To be sure opened up a set of LH buttons. And yes. No big chips. See below
So all the converting to digital is done by the RH buttons. As I had expected. Back to decoding the cruise data stream. Hooked up the cruise buttons as shown in the MFL button wiring diagram from the WDS. this time I had a MFL wiring harness (LH and RH buttons complete). When hooking it up I found it odd that Red (pin4) was the Cruise signal. Not the usual color. Lots of testing and not much success. Pulled the circuit board out and my son traced the signal circuit. It didn't make much sense as it seemed it'd never see or make pulses. Then the thought ""Maybe the signal and 12V in are switched". Well anything is worth a try and well it worked. Then we pulled up the wiring diagram for the Volute spring. Guess what it shows. The red (pin4) was power and the Gray (pin2) was the cruise signal. UGH.... All this time we weren't getting it because the one MFL diagram was wrong. Seriously. But now we have a nice wave form that differs based on each button pressed. Here are some examples;
It appears to be a PWM signal. The last pulse is the toggle bit. Which simply cycles back and forth every so often unrelated to if the button is pressed or not.The rest vary 1 or 2 of the pulses when a button is pressed (not counting the toggle bit). Armed with this and a little Arduino magic we are able to get the arduino to tell us which button we are pressing. Whoo hoo. Finally mystery solved.
1 Jan 2018 update:
Well we got a oscilloscope for Christmas. The perfect thing to try out on the cruise buttons. But first let's talk about the LH buttons, the stereo and phone buttons. As mentioned above there is an ibus transceiver and a micro controller on the RH button circuit board. But I don't believe the RH buttons use ibus. To be sure opened up a set of LH buttons. And yes. No big chips. See below
So all the converting to digital is done by the RH buttons. As I had expected. Back to decoding the cruise data stream. Hooked up the cruise buttons as shown in the MFL button wiring diagram from the WDS. this time I had a MFL wiring harness (LH and RH buttons complete). When hooking it up I found it odd that Red (pin4) was the Cruise signal. Not the usual color. Lots of testing and not much success. Pulled the circuit board out and my son traced the signal circuit. It didn't make much sense as it seemed it'd never see or make pulses. Then the thought ""Maybe the signal and 12V in are switched". Well anything is worth a try and well it worked. Then we pulled up the wiring diagram for the Volute spring. Guess what it shows. The red (pin4) was power and the Gray (pin2) was the cruise signal. UGH.... All this time we weren't getting it because the one MFL diagram was wrong. Seriously. But now we have a nice wave form that differs based on each button pressed. Here are some examples;
It appears to be a PWM signal. The last pulse is the toggle bit. Which simply cycles back and forth every so often unrelated to if the button is pressed or not.The rest vary 1 or 2 of the pulses when a button is pressed (not counting the toggle bit). Armed with this and a little Arduino magic we are able to get the arduino to tell us which button we are pressing. Whoo hoo. Finally mystery solved.
Nice work !!
ReplyDeleteAre you able to reproduce the pwm signal with the arduino and send it back to the ecu ? or are you reading back the can bus msg the ecu reports back with the arduino ?
Thanks. We did not try to reproduce the PWM signals. Our goal was to capture the button presses to repurpose the buttons. The cruise button presses do not appear to be reported on the CAN bus of the E46 (and similar models). The cruise button connection is directly to the ECU (or cruise module on other cars).
Delete