Text display on waterfall


This is a mega16 AVR program and sends characters for display on waterfall. One of 7 tones is sent
(one a time). The carrier is always on and is shown as inter-letter underline on the waterfall. 
 textbk 
This beacon keyer sends text characters as a varying carrier frequency. Each character is comprised
of pixels within a 7x5 matrix. Some characters are narrower and take up less pixels in the x
direction. When there are no pixels in the column at all, the D/A output value is 001 for a
carrier offset of 0 Hertz. If the lowermost pixel of a column is part of the current character,
the D/A output value changes to 010 (or 2); this then becomes carrier offset of +50Hz. However,
if the lowermost pixel isn't required but the pixel immediately above is, the D/A output changes
to 011 (or 3) for a carrier offset of +100Hz. There are no breaks or pauses in the transmitted carrier.
This allows for reduced noise on display (because the carrier is always on) and for more power per pixel
in each column.
 st1.04 
A D/A circuit is added from the lowermost bits of portA. This D/A is intended to move the frequency
of a crystal controlled oscillator by about 50Hz for each D/A count.
 vcvxo 
Voltage steered xtal oscillator. When the uP switches an output to '1' level, that output pin is
effectively connected to the supply rail. The capacitor at the D/A output is intended to prevent
power supply noise making its way to the varactor, a small value of 10n or 4n7 is best.
port bits & directions

 portA:
     lowermost 4 bits outputs; (msb) b2,b1,b0 (lsb) are D/A output drive pins
     b7..b4 are inputs
 portB (mode select pins):
     b4...b0 are inputs
     b7...b5 are outputs
 portC
     all bits are outputs except for b1 (input pin for bootloader if used)
     b0 pulses high at start of character (for 'scope trigger)
 portD
     all bits are inputs except for b1 and b4 and b5 and b7
     b0 UART serial 9600 input with 8Mhz xtal
     b1 UART serial 9600 output with 8Mhz xtal
     b4,b5 are test only tones, in quadrature
     b7 is 500Hz test output (xtal/16000 with !SLOW=0, see mv3)
;
mode select (portB), these inputs are usually at '1' level
  ; b0 LSB is normally '1' for repeat send column pixels
  ; b1 is double speed when '0' (50mS columns instead of 100mS) 
  ; b2 is fixed time/pixel when '0' (50mS fixed time, or 25mS with b1='0')
  ; b3 is 0 for invert D/A when '0'
  ; b4 echo send character to serial/prog mode, set '0' to program message
    notice that b4 is latched at device reset.
    The firmware shows b2..b0 value as decimal mode number, a miniature bcd switch can be used at
    pins b2..b0 instead of DIP selector.
	
The lowermost bit of portC is an output that pulses to '1' level at the beginning of each character.
This can be used as trigger for 'scope to show current character on display (the D/A values).
 scope 

The 9600bps Serial connection is used to program the beacon message, and vary the transmission of characters:
!TILT= was added, (TILT can be 0...+/-3)
 5Hz tilt 
here each column is 5Hz higher than the one before. (This only for the pD4,pD5 audio).


!SLOW= was added, here with !SLOW=4 (pD7 becomes 15.625Hz) from ARGO: 
 4Hz 
This is 32 times slower, so the 200mS (repeated; 100mS+100mS) columns each take 6.4 SECONDS.

!SLOW=1 is 2* 100mS speed, !SLOW=2 is 4* the 100mS speed, !SLOW=3 is 8* the 100mS speed, and !SLOW=4 is 32* the 100mS speed.
Reset to 100mS with !SLOW=0

!SAVE saves the message and the current CSET,TILT and SLOW values. Either TILT or SLOW, not both as same time:

tbkm16.zip zip file with .hex file and notes
 testbk 
Test Fixture

waterfall display program for dot net 3.5
wfalltbk.zip CRC 86F48D0D (Program also creates .wav files)
 wfalltbk