OBD II to set cruise speed

Hi. I drive a Seat Altea (VW) in Germany. Here speed limits change continuously and I'm becoming obsessed checking tacho after getting a couple of fines (driving 39 and 41km/h with limit 30 :confused: ) . This reduces greatly the attention I give to the road.
To ease things I use a lot the cruise control, but with it you just fix the speed when you reach it, and this means to watch the tacho instead of pedestrians. Annoying.

My dream: OBD, arduino and 4 accessible buttons. After activating the cruise speed in the standard way, pushing each button would SET a different cruise speed. I assume the cruise speed is normally written inside a register: I would only change this value.

The hack doesn't activate the cruise speed, but change it when already active.
As soon as I brake the cruise control switches off. From the point of view of security it doesn't change anything.

Is it possible to SET values with ODB or just reading them?
If yes, any idea about where to find "register " maps to know where to write the value?
I know my Seat Altea is Volkswagen compatible because my car is involved in the gas scandal... >:(

From what I've seen the VW vehicles uses CAN BUS on peripheral additions... is your vehicle made in recent years since CAN BUS was implemented?

Have a look at VAG-COM for example.

If so, it may be useful to sniff the CAN BUS pins on the OBD connector to see what communication is sent by the cruise control.

I don't think cruise control is implemented using OBDII though.

Yours is a good idea, but I believe it will not help me.

I imagine I will find commands like “Start cruise with the last saved speed”, “Stop cruise”, “Erase last saved speed and stop cruise”. These are equivalent to some keys I can press while driving.

Alas what I need, “Set cruise speed to X km/h”, is not issued by any peripheral in my car, so I cannot sniff it…

The only possibility would be to find a whole map of VW CAN BUS commands with the description of the protocol and the meaning of every register.

Thank you anyway

It seems like nobody has done that before.
Probably there could be a way, but not by official OBD II protocol. It is definitely not part of it!

Some (undocumented) features are individually included on that communication layer.
But especially VW has their very own protocol additionally to that: VCDS and VAG-Com, which have a higher security layer.

As I read, it is possible to activate the cruise control, if it´s upgraded later on. Activating in the meaning of "making it available". Not setting it up.

Hi Trib.
I forgot to thank you for the previous answer.

I have another question.
According to your knowledge, is it possible to find VW canbus IDs tables somewhere?
Just for reading and decoding the values, without setting them...

I found tables for BMW X1 online, but nothing for VW.


Hi Alex,

I´vent searched for them, until yet.
As far as I know there is none. VW encrypts them in their software. I´m also reading in a german forum, where some people exchange their ID´s they found out. Another hint, that there is no offical documentation, I think.
3rd party companies try to hide this information, too. Because they put a lot of effort into finding out about that. I made the same experience with Kawasaki.

What I found was a Arduino Sniffer:

And maybe some further documentation about the different modules, sensors and control units:

Last but not least, how CAN works (But I think you already know about that):

Currently I´m not far into CAN bus. But I probably start, when I´m ready investigating my motorcycle (via OBD II similar protocol).

Best regards

Sorry for the delay to thank you.
The search for a canbus id page will continue...
Have a nice day

An alternative is to just hijack the speedometer signal.
When you want to set a particular speed, momentarily
inject a tone with the frequency for the desired speed.
Actuate the set switch. Release the speed signal back to
the normal sensor.


Did you have any luck with this?
I'm looking to do the same on a 2009 Audi A4

I have been searching for an answer to this question for the past 6 years and failed. It seems a lot of people are either afraid of getting into their car's brains or just not determined enough. I was even considering building a whole setup where I would read a gps nmea signal, then rather than obd - tap directly into the pedal. And for safety create a hard relay controlled from the brake pedal and also a manual cut-off switch just in case.

I don't have the skills to analize can-bus signals myself to build a register changer, and not determined enough to go with my crazy idea.

I was initially considering either buttons that have preprogrammed 59, 69, 79, etc values, or even better - a number pad so I can punch in anything I want.

This thread is so far the first I found anyone other than me even requesting such functionality :slight_smile:

I imagine I will find commands like "Start cruise with the last saved speed", "Stop cruise", "Erase last saved speed and stop cruise". These are equivalent to some keys I can press while driving.

Alas what I need, "Set cruise speed to X km/h", is not issued by any peripheral in my car, so I cannot sniff it...

It's probably a lot worse than that. I doubt any processing goes on in the steering column where the buttons are. So the things that are being sent probably aren't commands like you write. They're probably things like, "He pushed the CRUISE_ON button", "He pushed the ACCEL button", "he pushed the COAST button" etc. The CPU in the car does the figuring and runs whatever code and most likely handles checking the speed and sends out commands like "set throttle to X"

Wait no, that makes it a lot easier not harder. Instead of sending a command to set the cruise to a certain number, just use Arduino to set the cruise. You can sniff the OBDII bus for the speed of the car. And you can use arduino to simulate the button pushes on the steering wheel or control stick. So it's just a matter of letting Arduino watch the speedo until just the right speed and hit the button just like you would. You could let it beep at you or something so you know you can lift your foot from the pedal.

I was thinking to this scenario....
Arduino read analog signal from throttle pedal potentiometer, when I activate cruise control (just by pressing a simple push button), arduino send last reading from pedal to pwm pin and hold it there until i press cancel button, brake or clutch pedal.

Someone tried this idea because I want to do it ?

Cruise control on most VAG cars can be retrofitted just by adding the switch and loom and enabling the function with VCDS. I've done it on a couple cars so far. It's pretty straight forward.

What you're trying to do is pretty easy. Set ATMega or whatever uC you're using to listen to the frame with cruise control set speed and if it's lower/higher than you need, depending on the button pressed (preprogrammed 59, 69 etc.) keep sending frames with button up/down.

i tried to use odb2 on an opel astra j to see if the distance cam and the cruise-speed-cntrls are available. but after analyzing the all the data there was nothing in there... I found a shematic for opel, ther are more can-bus-systems used. one for odb, one for radio, one for camera, one for hud/steering wheel buttons... etc. .

Make sure you are on the right bus to find and set your data. can is an easy protocol, it should work.