Code Monkey home page Code Monkey logo

arduino_micra_swc_interface's Introduction

# Arduino interface between Micra K12 steering wheel controls (SWC) and Blaunpunkt Vancouver CD35 head unit (HU)

# Introduction

I replaced the stock head unit (HU) in my Nissan Micra K12 to gain an AUX port which the stock HU didn't have. Unfortunately, this meant that the steering wheel controls (SWC) no longer worked, since they use some kind of proprietary protocol to control the stock unit.

## SWC protocol

The service manual for the Micra K12 includes a section on electronic components, including the expected resistances & voltages seen across the wires used to connect the SWC to the stock head unit. Reading up on this online, I found that most SWCs use a resistor array/ladder configuration, so the combination of button-presses on the steering wheel controls is communicated as a unique resistance reading across the pins/wires.

## Blaupunkt protocol

The "new" Blaupunkt unit (Vancouver CD35) manual mentions that it is compatible with two remote control units: RC08 and RC10. I couldn't find any for sale online, but I came across a website where somebody had figured out the RC10 protocol for interfacing with the radio unit: https://dren.dk/lacetti-blaupunkt.html. This indicates that the infrared (IR) receiver part of the RC10 unit responds to button presses on the remote control by sending a series of pulses of different lengths to the head unit. These should be able to be recreated by an Arduino!

# Pinouts

## SWC

C2 mini iso connector on the stock radio:
Remote control A: 10
Remote control B: 11
Remote control GND: 12

## Blaupunkt radio

C2 mini iso connector on the Blaupunkt radio:
Remote control 12V: 10
Remote control input: 11
Remote control GND: 12

# Configuration

## Ladder resistors & converting to single wire pair

The steering wheel has 5 buttons on 2 wires (plus one ground wire). Measuring between either wire and ground on the stock configuration you would get:
MODE (SRC): A, 0V
SEEK UP: A, 1.68V
VOL UP: A, 3.34V
nothing pressed: A, 5V
SEEK DOWN: B, 1.68V
VOL DOWN: B, 3.34V
nothing pressed: B, 5V

Conversely, each button press is associated with a resistance between the wire and ground [this is for pins on the steering wheel side, approximate values]:
MODE (SRC): terminal 14, 0ohm
VOL UP: terminal 14, 165ohm
SEEK UP: terminal 14, 652ohm
VOL DOWN: terminal 15, 165ohm
SEEK DOWN: terminal 15, 652ohm

For this setup to work, there also needs to be a 330ohm resistor in series with the 5V voltage between the steering wheel pins.

To convert this into a single-wire setup, I've also added a 680ohm resistor in series with the steering wheel B pin - this means that for each button press, we get a unique resistance/voltage reading, and they are spread maximally apart according to some maths and eyeballing I did (see the R file and attached plots!)

## 5V power supply

The Arduino Nano needs a 5V DC supply, but the car runs on 12V, so a step-down converter is needed. I opted for the Pololu 5V, 500mA Step-Down Voltage Regulator D24V5F5 because it was what the shop had in stock and because of its compact size (a 7805 regulator would have worked but with the associated circuitry it would have taken up a lot more space). 500mA is overkill but there was no price difference for the smaller option. I've also opted to include a filter capacitor on the 12V input to filter any voltage spikes associated with ignition and a rectifier diode for polarity protection. I'm also adding a bypass capacitor to the 5V line just in case.

arduino_micra_swc_interface's People

Contributors

jsavinc avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.