Arduino Cruise Control

Think you've got a good idea? Share it with us and it might just end up on the show!
Post Reply
Posts: 90
Joined: Fri Dec 24, 2010 1:57 pm

Arduino Cruise Control

Post by foxmiles » Thu Jun 07, 2012 2:59 pm

My car's cruise control doesn't work. Sometimes it will kind of work, but it's jerky and generally touchy. It has a completely separate module to control the cruise, some people say it's that, but I tried a junkyard one and it does the same thing. They used a similar actuator since the early 80's. I took one of the 80's era ones apart and it's set up like a servo, it has a solenoid to engage the gears and a motor to drive it.
The problem is that it had a carbon film potentiometer printed on the circuit board to determine the position, it had worn through at what I assume would be cruise speed. Basically everything works fine until the wiper hit that point and then it bugs out because it's getting a reading it doesn't expect. if you run faster or slower it's fine. But around 55-60 it's accelerate, decelerate, accelerate, decelerate...
So I was thinking "what if I replaced the module with a custom design that eliminated the pot for feedback?"

Plan A:
It will replace the cruise module on a 1995 Mercedes e300d. Though the basic design should function on any similar system.
Use existing controls
Use existing VSS
Use existing actuator
It must be hard-disconnected when brakes are applied! (it should kick off in software too, but the solenoid should be disconnected without depending on software.)
It should maintain speed smoothly
Perhaps it could sense current to set end stops (motor LRA should be much higher than when spinning, if the motor stops at each end it the current should at least double)

All it really has to do is measure the vehicle speed (VSS is a hall effect sensor on the speedometer, so it should be a square wave. Trigger an interrupt and calculate the rpm at speedo) take a reading, compare and adjust the servo to maintain speed. Sounds simple enough.

1x interrupt (VSS)
5x digital (off, set/accell, set/decel, resume, brake light)
2x analog (current sense - voltage in, voltage out)

4x pwm (motor - 2 forward, 2 reverse)
1x digital (Solenoid)

Plan B:
Alternately do something to correct the output from the pot, ie - an attiny that reads the pot value and smooths it out in that one place. ie - if the pot goes 123451789 have it replace all the 1's with 6's

Plan C:
Find some material to repair the carbon on the actuator pot. Ideas?
Digging with a spoon will accomplish more than leaning on a shovel.

Site Admin
Posts: 191
Joined: Sat Dec 11, 2010 12:34 am

Re: Arduino Cruise Control

Post by Jarod » Thu Jun 07, 2012 9:38 pm

I'd like to build a new cruise system for my '80 Mercedes 300SD also, it cruises fine, smooth, but randomly shuts off, tapping the throttle pedal will get it going again, I'm not sure if its the actuator or the control device. I know the cruise is extremely temperamental on just about all the older Mercedes, if we could create a solution for them that could possibly be somewhat plug and play it would be extremely profitable.

I like the Plan A method, it seems like an atmega would do everything we would need, an attiny could possibly be used, however the 8 pin package wouldn't have enough i/o pins, there is a 16 pin attiny I believe, that might be able to be used to reduce cost slightly, of course atmegas aren't terribly expensive if you buy them in bulk.

We should try to figure something out, I'm going to look into how the cruise works on my car and if there is some way to find out what is failing on it.

Post Reply