ABS Based Traction Control System
- Ben
- Junior Member
- Posts: 853
- Joined: Tue Oct 04, 2005 10:00 am
- Location: Coffs Harbour, North Coast NSW
ABS Based Traction Control System
Thought I may as well get this thread started as I figure I am going to need a few facets of technical skills on it.
I have at this point
A Nippondenso ABS Unit
Atmel AVR Mega8 microcontroller
16x2 bl LCD should be here soon
the rest of the bits n pieces for the dev board
the AVR programmer isn't far off now.
I have also discovered that ABS units get to be patented, and part of patents is very accurate descriptions and drawings of how they work!
Here's one from 1986 - http://www.freepatentsonline.com/4690465.html
Anyway, once I understand more how these things work I'll start posting more.
I am thinking of making this thing completely open source and openly developed. That way we can avoid any particular or peculiar ways of individual thinking.
Thoughts??
I have at this point
A Nippondenso ABS Unit
Atmel AVR Mega8 microcontroller
16x2 bl LCD should be here soon
the rest of the bits n pieces for the dev board
the AVR programmer isn't far off now.
I have also discovered that ABS units get to be patented, and part of patents is very accurate descriptions and drawings of how they work!
Here's one from 1986 - http://www.freepatentsonline.com/4690465.html
Anyway, once I understand more how these things work I'll start posting more.
I am thinking of making this thing completely open source and openly developed. That way we can avoid any particular or peculiar ways of individual thinking.
Thoughts??
- Ben
- Junior Member
- Posts: 853
- Joined: Tue Oct 04, 2005 10:00 am
- Location: Coffs Harbour, North Coast NSW
This ones good too - Eaton braking systems patent of a traction control system 
Traction Control Patent

Traction Control Patent
Big thanks Ben, for finding this info for us :P
I have the same ABS unit , and pulling it to pieces has always been on my mind since I got it,
this info may just eleviate my urge to pull this thing apart...so thanks
Still its a big enough unit, deciding on the right place to put it is no simple task.
Question I have atm, is that there is a proportioning valve? at the rear, now does this interfere with what the ABS intention is? ie apply pressure individually to each brake.
I have the same ABS unit , and pulling it to pieces has always been on my mind since I got it,
this info may just eleviate my urge to pull this thing apart...so thanks
Still its a big enough unit, deciding on the right place to put it is no simple task.
Question I have atm, is that there is a proportioning valve? at the rear, now does this interfere with what the ABS intention is? ie apply pressure individually to each brake.
- PeeJay
- Junior Member
- Posts: 685
- Joined: Tue Oct 04, 2005 10:00 am
- Location: Riverstone, Sydney
- Contact:
I'm up for a bit of open source deving if you're planning on using gcc. I've got a Mega32 and a 320x240 touch screen to go into mine (I'm putting in an accelerometer and whatever else takes my fancy).
I've already got the ABS unit in the car ready to go, just need my coils to arrive so that the car can go as well
There is wiring diagram at http://www.driftquebec.com/legacy/1992_legacy.pdf (31mb) on page 745 of a series 1 ABS unit.
That's as far as I've got so far.
I've already got the ABS unit in the car ready to go, just need my coils to arrive so that the car can go as well

There is wiring diagram at http://www.driftquebec.com/legacy/1992_legacy.pdf (31mb) on page 745 of a series 1 ABS unit.
That's as far as I've got so far.
- Ben
- Junior Member
- Posts: 853
- Joined: Tue Oct 04, 2005 10:00 am
- Location: Coffs Harbour, North Coast NSW
Sounds good!!
Will be using GCC yes, and assembler if required dunno about anyone else but assembler makes more sense to me when I read it compared to C - except for multiply and divide, C rules there
I have dl'd WinAVR software which includes the GCC compiler, and AVR Studio from Atmel. I have never done C on a mcu before so am in for some learnin!
For your touchscreen, where did you get oyur code from? Or did you write it yourself?
The ABS unit I have is from a Gen II liberty, I don't have diagrams for it, but have diagrams for impreza units, which I assume would be the same for that year.
I was going to use the 16x2 display as a 8 lots of 4 grids
FR Speed FR Braking FL Speed FL Braking
RR Speed RR Braking RL Speed RL Braking
Have you guys started to think about getting wheel speed signals into the MCU?
I have been reading data sheets and other sources and am really struggling with the concept of using the counters to record frequency and make it useable to compare.
I am entirely comfortable however with using LM2917 frequency to voltage converters to feed the ADC channels on the mcu.
I have also been thinking about the sensor - I think a 36 tooth biased hall sensor would be easiest to implement, requireing a steel disc with 36 teeth on it, and a hall sensor epoxied to a magnet situated close to the teeth. Mount this on the diff end of the driveshafts to keep it protected...
Shouldn't be too hard to get the toothed wheel laser cut, weld that to a machined spigot to mount it to the cv joint (or even drill and tap the cv joint and bolt it on...)
Will be using GCC yes, and assembler if required dunno about anyone else but assembler makes more sense to me when I read it compared to C - except for multiply and divide, C rules there

