Always the same principle, but a simplified design and the use of a 16f628 (cheaper and better than the 16f84).
No more crystal, internal 4MHz clock instead, no more connector.
Same principle as version 4.23
Further consideration...
The pulses coming from the 12° pickup directly trigger the SCR via D7 R7 C10
At the same time, the pulses coming from the 36° pickup are limited to 5 volts by the Zener D9 then trigger the PIC (pin 10).
( the PIC input detect a tension higher than 1,8 Volts.)
With each correct received pulse from sensor 36, the green LED D1 flash.
A delayed pulse, according to the programmed advance curve, is available on pin 8 and trigger the SCR T1 via D2,R7,C10.
If your bike have only one pulsar (pickup), connect it to the 36° input and leave the 12° input unconnected.
The polarity of the pickup is important, don't hesitate to invert the 2 wires of the pickup.
(because the first shape of the pulse must be positive)
Ways of the 12 and 36deg signals:
| There are 2 sparks by revolution: one before the TDC (from the 36deg pickup) and another at TDC (from the 12deg pickup - if connected) This second spark is useless. |
![]() |
On animation below, one can see (in white), the signal from the pickup (PIC input pin10) and the signal for the SCR (PIC output, between D2 and R7) at various speeds between 1300rpm to 6000rpm

We see:
- At low rpm:
the output signal is provided a little time after the input signal, therefore at the TDC.
-At high rpm:
the output signal is provided at the same time as the pickup signal, therefore before the TDC.
Coil protection
Coil is never on while the engine is stopped.
RPM Limitation:
Over 10.900 RPM for the 2strokes version or 6510rpm for XT400, ignition is stopped, no more sparks.
Advance calculation:
Between the maximum and the minimum RPM, the PIC measure the duration between 2 pick up pulses [the number of 4us (four microsecondes) period between two pulses] to deduce the speed engine.
According to the speed, the PIC calculate the position in the map.
Duration of the spark:
The duration of the spark cannot be adjust on a CDI, it depend of the capacitor value and the coil value. The duration while the thyristor is on to discharge the capacitor, is set to 1ms (one milli second)
No reverse output available.
Accuracy:
The curve is defined by 80 to 106 points. The accuracy is high: 0.07 degree.
Modification:
As the souce code is not available, contact me for any special advance curve.
| PCM6.4 | Schema | PCB | Part list |
| CDI for XT400-550-600 | Schema.PDF | circuit.PDF | liste.TXT |
![]() |
![]() |
This ignition fitted an XT550: video