Use this sketch to inject RFSL and V-Signal CANBUS messages when you are using a 193 RNS-E without dedicated hardware inputs on a A6, A2, TT 8N, etc.
You will need an Arduino UNO coupled with a MCP2515 CANBUS shield and a simple Zenner diode circuit to limit the input voltage from RFSL and V-Signal to 5V on the Arduino pins. RFSL input connects to pin 6 and V-Signal to pin 5.
RFSL/V-Signal Injector with Rear OPS Support (8Z0)
This sketch adds support for triggering the 193 OPS (Optical Parking System) display from an installed 8Z0-919-283 PDC (Park Distance Control) Module on an Audi A2 (8Z) / Audi A4 (8E2/8E5) / Audi A6 (4B).
You will need to add an interface to the K-Line from the Arduino TX and RX pins. You can use a STMicroelectronics E-L9637D IC for this, as it requires no additional external components. It's a SOIC8 package, but not too difficult to solder to a SOIC8 breakout board and then attach wires from there to the necessary pins on the Arduino board.
For an Audi A3 (8P) / Audi R8 (42) / Audi TT (8J) with 8P0-919-283 you will need to do diagnostics over CAN (as they do not support K-Line). However you'd probably be better fitting the 8P0-919-475 module on these vehicles, as that module supports the OPS system natively.
Note my understanding of the OPS CANBUS message format is not complete. What I know has been reverse engineered from the RNS-E firmware. If you can provide traces of the real message protocol on CANBUS IDs 0x497, 0x6DA and 0x67A it would be very helpful.
Version 3 of our sketch for use with alpha firmware (which adds support for 8P0-919-283 rear only PDC modules).
RFSL/V-Signal Injector with Front+Rear OPS Support (8E0)
Here is an equivalent sketch which supports the 8E0-919-283 Front+Rear PDC Module on an Audi A4 (8E2/8E5) / Audi A6 (4B).
Connect the LED output from the PDC module to the Arduino pin 4 via an appropriate voltage limiting circuit (since the LED supply is 12v). The LED output is available at either the PDC module pin 13, or at the PDC button itself. The sketch will then activate the OPS display on the RNS-E whenever it detects the LED is illuminated, which should happen in reverse and when you have manually activated the system with the PDC button.
This sketch will be useful if you ever want to log the CANBUS traffic on the infotainment bus for diagnostic purposes.
K-Line KW1281 Diagnostics Logger
This sketch will be useful if you ever want to log the KW1281 diagnostics protocol, for example between a diagnostics tool and a 8Z0 or 8E0 PDC module.
Note that this sketch requires an Arduino Mega, since it requires two hardware serial ports (the Arduino UNO only has one).
Arduino CANBUS Hardware
We use an EF02037 Arduino CAN BUS Shield for our RNS-E projects. The 9 pin DB9 Serial plug should be connected:
* Note - These pins aren't actually part of the CANBUS shield. On all shields we have encountered they are left unconnected, so we repurpose them for our own ends. Where we require these signals on a project we solder wires to the appropriate pins on the rear of the CANBUS shield and connect, via appropriate input circuitry, to the Arduino below. This allows us to have a DB9 plug permanently wired in our test vehicle, and then easily connect and disconnect Arduino projects as required.
Most CANBUS shields have a 120R terminating resistor installed between CAN-H and CAN-L. The fault tolerant CANBUS used by Audi for their Infotainment bus will not work with the terminating resistor in place. Most boards will have a way to disconnect the resistor. Usually by removing a jumper, or cutting a trace between some solder pads. Check your boards documentation or circuit diagram for the correct procedure.
Arduino K-Line Hardware
We use an STMicroelectronics E-L9637D IC to build a K-Line interface for our RNS-E projects. We solder it to a SOIC8 breakout board for easy connection. The pins of the E-L9637D should be connected:
|6||K||RNS-E B5 or via DB9 pin 4|
When a diagnostics tester is connected it should pull K-Line up to +12v with a 510R resistor. In practice we find a 1K resistor is sufficient, and means that if a diagnostics tool is also connected to K-Line (with its own independent 510R pullup) it should not cause issues. The alternative is to design your circuit so that the presence of the pullup can be programmatically controlled by the Arduino sketch.