I have dl'd WinAVR software which includes the GCC compiler, and AVR Studio from Atmel. I have never done C on a mcu before so am in for some learnin!
For your touchscreen, where did you get oyur code from? Or did you write it yourself?
The ABS unit I have is from a Gen II liberty, I don't have diagrams for it, but have diagrams for impreza units, which I assume would be the same for that year.
I was going to use the 16x2 display as a 8 lots of 4 grids
FR Speed FR Braking FL Speed FL Braking
RR Speed RR Braking RL Speed RL Braking
Have you guys started to think about getting wheel speed signals into the MCU?
I have been reading data sheets and other sources and am really struggling with the concept of using the counters to record frequency and make it useable to compare.
I am entirely comfortable however with using LM2917 frequency to voltage converters to feed the ADC channels on the mcu.
I have also been thinking about the sensor - I think a 36 tooth biased hall sensor would be easiest to implement, requireing a steel disc with 36 teeth on it, and a hall sensor epoxied to a magnet situated close to the teeth. Mount this on the diff end of the driveshafts to keep it protected...
Shouldn't be too hard to get the toothed wheel laser cut, weld that to a machined spigot to mount it to the cv joint (or even drill and tap the cv joint and bolt it on...)
- PeeJay
- Junior Member
- Posts: 685
- Joined: Tue Oct 04, 2005 10:00 am
- Location: Riverstone, Sydney
- Contact:
I use WinAVR and Programmer's Notepad (installed by WinAVR). Don't bother with avr studio, it's not very helpful unless you are using assembler.
The display came from Here
I'm still wondering if I can be bothered yet because I'll have to write the code and design the driver for it. I might just get something easier for now.
I've got some hall effect sensors here that I tried using on another project (PID motor speed controller) that needed a gear tooth sensor. They didn't work so well (it wasn't industrial proof), so I ended up using These and they work very well. I'm actually hoping to just use the standard abs sensors with the lib disks when I get them.
To use a pulse input to the MCU just hook it up to one if the interrupt lines, set that pin to be edge triggered (both high and low) and count the number of interrupts in a set time period. I guess you could use the ADC if you wanted, but I like to be nice and precise!
The display came from Here
I'm still wondering if I can be bothered yet because I'll have to write the code and design the driver for it. I might just get something easier for now.
I've got some hall effect sensors here that I tried using on another project (PID motor speed controller) that needed a gear tooth sensor. They didn't work so well (it wasn't industrial proof), so I ended up using These and they work very well. I'm actually hoping to just use the standard abs sensors with the lib disks when I get them.
To use a pulse input to the MCU just hook it up to one if the interrupt lines, set that pin to be edge triggered (both high and low) and count the number of interrupts in a set time period. I guess you could use the ADC if you wanted, but I like to be nice and precise!
- Ben
- Junior Member
- Posts: 853
- Joined: Tue Oct 04, 2005 10:00 am
- Location: Coffs Harbour, North Coast NSW
I can understand single line measuring, and even using a multiplexer/switch to read 4 inputs in - only thing I can't figure is a how to read four inputs at only 36 counts per wheel revolution with 8mhz mcu and compare two wheels to each other at the same time - mux measures each input in turn, not 4 all at once... Using ADC will allow all four wheels to be measured at exactly the same time...PeeJay wrote: To use a pulse input to the MCU just hook it up to one if the interrupt lines, set that pin to be edge triggered (both high and low) and count the number of interrupts in a set time period. I guess you could use the ADC if you wanted, but I like to be nice and precise!
Using a 36 tooth wheel, at 40km/h on 27" tyres gives 185hz, so in reality you only need to measure each wheel at between 0 and 185 hz. The adc in the Mega is 10 bit so each level is 0.2 hz, which is heaps plenty of resolution to detect say 5% wheel speed difference.
- PeeJay
- Junior Member
- Posts: 685
- Joined: Tue Oct 04, 2005 10:00 am
- Location: Riverstone, Sydney
- Contact:
What I was thinking was measure the four wheels using interrupts over a set time period (100ms or 10hz). To get accurate results it might be necessary to average the results over the last 3-500ms or so. This would be similar to using a frequency to voltage converter, but I like digital circuits better so I'd do it digitally.
It may also be possible to use basic PID control to adjust the corrective action applied by the ABS unit. Depending on how easy it would be to tune the PID, and on how stable the PID system is, PWM on the main motor may be possible to adjust the overall force applied by the brakes so it's not just a matter of on or off.
But all that's a long way off yet!
It may also be possible to use basic PID control to adjust the corrective action applied by the ABS unit. Depending on how easy it would be to tune the PID, and on how stable the PID system is, PWM on the main motor may be possible to adjust the overall force applied by the brakes so it's not just a matter of on or off.
But all that's a long way off yet!
- Ben
- Junior Member
- Posts: 853
- Joined: Tue Oct 04, 2005 10:00 am
- Location: Coffs Harbour, North Coast NSW
Ok, $300 in sensors is nowhere to be found in my budget for this, I guess I am gonna have to find another source.PeeJay wrote:That's the one!
All that is needed is 5V power and connect the signal wire straight to the MCU with a pullup. I've tested the one I have up to 400 hz on a 9 tooth 20mm sprocket.
Now, in my engine I have two gear tooth sensors, one on the cam, one on the crank. Commondores since 1990 have also used crank sensed ignition modules, so I deduce that there will be a GM gear tooth sensor available, and odds on it's cheap... Now I need a part number and a photo

- Ben
- Junior Member
- Posts: 853
- Joined: Tue Oct 04, 2005 10:00 am
- Location: Coffs Harbour, North Coast NSW
Shameless Retailer plug
Just want to plug a retailer that Dane put me onto, have ordered a couple of times from them now.
http://www.futurlec.com.au
Located in Australia (Newcastle) but orders are shipped from Thailand.
I ordered the backlit 16x2 LCD from them, what appears to be the identical part from Dick Smith is $29.97, from futurlec is $10.51 plus $4 postage, yes $4 postage, compared to the $40+ that ebay sellers charge to post anything from asia it is minimal!
I ordered some other stuff previously, the mailing sticker on the envelope was for 66 baht, which is less than $2.20 postage!!! They still charge $4, but hey, who cares!!!
They also have a much wider range of semi's than the local affordable retailers have too.
http://www.futurlec.com.au
Located in Australia (Newcastle) but orders are shipped from Thailand.
I ordered the backlit 16x2 LCD from them, what appears to be the identical part from Dick Smith is $29.97, from futurlec is $10.51 plus $4 postage, yes $4 postage, compared to the $40+ that ebay sellers charge to post anything from asia it is minimal!
I ordered some other stuff previously, the mailing sticker on the envelope was for 66 baht, which is less than $2.20 postage!!! They still charge $4, but hey, who cares!!!
They also have a much wider range of semi's than the local affordable retailers have too.
- PeeJay
- Junior Member
- Posts: 685
- Joined: Tue Oct 04, 2005 10:00 am
- Location: Riverstone, Sydney
- Contact:
They are good but you get what you pay for!! The quality of some of their parts (mostly passive components) is quite nasty. Think Supacheap....
http://www.mouser.com is very good for anything except passives but you need a large order to make the postage worth while. Quality is A1. (Think Farnell/RS)
My favourite is Altronics.
While we are on the subject, does everyone else get their PCBs made at http://www.olimex.com ? I usually make my own when they are single sided.
http://www.mouser.com is very good for anything except passives but you need a large order to make the postage worth while. Quality is A1. (Think Farnell/RS)
My favourite is Altronics.
While we are on the subject, does everyone else get their PCBs made at http://www.olimex.com ? I usually make my own when they are single sided.
- Ben
- Junior Member
- Posts: 853
- Joined: Tue Oct 04, 2005 10:00 am
- Location: Coffs Harbour, North Coast NSW
I have always made my own using the laser toner on inkjet photopaper then iron on the pcb copper and soak paper off in the sink then etch in FeCl
is it economical getting them made?
I buy resistors caps etc locally, have a bunch of them and haven't needed to order yet.
It just annoys me that postage from aussie retailers is higher than postage from overseas...
is it economical getting them made?
I buy resistors caps etc locally, have a bunch of them and haven't needed to order yet.
It just annoys me that postage from aussie retailers is higher than postage from overseas...
- PeeJay
- Junior Member
- Posts: 685
- Joined: Tue Oct 04, 2005 10:00 am
- Location: Riverstone, Sydney
- Contact:
I haven't got a decent laser printer available to me so I always use the negative photoresist method. Recently I've made a few boards where the track spacings was 10 thou and used surface mount components, it actually turnd out quite well.
For me it is better to get them made, but I usually make the first one myself if it is single sided, that way I can change it later when I find out I've stuffed up! I just hate drilling all the holes.
For me it is better to get them made, but I usually make the first one myself if it is single sided, that way I can change it later when I find out I've stuffed up! I just hate drilling all the holes.
I hope you guys have remembered that when you go round a corner all 4 wheels are spinning at different revs & your programming will have to take that into account.
the tighter the turn, the greater the difference.
How are you going to stop/slow the wheel that's spinning too fast?
retarding the timing of cutting fuel is really primitive & will just slow the whole car, not stop the wheel spinning.
If you're going to effort of fitting the ABS sensors, I'd be fitting the entire system & then using that to activate the brake on the spinning wheel. This is how the better modern 4wd systems work.
the tighter the turn, the greater the difference.
How are you going to stop/slow the wheel that's spinning too fast?
retarding the timing of cutting fuel is really primitive & will just slow the whole car, not stop the wheel spinning.
If you're going to effort of fitting the ABS sensors, I'd be fitting the entire system & then using that to activate the brake on the spinning wheel. This is how the better modern 4wd systems work.
Current rides:
JDM GTII Touring wagon
88 RX Turbo Full-time 4wd touring wagon project - 97 Toyota Caldina GTT (turbo 4wd WRX eater:twisted:) - Hyundai Excel Rally Car
:???:
Previous rides:
93 Legacy GT wagon - 85 RX Turbo Full time 4wd Touring Wagon - 85 GL AWD sedan
96 Toyota Caldina wagon
JDM GTII Touring wagon
88 RX Turbo Full-time 4wd touring wagon project - 97 Toyota Caldina GTT (turbo 4wd WRX eater:twisted:) - Hyundai Excel Rally Car

Previous rides:
93 Legacy GT wagon - 85 RX Turbo Full time 4wd Touring Wagon - 85 GL AWD sedan
96 Toyota Caldina wagon
- PeeJay
- Junior Member
- Posts: 685
- Joined: Tue Oct 04, 2005 10:00 am
- Location: Riverstone, Sydney
- Contact:
That's the plan!wagonist wrote:If you're going to effort of fitting the ABS sensors, I'd be fitting the entire system & then using that to activate the brake on the spinning wheel. This is how the better modern 4wd systems work.
I was thinking of only enabling corective action while traveling in a straight line below say 20km/h. For now

I had a look under a VZ Commowhore the other day & the rear ABS sensors are fitting to the rear inner CV (ie against the diff)
might be worth investigating.
Its a pity the ABS stuff was removed from my car because for the work I'm inteding the car to do, I definitely want it.
If anyone know where I can get an ABS loom & front sensors from, let me know
might be worth investigating.
Its a pity the ABS stuff was removed from my car because for the work I'm inteding the car to do, I definitely want it.
If anyone know where I can get an ABS loom & front sensors from, let me know

Current rides:
JDM GTII Touring wagon
88 RX Turbo Full-time 4wd touring wagon project - 97 Toyota Caldina GTT (turbo 4wd WRX eater:twisted:) - Hyundai Excel Rally Car
:???:
Previous rides:
93 Legacy GT wagon - 85 RX Turbo Full time 4wd Touring Wagon - 85 GL AWD sedan
96 Toyota Caldina wagon
JDM GTII Touring wagon
88 RX Turbo Full-time 4wd touring wagon project - 97 Toyota Caldina GTT (turbo 4wd WRX eater:twisted:) - Hyundai Excel Rally Car

Previous rides:
93 Legacy GT wagon - 85 RX Turbo Full time 4wd Touring Wagon - 85 GL AWD sedan
96 Toyota Caldina wagon