I have, for quite a while, provided modified versions of the code for my projects free of charge. However, the cost of webhosting for this site has tripled in the last couple of years and the little I make out of the pcbs I sell goes nowhere near covering this cost.
As of October 2017, I will be asking for a donation in exchange for providing custom modified code for my projects to help keep this site available.
Updated Australian Band Plan page with the latest info (under 'Misc' heading).
A modification plus software to allow the Simple DDS VFO to be re-calibrated as often as you want without having to re-program the PIC has been added to the Simple DDS VFO page. Simple DDS VFO bug problem fixed. Code uploaded to webpage as version 'c'.
There is a bug in the Simple DDS VFO code. See Simple DDS VFO page for the problem and updated code. Included an add-on for the Simple VFO project to indicate which step size has been selected. Simple DDS VFO project updated and software file uploaded. The pushbutton on the encoder is used to change step size (step sizes 10Hz, 1kHz and 10kHz).
Noise Canceller kits now available.
Updated both the DDS Xtal Substitute and DDS Xtal Substitute Mark 2 projects into one project. The original webpages are available to download as PDF's.
New project added - my version of the X-Phase noise canceller. PCB available and a kit of parts to follow soon
Or - a trap most have fallen into?
While working on another custom modification of the DDS Module, I spent about a week banging my head against the wall, cussing, using other nasty words and throwing things around the workshop. Why? Because the !#%$* encoder wouldn't work properly when the DDS code was modified and migrated to an 8 pin PIC. Nothing to do with the encoder changed in the code transplant other than the pins it was connected to. Even looking at an oscilloscope wasn't helping (it showed the problem, but wasn't helping). Instead of getting this:
I was getting this:
What on earth was going on? It was a brand new (if cheap) mechanical encoder. Tried changing pullup resistors and the value of the filtering caps but nothing made any difference. Even went so far as to try Schmitt inverters and 'D' Flip Flops to try and cure the problem. Here is the snippet of the schematic as it relates to the encoder and I can tell you, the problem is right there, staring you in the face.
Have you worked it out yet? Come on, it's simple when you know - keep trying. And no cheating by scrolling down. Annoying aren't I! Oh, all right, here's another clue - how are the caps supposed to discharge? Via the encoder when it's contacts connect to gnd I hear you say? Maybe so, but it's already too late by then. Besides, what are the caps supposed to do? Eliminate contact bounce, right? All right, stop yelling, here's the answer: Question, how can the caps eliminate contact bounce when they (the caps) are already fully charged and the software is configured as 'active low'? With 100n caps, the bounce time of the contacts is too fast to properly discharge the caps and the input pins of the PIC are high enough in resistance that they aren't going to help either, so nowhere for the spikes of contact bounce to go. Solution:
This way, the caps are held discharged so that when the encoder contacts connect to ground, they are more easily able to absorb the small voltage fluctuations. With the values shown, I now get nice clean quadrature signals (don't be tempted to increase the value significantly, the trailing edge will develop a nasty curved appearance that will cause problems). Get out your scopes and cheapy mechanical encoders and try it. I know it solved my problem. (I had a couple of narky emails saying what a load of bull, but you can bet they didn't actually try it. Also, a couple of experimenters have reduced the caps to 1n and commented that it worked out better for them.)