Shop our Airplanes Products Drone Products Sales
View Poll Results: What’s the most important thing to you?
Lowest possible cost 3 23.08%
Make it as small and light as possible 6 46.15%
Battery longevity is very important 3 23.08%
Highest power possible 3 23.08%
Highest RPM possible 2 15.38%
Only use through hole construction 2 15.38%
No winding of transformers 4 30.77%
Group buy of components including boards 0 0%
Group buy of boards only 1 7.69%
I’d rather buy a kit with everything in it 0 0%
I want to buy a pre-built & pre-programmed system 0 0%
I only want to use a 4.8v Ni-MH battery 2 15.38%
I only want to use a 2S battery 1 7.69%
I only want to use a 3S battery 1 7.69%
I want to use a 4.8v battery to 3S battery 5 38.46%
I want to use only off the shelf parts from Digi-Key or Mouser 3 23.08%
I want the Timer board to be separate from the HV board 6 46.15%
I want a combination Timer & HV board 1 7.69%
I want all the options possible using jumpers 3 23.08%
I want a USB connection 2 15.38%
I want a serial connection (DB9) and I’ll use my own USB adapter 3 23.08%
I want a ICSP connection 3 23.08%
I want a premade parts list (BOM) at Digi-Key 2 15.38%
I want a premade project parts list (BOM) at Mouser 1 7.69%
I want 1 design and 1 design only 1 7.69%
I want optional designs to choose from and Ill make the boards myself 8 61.54%
Multiple Choice Poll. Voters: 13. You may not vote on this poll

Thread Tools
Dec 03, 2012, 01:25 AM
Registered User
Nav_Aids's Avatar
Thread OP

Programmable Open Source CD Ignition PIC1840

Welcome to the CDI-2012 DIY Open Source Programmable CDI Project using the PIC12F1840.

Is this project for you? Well let's see:

- If you want a pre-packaged CDI ignition, then this is not the place for you. Well not yet but it's getting there.

The main focus here is to produce a reliable programmable CDI ignition that will allow you to produce an ignition curve that is optimized for your engine and not a universal ignition curve like the RCxel and others do. Having a optimized ignition curve will give you more Hp and less fuel consumption.

Did you realize that early WW1 radial airplanes and some other engines only had simple carburetors that mixed the air/fuel but, had no throttle! The engine ran at full throttle only so, the pilot had to turn the ignition (Mag/s) on and off to control thrust. With this ignition and some programming one could simulate this up to say half throttle, NOW that should get some realize-em judge points at a show.

This project started out on the RCU forum but problems with that forum has forced us to move here onto RCG. Which I don't mind at all. This project has been around for quite some time now also but, has matured very quickly lately. We are not starting from scratch but, we actually have a fully working setup, mind you right now it is kind of in pieces but, we are trying to straighten it out. Which is one of the reasons I am starting this thread, RCU doesn't allow very many file types to be up loaded and it keeps loosing posts, so here we are.

Since this is the first post I'll try and keep this thread up to date with all the latest files as members post them. One thing I want to point out is that this it not a place for custom designs, there are companies for that. We designed basic boards and software that will get you and your engine running. If you want to change the board designs or modify the code then by all means please do so. In fact we encourage it but, be nice enough to post your changes and your results so we can incorporate them.

As of Dec. 2, 2012 we have a CDI ignition using the 12F683 that will work on a single cylinder gas engine, the timing curve is programmable, it holds 2 curves that you can instantly switch between while running, a kill switch that can be used in-flight, magnet and hall effect sensor, a 5 volt battery or higher, and LED indicators. The system is divided into 2 boards. Why 2 boards? Well it is easier to keep RFI / EMI from interfering with the planes electronics.

I would like to say again that this is a DIY open source project and as such it is up to you to learn how the Timer and HV boards work and how to modify your own code. So it is just like all other DIY open source projects. It is not hard and there is help from others. You need a programmer but, the code is free. There are people that will help you if you need help, remember ask nicely. Remember no one here is getting paid anything so be nice, some of the people have been working on this for more than 10 years. As for the transformer and ignition coil you can wind your own or buy off the shelf.

Some History:
I'm not going to provide links to the very beginning of everything but, to the last main thread on RCU: Original 'CDI gr8flyer55' On RCU. The beginnings is somewhat split up but, they slowly converged into a project. The code V1.00 can be used for both the 683 and the 1840 MCUs. There are a lot more people that contributed to this project and you should read the thread on RCU if you want a good history of who did what and when, along with how we got here.

