general purpose CW SSB BFO

The Arduino code application shown below, is a digital BFO oscillator. I have tested the software and found that either my home made digital frequency counter ( made for my OND in electrical engineering ), or the digital vfo, is off frequency. The reading from my counter is around 50Hz low. However, the Arduino has added to it a fault test message using the Arduino ide monitor routine. When using the ide monitor, the message shown on the monitor relates to the setting of the BFO in accordance to the pin selection on pins 4 to 7.

Uno data pin 4 = usb

Uno data pin 5 = lsb

Uno data pin 6 = cw ( cw_rx )

Uno data pin 7 = key ( cw_tx ) note: the CW mode operates as a full break in system between transmit and receive, key is active LOW.

I would suggest a 9MHz crystal is used as the CW I.F. filter, using several in a chain would give the CW narrow filter slope for both transmit and receive modes, while the 9MHz crystal chain narrow slope filter would separate off the +600Hz bfo carrier, but allow the 9MHz keyed carrier signal to go through I.F. for transmit and receive.

To select the carrier mode, tie down to GND the required pin, or connect to the tri-band ssb / cw led connection to the twi interface chip.

The connections for the DDS AD9850 on the data pins are, D0 and D1 are connected to +5V, while pins D3 to D6 are tied to GND. The remaining DDS connections are shown below.

DDS W_CLK = Uno data Pin 9 - connect to AD9850 word load clock pin (CLK)

DDS FQ_UD = Uno data Pin 10 - connect to AD9850 freq update pin (FQ_UD)

DDS DATA = Uno data Pin 11 - connect to AD9850 serial data load pin (AD9850 D7 = DATA)

DDS RESET = Uno data Pin 12 - connect to AD9850 reset line

The code is downloaded from my google drive as a text file, then copy and paste into the Arduino ide.

https://docs.google.com/document/d/1OpPmkuQl4Sk--ryPCXWaqbx0qrE4Cg40VTSyMC84vjM/edit?usp=sharing