This is how I've fitted a driver's side switch pack to the passenger side of my car, and got it to work with the rest of the car.
As standard, the driver's side switch pack is connected by a single LIN wire to the driver's door module. On the passenger side there was simply a raise-lower switch, connected with two wires plus earth to the passenger side door module, like this:-
I bought an additional driver's side LIN switch pack, along with a mounting plate from the driver's side of a left hand drive car. I put together a couple of interface boards and wired it up like this:-
The interface boards are based on a NCV7471B system basis chip, along with a DSPIC33CH128MP506 microcontroller. The circuit diagram is basically the Example Application Diagram from the data sheet of the NCV7471B. Here is a slightly simplified circuit diagram:-
This doesn't show all the decoupling capacitors.
This is what the interfaces look like:-
Data paths
The driver's door module is the LIN master and it reads the individual switch signals from the switch pack. The driver's door module tells the switch pack what lights should be illuminated, and how bright the backlight should be.
The interface module reads the lighting signals and passes them on to the driver's side switch pack. It also sends the same information over CAN to the interface on the passenger side. The passenger side interface converts that information back to LIN to send to the new switches next to it in the passenger door so the passenger side switchpack lights up the same as the driver's side.
The passenger side interface reads the switch signals from the switchpack, and sends that over CAN to the interface on the driver's side. The interface on the driver's side reads the driver's side switch signals. Within the driver's side interface the switch information from the driver's side switches (received via LIN) is combined with the passenger side switch information (received via CAN) and that is sent via LIN to the driver's side door module. The signal arriving at the driver's door module is identical to the signal from the standard switchpack, so there is no change to the door module.
The CAN signals between the new interfaces use IDs that are not used for anything else in the car.
I used the "keep alive" CAN signals that are present in the standard car to know when the new interfaces should be working. When the "keep alive" signals stop, the interfaces stop working, and a couple of seconds later, the microcontrollers tell the NCV7471B system basis chips to go into the shutdown mode, and the 5 V and 3 V supplies are turned off. All the other modules in the car do much the same as the car shuts down. When the car wakes up, the NCV7471B system basis chips detect the first CAN message and power up the 5 V and 3 V supplies, starting the microcontrollers.
I made some mistakes on the board. I got the programming pins for the microcontroller mixed up. I didn't allow for how big the connector was, so it covered the pin names that are on the board, and the levers at one end get impeded by the electrolytic capacitor.
To help with fault finding and commissioning, I added a connector that allowed me to read the CAN and LIN buses, and to reprogram the interfaces, without taking the door cards off. For that I used a 10 way ribbon cable in each door, with a connector that could be hidden behind a small bit of plastic that covers one of the screws on each door card.
I hope this is of interest.
As standard, the driver's side switch pack is connected by a single LIN wire to the driver's door module. On the passenger side there was simply a raise-lower switch, connected with two wires plus earth to the passenger side door module, like this:-
I bought an additional driver's side LIN switch pack, along with a mounting plate from the driver's side of a left hand drive car. I put together a couple of interface boards and wired it up like this:-
The interface boards are based on a NCV7471B system basis chip, along with a DSPIC33CH128MP506 microcontroller. The circuit diagram is basically the Example Application Diagram from the data sheet of the NCV7471B. Here is a slightly simplified circuit diagram:-
This doesn't show all the decoupling capacitors.
This is what the interfaces look like:-
Data paths
The driver's door module is the LIN master and it reads the individual switch signals from the switch pack. The driver's door module tells the switch pack what lights should be illuminated, and how bright the backlight should be.
The interface module reads the lighting signals and passes them on to the driver's side switch pack. It also sends the same information over CAN to the interface on the passenger side. The passenger side interface converts that information back to LIN to send to the new switches next to it in the passenger door so the passenger side switchpack lights up the same as the driver's side.
The passenger side interface reads the switch signals from the switchpack, and sends that over CAN to the interface on the driver's side. The interface on the driver's side reads the driver's side switch signals. Within the driver's side interface the switch information from the driver's side switches (received via LIN) is combined with the passenger side switch information (received via CAN) and that is sent via LIN to the driver's side door module. The signal arriving at the driver's door module is identical to the signal from the standard switchpack, so there is no change to the door module.
The CAN signals between the new interfaces use IDs that are not used for anything else in the car.
I used the "keep alive" CAN signals that are present in the standard car to know when the new interfaces should be working. When the "keep alive" signals stop, the interfaces stop working, and a couple of seconds later, the microcontrollers tell the NCV7471B system basis chips to go into the shutdown mode, and the 5 V and 3 V supplies are turned off. All the other modules in the car do much the same as the car shuts down. When the car wakes up, the NCV7471B system basis chips detect the first CAN message and power up the 5 V and 3 V supplies, starting the microcontrollers.
I made some mistakes on the board. I got the programming pins for the microcontroller mixed up. I didn't allow for how big the connector was, so it covered the pin names that are on the board, and the levers at one end get impeded by the electrolytic capacitor.
To help with fault finding and commissioning, I added a connector that allowed me to read the CAN and LIN buses, and to reprogram the interfaces, without taking the door cards off. For that I used a 10 way ribbon cable in each door, with a connector that could be hidden behind a small bit of plastic that covers one of the screws on each door card.
I hope this is of interest.
Last edited: