Sei sulla pagina 1di 8






Programmable Digital Ignition CDI / TCI


Differences between CDI and TCI

Programmable CDI (Capacitive Discharge Ignition)

Programmable TCI (Transistorised Coil Ignition)

Ignition test machine

Download files

Other Links

Differences between CDI and TCI


CDI is fired by using a charged capacitor (typical voltages 300-600 v, typical capacity: 1-4 uf

Delay time is applied directly after the pickup pulse to fix the spark position

CDI spark is shorter and more powerful than TCI spark

CDI is more suitable to work at high rpm

CDI needs an inverter to increase voltage upto 300 or 400 volt if used with 12 volt battery

TCI is fired charging the coil itself before fire the spark. Time taken to charge the coil is called dwell time. The
spark is made when the current across the coil stops, and the coil collapsates and fires the spark

Delay time is applied after the pickup pulse but dwell time has to be substract from the total time, to fix the spark

TCI uses a simpler design and doesn't need capacitors


Go to the index

Programmable CDI (Capacitive Discharge Ignition)

The next schematic shows the coil configuration at magnetic plate and the position of the pick-up at the outer sider of the plate.
This pick-up is triggered by the step on the plate. Below are shown the signals measured by means of an oscilloscope at the
output of the magetic plate, and the output of CDI for the primary of the HV coil.

Ignition performing
The ignition explained here is a conventional one in which the trigger is controller by means of a microcontroller, in this case
PIC16F84 of MicroChip. This micro has a FLASH memory that can be written with a simple programer that you can build
easily, all information about the programmer can be found at JDM.
PIC receives the signal from the pick-up and delays it by using an internal table. This means that the starting point of the ignition
should be place before of PMS at the most advanced point in which you want to the ignition works.

First graph shows the real advance curve measured in degrees over the PMS, nevertheless the PIC can not perform advancing,
else it will make a delay from the pickup signal (typically at 36 degrees). For the maximum advance point, the PIC will do a zero
delay (for 36 deg. advance). When this maximum value is determined, the second graph can be done, this graph shows delay in
degrees that the PIC should perform after receiving the pickup pulse.
The PIC computes the elpased time between the last pulse and the present one, and by using this count it access to a table in
which are stored time to delays vs measured period.

CDI Schematic (PIC16F84)

NOTES about the circuit:

Schematic is designed to enable starting whithout battery.

It is assumed that the pickup generates a double pulse.

the first pulse (the negative one) is catched with the transistor to be processed by the PIC.

The second pulse (the positive one) is sent directly to the SCR (thyristor) to enable starting when the PIC has not
current yet.

At least a 24 degree delay is required from the first pulse to the second to enable this configuration to work.

If this delay can not be reached, it is recommended to remove the direct diode (into the gray box) or to use two
pickups, one at 12 degrees and the other at 36 degrees (o higher).

these values are typical values, some engines can run upto 42 degrees of advance.

The circuit inside the gray box is provided in order to enable the engine to start easily (at the first pulse), even if
no battery is built with the engine, but after the engine starts, the pic disables the direct pulse by using the
transistor. This is done in order to leave the capacitor to start to charge before at high rpm (if new current from
rotor is available)

Power supply parts take power directly from the alternator at 200 or 300 volt and brings it down upto 10 volt, this
configuration wastes a lot of energy on the resistor. It was designed in this way for simplicity, but for racing
applications it may be more interesting to replace it with a miniature 9 volt battery (since PIC uses a very low
current to run: 2ma continuous and pulses upto 20 ma for SCR) This battery can recharged before each race, and
can work several hours.

Typical values for the capacitor are 0.5u, 1u and 2u farad. But capacitor value may be critical because it should
match with the power of alternator to enable to charge itself at maximum rpm. If capacitor is too large it may not
charge enough at high rpm. And if capacitor is too small, spark energy can be lower.

Excesive advance may cause the capacitor charge will be not enought to make spark, and the engine will fail at
high rpm (see image). In this case the only solution is to make the capacitor start to change before by moving the
coils several degrees in the oposite way to the magnets motion.
capacitor charge

PIC program
Ignition table (at the begining of the program) stores a series of values calculated with an Excel sheet. This values varies from the
maximum allowed speed (15000 rpm) to the minimum stored at the curve (5000 rpm). For the lower values a simply calculation
is done in order to calculate a fixed degre for the advance.
The program also has ignition rev-limiter for higher rpm
C source code: ignition.c (CCS compiler)
ASM source code: ignition16.asm (MPLAB assembler)
Go to the index

Programmable TCI Ignition (Transistorised Coil Ignition)

Dwell time
Dwell time is the time that the coil needs to be charged BEFORE it can produce a spark. It is constant for each coil, typical
values go from 0.5ms (low impedance coils) to 5ms.
Since dwell time is a constant in miliseconds, the number of degrees needed for dwell time varies for the different rpm values of
engine (see graph). This make things a bit more complex than on CDI ignition, because the program needs to calculate where to
start coil's charge (before than on CDI) to ensure the right dwell time even at high rpm.

Dwell time in degrees (dwell time=1ms)

How to calculate where should start the coil's charge:

at low rpm Tc will be after the ref. pulse: Tcl = dwell time - delay (table) (Tcl is negative at high rpm)

at high rpm Tc will be before the ref. pulse: Tch = period - dwell time + delay (table) (Tch = Tcl + period)

TCI Schematic (PIC12F675)

PIC program

This release of the program is a simplification of TCI, but it works fine with high impedance coils (about 5 ohm).

TCI could be more complex for high speed coils: it would need to start the coil's charge after the reference pulse
when engine is running at low rpm, and before the reference pulse when engine is running at high rpm. Current
version only does the high rpm part.

This version always calculates the dwell time before the ref. pulse, but for low rpm dwell time will be longer than
needed. This spents some extra current on the coil at low rpm. But if coils with certain resistance (3 ohm or
higher) it won't be an issue, these coils accept wide dwell time range. Please don't test it on CDI coils or on-spark
coils because its lower impedance.

For example: with a dwell time of 1ms, and a spark advance of 30, dwell time will start before the ref. pulse
when higher than 5000 rpm, and after the pulse when lower than 5000 rpm.

For low ohm coils, dwell time should be calculated with the highest accuracy possible (in future version) because
we are using a schematic based on a IGBT and this device doesn't limit the coil's current (as on old transistor
based circuits), and this may be dangerous for a low ohm coil.

C source code: ignition_TCI_PIC12F675.c (CCS compiler)

ASM source code: TCI12F675.asm (MPLAB assembler)
Go to the index


Here you can see the exact point where the spark is done while the arrow turns at high speed

This electric motor can reach upto 30.000 rpm. When the electric motor moves the machine,
the alternator generates the power for the ignition performing. No external power is required.
Go to the index

Download files
CDI Ignition (high-voltage Capacitor Discharge Ignition)
C source code: ignition.c (CCS compiler)
ASM source code: ignition16.asm (MPLAB assembler)

TCI Ignition (12-Volt Transistor Ignition)

C source code: ignition_TCI_PIC12F675.c (CCS compiler)
ASM source code: TCI12F675.asm (MPLAB assembler)
Ignition Wizard" program:

Excel sheet with calulated values: ignition.xls

Go to the index

Other links
DC-DC converter (engines without high volt alternator)
Click here to go to the servo's page
Go to the index

Last modified: SEP/28/2009

Copyright 2000-2015. All Rights Reserved.