Copyright 2012 Jake Stewart
Contact email: jakestew{at}mail{dot}com
License: This code is free for personal and limited commercial use. You may use and modify it as you see fit as long as you do not sell the code or any derivative work, or any product containing the above, without written permission. If you would like to use this in a commercial product please contact me for affordable licensing.
Unless you somehow consider your ignition curve and settings to be confidential secrets, please send me off a copy of the source, compiled hex, and spreadsheet whenever you find a good running/starting combination. I'll collect these and make them available for people who want premade hex files or ignition curves. I ask for the spreadsheet since the way I did the excel sheet I don't think it will be easy to paste the table from the source back into the spreadsheet.
Description: Timer1 is used to time the revolutions. Time base is the internal RC oscillator (8MHz). Timer1 compare mode is used to time the spark delay. Delay is loaded from the DegDelay[] table. Rev times larger than the table are calculated on the fly.
Joining the project: If you can help out please send me an email or join in the discussion at RCU. We need electronics people to help with board/electronics design and putting schematics into Eagle, programmers to help work on the code, motor heads to help tell us what to do with the engines, writers to help with documentation, and webpage designers to help with the website (obviously). Many people have put a lot of time into this project and it already works very well, but there are a lot of things left to be done before it's ready for the masses.
Credits... Special thanks to:
This project has been ongoing for at least the past several years. The vast majority of information on this project is contained in threads on rcgroups.com and rcuniverse.com. It's also the best place to ask questions and get help with the project.
Link to the new RCG discussion thread
Link to the OLD RCU discussion thread
Note: We switched from RCuniverse to RCgroups because of a number of server problems, image posting/uploading, and file posting problems there. RCgroups is a much better forum for us, and has a special forum dedicated to "DIY Electronics". Following the switch, a number of my posts were censored and/or deleted from RCuniverse, especially any mention of the switch or reasons for the switch. Personally, I will not tollerate censorship and heavy-handed moderation, and I suggest that you don't either. I'll try to occasionally check back there to avoid leaving anyone behind and point new people to the new thread location, but for the most part I'm boycotting RCuniverse.
Features...
Downloads...
Releases... (Use with the new spreadsheet versions
below!)
CDI-2012_v1.0.zip
This file contains the Excel spreadsheet for generating the advance curves and
project files for MPLAB X. The Excel sheet also contains the code for both
12F683 and 12F1840 processors.
CDI-2012_v1.0_B.xlsm
This is the Excel spreadsheet for Rob's (Gompy) version B timer board. Pull-ups
are turned off for the switches and the polarities are reversed. Otherwise it's
the same code. If you want the MPLAB project files and instructions download the
above version and just remember to use this spreadsheet.
New
Spreadsheet Versions!
A big thanks goes out to Ray Richter (Nav_Aids) for
creating these versions!
Ray created these versions to fix a number of
bugs in my spreadsheets. The v1.0 spreadsheets work great for me, running Excel
2007 on Windows XP SP3. However, it seems that several bugs crop up when using
different Excel versions, and/or OS versions, and/or VB runtimes, and/or .Net
framework versions. I have no way to test all these configurations, and I
certainly can't fix all of Micro$oft's bugs, so Ray's mastery of VBA and Excel
macros, and knowledge of the many version compatibility problems, have really
helped the project. All future spreadsheets will be based off of
these.
CDI-2012_v1.0-F1.1.xlsm
- This is the Excel spreadsheet for John's (gr8flyer55) timer board. Pull-ups
are on for the switches and grounding the switch pin activates
them.
CDI-2012_v1.0_B-F1.1.xlsm
- This is the Excel spreadsheet for Rob's (Gompy) version B timer board.
Pull-ups are turned off for the switches and the polarities are
reversed.
Important Note!!! The "kill switch" is just a handy
feature. Do NOT rely on this as your only engine kill method! The current
hardware may generate one spark on power up, and one spark on power down (even
several minutes AFTER power down). ALWAYS have another method to kill the engine
and NEVER allow any part of your body anywhere near the prop or engine without a
reliable hardware/physical method of making sure the engine doesn't fire. If you
don't have another switch, just pull the plug wire first!
I publish this
open source software as an excercise of my right to free speech. Open source
software is constitutionally protected free speech. I have NO liability for
damages or injury resulting from how YOU decide to use this
software!
There is no password on the file. All you have to do is go
to...
- "Home -> Format -> UnProtect Sheet" to unprotect the sheet.
You have to do this to each sheet you want to change.
- "Home -> Format
-> Hide & Unhide -> Unhide Sheet" will let you unhide the hidden
sheets.
- Ctrl-F1 will switch the ribbon between normal and auto-hide modes.
- Click "View -> Headings/Formula bar" to make headings and formula bar
show back up.
Notice: This code works fine in the simulator, and will
throw sparks when programmed on the chip in the actual circuit. John has even
tested the code on a real engine. But, I take no responsibility for any damage
caused. It is your responsibility to ensure that you are using proper settings
for your engine and that you test the functioning of the CDI and program BEFORE
you use it on an engine.