absolute position sensor

Hi,

I'm trying to get info on the best way to add a sensor to my truck's engine for determining absolute position of the crankshaft while the engine is running. The sensor would be used for tuning purposes, as well as connecting to a small laptop for data logging. Through the PC, I planned on taking a feed from the tachometer signal to determine the ignition timing from inside the truck as well. No real practical application, just a fun project for me.

My needs are fairly simple: It should be able to measure 360=B0 or better (such as 720=B0 or 1440=B0) as well as be durable enough to handle the heat under the hood and normal amounts of dirt from the road.

I'm assuming a magnetic / hall effect sensor would be best, but where do I get something with the accuracy I need?

Thanks,

~jp

Reply to
Jon R. Pickens
Loading thread data ...

2 Hall sensors: 1 to sense flywheel ring gear teeth, the other to sense any flywheel feature that is unique for each revolution. The 2nd sensor gives you a sync for each full revolution. Of course, you could use a camshaft gear or timing chain in an analogous fashion, taking the gearing into account. Paul Mathews
Reply to
Paul Mathews

What are you going to display this on? In real time, even at idle, we're talking 600 RPM's or so. LED's will just be a blur.

Timing lights (for engine tune ups) used to use a little white line marked on the camshaft pully. You can probably do something similar optically, then average out the rest of the circle position based on time between sequential marks. Just an idea.

-mpm

Reply to
mpm

I forgot to mention, that if the engine is stopped, then started again, I'd need it to be somewhat re-synced after a couple of revolutions (before the engine even starts really).

~jp

Reply to
Jon R. Pickens

Where do LEDs enter the picture??? It'd be displayed on a little tablet PC...

The idea is, by knowing the exact position of the crank, I could use software to determine ignition timing and duration (of course, I'd also be capturing data from the ignition system to monitor that).

The "interface" would consist of the PC, with real-time engine speed in RPM, ignition timing and duration displayed on the screen.

Something like this at idle:

---------------------------- Engine speed: 800rpm Ignition timing advance: 4=B0 BTDC Ignition duration: 20=B0

---------------------------- .=2E.and while cruising on the interstate:

---------------------------- Engine speed: 2130rpm Ignition timing advance: 14=B0 BTDC Ignition duration: 20=B0

---------------------------- If you hit the gas, the numbers should change accordingly, provided that the software is doing its job and grabbing several new samples of data every second. It'd be connected either via RS232 or the parallel port.

Thanks,

~jp

Reply to
Jon R. Pickens

I don't suppose you even remotely thought it might be a good idea to tell us WHAT KIND OF TRUCK you are thinking about, did you?

Reply to
PeterD

Put a magnetic sensor near the flywheel where it will pick up each tooth as one pulse?

You'd have to interpolate, of course, and you'd need another kind of pulse to sync it at #1 TDC.

Have Fun! Rich

Reply to
Rich Grise

Your resolution will be dependant on amount of info collected per revolution. The gearing on flywheel is a good collection point with Hall or magnetic sensor. This AND the 0 deg position should give you all info you need.

HTH

Stanislaw.

Reply to
Stanislaw Flatto

If you mount your sensor right, and since you're going to have to write some code anyway, just use the hall sensor (or permanent magnet sensor, like a guitar pickup) to sense the flywheel teeth, and interpolate for fractions of degrees and stuff. You'd need to know how much skew there is at various speeds (i.e., a magnetic sensor will respond differently at 600 RPM than at 3000 RPM.) So you'll have to determine just when the leading edge happens relative to the physical tooth for any given RPM

- you're going to have to calibrate this thing anyway, right? :-)

And another thing - can't you just ask the car's computer?

Have Fun! Rich

Reply to
Rich Grise

Well, this truck doesn't have a computer... it was made in 1986.

Thanks for the advice,

~jp

Reply to
Jon R. Pickens

Actually, no I didn't... I didn't and still don't see it as relevant, but... it's a 1986 Chevrolet K5 Blazer, non-computerized and carbureted, 350ci engine / automatic tranny with A/C. The only computerized part of the truck (as far as I know) was a small system that retards the ignition timing based on input from a knock sensor. It is currently disabled, and no it's not a hack--it's a GM-approved modification that was released in a service bulletin after that circuit began to fail with regularity.

~jp

Reply to
Jon R. Pickens

Everything that relates to the question is relevant, otherwise we're all just stabbing in the dark. For example, if I'd known this before, I'd have left out the part about just asking the car's computer. :-)

