DC-CDI v7


CHARACTERISTICS.

  • DC-CDI
  • 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: 50mj
  • 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.
Schematic

Version V7R6C0
Components view

Placement
Create the advance timing curve Excel file
PICKIT3 software

To program your own advance timing map.
PICKIT2 or PICKIT3 programmer or clones

Able to burn a 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.


DC-DC Converter

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 or 50 millijoules (50 mJ) without R7 resistor. (video)
– HowTo wire the DC converter to the PCB?
– Some measurements done on scope


How to calculate the Pickup Position?


CDI reprogramming

Click here for more info...
 
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 curve

  • Use the Excel sheet (in download section above) to define the curve for your bike:
    • Only change the yellow cells.
  1. Enter the pickup position (which is slightly more than the max timing advance your bike uses) in cell F5.
  2. 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.
  3. Select the maximum RPM by changing the variable TIMER1 in cell B9.
  4. 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.
  5. 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.

When done:

  • 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.

  • Once your curve is drawn, copy/paste the Intel 16Hex data located in cells Q1 to Q51 from Excel tab “Advance_curve” into a text file, then change the extension from .TXT into .HEX
  • See Video


    PROGRAM YOUR IGNITION MAP

    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.

    See video
    (This video had been done with a 16F1847. For a 16F1827 just select the right PIC but the process remain the same.)

    • Use PICkit3.1 ONLY to burn the chip (No IC-Prog here! It doesn’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 seem to run into issue with Pickit3, here are some info that could help you to Troubleshoot Pickit3


    Accuracy

    • Error in degree:

    LEDs:

    – At startup, Led D3 flashes 2times and goes off meaning that PIC software is OK.
    (if it doesn’t flash, something went wrong with the power line…)
    See Video

    – When PIC input pin10 is high [>2.4v], led D3 (pin18) is on.
    So LED D3 pulse with the pickup.
    If LED D3 always stay 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…

    RPM limitation:

    Above the last RPM value on top of the XLS sheet, there are no more sparks.
    Below: If RPM goes over 10653, sparks stops.
    Rev limiter

    Jumper:

    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 2 times and stay steady ON then the PIC self generate sparks at 3000RPM without the need of any pickup.
    See Video

    Please note that:

    • Soldering R2 is mandatory!
    • JP1 is tested once at boot time! So if you move the jumper, reboot the CDI.

    Troubleshooting:
    Troubleshoot.pdf


    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…
    Then use Q2 and Q3 transistors to reverse the signal.

    According to YOUR pickup signal, just use and sold the appropriate components:

    For positive-first pickup signal (PN)

    Yamaha, Kawasaki


    Remove: Q2, Q3, R11, R12.
    Add : D6.

    For negative-first pickup signal (NP)

    Honda, Suzuki, Zongshen, KTM


    Remove: D6
    Add : Q2, Q3, R11, R12.

    Yellow: pickup signal
    Blue: PIC input

    Hall Effect sensor:
    Read comment N°8406


    PHOTOS.


    VIDEOS.

    Click here for more info...
     

    • Understand Ignition Timing:
    • How a pickup works?
    • Honda CY80 converted from Magneto to DCCDI running until his pickup breaks!

    • on the bench, measuring DC converter transistors at 52°C

    VERSIONS

    Click 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

    48 thoughts on “DC-CDI v7”

      1. Thanks for your interest.
        Actually I had some problems with the prototype… It worked but wasn’t reliable enough (EMI, Heat…) that destroyed a few PICs and Mosfets over the time!
        Now I’m using another converter and the results are good and stable.
        10 firsts PCB have been ordered and I expect them to be here end of October to release a first shot of 10 Kits.

    1. Hi thierry,

      “…Oct the 30th. Hitch! The oversized DC converter destroys SCR… I have to change the schematic and order new PCB That slow down the release to December!”

      You are living an unpleasant situation.
      Hang in there, you will find the solution.
      Best regards.
      Sylvain.

      1. Hi Sylvain,
        I finally found a software workaround to calm down the DC converter!
        It’s also possible to add a 10ohm 0.5w resistor in series with D1.
        That reduce the max rev to 13000RPM too.

    2. Necesito un tci para una moto suzuki gsx 400 fws es 4 tiempos 4 cilindros con 2 captores y 2 bobinas dobles ocea con chispa desperdiciada 1_4 y 2_3 tira al mismo tiempo se puede hacer con un pic o necesito dos? Gracias saludos , abrazo desde Argentina..

      1. Please use ENGLISH ONLY.

        When everything is double (1 pickup+1 coil for 2 cyl) you could use 2 separate TCI.
        But TCI IS NOT CDI
        software and hardware are different. Here there are only CDI.

    3. Hi Thierry,

      I have two questions:
      First, concernig my programming device.
      Is it still compatible with winpic800 ? I dont see this pic in supported device…
      Second, concerning my hall sensor pickup.
      when no magnetic field detected, the output is high and low when detected, the signal is inverted with classical pickup.
      Should I provide a signal inverter (transistor) or not necessery it will work well.

      Regards,
      Sylvain.

      1. Thierry,
        The answer at my question2 seems to be evident.
        If I refer the schematic, I will have to install neither the transitor Q3 nor the diode D6 and link the Q3 emitter pin hole with Q3 collector pin hole.
        Do you agree with that ?

        Sylvain.

          1. Thank you Thierry, 16f1827 is supported.
            About my hall sensor, I need to pullup the output, either with 5v or 12v.
            For this reason, I use R12 and remove R14 for 5v pullup.
            Although, I would have preferred pullup 12V in order to avoid an hypothetic 78L05 regulator overload…

    4. Many thanks Thierry,
      Let me know when your 16f1827 update will be available, if not I will invest in PicKit3.10 and purchase the kit shortly

    5. Hello Thierry,
      I am considering updating the electrics on my 1975 single cylinder 4 stroke Gilera using Chinese GY6 generator parts and your DC-CDI unit.
      Due to limited space in the engine casing it will be necessary to position the pick up sensor a long time BTDC, possibly as much as 250 degrees BTDC. Will your software/firmware cope with that situation?

      1. Hi,
        Download the XLS file above and try a 250 value for “pickup position”, even with a 100us step it will not work below 1500RPM
        (in one word it’s way too long for the PIC’s 8bits counter to wait from the pickup time to the spark)
        Unless I mod the code to add another step of 200us, that seem feasible if it doesn’t trigger other issues….

        1. Hi Thierry,
          Thank you for your speedy reply.
          Feel free to disagree but my experience suggests to me it is best not to get into modifying working code, as you say, it may well introduce issues that could prove difficult for me to diagnose . . . is the gremlin hardware, software, mechanical.

          I think it best I concentrate on re – engineering the trigger positioning to better suit your working code.
          I was hoping to get away with not removing the rivets that secure the magnet housing to the crank mounting hub. Along with the need to rebalance, when in use, there is substantial torsional vibration present at that joint that rivets are particularly good at accommodating. I don’t fancy re – riveting, likely to wreck the magnets, magnets do not like shock treatment. Maybe I can turn up some sleeve bolts….I’ll have a think about it.
          I’m getting old, it’s currently too cold for my old bones to tinker in the garage anyway.

          I will buy and build your cdi kit and spend the cold months tinkering with the mapping 🙂

          1. I agree but even so I have modified the code to DCCDI v79r4c0 and what append? ….. I found an existing bug in the XLS sheet !
            So a good from a bad!
            I have tested the code with pkp position at 250° btdc, step 200, advance 14° and found 12.7° adv with the scope. Not too bad !
            Of course the bigger is the step, the poorer the accuracy. Anyway it’s no big deal if you got 13° instead of 14° then asks for 15° 🙂

            1. Thank you so much for code change and testing. You don’t get that kind of help from Motec or Cosworth….well you do but only for lots $$$$$!
              As too the accuracy; I spent a lot of my working life building engines for race cars, starting in 1978! In those days most engines used kettering ignition (electronic ignition was in infancy and about as reliable as a politician), checking ignition timing with a strobe light on a dynamometer at 6000 or 7000rpm was a waste of time, timing marks would jump and scatter around maybe +/- 5 degrees or more on all cylinders. Accuracy to 1 degree is a marvel and more than adequate. This old Gilera I’m restoring originally used points with centrifugal advance and no doubt scattering ignition.

              I have now ordered the dccdi kit, looking through the parts list, can I just check, what wattage are the resistors?

            2. Sure thing! But guess which is profitable at the end of the month? 🙂
              well, using a scientific lingo, accuracy is poor but precision is high. You get 13° instead of 14° but always get the same value. So no scatter, no jerk around. That’s the most important, indeed.
              Partlist is now updated, except one all res. are regular ones.

    6. hi Thierry,
      on this moment I ordered a AC/CDI with you ,,, hopely quickly delivered. The n i can start my first steps on the xt600 1984. Who had no iginition included anymore.
      – If i want to use this more advanced one, is there a version coming soon that is even better as this great board ? 🙂
      – if I decide for this board is it possible to get it already programmed with the XT600 curve in it ?

      i’m able to programm and solder, but not really interested in this moment . 🙂

      regards
      marty

      1. Not yet. I have to release first ACCDI v10 which is under tests then I plan to start from this base and add a converter to it for a DCCDI v10 but it wont be before quarter 3 or 4.
        It will be great if you want to play with the timing but it’s not what you seem to want to do…

        Yes I can enter a XT600 curve in the eprom or any other timing curve you want. (Use the Excel sheet).
        Just remember it to me if you order…
        BR
        Th

    7. Hi Thierry,
      I just ordered one of these for an SV650. It says that this will work for 2 cilinders,
      but will this work for a V-twin engine as well ?

      Best regards,
      Herman

      1. Hi Herman,
        Please don’t oversimplify!
        The link For ONE or TWO* cylinders brings you to a PDF which explain that it ONLY works on Synchronous 2 cylinders at 360° thanks to an evenly spaced firing.

        Is the SV650 a 360° engine? Lemme google that for you…
        https://en.wikipedia.org/wiki/Big-bang_firing_order


        and the answer is NO, it’s a 270-450° fire timing.

        I can try to clarify even more, but if you want to deal with the heart of your engine, you must be familiar with that knowledge…

        followup on PM pls
        Regards,
        Th

    8. Hi Thierry
      About the DC-CDI V7
      I have read your linked spreadsheet about the cdi compatibility.
      I have a four stroke single cylinder classic motorcycle- but I only have camshaft sensor from old magneto position. ( I have no easy access to crankshaft for fitting a sensor) Do I understand correctly that the DC-CDI V7 will not work in my application??
      Any other dc-cdi solution I can use.
      Kind regards. Mike

    9. Hi Mike
      More or less, that’s why I used orange instead of red color….
      On a electrical POV cdi doesn’t care, he’s got one signal, compute delay, send a spark. that’s it!
      As the trigger is on the camshaft, there is twice less pulses. But you can fool the cdi with the XLS file giving it advance value at 5000rpm for a REAL 10000rpm.
      But but but, there is another thing, it’s a 4cyl with distributor, right?
      That mean spark frequency is 2 time more then on 1cyl!
      So IF i’m not mistaken, all in all both cancelled (1/2 * 2) and you can use a CDI for 1cyl. (5000rpm will be real 5000)
      Don’t take my words for it, do the figure or better do measurements before going further !
      😉
      Th

      1. Hi Thierry
        Do we have a chance to buy a complete kit for DC – CDI V7 ??
        Or maybe a completed circuit board ??
        Kind regards
        Mike

    10. I just received the CD converter that I asked for on February 6 but the printer circuit board v7,9r19 that I asked for on January 29 has not arrived, could you tell me why it does not reach me.
      Thank you so much

    11. To get information about orders, please write me a PM directly at frtransmic@gmail.com
      This comment section here is about the blog only.

      I sent a note 12days ago: on the 31 January 2020 at 14 h 52 min to inform you when I posted the order.
      Here is the receipt I got from the Post Office: http://ovh.to/Y1TpGrc
      It’s in normal letter without tracking and I suppose it’s into the hand of French or Spain post office…..
      Regards

    12. Hi Thierry
      I am using DC CDIV7R6C0 and the assembled board works fine on autospark. and with the default timing curve as delivered.
      My motorcycle is a Vincent Comet – 500 cc single cylinder 4stroke -( 1 cyl so no distributor)
      BUT… it is a special built bike and I have choice to mount the hall sensor on camshaft or crankshaft … both available.
      However — its an old timer bike , idle speed 750 RPM and max speed 4000 rpm.
      I would like if possible to have the advance speed range 700….4000 rpm only in the advance map from 5 to 35 degrees crankshaft advance.
      I am having trouble to get a smooth curve at these low speeds and when I test with dynamic strobescope the spark timing is very jumpy and erratic.
      Could you perhaps suggest a proposal for such low speed motorcycles ?
      Kind Regards
      Mike

      ps I also want to buy more product and have emailed frtransmic@gmail.com seperately

      1. Hi Mike,
        And where did you choose to fix the hall sensor?
        Ref: https://transmic.net/fichiers/doc_cylinders_strokes.pdf
        camshaft is rotating 2 times less and the CDI will be fooled as it see the engine running 350-2000rpm and you wont be able to set so low rpm in XLS
        Here’s an XLSwith:
        Pkp position : 35° BTDC on crankshaft
        91-480rpm : 0deg
        480 – 960rpm: 4deg
        960 – 4200rpm: I used this Comet timing : http://www.pazon.com/files/PDV1-advance.jpg

        Th
        PS: thanks but sales are frozen now due to the events…

    13. Good day Thierry.
      Why are you using a symmetric triac in V7R2C0 (and in a V7R6C0 a rare triac BT157, with the possibility of forced off state)? Not enough ordinary triac like bt151?

      1. SCRs are unidirectional devices as opposed to triacs, which are bidirectional.
        You suggest using a triac BT137, but write that scr is faster and better …

        1. >and in a V7R6C0 a rare triac BT157,
          Call a spade a spade!
          BT157 is a THYRISTOR or a SCR, it’s not a TRIAC.

          >You suggest using a triac BT137, but write that scr is faster and better
          No. That’s what versions are used for!

          In old V7R2 I used a TRIAC then I noticed that scr is faster and better so in V7R6 I use a THYRISTOR.

    14. version 7.9r2c0
      I see BT137 in the schematic, but I don’t understand why to use it
      but it probably doesn’t matter

      I created a HEX file with curve code, made an import in PICkit 3 v3.01 and do not see any changes in the EEPROM section.
      All cells – FF
      You do not know why this is happening?
      Program memory disabled.
      EEPROM Data enabled.
      pic16F1827 selected.

    15. In your latest version of the DC-CDI is it acceptable to use a BT137-600E in place of the BT157-800R for D7? The latest BOM shows a BT157-800R is needed. My PCB is marked DCCDI v7r6c0.

        1. Thank you. I found a couple of BT157-800R SCR’s and ordered them. I may not need the faster switching because my maximum rpm is only 5,000, but I think I would rather use the faster item.,

    Leave a Reply

    Your email address will not be published. Required fields are marked *