Code numbering; right now the code went from ….. .98, .99 but, V1.00 is the first stable build and it can be used on both the 683 and the 1840. As far as we are concerned the 683 is done and will not be discussed here. As I said the 1840 has a lot going for it but, even it is running out of pins, and IMHO is the perfect MCU for getting your feet wet in embedded PIC design.

Last edited by Nav_Aids; Apr 08, 2018 at 12:50 AM. Reason: Just an update.
Sign up now
to remove ads between posts
Dec 03, 2012, 06:48 PM
Registered User
Gompy's Avatar
Have fun.
Last edited by Gompy; May 05, 2013 at 04:54 PM.
Dec 03, 2012, 10:40 PM
Registered User
Nav_Aids's Avatar
Thread OP

Install Microchip's IDE, 8-Bit Compiler, and Getting Started

April 08/2018 Update

The instructions that were here was for the older version 8.xx but, the Newer 4.05 is simpler. The new MCC in 4.05 is excellent because it writes a lot of the code for you and the manual is clearly written.

I updated the latest version of the code to work with 4.05 and are here at this post Updated Code

Anyway go to Microchips website for the latest MPLAB® X Integrated Development Environment A nice feature of this new IDE is you don't have to download a bunch of other things to get started.

It is necessary to install JAVA and NetBeans for Microchips IDE’s to work properly, take it from an experienced computer programmer, if you want fewer problems do yourself a favour and install them first. Why? Well because Microchips IDE’s are written with NetBeans and NetBeans is written in JAVA. Besides most of the time when people have problems, Microchips recommends installing them so I just have people install them and avoid the problems.

Last edited by Nav_Aids; Apr 08, 2018 at 01:18 AM. Reason: Bring post up to date.
Dec 04, 2012, 12:00 AM
Registered User
Nav_Aids's Avatar
Thread OP

Important Links

Here are some important links:

This link will take you to a web page that has all the attachments and links posted on the RCU forum for the 683 portion of this project. The 683 in IMHO is completed and working fine. The web page has everything listed by coresponding pages to the forum, so if you find something interesting on page 4 then go to page 4 of the forum.
RCU Attachments and Links that are posted there. There is also a ZIP file that has everything.

Jake Stewart's lost his website for now. So I have put his web site up on mine, see below link. He has a pretty good explanation on how to setup MPLab to get you going. Make sure you download the Excel spread sheets to get your timing table values and read the instructions. I find that with Excel 2007 I just right click on a page tab and left click on 'UnHide' then 'Table_Values:

Fixes to the spreadsheet only, no changes were made to the 683/1840 code. Lastest is Dated Jan 01-2013.

Pull-ups are turned off for the switches and the polarities are reversed CDI-2012_v1.0_B-F1.1.xlsm

Revisions and Fixes Jan 1-2013.txt

MPLabX Source Code Editor:
You will need this to modify and burn/flash the MCU.
MPLabX Down Load Page

I like to use this program for coding and then copy my code into MPLabX.
TextPad for 'C', 'C++', and 'Java'.

To make the PICKit 2 compatible with the 12F1840.
“You need two files, PICkit 2 v2.61 and Device File 1.62.14 (New device support. Compatible with application version 2.61.)”
See attachments

More to come when testing is finished, which is in the process right now.
'B' Timer Board Layout is at the bottom of post (attachments), why 'B'? well we had a choice between boards and thought 'B' was the best. Thanks Gompy.

How to make your own torrid transformer, click here or go to post 1196

Member links:
Gompy's website (I really like the timing light):

Timing light 1:

Timing Light 2:

A YouTube movie showing an older version of the firmware (0.96):

DIY CDI and software. (1 min 52 sec)

Here's the latest version (1.0) running and showing how the switchable timing works:

CDI-2012_v1.0 (2 min 0 sec)

More coming:
Last edited by Nav_Aids; Apr 08, 2018 at 01:49 AM. Reason: Added "How to make a Torrid"
Dec 04, 2012, 03:28 PM
supreme being of leisure
ZAGNUT's Avatar
the conversions forum was great back in the day (i was one of those who petitioned for its creation) but lately i just seem to get lost there in endless disjointed threads...this is the right place for that ignition.

being mechanically inclined i just slap on a link between the carb and hall sensor.....BUT, in my dreams (where i know how to write code) a very simple and elegant electronic advance would be mixed as a slave to the throttle channel...between 1.000mS to 2.000mS you would get a certain amount of delay measured in time, so you just set endpoints to determine the advance and then throw in a multipoint curve to tweak it. maybe not as elegant as what's being shown in this thread but still way more advanced than all the off-the-shelf units.
Dec 05, 2012, 10:26 AM
Registered User
Nav_Aids's Avatar
Thread OP

