Welcome
Username or Email:

Password:


Missing Code




[ ]
[ ]
Online
  • Guests: 53
  • Members: 0
  • Newest Member: omjtest
  • Most ever online: 396
    Guests: 396, Members: 0 on 12 Jan : 12:51
Members Birthdays:
One birthday today, congrats!
RateReducer (35)


Next birthdays
11/01 RateReducer (35)
11/02 Download (31)
11/02 ScottH (37)
Contact
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.
Forums
4hv.org :: Forums :: High Voltage
« Previous topic | Next topic »   

Electronic ignition thread

Move Thread LAN_403
Ash Small
Sun May 26 2013, 11:15AM
Ash Small 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.
Back to top
Avalanche
Mon Jun 03 2013, 06:45PM
Avalanche 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 cheesey
Back to top
The Lightning Stalker
Mon Jun 03 2013, 09:38PM
The Lightning Stalker 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.
Back to top
Steve Conner
Tue Jun 04 2013, 07:47AM
Steve Conner Registered Member #30 Joined: Fri Feb 03 2006, 10:52AM
Location: Glasgow, Scotland
Posts: 6706
Avalanche: Yup. tongue 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.
Back to top
Sulaiman
Tue Jun 04 2013, 12:28PM
Sulaiman 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.
Back to top
Steve Conner
Tue Jun 04 2013, 08:36PM
Steve Conner 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. smile

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.
Back to top
Ash Small
Wed Jun 05 2013, 08:51AM
Ash Small Registered Member #3414 Joined: Sun Nov 14 2010, 05:05PM
Location: UK
Posts: 4245
I'd implement firing at ~6 degrees AFTER TDC for the first few revolutions after start-up, and then move to 'mapping' once the engine has fired.

EDIT: I believe a lot of 'commercial' systems have the sensor at TDC.
Back to top
Avalanche
Wed Jun 05 2013, 11:43AM
Avalanche 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.



Back to top
Ash Small
Wed Jun 05 2013, 12:19PM
Ash Small 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').
Back to top
MR-ZAPPY
Tue Jun 18 2013, 06:55PM
MR-ZAPPY 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
Back to top

Moderator(s): Chris Russell, Noelle, Alex, Tesladownunder, Dave Marshall, Dave Billington, Bjørn, Steve Conner, Wolfram, Kizmo, Mads Barnkob

Go to:

Powered by e107 Forum System
 
Legal Information
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.