|VDO Navigation interface for Toyota Steering Wheel Remote|
The challenge is to build an interface between a Toyota Steering Wheel Remote and a VDO MS-6000 Radio.
The Toyota Car is equipped with a Steering Wheel Remote (see picture) to control Toyota pre-installed Radios. Of course this can't control a VDO radio. (The Toyota Radios does use a serial bus communication using custom designed chipsets which is difficult to get). I checked the radio and found that it contains an Infrared Receiver visible only when the monitor panel is in the open position
(look a the red square below and a little to the right of the "VDO Dayton" label on the open VDO picture below).
But it was not equipped with a remote controller when delivered from VDO.
I therefore was convinced that the VDO radio was a kind of OEM radio of another car radio manufacturer. I checked around the internet for a radio with a 6.5" monitor to see if I could find its predecessor. I DID !. Clarion VRX630.
Look by yourself at the similarity (the dark one is Clarion, the silver colored is VDO):
The Clarion model has a remote - the VDO does not. I bought one of the Clarion remotes to see what happens if using this one on the VDO radio. It did work in CD-mode but without any problems but it did not perform very well in Radio-mode. Another thing is that the monitor has to be in the opened position before the remote can be used because otherwise the infrared receiver is hidden inside the monitor storage.
My intention is to be able to control it in both monitor panel positions. This is why I want to build in a infrared receiver in the detach able front panel.
Therefore I want to make an Infra red transmitter add-on to a existing Toyota remote and then to a receiver inside a VDO radio to control the matching buttons on the radio. These six are: MUTE, FUNCTION(CD or Radio), VOLUME_UP, VOLUME_DOWN, FORWARD, BACKWARD.
The project will be divided into two sub-projects.
to implement a circuit inside the detach able front panel of the VDO radio which is able to control the buttons as they were manually pressed.
to implement a circuit inside the Toyota Steering Wheel Remote which sends out the Infrared codes as the were send from the Clarion Remote.
These two projects in companion completes the needs to control the VDO Radio from the Steering Wheel Controller. This also makes it possible to use the Clarion Remote from the Back Seat of the car
1 transmitter and 1 receiver:
6 inputs for reading buttons in stearing wheel control
1 output with pulse modulated signal to i.r. transmitter LED
1 output for status LED
1 input from Infra Red receiver module
6 open collector outputs to control 6 buttons in the radio
Both must be very small designs.
Supply voltage: +5V DC
3.Blockdiagram of the receiver
A little Block Diagram showing the Project 1:
4.Reverse Engineering of the Clarion Infrared Remote Controller
Using a Tektronix Digital Storage Oscilloscope to sample the received signals after removing the modulated 38 kHz using a Vishay Infrared receiver (TSOP1836) I stored the following measurements.
5.Decoding the bits
From the above oscilloscope dumps it appears that the bits sent from the Clarion Remote Controller are PWM-code(Pulse Width Modulation).
A '1' is nearly the double of the time of a '0'. Remember that what You see by the dumps is the demodulated data. In real the signal is pulsed with 38KHz when the signal on the dumps are at high level. In that way you can get rid of the problem with other light sources as the sun. The Wave Length (l) of the infra red light used in this kind of controllers is normally near to 950nm (l=950 x 10-9 meter).
The receiver used for my measurements is a Vishay TSOP 1838 SS3V fileadmin/datasheet/TSOP18xx.pdf.
Nice Features of this controller for my design (can be read from the datasheet):
- Photo detector and preamplifier in one package
- Internal filter for PWM frequency
- Improved shielding against electrical field disturbance
- Enhanced immunity against all kind of disturbance light
By studying all of the oscilloscope dumps we can make the following table showing each of the button codes:
The green color codes is the ones that I will implement on the six buttons of the Steering Wheel Controller.
The bold text represents part of the code that differs (and the keys that I will use)
Next the code will be written to look for these codes and to "press" the right buttons inside the frontpanel.
I decided to write the code in the ANSI C-language.
This is not the fastest code when compiled neither the smallest code but it is fast to implement -
... now programming...
6.The µ-code to decode the infra signal from the remote controller
Okay - Revision 1.0 of the receiver is here !
This version is made with a lot of debugging possibilies on my "bluebird" evaluation board:
I programmed the receiver with the following functions:
- 1 input pin for Pulse Width Modulated infrared code
- 6 output pins for controlling six of the buttons in the radio front panel
also other pins have been implemented but will not be connected in the Printed Circuit Board layout:
- 1 LED_0 output for debugging purposes
- 1 LED_1 output for debugging purposes
- 1 BLINK LED output for showing when the receiver is receiving pulses
- 1 serial output (Baudrate 19200) to a terminal program on a PC.
- a interface to a 2x16 character LCD display (2 control pins and 4 data pins)
The code has been developed in 10 different files (five .c and five .h files):
receiver.c and receiver.h are the main files. (The other files are support functions).
Here are the files:
The files are only included as PDF-files so you can see the code.
(the ASCII-files can be requested by email)
<small>(press on the PDF-icon)</small>
..and final the hex-file so you can program your own PIC fileadmin/code/IRreceiver.hex
Here is the schematic (as PDF-file) for the development platform used to develop the code:
A little video sequence where you can see it in use:
7.Finding the right controller to put in the front-panel
Next step is now to fit the code into a suitable PIC type.
This PIC has been selected among a lot of different types from Microchip.
The following items have been considered:
- low pin count - due to the bound size in the front panel.
- built-in oscillator (4 MHz).
this leads to the ---> PIC16F684 in a TSSOP package (very small !)
8.The final schematic
is ready ... will be here soon.
The printed circuit layout will be made in the PCB tool PROTEL.
It must be on a little thin board to fit into the radio.
To be able to program the micro-controller I plan to make the layout so that it is equipped with a ISP (in-circuit-programming) connector which can be cut of by using a scissor - that way the board can be very small.
The PCB layout is done ! This is the PCB design tool:
And the finished one:
Installing the reciver into the radio:
Installing the transmitter into the steering wheel controller:
The PCB is designed to fit into the rear side of the radio-front.
I had to mill out a plastic bar to have room enough for the PCB
The paper PCB to check the size of the PCB before making it..
...will be continued soon!
Last Revised February 22. 2004