If you need assistance, please send an email to forum at 4hv dot org. To ensure your email is not marked as spam, please include the phrase "4hv help" in the subject line. You can also find assistance via IRC, at irc.shadowworld.net, room #hvcomm.
Support 4hv.org!
Donate:
4hv.org is hosted on a dedicated server. Unfortunately, this server costs and we rely on the help of site members to keep 4hv.org running. Please consider donating. We will place your name on the thanks list and you'll be helping to keep 4hv.org alive and free for everyone. Members whose names appear in red bold have donated recently. Green bold denotes those who have recently donated to keep the server carbon neutral.
Special Thanks To:
Aaron Holmes
Aaron Wheeler
Adam Horden
Alan Scrimgeour
Andre
Andrew Haynes
Anonymous000
asabase
Austin Weil
barney
Barry
Bert Hickman
Bill Kukowski
Blitzorn
Brandon Paradelas
Bruce Bowling
BubeeMike
Byong Park
Cesiumsponge
Chris F.
Chris Hooper
Corey Worthington
Derek Woodroffe
Dalus
Dan Strother
Daniel Davis
Daniel Uhrenholt
datasheetarchive
Dave Billington
Dave Marshall
David F.
Dennis Rogers
drelectrix
Dr. John Gudenas
Dr. Spark
E.TexasTesla
eastvoltresearch
Eirik Taylor
Erik Dyakov
Erlend^SE
Finn Hammer
Firebug24k
GalliumMan
Gary Peterson
George Slade
GhostNull
Gordon Mcknight
Graham Armitage
Grant
GreySoul
Henry H
IamSmooth
In memory of Leo Powning
Jacob Cash
James Howells
James Pawson
Jeff Greenfield
Jeff Thomas
Jesse Frost
Jim Mitchell
jlr134
Joe Mastroianni
John Forcina
John Oberg
John Willcutt
Jon Newcomb
klugesmith
Leslie Wright
Lutz Hoffman
Mads Barnkob
Martin King
Mats Karlsson
Matt Gibson
Matthew Guidry
mbd
Michael D'Angelo
Mikkel
mileswaldron
mister_rf
Neil Foster
Nick de Smith
Nick Soroka
nicklenorp
Nik
Norman Stanley
Patrick Coleman
Paul Brodie
Paul Jordan
Paul Montgomery
Ped
Peter Krogen
Peter Terren
PhilGood
Richard Feldman
Robert Bush
Royce Bailey
Scott Fusare
Scott Newman
smiffy
Stella
Steven Busic
Steve Conner
Steve Jones
Steve Ward
Sulaiman
Thomas Coyle
Thomas A. Wallace
Thomas W
Timo
Torch
Ulf Jonsson
vasil
Vaxian
vladi mazzilli
wastehl
Weston
William Kim
William N.
William Stehl
Wesley Venis
The aforementioned have contributed financially to the continuing triumph of 4hv.org. They are deserving of my most heartfelt thanks.
Registered Member #3414
Joined: Sun Nov 14 2010, 05:05PM
Location: UK
Posts: 4245
Steve Conner wrote ...
I agree, a manual timing adjustment would certainly have been better than the random timing on the old Nova.
Might be tricky to implement on an electronic ignition system though. Maybe you could have a pickup that gave, say, 10 pulses spaced evenly over the range you would want to adjust the timing, a digital counter that would fire the ignition after N pulses, and a 10 position rotary switch to set N.
In the past I've just mounted the points plate on a large ID roller bearing, with a cable and return spring. Set it to full advance when the spring is pulling against the stop, and adjust a lever (like an old lawnmower throttle lever) to pull the cable to retard the ignition to where you want it.
The same system could easily be implemented using pickups.
Registered Member #103
Joined: Thu Feb 09 2006, 08:16PM
Location: Derby, UK
Posts: 845
I've been trying to dig out some information for a motorbike ignition system I built back in 2008, but all I have been able to find is the software.
It's not that important, because it didn't work (or at least, it worked well until I enabled the advance/retard part of the code).
The pickup was in the form of a reflective piece stuck to the flywheel, and an optical transistor/photodiode combo. The ignition system itself was implemented on a PIC microcontroller, using the CAPCOM module to work out the speed of the engine. A single interrupt which occurred at TDC was used to both calculate the engine speed, and work out a delay until beginning the ignition sequence for the next rotation. The ignition sequence consisted of a fixed 3mS delay for 'core magnetisation' followed by the switch-off and spark. Ideally this should have occurred in the right place, i.e. the right number of timer 'ticks' before the TDC interrupt - and the software used number of ticks between spark and TDC interrupt as an error signal for the timer control.
The problem was that on the single cylinder engine I tried it on (old Honda CG125) the engine speed could change too much in one revolution - so it was completely unstable and impossible to start! I always imagined it being completely stable whilst running at a constant speed though... not much use in reality! A more accurate speed measurement would have been required for any sort of 'predictive' advance/retard like this.
In the end I cheated, and re-arranged the optical pickup to generate an interrupt at I think 20* BTDC, and always 'spark' on this interrupt. That worked great, but I found the CG engine absolutely requires working advance/retard to rev beyond about 2000RPM.
Hardware wise, I had the original '6V' coil on a 12V system switched with a power MOSFET, and from testing I'd already found that the necessary delay was 3mS to magnetise the ignition coil. Any longer and it would saturate and probably pop the MOSFET so the 3mS was fixed before sparking. The MOSFET was driven from an opto-isolated gate drive IC, and the floating gate drive supply was provided by one of those little 1W DC-DC converters, which was a bit of a cheat. As a fixed ignition system it worked great!
But with advance/retard it was a complete failure. Here's a block of comments from the code that says it all :
/* Variable Initialisations */
/* The values chosen here should roughly match the starter motor */
/* speed, or the predicted kick start speed, to make the engine */
/* easier to start. 25000 ticks = Approx 300RPM */
Well it was impossible to start and kept trying to break my foot when I tried
Registered Member #4230
Joined: Sat Nov 26 2011, 05:50AM
Location: Socketville
Posts: 53
Sorry I'm late to the thread, but I have a circuit which works very well. With some slight modifications, it should be able to do whatever your little heart desires. Sorry about the ad whoring, but it makes me some money.
Registered Member #30
Joined: Fri Feb 03 2006, 10:52AM
Location: Glasgow, Scotland
Posts: 6706
Avalanche: Yup. As far as I know, commercial systems use a magnetic pickup with several teeth distributed over the range of crank angle where sparks are wanted. Each tooth generates one pulse as it passes the pickup, so the software just has to count them, "fire after the third pulse" and so on. Worst case it has to interpolate between two of the pulses, but that's a lot more accurate than extrapolating from TDC using a speed estimate from the TDC before that.
Registered Member #162
Joined: Mon Feb 13 2006, 10:25AM
Location: United Kingdom
Posts: 3140
Steve, in the 70's I used an 8048 to do ignition timing using just one 'pickup'/index per revolution, even at low MHz cpu clock there's plenty of time to calculate the timing based on the previous few cycles (and the vacuum pickup was also on/off so pulse by pulse incremental advance/retard AND dwell time were simultaneously implemented) All that in 1K RAM and 64 bytes RAM, I'm sure newer uC can do it easily.
Registered Member #30
Joined: Fri Feb 03 2006, 10:52AM
Location: Glasgow, Scotland
Posts: 6706
Sure. The problem is that with one pulse per revolution you can't measure too well how the instantaneous speed varies over the course of a cycle. It actually slows down quite a lot on the compression stroke and then speeds back up on the power stroke.
This probably shows itself worst in cold starting. You get the problem where the piston slows down more than expected, so working on data 1 rev old, the ignition fires it too early and the kickstart tries to break your foot.
Avalanche would doubtless have got better results if he had put his single pickup point, not at TDC, but just ahead of the largest timing advance he would ever want. Say 45' BTDC. That would mean far less time for the speed error to compound itself. The timer would be reset just before firing the spark, rather than almost 1 rev ago.
Registered Member #103
Joined: Thu Feb 09 2006, 08:16PM
Location: Derby, UK
Posts: 845
Another drawback that made it tricky for my system was that I could not 'spark on demand', but there was always a fixed 3mS delay (coil 'magnetisation') before sparking. So the number of degrees before or after TDC would always change with engine speed with this fixed 3mS delay, without using some kind of flywheel position prediction from engine speed. In the original 'direct transfer' ignition, the coil was pretty much held in saturation until the points open, but my hardware made this impossible!
If I was doing it again I'd probably eliminate the 3mS delay by building a capacitive discharge system, so the spark energy is stored in a capacitor instead of inductively in the coil, then it could be discharged into the coil so that the spark would occur sooner due to transformer action rather than inductive storage and release (I'm guessing this is how CDI systems work?)
The pickup point 45* BTDC sounds interesting, I'd given up on the idea of a single pickup point but I suppose if it were working on newer data it could be possible.
Registered Member #3414
Joined: Sun Nov 14 2010, 05:05PM
Location: UK
Posts: 4245
Avalanche wrote ...
If I was doing it again I'd probably eliminate the 3mS delay by building a capacitive discharge system, so the spark energy is stored in a capacitor instead of inductively in the coil, then it could be discharged into the coil so that the spark would occur sooner due to transformer action rather than inductive storage and release (I'm guessing this is how CDI systems work?)
From what I've read recently, I think the advantage of CDI may be a faster rise time (this is related to the 'volt-seconds' thing I mentioned in the 'other thread').
Registered Member #16018
Joined: Fri May 03 2013, 07:19PM
Location:
Posts: 53
555 timer set to how often hooked up to a relay controlling power going into a MOT. Connect a microwave capacitor in parallel with the output of the MOT
This site is powered by e107, which is released under the GNU GPL License. All work on this site, except where otherwise noted, is licensed under a Creative Commons Attribution-ShareAlike 2.5 License. By submitting any information to this site, you agree that anything submitted will be so licensed. Please read our Disclaimer and Policies page for information on your rights and responsibilities regarding this site.