Some while ago I attended a workshop based on the Blackfin Embedded Vision Starter Kit.

I intend to make a detection for traffic signs and couple that to the cruisecontrol of my car. This makes it possible to slow down in case of a changing maximum speed. Also driving comfort is enhanced. When you drive from Amsterdam to Eindhoven, there are about 15 changes in the maximum speed. If you only miss one of them you risk (another) fine.

SILICA_ADI_Blackfin_Embedded_Vision

I intend to cover up the lens with a IR pass filter (piece of developed photo negative, or the inner disk of an old floppy disk). Adding IR leds on the car will shine on the traffic signs. Since the signs are covered with retroreflection, it should give a huge contrast. What I do not know yet is, is the standard lens on the kit capable of capturing the right view angle.

I think I found the correct block in the OBD interface where I can fool the cruise control speed to use another speed. Currently I use HEXCAN interface to connect to my Seat Cordoba, and I still need to reverse engineer the VAGCOM slowinit protocol.

When I read out my car I do this with the HEX+CAN interface. It will be a challenge to find out its inner workings to be able to send commands with an embedded solution. There is a FT232RL onboard, so it should be possible to overrule the USB interface and do it with an RS232 interface. Some reverse engineering is needed to understand the damn thing.
VagComTop
VagComBot

I got some info on the FT232R chip. You can read (and write) the configuration with the tool FT_PROG 2.8.2.0 from the site http://www.ftdichip.com/Support/Utilities.htm, this is the saved file content:

during the restore of this file, it bricked my adapter. It is always a good idea to dump the content of the chip before you start messing with it. I was lucky I had a binary dump of the FT232RL chip. I downloaded a project from codeproject which interfaces with the ftd2xx.dll and with this I was able to program the adapter again to factory settings.

Here are the pictures of the reverse engineered interface:

Bluetooth OBD-II plug


Bottom print

Top print

Thanks to Wikipedia, here I found the following info:

Female OBD-II connector (J1962 connector, connector according to SAE J1962) pinout – front view

1 Manufacturer discretion –
GM: J2411 GMLAN/SWC/Single-Wire CAN[12]
VW/Audi: Switched +12 to tell a scan tool whether the ignition is on.
Ford: Infotainment CAN High[12]
9 Manufacturer discretion –
GM: 8192 bit/s ALDL where fitted.
Ford: Infotainment CAN-Low
2 Bus Positive Line of SAE J1850 PWM and VPW 10 Bus Negative Line of SAE J1850 PWM only (not SAE J1850 VPW)
3 Manufacturer discretion –
Ford: DCL(+) Argentina, Brazil (pre OBD-II) 1997-2000, USA, Europe, etc.
Ford: Medium Speed CAN-High[12]
Chrysler: CCD Bus(+)[12]
11 Manufacturer Discretion –
Ford: DCL(-) Argentina, Brazil (pre OBD-II) 1997-2000, USA, Europe, etc.
Ford: Medium Speed CAN-Low[12]
Chrysler: CCD Bus(-)[12]
4 Chassis ground 12 Manufacturer discretion –
5 Signal ground 13 Manufacturer discretion –
Ford: FEPS – Programming PCM voltage
6 CAN-High (ISO 15765-4 and SAE J2284) 14 CAN-Low (ISO 15765-4 and SAE J2284)
7 K-Line of ISO 9141-2 and ISO 14230-4 15 L-Line of ISO 9141-2 and ISO 14230-4
8 Manufacturer discretion –
BMW: Second K-Line for non OBD-II (Body/Chassis/Infotainment) systems.
16 Battery voltage

My Seat Cordoba has the following pins (marked in bold) connected: pin 4, 5, 6, 7, 14 and 16.

I found a cable, OBD to D9 Female:
OBD-02 -> D9-7 (SAE J1850 Bus+)
OBD-10 -> D9-6 (SAE J1850 Bus-)
OBD-04 -> D9-2 (Chassis ground)
OBD-05 -> D9-1 (Signal ground)
OBD-06 -> D9-3 (J2284 CAN-High)
OBD-14 -> D9-5 (J2284 CAN-Low)
OBD-07 -> D9-4 (ISO 9141-2 K-Line, ISO 14230)
OBD-15 -> D9-8 (ISO 9141-2 L-Line, ISO 14230)
OBD-16 -> D9-9 (Battery voltage)

http://image.pinout.net/pinout_obd2_files/connector_pinout.php?image=obd2_iso9141-2_cable.gif&pinout=

Yeah, I contacted the guys from http://www.vagtechniek.nl/ and they responded very quick 🙂
They told me that the set speed for the cruisecontrol cannot be found at the OBD port of my non-CAN Cordoba. If I would like to get the set speed, I would need to access the Powertrain to get realtime can commands. I should be able to find the powertrain (CAN) on the steeringwheel angle sensor when I have ESP (which I don’t). Also I should be able to find it between the Central computer and the Instrument panel. Also they told me that information on the schematics can be found at the dealer. they have a package which is called Elsawin and contains all technical information on schematics and everything else from VW/Audi group.

I came up with the following scenario:
Completely do the cruisecontrol myself and sit between the engine control unit and the gas pedal. Like a man in the middle attack. This solution is very dangerous, because the normal cruisecontrol system has a lot of safeguards (like when any airbag is giving an errorcode). Might not be the way to go. Also you will need to aquire the accelerator, break and clutch pedal signals. When engaging the break and/or the clutch, the cruisecontrol should disengage immediately. When using the accellerator pedal, it should speed up the car. In both situations, it should act immediately.

Second solution from Vagtechniek:
Simulate the buttons on the cruisecontrol handle. When speed should be slower, disengage the cruisecontrol, and then engage again when the wanted speed has been reached. The problem with this solution is, when you disengage the cruisecontrol, it does not go smooth but very abrupt. This is not comfortable. Also this solution does not make it possible to speed up.

Third solution is to use the + and – button, but then you do not know what the new set speed is. Maybe it is possible to get the set speed from the Powertrain bus.

More to follow here . ..

Leave a Reply