Truncated match.
PICList
Thread
'Ignition timing control'
2000\05\01@234129
by
John Pearson
I am thinking of ways to control the ignition timing advance curve of a
car. I was thinking that I might time the amount of time between cylinder
firings and divide that number by 360. Then I would know when to fire the
next cylinder after checking with a lookup table for the programmed curve.
Is there a better or easier way?
Thanks
John
2000\05\02@002823
by
Tony Nixon
|
John Pearson wrote:
>
> I am thinking of ways to control the ignition timing advance curve of a
> car. I was thinking that I might time the amount of time between cylinder
> firings and divide that number by 360. Then I would know when to fire the
> next cylinder after checking with a lookup table for the programmed curve.
>
> Is there a better or easier way?
>
> Thanks
>
> John
One thing is to remember that the less calculations you have to do while
the engine is running, the better.
Two ways I have found around this, is to precalculate data that is used
while the engine is running, or use a lookup table.
I used precalculated data with 4 stages of advance, vac adv, dwell and
RPM timing etc. It took a PIC 16F84 about 40 - 60 inline instructions to
get the timing for all these parameters as well as do the actual timing
from the results.
Check out
http://www.picnpoke.com/projects/ignition.html
There is some early downloadable code there that uses a lookup table.
--
Best regards
Tony
http://www.picnpoke.com
spam_OUTsalesTakeThisOuT
picnpoke.com
2000\05\02@003626
by
l.allen
John Wrote
> I am thinking of ways to control the ignition timing advance curve of a
> car. I was thinking that I might time the amount of time between cylinder
> firings and divide that number by 360. Then I would know when to fire the
> next cylinder after checking with a lookup table for the programmed curve.
>
> Is there a better or easier way?
>
Young Anthony Nixon of the PICLIST made and
published through a magazine called Silicon Chip such a
device using a 16C84 and a keypad.
I would definitely talk to him.
_____________________________
Lance Allen
Technical Officer
Uni of Auckland
Psych Dept
New Zealand
http://www.psych.auckland.ac.nz
_____________________________
2000\05\02@020318
by
Gareth Bennett
Silicon Chip had a programmable ignition using a PIC ..... You may want to
look at the article.
The kits are still available, or the code may be of interest to you!
http://www.picnpoke.com/projects/ignition.html
Hope this helps
____________________________________________________________________________
________________________________________________________
Gareth Bennett .....garethbKILLspam
@spam@es.co.nz
Systems Engineering (LMR Group)
Otago/Southland Region
New Zealand
{Original Message removed}
2000\05\02@022242
by
Andrew Warren
|
John Pearson <PICLIST
KILLspamMITVMA.MIT.EDU> wrote:
> I am thinking of ways to control the ignition timing advance curve of
> a car. I was thinking that I might time the amount of time between
> cylinder firings and divide that number by 360. Then I would know when
> to fire the next cylinder after checking with a lookup table for the
> programmed curve.
>
> Is there a better or easier way?
John:
Why divide by 360 at all? I don't see what purpose that would
serve...
Anyway, it's harder than it appears; if you only have a low-
resolution source of engine-position information (like the
distributor), you'll probably find that your PIC will retard the
timing whenever the engine's accelerated. You can get better engine-
position resolution if your car has a crank sensor on the flywheel or
something... But if you use that instead of the signal from the
distributor, you'll no longer get free information from the
distributor's vacuum sensor, which is sorta important if this is for
a street-driven car, since you won't get real good drivability if you
just use a hardwired curve.
On the other hand, using the distributor signal (after it's been
affected by the vacuum sensor) means that you might have to modify
your curve to compensate for a non-optimal vacuum-advance.
And... Since your engine presumably revs over a large range, you have
to make sure that you're measuring time with high-enough resolution
for accurate operation at redline, but not so finely that you
overflow your counters at idle.
There are LOTS of other software issues (and a fair number of
hardware issues, as well), but those are the main ones. Ignition
controllers are kinda complicated; the ones I did for Jacobs
Electronics ran to over 10,000 lines of code.
My personal inclination, if I were just doing this for my own car,
would be to forget about putting a PIC in there and just take the
distributor to a race shop and get it re-curved to my specs (or, if
the car didn't HAVE a distributor, take the existing EPROM out of the
ECU and have IT modified).
If you DO decide to do this project, though, I can offer a bit of
advice: Do all your testing on the bench, with a function generator
replacing the car's distributor. Spark timing that's bad enough to
cause detonation will kill an engine fast, and timing that's GROSSLY
wrong will kill an engine REAL fast.
Good luck...
-Andy
=== Andrew Warren - .....fastfwdKILLspam
.....ix.netcom.com
=== Fast Forward Engineering - San Diego, California
=== http://www.geocities.com/SiliconValley/2499
2000\05\02@030126
by
Tony Nixon
|
Andrew Warren wrote:
> If you DO decide to do this project, though, I can offer a bit of
> advice: Do all your testing on the bench, with a function generator
> replacing the car's distributor. Spark timing that's bad enough to
> cause detonation will kill an engine fast, and timing that's GROSSLY
> wrong will kill an engine REAL fast.
Good advice.
Many a night, 'the shed' lit up due to carby and exhaust 'explosions'.
Couldn't believe the PIC survived all the crap it had to put up with.
Still got it somewhere.
Keep naked working spark plugs away from the PIC too. It will start
executing it's code upside down and backwards at the same time. Same
goes for old copper cored spark leads. Very frustrating to find bugs if
you are unaware of this.
Avoid ground loops through the PIC PCB. If the coil (or other) suddenly
decides to return it's current back through the PCB's ground due to a
faulty connection, the PCB will light up "Eat at Joe's" for a split
second then spit the dummy. I've seen it happen twice now.
Make your circuit robust enough for a brown out situation, such as
cranking with a half flat battery, and things such as load dumps etc.
Sometimes the PIC can fire up or run in an erratic manner.
One good thing about using a distributor with a 'home made' ignition
system is that you can bypass the PIC circuit and connect the coil back
up to the points to get home if something fails.
The 8 bit timers in the PIC are not really set up for high revving
accuracy. I think Motorola (are you allowed to say that here), have
purpose built processors for ignition control, whether or not you can
get them is another matter.
I did some rough math awhile ago, and on older slow revving motors,
using the distributor for a timing reference doesn't matter too much. Hi
performance, Hi RPM is a totally different ball game though. Best left
to the experts.
I think one of the trickiest things is getting control of the engine
just when you are starting to crank it. And then
there's...and...and...and..
As Andy said, "a project like this is harder than it first appears".
--
Best regards
Tony
http://www.picnpoke.com
EraseMEsalesspam_OUT
TakeThisOuTpicnpoke.com
2000\05\02@030537
by
Darren Logan
John,
Write to david
spam_OUTnumber15.freeserve.co.uk (David).
He's an old college buddy of mine and did his final year degree project based
on go-kart
ignition timing. He may be able to help.
(Mention to David that i sent you)
Regards,
Darren
2000\05\02@100513
by
James Paul
|
John,
That's basically the way the car mfg does it,(At least Ford I know).
But the firing of the ignition is dependent on many factors..ie
Engine Speed, Engine Load, Whether Accelerating or Decellerating,
Temperature of Engine, etc., etc. So, it's not just a matter of
adding a fixed value time period. It's a rather complicated
process. It's doable, but it will take a little more calculation
and thinking to come up with a lookup table that will help and not
hinder. I've had some experience in this area, but I don't claim
to be an expert by any stretch of the term. And my experience is
limited at that. I'd be glad to help out where I can, but I will
tell you now that I don't have the knowledge or expertise to do it
all by myself if I were asked to. Anyway, let me know what you
decide.
Regards,
Jim
On Mon, 01 May 2000, John Pearson wrote:
{Quote hidden}>
> I am thinking of ways to control the ignition timing advance curve of a
> car. I was thinking that I might time the amount of time between cylinder
> firings and divide that number by 360. Then I would know when to fire the
> next cylinder after checking with a lookup table for the programmed curve.
>
> Is there a better or easier way?
>
> Thanks
>
> John
@spam@jimKILLspam
jpes.com
2000\05\02@143122
by
Craig Lee
>As Andy said, "a project like this is harder than it first appears".
Tell me about it. I did one a while back that was supposed to take
a month. I figured a simple state machine would do the trick.
You need to factor in dwell time, noise spikes, brown out, low rev
timing, rev limiting, etc.
Craig
More... (looser matching)
- Last day of these posts
- In 2000
, 2001 only
- Today
- New search...