Download:  PIC Hex file

As one of his last projects before he past away, Klaas PA0KSB designed a DDS VFO controlled by a PIC. This VFO generates a very stable tunable 12-40 MHz signal and it took my attention when he told about it on the ‘Amstelveen channel’. Of course it was, as always, a very good and well working design with software that could be used in a very flexible way. Clock, USB and LSB frequencies can be established and stored in the PIC. Klaas has not developed this project with the intention to make the software more functional than needed for his design.  For that reason I have adapted the software on the following points to make it a bit ‘user friendly’:

a) removal of the (hardly used) keyboard routine to get more program space
b) added possibility to initialize a start frequency
c) prevent frequency jumps after the use of the USB/LSB switch
d) LCD refresh after changing the step size
e) prevent tuning below the 0 MHz border
f) small technical modifications

Ad.a) by removing the keyboard routine, I have not heard anyone using it, more program space was released to make the adaptations mentioned below possible.
Ad.b) One of the most inconvenient things was the start up from ‘scratch’. The display showed the most strange frequencies and you must tune till you weight an ounce before the right frequency was displayed. The modification provides the possibility to initiate the PIC by pushing the STORE and the StepSize button at the same time, the following frequencies are then automatically put into the PIC:
– the clock frequency at 20,000,000 Hz
– LSB/USB at resp. 8,998,500 and 9,001,500 Hz
– VFO A/B at 3,500,000 Hz
These frequencies can be modified according to your own need. Also the software identification and -version is displayed during startup.
Ad.c) In some cases it happened that after startup, the display (and DDS) frequency jumped 3 KHz up or down.  After some investigation it appeared that this was caused by the fact that the USB/LSB switch setting was not saved. If the switch had another setting after the frequencies were stored (after turning off for example), the program executed an automatic DDS correction after start up and jumped 3 KHz (the difference between USB and LSB). The modification implies that both, the setting of the StepSize – and that of the VFO switch are stored, together with the VFO frequencies.
Ad.d) After the step size was changed, only the concerning display line was rewritten. This has been remedied. Both VFO’s are displayed correctly after changing the StepSize.
Ad.e) When tuning below 0 MHz, the frequency on the display became incorrect. By comparing the frequency of the VCO with both the USB or LSB frequency, it is no longer possible to tune below 0 (by some Hz). This does not work, unfortunately, if the ‘big-step’ tuning is used due to the way this function is programmed.
Ad.f) The small technical modifications have to do with a more efficient use of the available program space and the prevention of storing more than once after pushing the STORE button or when turning off the system.