Cheers! Rich

Reply to
Rich Grise

Gotcha... I guess my intention wasn't clear, which is to add something to the truck that doesn't already exist.

Thanks,

~jp

Reply to
Jon R. Pickens

Now that that's out of the way ( ;-) ), did you get any useful answers?

Thanks, Rich

Reply to
Rich Grise

does it have an OBD socket ?

IIRC that's about when they started fitting crank position sensors to some vehicles.

I had a car that had the sensor connected to a socket but to nothing else.

Bye. Jasen

Reply to
jasen

Some, yes... I already understood the concept of using a sensor near the teeth on the flywheel, so that may be the direction I go with this project. I just don't know if it'll provide the resolution I want. It seems that if I wanted to measure somewhere in-between the teeth of the flywheel, I wouldn't be able to do so, rather I'd have to calculate position based on engine speed and last known position. Correct?

~jp

Reply to
Jon R. Pickens

Sounds like you've got it pretty much summed up. Is it possible to view the flywheel while the engine is running? You could use a strobe to get it down to a gnat's ass, but you'd need to do a couple of things simultaneously in your software - first, you'd scope out the sensor output, and make a record of the waveform at various RPMs. It might be possible to pick a trigger point that would correspond really closely to the same position on each tooth at any RPM. Then, knowing the current RPM, each tooth interval will correspond to a certain number of degrees.

How many teeth are on a typical flywheel anyway?

Thanks, Rich

Reply to
Rich Grise

It may be possible to use the teeth together with an optical technique. An issue being that you'd want a broad 'spot size' so that instead of getting 'on/off', 'off/on' behavior you instead get a sinusoidal shape in the signal you receive. You can sample that with a fast enough circuit and it will get you a way to figure position in between the teeth or at different relative positions over a tooth.

Jon

Reply to
Jonathan Kirwan

I think since it is not a very clean area it would be more reliable to use hall sensors because dirt could upset an optical system. I expect you can get a packaged unit with basically a hall sensor and a magnet behind it, and if you put that near the teeth of the ring gear then you can count the pulses. Also, provided the angular velocity is reasonably constant from one tooth to the next, then you can just assume that the crankshaft angle increases linearly with time from one pulse to the next. This would allow you to estimate the position of the flywheel at any point in time. I think this would be the best option.

If you don't want to assume that the angular velocity is constant over the period from one tooth to the next, then you could make a setup with two sensors spaced apart by a 0.25 tooth, (or 1.25 teeth, or 2.25 teeth etc. whatever is easiest mechanically). If you use "linear" hall sensors with an analogue output voltage proportional to magnetic field in the sensor then you would get two waveforms that would look like a distorted sine wave and a distorted cosine wave (with some DC offset), from which you could figure out the position within a small fraction of a tooth. You could work out the position even with the engine stopped (provided your sensor has been running since the last time you detected the top-dead-centre and reset the counters). If you use four sensors at 0, 0.25, 0.5 and 0.75 tooth offsets (plus any integer number of teeth needed for mechanical reasons) then you don't need to bother so much about the DC-shift in the output due to the permanent magnet behind the hall sensor because you can take differential readings between the 0 tooth and 0.5 tooth sensors for one channel and differential readings between the 0.25 and 0.75 tooth sensors for the other channel. I think using a single sensor is easier though.

Chris

Reply to
Chris Jones

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.