Why a Programmable CDI ?

Why a Programmable CDI ?

Well if you are converting an engine from glow to gas like I am (ASP 0.65FS) then you’re going to need an ignition. Another reason is that most OEM gas engine manufacturers don't set their ignition timing or timing curve to an optimized setting or one that produces max power. Why? Well they have to provide warranty for their products and that costs money. Another reason to have a programmable ignition is that if you change props you are changing the load and how that load is applied, so if you can make your own curve then you can make a more useable power curve. You can even save fuel with the right carb mixture and timing. A leaner mixture needs less timing and a richer mixture needs more timing. So what can the standard CDI-2012 setup do ?

• Can hold 2 different timing curves
• You can switch between those 2 curves in-flight
• Use an Excel sheet to produce your timing curves and the actual code
• Kill switch can be used in flight

We are working on a way to do in-circuit-programming and if you want to help then please do.

Last edited by Nav_Aids; Dec 16, 2012 at 08:39 AM. Reason: spelling
Dec 05, 2012, 10:40 AM
Registered User
Gompy's Avatar
: )
Last edited by Gompy; Dec 05, 2012 at 05:18 PM.
Dec 05, 2012, 10:53 AM
Registered User
: )
Last edited by SadSack; Dec 05, 2012 at 03:14 PM.
Dec 05, 2012, 11:00 AM
Registered User
Gompy's Avatar
: )
Last edited by Gompy; Dec 05, 2012 at 05:18 PM.
Dec 05, 2012, 12:53 PM
Registered User
Nav_Aids's Avatar
Thread OP
Originally Posted by Gompy
This code have to be copy / past into the Exelsheet befor you can use it.
I show the code and hope some one will be smart enough to see if I make the right changes.

Set internal resistants OFF (external use)
Set GP4 and GP5 reverse (jumper or switch must be closed - high)
MCLRE_ON (pin4 of the PIC will be a RESET - low)

BTW, the wrong schematic is showing above !

Schematic changed

Yup that's 1 of the problems, we have to sort everything out. I updated the file Gompy.

Last edited by Nav_Aids; Dec 05, 2012 at 08:30 PM.
Dec 05, 2012, 03:48 PM
Registered User
Gompy's Avatar
: )
Last edited by Gompy; Dec 05, 2012 at 05:19 PM.
Dec 05, 2012, 04:51 PM
supreme being of leisure
ZAGNUT's Avatar
Originally Posted by Gompy
GRompy thank you.

And Gompy quit with this forum.
It'seems to me a playgarden for children.
as opposed to RCU?

Dec 05, 2012, 05:48 PM
Registered User
Ray, I was testing the new timer board with my original ignitions with the toroid transformer on it and ran into a snag. There must be a resistor value change or the inverted signal from the optocoupler output will not fire the ignition. If you have the schematic and can re-post it, I will tell you which resistor number it is. I can't seem to find the combo board schematic with the problem resistor. It all boils down to the positive bias with too low of a resistor value. It's a 150 ohm I believe shown in the schematic. This must be changed to a 680 ohm to correct the situation.

Dec 05, 2012, 07:43 PM
Registered User
There have been inquiries as to the possibility to switch the table via a connection to the receiver thru a servo function lead. To me, I think it would be possible only with an opto kill switch arrangement to prevent the possibility of the dreaded RFI. Anyone have views on this arrangement?

Dec 05, 2012, 08:31 PM
Registered User
Nav_Aids's Avatar
Thread OP
Last edited by Nav_Aids; Aug 28, 2013 at 08:22 AM.

Quick Reply

Thread Tools

Similar Threads
Category Thread Thread Starter Forum Replies Last Post
Discussion CD Ignition lead and fixed plug .... solentlife Engines 10 Feb 18, 2014 12:03 PM
For Sale NIB 52cc Gas engine w/CD-Ignition 3.2kw kukntra Aircraft - Fuel - Engines and Accessories (FS/W) 4 Jul 23, 2012 08:10 AM
Discussion Best open source autopilot vs commercial solution syncra Multirotor Drone Talk 0 Apr 12, 2012 01:35 PM
Discussion Any Open Source / CC CAD Files for gliders? DrFragnasty Composites Fabrication 8 Apr 09, 2012 05:36 AM
Discussion I'm designing an open source quad frame. Inclusions anyone? Physics_Dude Multirotor Drone Talk 3 Mar 11, 2012 12:22 PM