Page 1 of 2

ABS Based Traction Control System

Posted: Wed Nov 16, 2005 8:00 pm
by Ben
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??

Posted: Wed Nov 16, 2005 8:25 pm
by Ben
This ones good too - Eaton braking systems patent of a traction control system :)

Traction Control Patent

Posted: Wed Nov 16, 2005 10:30 pm
by fredsub
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.

Posted: Thu Nov 17, 2005 7:29 am
by Ben
Proportioning valve shouldn't hurt anything as it is 2ch in, 2ch out with slightly less pressure.

I am putting my abs unit on the drivers side near the strut tower, and a spare battery between the abs unit and the headlight (I have removed the bracket that holds the carbon cannister from there).

Posted: Thu Nov 17, 2005 10:04 am
by PeeJay
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.

Posted: Thu Nov 17, 2005 10:45 am
by Ben
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...)

Posted: Thu Nov 17, 2005 11:14 am
by PeeJay
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!

Posted: Thu Nov 17, 2005 11:50 am
by Ben
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!
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...

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.

Posted: Thu Nov 17, 2005 12:00 pm
by Ben
This it??

Image

RS Part number 235-5706 with typical RS price of $75 each :)

Posted: Thu Nov 17, 2005 12:12 pm
by PeeJay
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!

Posted: Thu Nov 17, 2005 12:18 pm
by PeeJay
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.

Posted: Thu Nov 17, 2005 2:07 pm
by Ben
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.
Ok, $300 in sensors is nowhere to be found in my budget for this, I guess I am gonna have to find another source.

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 :)

Shameless Retailer plug

Posted: Fri Nov 18, 2005 8:55 am
by Ben
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.

Posted: Fri Nov 18, 2005 11:22 am
by PeeJay
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.

Posted: Fri Nov 18, 2005 11:42 am
by Ben
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...

Posted: Fri Nov 18, 2005 12:48 pm
by PeeJay
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.

Posted: Fri Nov 18, 2005 2:56 pm
by Ben
Yeah, hole drilling sucks.

One of the *eventual* projects on the list of things to make one day is a pcb router, would come in handy I think...

Posted: Sat Nov 19, 2005 12:13 pm
by wagonist
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.

Posted: Sat Nov 19, 2005 1:41 pm
by PeeJay
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.
That's the plan!

I was thinking of only enabling corective action while traveling in a straight line below say 20km/h. For now :twisted:

Posted: Sat Nov 19, 2005 1:52 pm
by wagonist
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 :wink: