- Easier start when cold
- For SINGLE cylinder (and SOME TWO cylinders).
- Advance curve is in EEPROM and is freely modifiable
- Rev until 20,000 RPM/330Hz
- Pickup position can be freely set from 0 to 360°
- Accurate (0.15°/8000RPM).
- Need a 6 or 12 volts battery
- Current drain: 2mA to 1.5A
- Power: 40mj
- No need of HV source coil on the stator
- Autotest jumper
- Kill switch connection
- Available as a Full Kit in the SHOP section with all components.
- or as separated parts: PCB plus Firmware
WHAT DO YOU NEED?
|– 1 PCB|
– 1 DC-DC Converter
– 1 Programmed 16F1827 PIC microprocessor
(Source code is not available.)
– Electronic components
|Provided with a KIT in the SHOP section.|
|Create the ignition timing curve||Excel file v79r7c10|
|PICKIT3 software||To program your own advance timing map.|
|PICKIT3 programmer||To burn the 16F1827|
HOW DOES IT WORK?
Connect the pickup to the HIGH pickup input.
At idle and low RPM, the PIC generates maximum delay before fire a spark a few degrees ahead of TDC. That way, there is no or little advance at low RPM.
As the RPM increases, the more the advance would increase ahead of TDC accordingly.
The PIC follows your ignition map programmed in EEPROM.
Pickup signal must be > 2 volts in order to be detected by the PIC
A pulse is available at pin 1 and trigger the SCR.
The pulse length is adjustable from 500us until 5ms or can be automatically adjusted.
The microprocessor drives a on-board 15 Watts DC-DC converter to raise the 12Vdc from the battery to 200Vdc.
– Better startup when engine is cold.
– A DC-CDI can be a substitute to a faulty stator (charging coil).
– When no pickup detected, DC converter goes in sleep mode. (2mA)
– Power selectable:
– 40 millijoules (40 mJ) with R7
Transistors need heatsinks if this unit run at 10.000rpm longer then 1 minute.
– 50 millijoules (50 mJ) without R7 resistor. Always add heatsinks!
– HowTo wire the DC converter to the PCB?
– Some measurements done on scope
How to calculate the Pickup Position?
Compatibility with others pickups.Click here for more info...
Variable Reluctance coil (VR)
DCCDI v7 can be triggered either by a positive-first pickup signal or a negative-first signal.
PIC ONLY detect the positive edge of the trigger pulse, if the positive wave is the second one like Honda or Suzuki, the timing will be bad…
If your pickup gives out a NEGATIVE first pulse, there are 2 workarounds:
1) Invert the 2 wires that come from the pickup to the CDI if none of them are internally connected to GND
2) OR use Q1 and Q2 transistors to reverse the first negative signal so it becomes positive.
According to YOUR pickup signal, just use and sold the appropriate components:
For positive-first pickup signal (PN)
Remove: Q2, Q3, R11, R12.
Add : D6.
For negative-first pickup signal (NP)
Honda, Suzuki, Zongshen, KTM
Add : Q2, Q3, R11, R12.
Yellow: pickup signal
Blue: PIC input
HALL EFFECT SENSOR
Most often, Hall sensor output are default HIGH, going LOW when a magnet pass in front of them.
To use an Hall sensor with ACCDIv79 or DCCDIv79 we need to invert the signal with one NPN transistor:
The PIC that comes in the KIT embeded a protected software, but the EEPROM zone is Read/Write allowing you to write your own ignition timing into the internal data EEPROM.
You can change the advance timing by yourself as often as you want!
Just draw the new curve in the excel sheet, write datas in the PIC’s EEPROM using a programmer then restart the CDI.
That’s all done!
Draw the advance curveClick here for more info...
- Use the Excel sheet (in download section above) to define the timing curve for your bike:
- Only change the yellow cells.
- Enter the pickup position (which is slightly more than the max timing advance your bike uses) in cell F5.
- Select the number or cylinders (cell O24) and the number of strokes (cell O25)
(select 2 if the engine is a 4 strokes with wasted spark)
The pulse coming from the PIC that trigger the SCR can be adjusted from 500us until 5ms or in “AUTO” mode (cell O28).
Except for specials needs or lazy SCR, leave the default value of 0.5ms.
- Select the maximum RPM by changing the variable TIMER1 in cell B9.
- Play with prescaler value in cell O26 AND with TIMER1 value (cell B9) until the excel sheet displays the whole RPM range you want and the advance values don’t strike “Out of range” errors.
- To manipulate the points of the curve, type in the advance you want for each RPM in column F.
If you run into “Out of range” Warning messages column M, try to:
- Change the advance values column F
- Change the RPM range cell B9
- Use another prescaler value cell O26
- Use another step value in cell L5
Play with those steps above until the curve fit in the excel sheet.
Any Excel Errors will result in a faulty HEX file that will not work !
Warning are not critical, but you won’t get the exact timing you want.
Excel Error are critical.
- Adjust the advance for low RPM with the help of the multiplier value in cell I2 of the Excel tab named “advance_at_lowRPM“.
If the maximum RPM become too low, raise it with cell B9 and so on…
Play with prescaler value (cell O26) and multiplier value (cell I2) to change the low RPM range.
PROGRAM YOUR IGNITION MAPClick here for more info...
Case 1 You bought a preprogrammed PIC from me.
The 16F1827 PIC sold with KIT comes with a timing example in its Eeprom zone.
Before writing your own data, I suggest to test your DC-CDI with the “Autospark” feature (JP jumper close).
If everything works, then backup the example (Read and export the “EEprom data” with Pickit3) then overwrite the Eeprom zone with the timing you want.
(This video had been done with a 16F1847. For a 16F1827 just select the right PIC but the process remain the same.)
Case 2 You bought the PIC Firmware from me and burn a virgin PIC.
In PicKit3 the loading order is critical!
Load FIRST the Eeprom file THEN the Program file/Firmware.
Check that Configuration = 3F04 3713
- Use PICkit3.1 ONLY to burn the chip (No IC-Prog or PICkit2 here! There don’t support this PIC.).
Use a serial/USB programmer then insert the PIC into its socket on the DC-CDI board:
- or use the ICSP connector to program the PIC 16F1827 in situ with PicKit.
(More info on ICSP in comment section)
Some guys seem to run into issue with Pickit3, here are some info that could help you to Troubleshoot Pickit3
- Error in degree:
Above the last RPM value on top of the XLS sheet, there are no more sparks.
Below: If RPM goes over 10653, sparks stops.
LEDClick here for more info...
– At startup, Led D3 flashes 3 or 4 times and goes off meaning that PIC software is OK.
(if it doesn’t flash, something went wrong with the power line…)
– When PIC input pin10 is high [>2.4v], led D3 (pin18) is on. So LED D3 pulse with the pickup.
If D3 LED always stays ON, that mean either:
– CDI is in “Autospark” mode.
– or pin10 is always high! => Measure pin10 and try to lower R9 value from 12Kohm to 1.8Kohm or less according to your pickup…
JumperClick here for more info...
JP1: AUTO SPARK
– Hook a ignition coil to the DC-CDI, with its sparkplug connected to a solid ground.
– Put a jumper ON so RB2/pin8 is connected to ground.
– Power on the DC-CDI
– LED blinks 3 or 4 times and stay steady ON when the PIC self generate sparks at 3000RPM without the need of any pickup.
Please note that:
- Soldering R2 is mandatory!
- JP1 is tested once at boot time! So if you move the jumper, reboot the CDI.
TroubleshootingClick here for more info...
Upgrade the firmwareClick here for more info...
To upgrade the firmware without losing the timing data in the Eeprom, pls follow this order:
Connect PICkit3 to the PC
Launch PICkit3 Software, goto:
Tools > Check communication
Device Family > Midrange > 1.8v Min
Device: Select Part 16F1827
Uncheck “EEPROM Data”
Check “Program Memory”
File > Import HEX
Load the new firmware > Write
PHOTOS.Click here for more info...
VIDEOS.Click here for more info...
- Understand Ignition Timing:
- How a pickup works?
- on the bench, measuring DC converter transistors at 52°C
Honda CY80 converted from Magneto to DCCDI running until his pickup breaks!
VERSIONSClick here for more info...
- Version 7.9R17r1c0:
- [hard.] PIC 16F628 at 4MHz.
- [hard.] Prototype with a hand crafted transformer.
- Version v7r2c0:
- [hard.] PIC 16F1847 at 16MHz.
- [hard.] Prototype with a complete DC converter.
- [soft.] Bug corrected under 500rpm.
- Version v7r3c1:
- [soft.] Major improvement at low RPM (Works from 42RPM).
- Version v7r4c0:
- [soft.] Alow pickup position from 0 to 360°.
- [soft.] Bug fix when 100us steps
- Version v7r5c0:
- [hard.] PIC 16F1827 at 16MHz.
- [soft.] Power of DC converter: 20mj.
- Version v7r6c0:
- [soft.] Sleep mode if no pickup detected. (only 2mA)
- [soft.] Power of DC converter: 50mj.
- Version v7r7c0:
- [soft.] Accuracy increased
- Version v7r7c1-c2:
- [soft.] Bug fix at 450rpm
- [soft.] Improvements
- Version v7r7c3-c4:
- [soft.] Bug fix between 470-1000rpm
- Version v7r7c5:
- [soft.] Change HV generation
- Version v7r7c6:
- [soft.] Fix HV generation
- Version v7r7c7:
- [hard.] Add D8, change R13
- Version v7r7c8:
- [soft.] Free version increased to 50 trials
- [soft.] improvement to avoid false detection of pickup pulses
- [soft.] improvement to deal with slow rising/falling pickup signal at low RPM
- Version v7r7c9:
- [soft.] Bug fix
- [soft.] Add a reset diagnostic
- Version v7r7c10:
- [soft.] Error fix at low RPM