Author Topic: Traction control, DIY with Arduino and an ABS unit?  (Read 3064 times)

Offline Phizinza

  • Fizz-in-za
  • Administrator
  • Happy Camper
  • *****
  • Posts: 3358
  • Yip yip
    • View Profile
    • Offroading Subarus
Traction control, DIY with Arduino and an ABS unit?
« on: September 28, 2014, 05:58:06 PM »
A few years ago I started on the design of a locker for an R160 Subaru differential. I have the design and a plastic prototype but to get a single one made it will cost me well over $2500. Obviously over time it would pay itself off if all worked well (didn't explode) but the investment required has halted all progress.

Then I thought of Traction Control. I've seen videos of it proving to be better than a single locker and I also have experience in a car with it proving to work very well.

My idea consists of four wheel speed sensors mounted on the inner DOJ's of all four shafts. An ABS unit capable of applying brakes. A controller which could be made from an Arduino.

I'm not sure the ABS unit has to be a special one, I know it must be a 4 channel type. Normal ABS units are made to just disengage the brakes and re apply in the aid to stop locking wheels.

In the Wiki page for Anti-lock Braking Systems, http://en.wikipedia.org/wiki/Anti-lock_braking_system, it states
Quote
Valves
    There is a valve in the brake line of each brake controlled by the ABS. On some systems, the valve has three positions:

    In position one, the valve is open; pressure from the master cylinder is passed right through to the brake.
    In position two, the valve blocks the line, isolating that brake from the master cylinder. This prevents the pressure from rising further should the driver push the brake pedal harder.
    In position three, the valve releases some of the pressure from the brake.

The majority of problems with the valve system occur due to clogged valves. When a valve is clogged it is unable to open, close, or change position. An inoperable valve will prevent the system from modulating the valves and controlling pressure supplied to the brakes.

Pump
     The pump in the ABS is used to restore the pressure to the hydraulic brakes after the valves have released it. A signal from the controller will release the valve at the detection of wheel slip. After a valve release the pressure supplied from the user, the pump is used to restore a desired amount of pressure to the braking system. The controller will modulate the pumps status in order to provide the desired amount of pressure and reduce slipping.
The pump I can see is a must have, and if this is how all the ABS units work than surely that pump along with the valve positions could be used to apply brake pressure without the pushing of the pedal. This ability to automatically apply pressure to single brakes allows wheel spin to be limited and power to be applied to the wheels with the most traction.

Some cars have Traction Control which operate this way by applying the brakes instead of cutting fuel supply. I've found Land Rover Discovery's and Prado 120 Grande/150's have these types of traction control.

What is needed is to find out if standard ABS unit could operate in the way required or if a unit from a car with traction control is needed.


Speed sensors can be taken off any car and adapted to work so it should be easy to solve.


I know the Arduino has the ability to have the input required and control the output for the unit. It's a matter of programing. I don't know C++ but have had experience modifying code and using Arduino's.

The programming would need to monitor the four wheel inputs and possibly a crank speed input. Then if a detection of difference over a threshold is reached the Arduino must apply the brake to that single wheel.
It might be useful to have this controller also have a sensor off the brake lights so that it disengages operation while under user braking. And a switch to turn it on and off.
I'm thinking the that the ABS unit may require PWM control (variable, not just on or off). This is possible with the Arduino but just a little more complicated to program.


What do you think? Possible? Do you have skills to help? It would make the Subaru act like it had a locker, probably even better.