Operation and Program Notes, Ver 1.0, 24 Feb 97 Updated to PC Ver1.4, 12 Jan 99 Updated to PC Ver 1.5 26 July 99, RSL Updated to PC Ver 1.6 12 Sept 99, RSL Notes for V2.0 added - 9 Feb 01 RSL Copyright (C) 1999-2001 by Robert S Larkin DSP10 DSP-BASED TRANSCEIVER Bob Larkin, W7PUA 2982 N. W. Acacia Place Corvallis, OR 97330 boblark@proaxis.com IMPORTANT NOTE:These are the original notes that were written for Version 1.0 to 1,5 of the PC software. Version 2.0 is a major upgrade, and although most of this material is still correct, the added document README20.TXT contains many additions, as well as some changes. The README20 should be READ FIRST. In addition, it contains notes for the installation of the software. Eventually all of this will be merged together!! ------------------- This is an amateur radio project, intended to explore the use of Digital Signal Processing (DSP) as the i-f and a-f processing of a transceiver. The prmary application is weak-signal work on the bands above 2-meters. Interestingly the transceiver also operates at 2-meters as presently built and can also be used on that band. Transverters are used ahead of the transceiver for the higher frequencies allowing operation up into the microwave range. The control and the front panel for the transceiver is any PC running DOS and having VGA graphics. The keyboard controls the transceiver. Status information, along with spectral and signal strength displays, are on the screen. Audio comes from the DSP, not the PC. No internal sound card is required. Background for this project is available in my articles "The DSP10---An All-Mode 2-Meter Transceiver Using DSP I-F and PC Front Panel," QST Sept, Oct and Nov 1999, and "A DSP Based Transceiver for UHF and Microwaves" published in 1996 Microwave Update and available from the ARRL. The latter paper and some other background material is also available at http://www.ao.com/~gnome/. These notes are not complete by themselves, and I assume that you have read the first of these references. The Microwave Update paper is for background only, though. ALL THE FILES: At the end of this file is a list of the files needed for this project. If you are not sure what you have, check there. THE PROGRAM - The software for the project is being made available as "free software." This includes both the source code and the executable files for both the DSP and the PC. A license is required for the Program (referring to the total DSP-10 software package.) This license is the GNU General Public License. You do NOT send me any money to use the software. The software is available for download from the Internet. However, you do have obligations under the license and it is important to read it. It is attached as GNU_GPL.txt and can be read as is, or as part of starting up the DSP-10 software. By the way, this license file must be in the same directory as the executable program file, uhfa.exe, for the program to run. What is this all about? I will never be able to explain the philosophy of "free software" as well as the GNU people do. So look at the license for the general idea and, if you are so inclined, take a look at http://www.gnu.org web site for so in-depth discussions. In simple terms, though, the reason for this is that as soon as these sorts of programs get into the world of commerce, they are given a cloak-of-secrecy, all efforts for information exchange cease and the spirit of the project is lost. You need to help keep this from happening! In addition, as a member of the "community," you will need to share any changes that you make to the programs. I will try to help to get this information spread about to interested users. The Web page http://www.proaxis.com/~boblark/dsp10.htm is currently the best palace for this to happen. ------- NO WARRANTY --------- BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. NOTE TO AUDIO PROCESSOR USERS: The program is the same for the audio processor as for the full RF hardware use. The input is set by the Alt I (or i ) command. The following writeup is for the RF hardware operation. Most aspects also apply to the audio processor operation. There is even "tuning" which is at audio and a limited audio transmit capability. Some aspects, such as FM reception do not apply to the audio processor and these may not be available or they may be available but not be useful. Eventually, you will want the RF hardware, and the audio processor gives an excellent introduction to the whole project. Some comments that are specific to the audio processor operation are at the end of this writeup. ----------------- TRANSCEIVER OPERATION -------------------------- USING THE TRANSCEIVER - This section assumes that you have a working DSP-10 board connected to the Analog Devices EZ-Kit Lite as described in the article "The DSP10---An All-Mode 2-Meter Transceiver Using DSP I-F and PC Front Panel," by the author of these notes. First, power of 11 to 16 Volts at 750 mA is required. An antenna for 2 meters or a transverter for other frequencies is connected tor the BNC connector on the front panel. Assuming that internal T/R switching is being used, there should be a 50 Ohm jumper (Phono connectors) between the transmitter output and the transmit side of the RF T/R switch. A microphone and/or key should be plugged into the transceiver box. One or two speakers should be connected to the audio output jack (identical audio comes from both outputs.) Communication between the transceiver and the PC is through the serial port at 9600 Baud, 8N1. A standard serial cable connects from the DB9 connector on the transceiver to a serial port on the PC. The files required to operate the DSP10 are relatively small, and it is practical to operate from a 3-1/2 floppy disk. This has the convenience of making installation as simple as inserting a disk. In addition, any files created, such as screen saves of the front panel (not presently available) will end up on the same floppy disk and not cluttering up your hard drive. The only exception to this is if long data saves---such as 15 minutes or more---are anticipated (see Alt F command below). In this case it would be desirable to transfer the files to a hard drive to give more room for the data file. The following files should be in the current DOS directory, either on the floppy of the hard drive: UHF3.EXE The DSP program UHFA.EXE The PC program EGAVGA.BGI Graphics driver UHFA.CFG Configuration file for the PC program GNU_GPL.txt License for the software As explained below, the configuration file does not need to be present, in which case the program comes up in a predefined configuration. In order to get the proper conversion of time and date to GMT you need to give DOS the enviornmental command (assuming Pacific time): SET TZ=PST8 Before loading, be sure that the DSP is in a reset state. This should happen automatically when power is applied. If this seems to be unreliable, you may have a power supply that comes up very slowly. Try applying power by connecting the power lead instead of the power supply switch. You need to have installed the EZKIT-Lite Monitor program that came with the DSP board. It runs under Windows for some reason. As an alternative you can use Dwight Elvey's EZFAST.COM. This is a neat little loader/terminal program available from www.analog.com that runs under DOS directly. The latter program is low-cost shareware. The loading process will be given for each of these loaders: Loading with EZKIT-Lite Monitor 1- Load windows, 3.1 or Windows 95/98 as you may be using. 2- Double-click on "EZ-Kit Lite Monitor" Icon 3- Select the menu "Loading" and the item "Download User Program and Go..." 4- Find the file "UHF3.EXE" in the flie dialog box (careful---NOT UHFA.EXE) (the file extension set up by Analog Devices for the DSP programs is indeed .EXE, but these are far from DOS executable files.) 5- Select this file and Click on "OK" 6- Close the dialog box and Exit Windows to DOS. 7- From DOS, load and execute UHFA by typing UHFA c where c is the COM port used to connect to the EZ-KIT Lite (1,2,3 or 4.) Loading with EZFAST.COM 1- Load the DSP program with the DOS command EZFAST c UHF3.EXE G 2- Execute the PC control program with the DOS command UHFA c where c is the COM port 1, 2, 3 or 4. A drive and directory prefix is needed, of course, if you are not in that directory. If you are using EZFAST it is easy to make all the steps continuous by creating a .BAT batch file with a text editor. If you are running the DSP10 from floppy drive A and your COM port is 1, the batch file could look like SET TZ=PST8 A: EZFAST 1 UHF3.EXE G UHFA 1 This file could be executed from any drive, but would leave you on drive A when you shut down the DSP10. One caution: Operate the PC in "true" DOS, not the DOS window that is available in Windows 95 and later operating systems. If your PC comes up running Windows you will need to go to the "Shut Down..." routine and select "Restart the computer in MS-DOS mode." If this is not done Windows will indicate great amounts of distress over the direct interaction with the serial-port hardware interrupts. KEYBOARD COMMANDS - Once the graphical front panel appears on the computer screen, all operations are controlled by keyboard commands. The are no mouse, menu or dialog box driven operations. Note that the Scroll-Lock key affects commands. You must have this on to exit the program, and for a few other commands, but most other commands will not respond if the Scroll-Lock is on. No 'unmodified' key is used for commands which leave the standard keys available for sending CW. The following commands are used: F1 On-screen Help, rotates through three screens Home Toggles send and receive F7 Audio gain down 2 dB F8 Audio gain up 2 dB Ctrl F7 Audio gain down 1 dB Ctrl F8 Audio gain up 1 dB Sh F7 RF gain down 6 dB Sh F8 RF gain up 6 dB Ctrl Alt Sh F9 Frequency down 1 Hz Ctrl Alt Sh F10 Frequency up 1 Hz F9 Frequency down 10 Hz F10 Frequency up 10 Hz Sh F9 Frequency down 100 Hz Sh F10 Frequency up 100 Hz Alt F9 Frequency down 1000 Hz Alt F10 Frequency up 1000 Hz Ctrl Sh F9 Frequency down 10 kHz Ctrl Sh F10 Frequency up 10 kHz Ctrl Alt F9 Frequency down 100 kHz Ctrl Alt F10 Frequency up 100 kHz Ctrl Sh F9 Frequency down 1 MHz Ctrl Sh F10 Frequency up 1 MHz Alt O or Alt o Toggles RIT on/off Alt R or Alt r RIT frequency down 10 Hz Alt T or Alt t RIT frequency up 10 Hz Alt Z or Alt z Rit frequency to zero Alt E or Alt e Toggles binaural mode on and off F3 Audio filter on/off toggle F4 Audio filter select, 200 or 450 Hz Sh F3 De-noise LMS routine on/off toggle Ctrl F3 De-noise adaptation gain down Ctrl F4 De-noise adaptation gain up Alt F3 Spectral display non-coherent averaging down 6 Alt F4 Spectral display non-coherent averaging up 6 Alt F7 CW transmit speed down Alt F8 CW transmit speed up Sh Del Clear CW transmit buffer A to Z, a to z Non-commands, sent as CW when in CW mode 1 to 9 Non-commands, sent as CW when in CW mode .,?$/()'":;-_= Non-commands, sent as CW when in CW mode [ Non-command, sends AR in CW mode ] Non-command, sends SK in CW mode \ Non-command, sends AS in CW mode ^ Non-command, sends "error" in CW mode (missing 1 dit!) # Delimits repeated area in CW buffer, two required @ Breaks out of repeated area in CW buffer Backspace Deletes characters from CW buffer, in CW mode Alt S or Alt s FM squelch down Alt D or Alt d FM squelch up Alt Sh F7 Mike gain down Alt Sh F8 Mike gain up F5 *Color waterfall brightness down F6 *Color waterfall brightness up Sh F5 *Color waterfall contrast down Sh F6 *Color waterfall contrast up Alt C or Alt c Display AGC on/off toggle (automatic brightness) Alt @ Amplitude offset for upper spectral display down 1 dB Alt # Amplitude offset for upper spectral display up 1 dB Alt ! Upper spectral display 10, 5, 2, 1 dB/div select Alt % Spectral display width toggle, 4800 or 2400 Hz max. Alt N or Alt n Frequency normalization on/off toggle for spectral display Alt Q or Alt q Frequency normalization (no signal) fast Alt P or Alt p Frequency normalization (no signal) 10 minute, precision Alt W or Alt w Data 'Windowing' select for spectral processing Alt F or Alt f Toggles recording to file on/off Alt Y or Alt y Toggles between large frequency display and waterfall spectral display. Alt E Synthetic stereo (delay right channel) on/off toggle < and > Change locations for Moon/Sun data Ctrl Alt A Changes band to 50 MHz if transverter is "installed" Ctrl Alt B Standard 144 MHz transceiver Ctrl Alt C Changes band to 220 MHz if transverter is "installed" Ctrl Alt D Changes band to 432 MHz if transverter is "installed" Ctrl Alt 9 Changes band to 902 MHz if transverter is "installed" Ctrl Alt E Changes band to 1296 MHz if transverter is "installed" Ctrl Alt F Changes band to 2304 MHz if transverter is "installed" Ctrl Alt G Changes band to 3456 MHz if transverter is "installed" Ctrl Alt H Changes band to 5760 MHz if transverter is "installed" Ctrl Alt I Changes band to 10 GHz if transverter is "installed" Ctrl Alt J Changes band to 24 GHz if transverter is "installed" Ctrl Alt K Changes band to 47 GHz if transverter is "installed" Ctrl Alt L Changes band to 76 GHz if transverter is "installed" Ctrl Alt M Changes band to 120 GHz if transverter is "installed" Ctrl Alt N Changes band to 142 GHz if transverter is "installed" Ctrl Alt O Changes band to 241 GHz if transverter is "installed" Ctrl Alt 1 Changes band to 144 MHz Mem 1 Ctrl Alt 2 Changes band to 144 MHz Mem 2 Ctrl Alt 3 Changes band to 144 MHz Mem 3 Ctrl Alt 4 Changes band to 144 MHz Mem 4 Ctrl Alt 5 Changes band to 144 MHz Mem 5 Scrl G Reduces AGC decay time, set to 0 for AGC off. Scrl H Increases AGC decay time Scrl C Reduces CW receive offset (and sidetone frequency) by 10 Hz Scrl V Increases CW receive offset (and sidetone frequency) by 10 Hz Scrl S Decreases CW Sidetone level by 1 dB Scrl D Increases CW Sidetone level by 1 dB Scrl O Decreases transmit power by 1 dB Scrl P Increases transmit power by 1 dB Scrl E Decrease synthetic stereo delay Scrl R Increase synthetic stereo delay Scrl F2 Toggles between 8 and 16 bit data coming from the DSP Scrl F3 Selects the diagnostic info type shown at the screen bottom and Display Moon/Sun data Scrl F5 Selects dot type for upper spectral display Scrl Alt F4 Quits back to DOS Scrl Ctrl Alt F4 Does Warm Boot of all hardware without resetting software Some commands are only meaningful when the lower waterfall display is being used (see Alt Y command.) The last 15 commands are used infrequently, or should not be used accidently, and require that the Scroll-Lock be ON. Don't forget to turn the Scroll-Lock back off after using these as the rest of the commands will cease working! The band change commands that use the Ctrl-Alt modifier are dependent upon the definitions for the various transverters. This is done through the configuration file "tvtr" lines, as described below. If you use the default configuration file (or no configuration file at all) you get a melange of A, B, I, 1, 2, 3, 4 and 5. All others are undefined until you add a line in the configuration file. The Scrl F3 has always changed the diagnostic data, and still does. But now , in addition, the Moon and Sun Data are also displayed on the bottom line where the diagnostic data is shown. There are now five choices: No display DSP status byte dump A/D and D/A level bar graphs Moon data Sun data. HELP SCREENS - When the Alt Y or Alt y command has the large frequency slide rule display in place, there will also be a summary help screen permanently below the frequency dial. This has the most common commands listed. In addition, there are three more detailed screens available theat occupy the entire lower-right pat of the display. These are rotated through by the F1 key. When the waterfall display is in place, the Help screens will replace the waterfall. No updating of the display will take place while the Help screens are being seen. After about 10 seconds, data will start to be be lost from the waterfall. This creates no problems for the program operation, so long as the data is not critical to the user. SCREEN DISPLAY - There are two distinct "styles" available for the front panel. The default is a large size frequency readout with a slide-rule dial beneath. A help summary is always shown below the frequency dial. Alternatively, a "waterfall" type of spectral display can be shown along with a smaller frequency display. This is useful for "seeing" weak signals. All transceiver functions are available with either display style. The style is toggled by the Alt Y, or Alt y, commands as listed. Most operating parameters are shown in the "Front Panel" display along the left side. Adjustable parameters are often shown as 0 to 100. AF Gain, mike gain and the like are exactly 1 dB per unit. Parameters that are toggled change to show their current state. The upper right portion of the screen is a spectrum display calibrated in dB. The scale is adjustable between 10, 5, 2, and 1 dB per division. A small red cursor follows the maximum value on the display which is displayed on the front panel as "Signal Level". They are scaled by the nominal gain of a transverter and displayed as"Signal Level" in dBm. The bar graph above the Signal Level is 6 dB per bar and when all bars are lit the FFT in the DSP is going into overload. It represents the level coming from the FFT which for sine waves can be much greater than the input signal. The spectrum display can be modified by Dot Selection, Scrl F5. Most people seem to prefer the connected lines. In the CW mode there are several special display items. Between the "Mode" and "CW" on the left there are two numbers in beige. The first is the side-tone level that is adjustable by Scrl S and Scrl D commands. This ranges from 0 to 100. The second number is the CW offset value. This is the frequency shift that occurs between transmit and receive. The displayed frequency is the actual transmit frequency. In CW the receive "zero-beat" frequency is lower by the CW-offset and reception is in USB. The CW-offset is set by the Scrl C and Scrl V commands. In addition, at the bottom of the spectral display there is a small red line that shows the CW-offset. If the received signal is lined up with this mark you will be transmitting on the same frequency as the one you are receiving. Most often, you will want the CW-offset to be the same as the center frequency of the audio filters that is presently 600 Hz. While on the subject of CW, the sidetone frequency tracks the CW Offset. If the pitch being received is the same as that of the sidetone, you will be transmitting on the same fequency as the station being received. The sidetone is only available in the right speaker since the left side D/A is being used for the transmit i-f. The "CW Speed" applies only to transmit. There is no automatic CW reception implemented. The CW speed weighting is standard 1-3-5 for the higher speeds and gradually changes to faster characters and longer spaces for speeds below about 13 WPM. For those desiring to play with such things, all the weighting and speeds are programmable by recompiling the program. Presently the speeds are 5 to 30 WPM but these can be anything up to about 100 WPM. In the FM mode there is a number in beige between the "Mode" and "FM" on the left side. This is the squelch setting that ranges from 0 to 100, and is set by the Alt S (or Alt s) and Alt D (or Alt d) commands. In FM, the spectral display is that of the received audio. Here (but only in the FM mode) the power at the marker is not meaningful, and so the S-meter is computed in a different way. In the DSP the average power is computed over the entire 12 kHz bandwidth used for FM. This is done 48,000 times a second. After converting to dB this is sent to the PC for display. The relative accuracy of this power computation and logging is better than the 0.01 dB that is displayed, making it very suitable for Sun noise measurements. This is also more accurate than the spectral average power levels that are shown in the lower-right corner in diagnostic modes 1 and 2. The two bar graphs at the bottom of the screen (when diagnostics are so set by Scrl F3) represent the A/D input level and the D/A output level. These are bit-by-bit bar graphs, i.e. 6 dB/bar, and 15 bars wide showing absolute magnitude. If activated by the Alt Y or Alt y command, the bottom right is a color waterfall that is controlled by Contrast, Brightness, Spectral Averaging, plus all the controls that set the spectrum graph. If Contrast or Brightness is changed a color bar appears for a while in the upper left graph showing how the color slicing is going to be done. With some playing this becomes clear! See the discussion below on weak signal operation. AGC and RF GAIN - The AGC is audio derived and has fast-attack and slow-release. The release time is adjusted by Scrl G and Scrl H. A setting of 0 turns the AGC off and drops the no-signal gain by 48 dB. This needs to be made up for by an increase in the AF Gain. The 48 dB of AGC range is about all that is useful for the dynamic range of the AD1847 A/D. This all takes place within the DSP. External to the DSP is the RF Gain control that allows about 36 dB of additional range. At this time, the RF Gain is not automatically controlled. Therefore, any overload problems should be dealt with manually by using the Shift F7 and Shift F8 commands. The steps of the RF gain conrol are shown on the screen as there nominal value of 6 dB per step. The actual corrections used for the S-meter and power-meter functions are the measured values of RF Gain and these are obtained from the UHFA.CFG configuration file. STEREO DELAY - This is a simple function (Alt E) that does a lot. Read Rick Campbell's article in March 1999 QST. He creates the binaural sound by getting independent noise from the I and Q channels. This works by delaying the noise for the right ear. With sufficient delay this becomes independent. The signal, depending on it's frequency stays fixed in position and your mind does the rest, just like in everyday life. Try it. It is great for CW and on voice it sounds like you are in a room with the other station. Preliminary results indicate that it improves sensitivity on weak signals. It certainly reduces fatigue. MOON - In order to use the transceiver on super weak signals for EME it is necessary to know the Doppler shift rather precisely. The data is available as a Scrl F3 option. Azimuth, elevation, doppler shift, and relative signal level (Moon distance^4 in dB) are displayed. Your station is referred to as 'loc 0' and is always part of the EME path for Doppler and is the location for az and el calculations. There can be up to 9 more locations that are used for the second half of the Doppler calculation. All 10 'loc i' are entered through the UHFA.CFG file. The format is shown as a comment in the .CFG file. Each line looks like loc 0 |W7XYZ| |W7XYZ's location| 44.123 -123.567 where the vertical bars delimit strings. Put 2 spaces outside the vertical bars. The first string is 6 characters or less and uses in the Moon display line. The second string is up to 31 characters and allows more detail about the location. It is displayed in the third Help Screen (F1.) The latitude and longitude are in decimal degrees. If your GPS gives you degrees and minutes, use your calculator to divide the minutes by 60 and add onto the degrees. West longitude must have a leading minus sign. There can be anywhere from 0 to 10 locations. They can be in any positions and if they have not been entered in the .CFG file they are skipped over by the '<' and '>' commands. All loc's can be seen in detail in a table on the 3rd Help screen (F1.) This also shows f_eme. SUN - To aid in Sun noise measurements, the az-el coordinates of the Sun are displayed (Scrl F3.) The dB number is the slight variation in Sun distance that occurs over the year (Sun distance^2.) For the Sun, the location of the az-el coordinates can be changed to all 10 loc's. In order to make the Moon and Sun calculations, UT must be available. Your computer is probably on local time, most likely including daylight time during the summer. The program is informed of this by an enviornmental variable that is set in DOS. It has a name TZ and consists of 3 letters, 1 or 2 numbers and optionally 3 more letters. The numbers are the offset in hours for standard time, e.g. 8 for PST. The first three are the name of the time zone and would normally be somthing like PST. The optional last letters are the name of the daylight time zone. If they are present, the time will be shifted one hour during the US days for which daylight time applies. To understand this, examples is needed. If your computer time is set to Mountain time and MDT is not used, you would execute a DOS command at startup of SET TZ=MST7 and UT would be set 7 hours later. If you were in Pacific time and used the bit of strangeness called daylight time, you would execute SET TZ=PST8PDT and UT would be offset by either 7 or 8 hours depending on the date. Of course, these commands would normally be made part of either the LD.BAT file, or of your AUTOEXEC.BAT file. The clock display in the lower left is separate from the Moon/Sun calculations. This display can be in local time or UTC by setting the configuration variables time_type and time_string in UHFA.CFG. POWER MEASUREMENTS - There are three different power measurements displayed. When in any of the active diagnostic modes (Scrl F3,) there is a dB number in the very lower-right corner. This is the average power of the spectral display, converted to dB. This is appropriate for Sun/Earth noise measurements, as long as no signals are present. The 'Signal Level' displayed on the left, under the S-Meter bar graph, is the spectral level at the highest point (the little red marker.) This marker is the highest amplitude level at frequencies above 200 Hz. This avoids being captured by 60 or 180 Hz pickup noise. Finally, the rms value of the input signal is calculated in the DSP and is displayed below the S-Meter when the mode is FM. This is a specialized measurement that can be used for signal plus noise measurements. CALL STRING - Customize your panel a bit by putting your own call between the vertical lines, after call_str, in the UHFA.CFG file. DATA RECORD - The logged power data after non-coherent integration can be saved directly to disk. This is toggled on and off by th Alt R command. It is save to a file called UHFA1.DAT and if the file exists, it is appended to the end of the existing data. The data is time and date stamped for future use. It is not compacted, though and can produce some big files. To reduce the file size increase the non-coherent integration (Alt F4). The beginnings of a companion program EDFILE01.C and EDFILE01.EXE is available. It reads the data file and replays the data allowing additional smoothing as well as Doppler slope correction and various other feaures. EDFILE is not documented except through the C listing, but the program listing comments do much to describe the operation. NOTE: The following feature is NOT available, due uncertainty in the legal status of making .GIF files. If someone would like to take on the project of clarifying this issue, I would be most appreciative. One way or another, we will get a screen save feature into the software-RSL. GIF FILES - Sixteen color snapshots of the entire screen including the spectral displays can be taken and stored as .GIF files. These can be printed or edited with your graphics printing program such as Hijaak or Printscreen 95, or handled with your Web Browser. The GIF file goes into the current directory with the file name Uoddhhmm.GIF where o is the month as a single hex character (1,C), dd is the day (1,31), and hhmm is the time. AUTO-DISP - Or, auto display, is a toggle that is shown on the left side display and controlled by Alt C or Alt c. The purpos of this function is to keep the spectral display at the same average height, even though the receive gain may have changed with temperature or other factors. This is important when dealing with weak signals and the display is in 1 or 2 dB/div. For ordinary operation the AutoDisp should be Off. Otherwise, the noise level appears to go down every time a strong signal is tuned in. Note that AutoDisp stops the display of the average spectral level that can be seen in the lower-right corner with diagnostics mode 1 or 2. This is the value that is kept constant! Before V1.4 this function was called "Color AGC". MICROPHONE - The microphone uses a 5 pin DIN plug. Pins are: 1 Audio 2 Ground 3 NU 4 Ground to transmit (PTT) 5 Ground These connections are compatible with a Radio Shack 21-1172D hand-held mike. CW KEY - No electronic keying is available. The jack takes a 1/8 inch plug. In addition, the right-hand Alt key can be used as an emergency CW key. Of course, for most purposes CW can be sent by typing on the PC keyboard. SPEAKER - This comes to a stereo 1/8 inch jack. The tip is left channel and the ring is right. Speakers down to 4 Ohms can be driven. SEND/RECEIVE - The PTT on the microphone is available in all modes. More convenient for CW is the Home key on the PC. It toggles between Send and Receive. ACCESSORY CONNECTOR - This 8 pin connector is primarily to control external amplifiers or transverters. The connections are: 1 Power Amp on, +5 logic for on 2 Antenna Relay Control, +5 logic for transmit 3 E1 spare control 4 E2 spare control 5 E3 spare control 6 Ground 7 Not Used 8 +5 Volts for accessories, 100 mA max Note that the antenna relay, power amplifier control and the internal transceiver signal generation are all sequenced in software. 10 MHZ EXTERNAL REFERENCE - An internal 10 MHz reference oscillator is available for stand-alone use. It is also possible to phase-lock the synthesizers to an external 10 MHz reference by use of this input. Internally a jumper must be removed from pins 1 and 2 of P106 and the coax from the rederence input must be connected to P106, ground to pin 3 and the center conductor to pin 2. This input goes directly to a CMOS device and the input should range from at least 1.5 to 3.5 Volts, but not more than 0.0 to 5.0 Volts. SHUT DOWN - If you use the Scrl-Alt-F4 command to quit to DOS you will not only feel like it was more orderly than using the power switch, but you also get a rewrite of the configuration file. This will cause the transceiver to start with the last used parameters when you start up next time. This assumes that you have not added a line of "quit_save_state=0" to the configuration file. ------------ TINY INTRODUCTION TO WEAK SIGNAL PROCESSING -------------- WEAK SIGNALS - This is a big topic and only a brief summary of the controls will be given here. Spectral averaging makes the noise appear closer to it's average power value which in turn makes the signals stand out. This is increased by Alt F4, without bound. If the value is too high the update rate gets very, very slow. This only effects the spectral displays and not the audio path in the DSP. For high spectral averaging, increase the display sensitivity to 1 or 2 dB/div (Alt !). If the display goes off the graph use an offset (Alt @ or Alt #) to bring it back to the center. The spectral display will normally follow the shape of receiver filters. Remove this by using frequency normalization, Alt Q for quick normalization and Alt P for a 10 minute, very precise normalization. If you operate the spectral integration for long periods of time, there will be some gain drift in the receiver. This is removed with AutoDisp, Alt C. If you are trying to see a very weak signal in the presence of a stronger signal, use windowing, Alt W, to reduce the spreading of the strong signal. Hamming is average and Blackman-Harris 92 is extreme. If the Spectral Averaging is set to 250 to 500, it is possible to see a good trace on the waterfall display for a signal 10 to 20 dB below the noise in the FFT output. This bandwidth is about 10 Hz and so the signal levels can be in the -170 to -180 dBm range depending on the receiver noise figure and your willingness to accept a weak trace. In any event, it allows detection 20 dB or more over what the ear can provide. This takes many minutes to achieve, however, and really slows down the QSO rate. Play around with these functions to get the display that you like best. Remember that Contrast and Brightness interact with all of the above settings and will affect your ability to see a weak signal. ------ CUSTOMIZING THE TRANSCEIVER WITH THE CONFIGURATION FILE ------- CONFIGURATION FILE - The UHFA.CFG file is used to configure most of the parameters used in the transceiver. This is a pure text file and can be edited with any text editor. By changing parameters you are able to customize the operation and appearance of the trannsceiver for your particular use. The format consists of a header line followed by parameter lines. The parameter lines need be in no particular order and can be missing. Each line of the configuration file consists of a parameter name followed by a parameter. The two can be separated by either a space, tab, comma or equal sign. Comments can be added to any line by preceeding them with two forward slashes // and the comment goes to the end of the line. The first line in the file must be an identifier 'UHFACFG2'. Thus a configuration file could look like: UHFACFG2 // This must be the first line AFGAIN 75 dot_type=1 // Either CAPS or lower case PALETTE 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 db_div_set,3 // Space, tab, comma or equal all work time_type=1 time_str PST quit_save_state 0 // So that this file is always used The "quit_save_stae" parameter should be 1 for most applications. Read about it before changing it to 0. The configuration parameters that can be used are: PARAMETER NAME PARAMETER -------------- ----------------------------- contrast 0 to 100, Spectral display bright 0 to 100, Spectral display afgain 0 to 100 rfgain 0 to 100, Input scaling in dB, 100=max gain rfgdb 6 decimal numbers, power gain values gain_adj 0.0 nominal, adjusts for gain variation between units cw_speed 0 to 25, presently for 5 to 30 wpm agc_decay 0 to 10, fast to slow mike_gain 0 to 100, in dB xmit_power 0 to 100, in dB fm_squelch 0 to 100 cw_offset integer Hz sidetone_lev 0 to 100, in dB noncohave >=6 in multiples of 6, Non-coherent averaging do_window 0=no fft window, 1=Hamming, 2=Blackman-harris 92dB af_filt 0 or 1 filter select do_af_filt 0=no af filter, 1=af FIR filter on do_denoise 0=no denoise, 1=LMS denoise on denoise_beta 0 to 100, 50 nominal dot_type 0=2 pixel, 1=5 pixel cross, 2=connecting lines display_width 0=4800 Hz, 1=2400 Hz bin_low 8 nominal, lowest FFT bin that marker will allow db_div_set 0=10, 1=5, 2=2, 3=1 dB/division (top spectral disp) koffset -100 to 100, dB of offset of top spectral display mode 0=CW, 1=USB, 2=LSB, 3=FM delay_state 0=monaural, 1=binaural delay on delay_right (0,9) right channel delay=(2^delay_right)/24000 sec. bits_8_16 0=8bit data from dsp, 4800 Hz; 1=16 bit, 2400 Hz input_if_af 0=full transceiver, 1=audio processor rit RIT frequency in Hz rit_on 0=off, 1=on band 0 to 20, 1=2-meters, see tvtr discussion below tfreqL Startup 2-meter frequency, long integer Hz ref_offset Calibrates the frequncy reference diag_mode 0=no diagnostics shown, 1=numerical, 2=bargraphs startup_detail 0=normal no detail, 1=diagnostic info at startup waterfall 0=slide rule freq dial, 1=waterfall display time_type 0=GMT, 1=Local DOS time. GMT requires TZ enviornment. time_str Three characters such as GMT, PDT, etc call_str Identifier string for box in upper left corner quit_save_state 0=upon Scrl Alt F4 no state save, 1= save state beep_on_error 1=normal beeps, 0 turns off all error beeps palette needs 16 integers specifying VGA palette tvtr 1 line per transverter. See below. loc 1 line per EME station location. See moon discussion. cur_loc Location being used for EME Doppler calculation f_eme Frequency in Hz; for audio processor only When quit_save_state=1, the program will write a UHFA.CFG file, with all parameters, when the program is stopped by the Scrl Alt F4 command. This makes the transceiver come back on in it's last state. This will overwrite any UHFA.CFG file that you may have created. So, if you don't want this to happen, add a line: quit_save_state 0 This will cause the transceiver to startup with the same mode, band, frequency and the like. If you need to get back to a default set of parameters, start the program without any UHFA.CFG present in the same directory as the main UHFA.EXE file. After shutdown, the default UHFA.CFG file will be created. It will contain all parameters. Most of the configuration parameters are either obvious or can be varied by experimentation since almost all are available through keyboard commands. A few need some explanation and the following paragraphs should be helpful. Parameter 'af_filter' selects one of two FIR audio filters in the DSP. Presently filter 0 is a 450 Hz bandwidth CW filter centered on 550 Hz and filter 1 is a 200 Hz bandwidth. There are only two sets of FIR coefficients in the DSP since there is provision for downloading coefficients from the PC without disturbing operation. This is not yet implemented in the PC but eventually there will be provision for custom filter design. It takes about 1 second to design and download a new filter. Parameters "denoise_beta" and "denoise_decay" control the LMS de-noise routine. See the article by KC7WW for more details ("A DSP-Based Audio Signal Processor", Johan Forrer, KC7WW, QEX, September 1996). Parameter "palette" controls the colors that are used for the display. There are 16 of them and the default set gives a reasonable spectral waterfall display on my monitor. It may not on yours as colors vary. Get a description of the VGA/EGA color system if you can before you experiment. The parameter "bits_8_16" controls the number of bits used in transmitting spectral data from the DSP to the PC. This data is converted to log form in the DSP and 8 bits gives about 0.3 dB resolution. This should be adequate for all purposes. This resolution allows 512 data points to be transmitted in about 0.6 seconds, the basic update rate. In order to experiment with more accurate data, this parameter allows 16 bit data to be used with about 0.001 dB resolution. Unfortunately this would take 1.2 seconds which was felt to be too long. Instead, only the first 256 data points are sent corresponding to frequencies from 0 to 2400 Hz. By the way, once in the PC the data is converted back to power, integrated and once again logged before display. The parameter "ref_offset" is used to correct for frequency errors in the 10 MHz reference. It is a number of up to 14 digits that is very close to 1.0. If you do not have a way of calibrating frequency, just set this parameter to 1.0. Here is the procedure if you have a frequency standard available with harmonics that can be received on 2-meters. First, set the parameter ref_offset to 1.0 in the uhfa.cfg configuration file. If, for instance, the standard can be received at 145 MHz (say the 29th harmonic of 5 MHz) then set the DSP10 to to 145.000000 MHz in the USB mode. Use the frequency trimmer on the 10 Mhz reference oscillator, C110, to allow the harmonic of 5 MHz to be seen on the spectral display. Now close up the DSP10 box and let it settle to the normal operating temperature. Observe how much higher than 145 MHz the received frequency is by reading the marker frequency just under the S-meter display. Suppose this is 792 Hz. The factor ref_offset will be calculated as 145.000792/145.000000 = 1.00000546 This value should be entered into the configuration file as a line ref_offset 1.00000546 It is also possible to correct for harmonics of the standard that are received below 145 MHz. For this case, put the DSP into the LSB mode. If the marker frequency is, say, 480 Hz the factor ref_offset would be (145.000000 - 0.000480)/145.000000 = 0.99999669 It is important that the frequency be adjusted with C110 to within a kHz or so of 145 MHz so that the FM center frequencies will be correct. These are not corrected by ref_offset, but all other modes are. The "diag_mode" allow you to have no diagnostics on the screen (=0), two friendly bar graphs showing the A/D and D/A levels (=1) or a dump of diagnostic data in Hex along the bottom row. This last set of data is only useful when you are trying to see what is going on inside the DSP, and so is of great value for programming the DSP but minimal value otherwise. The numbers shown are the status parameters listed under "Background Information" below. When diag_mode is either 1 or 2 there is a number shown in the lower-right corner of the screen. This is the power average of the spectral display from 187 to 2400 Hz. This can be very useful for Sun noise measurements, for instance. Look below, under DIAGNOSTICS for more details on the various data at the bottom of the screen. Addition at V1.5: The diag_mode line at the bottom of the screen is now also used to display either Moon or Sun data as alternate "diag_mode" choices. These are discussed above. In the configuration file, all of the parameters to define a transverter are given on a single line that starts with "tvtr". All parameters must be present. There can be up to 21 lines corresponding to the 16 amateur bands from 50 MHz through 241 GHz, along with 5 extra "bands" corresponding to 2-meter VFO's. The trick here is that 2-meters is treated just as though it was a transverter with 0 frequency local oscillator. The parameters are: index An integer between 0 and 20 with 0 being 50 MHz, 1 being 144, 2 being 222, up to 15 being 241 GHz. 16 to 20 are extra 2-meter frequencies (VFO's) |Band Name| A string that describes the transverter. It is displayed at the top left of the screen. A maximum of 12 characters with vertical bar delimiters. A quirk is that double spaces should be on the outsides of the vertical bars. lo_type 0 sb -1 lo_freq Conversion frequency in Hz, negative for high side conversion chain_mult 1 init_str | | with double spaces surrounding vertical bars gain Transverter gain in dB control 0 bus_adr 0 last_tfreq 2-meter frequency, like 144123456.0 in Hz last_mode 0=CW, 1=USB, 2=LSB, 3=FM Thus a transverter line might be: tvtr 9 |10 GHz #3| 0 -1 10224001073 1 | | 28.0 0 0 144100000 1 The fields for lo_type, chain_mult, init_str, control and bus_adr are not used at present. They allow communications between the transceiver and transverter along with the ability to actually measure LO (conversion oscillator) frequencies with a counter. These features are not implemented at present. Note that there are no limits on lo_freq and so the transverters do not need to correspond to the indexes listed above. If you use the system shown there will be a convenience in the the QST band system will correspond to the command key. As an example, Ctrl Alt A is 50 MHz, Ctrl Alt D is 432 MHz and so forth. If you want you could have three different 1296 transverters that could be set to index numbers 5, 6 and7 that would be brought up by Ctrl Alt E, Ctrl Alt F and Ctrl Alt G. The sb field is -1 for most transverter cases. Sometimes, however, it is undesireable to use "low-side" conversion. For instance, if a 432 converter uses a 288 MHz LO, there is an unwanted response at 2x288-144=432 MHz. This can be avoided by using a 576 MHz LO and "high side" conversion. If this is done the sb field should be set to 1 and the software will flip the numbers over so that the dial tunes in the correct direction, frequency readouts are correct and the USB/LSB selection is correct. ------------- BUGS, COMMON PROBLEMS and DIAGNOSTICS --------------- BUGS, PROBLEM, UNFINISHED,.. - Part of the fun of an amateur project is the process of continual change. This also virtually guarantees some level of "bugginess!" I normally work a few changes ahead of the released software so that I can catch most of the problems. As of this writing, I have a version with custom filter designs and several specialized communications codes for very weak signal communication. As soon as these settle down they will be made available. As an aside, I encourage others to become familiar with the programs and do their own customization. Contact me for help with this. So here are the bits of strangeness that I am aware of in the released software: [Rev2.0 note: Except for #10, these have been dealt with. see README20.TXT for details.] 1 - When using the waterfall, and in the CW mode the buffer lines at the top of the spectral display get graphics written from the latest spectrums. This gets cleared when you write data to the buffer for CW sending. If something gets covered up that you need to see, hit any alpha-numeric character followed by a Backspace and it will be OK. To be fixed someday! 2 - I guess I don't use enough FM repeaters, as I forgot to put in repeater offset capability for FM. Don't try to kludge this with a big RIT value as 32.8 kHz is the limit for RIT. I'll add soon. 3 - Some people have trouble with the clock time. I don't know why. In principle you should get the correct GMT date and time by setting the enviornmental variable in DOS (assuming Pacific time) SET TZ=PST8 and then having the following lines in your uhfa.cfg file time_type 0 time_str GMT If this doesn't give the right time on your screen, try using the same time as your computer clock by having the following in your configuration file, uhfa.cfg (assuming pacific time): time_type 1 time_str PST This will print the "PST" after the time and use your internal clock without converting time and date to GMT. For this case you do not need a TZ enviornmental variable. 4 - The push-to-talk can have some very annoying delays before transmit starts. The reason is the queue in the serial port data coming from the DSP to the PC. This carries the request for transmit coming from the mike switch through the DSP. If your display is running behind, the transmit request might not be serviced for several seconds. For now, try to minimize this problem by keeping your display up-to-date. The trick is to not use excessively low SpecAve values. A SpecAve=6 (lowest possible value) requires a full display update about every 0.6 second, whereas SpecAve=12 is half as often, 1.2 seconds. This gives more computer time for clearing out the serial buffer. The SpecAve value is most easily changed by the Alt F3 and Alt F4 conmmands. Fast PC's will probably never notice this problem. So that you can use any old PC, this problem is going to be fixed by moving the PTT control over to one of the serial status wires. 5 - Frequency accuracy. Be careful about the configuration parameter ref_offset. It should be 1.0 if an accurate external frequency reference is being used. If the internal 10 MHz oscillator is being used, it gives an easy way to adjust for frequency errors by software correction. See the notes in the section on Configuration files for details on setting this factor. If you seem to have suprising frequency errors, check this area. 6 - Where did the hum come from? The VCO is not shielded to stray magnetic fields. If you place the transceiver box adjacent to a source of strong 60 Hz magnetic fields you may have some phase modulated hum on signals. Some power supplies are the source of such fields. Move the box a foot or so away from the power supply and all should be fine. 7 - A weak birdie signal (about -142 dBm) appears every 5 kHz across the band. The frequency is exactly on the multiples of 5 kHz if your reference frequency is not being corrected by ref_offset. This is caused by the 5 kHz reference generated in the first conversion oscillator. It's third harmonic is getting into the 12.5 to 17.5 kHz i-f at 15 kHz. If you have some gain ahead of the transceiver it is covered up by noise. Otherwise, for very weak signal work, avoid the multiples of 5 kHz. As an aside, note that the signal barely audible and would not be a problem in most radios. But, with the added sensitivity of the spectral display it becomes an irritation. I will have a fix for this soon. 8 - What version is the software? Put the diagnostic mode=1 using Scrl F3 command. The first of the 18 DSP status parameters is the version of the DSP software and the version of the PC software is listed to the right on the same line. 9 - Very rarely, there is a 102 error caused by having more than one escape character in a single set of DSP status parameters. It doesn't cause any problems and I will fix it soon! 10 - If you are using the ROM supplied by Analog Devices for their EZ-Kit Lite you have a 50% chance of getting the annoying sign-on at full strength from the speakers. The other 50% of the time the shift registers on the control portion of the main board will have the CMOS switches in the off position. The sequence of powering things up makes this happen. The cure is to program a new ROM that does not have the sign-on. AD makes the files available with the kit for doing this, but it does require an EPROM programmer for the 27C256. Alternatively, unplug the speaker during turn-on. 11 - If you switch from the audio processor to the full transceiver, the Doppler calculation frequency remains displayed, but has no meaning. For now, reload UHFA.EXE if this is a problem. PROBLEMS - I will try to list some of the subtle, or in some cases, dumb things that I do on occasion, to have problems. This list could benefit from user feedback. Here are a few, though: Nothing is happening! - If the time and date is not being updated in the lower-left corner of the display you probably do not have a program running in the DSP. Try a reload of the DSP by going out of the PC program. This can also be caused by a quirk that the DSP board does not always reset if it's power supply comes up too slowly. This is an area that needs some work. It is foolproof if the power is disconnected from the main box and then reconnected. Also, note that when you want to reload the DSP after it has been previously loaded, it is necessary to remove the power to reset the DSP. It locked up on me! - Are you trying to run the PC program in a DOS window? Otherwise I have not seen this happen. I have no spectral display! - It is probably off screen. Try 10 dB/div and an offset (that top-right number in the spectral display) of about 0. I can't get the DSP program to load with EZ-FAST---It locks up! - I have seen this enough to believe it is real, but it is very rare. Switch to Analog Devices Windows based loader. It is a nuisance to switch in and out of Windows, but I have never seen that loader misbehave. It doesn't respond to keyboard commands! - You probably forgot to turn the Scroll-Lock off. DIAGNOSTICS - The following only will be seen if the diagnostics mode 1 or 2 is active as the result of "Scrl F3" command listed above. [Ver 2.0 Note: These have been revised, and are not correct. See README20.TXT for details.] The lower left of the front panel has a 4 line area showing date, time, errors and three status numbers. The errors appear in red for about 15 seconds, with possibly a beep. They are numbered: Error 1 Check-sum error in serial spectral data, update omitted Error 10 Transverter not implemented Error 11 Illegal command for the audio processor Error 70 AutoDisp AGC exceeded +/- 10 dB, but continues Error 80 Unable to write UHFA.CFG file Error 81 Unable to close UHFA.CFG file Error 90 Unable to initialize VGA graphics Error 102 DSP status parameter error during receive Error 103 DSP status parameter error during transmit Error 200 Ctrl C is illegal command, use Scrl-Ctrl-Alt-F4 Error 201 Floating-point math error was trapped The three numbers in the bottom line of this area are: Left Number of bytes in the incoming serial port buffer Center Scale factor for FFT in DSP, 0 to 9 Right Number of bytes received in the last data block from the DSP If the left number exceeds 8192, data from the DSP will be omitted. This means your display update is falling behind. The solution is to increase the spectral averaging (Alt F4). Minimum spectral averaging is 6 and most 386/486 computers will keep up with this. I have a 20 MHz 386 laptop and it requires raising the spectral averaging to 12 to keep up (when using the spectral waterfall,) although it will run for several minutes before getting into buffer overload at 6. Error 1 is a normal consequence of buffer overflow, but the data is ignored so that the display is not corrupted. Normally the Center number should be kept at 8 or less by adjusting the manual RF gain. The right number should be between 512 and about 520. Much higher numbers are not explained by random double Escape characters and suggest a problem. STARTUP DETAIL - The program starts with the screen in the ordinary DOS text style. After various loading operations are complete and the DSP has been setup, the screen style is set to VGA 16 color 480x640 graphics. This normally happens quickly with no operator action. If there are any problems in getting your computer through these stages, it is possible to make diagnostic information available. In the UHFA.CFG configuration file, change the line "startup_detail" to a value 1 (0 is normal). This will cause various parameters and diagnostic hints to be printed on the screen. You will need to hit a few "Enter" keys to proceed through the startup, as well. ------------------ BACKGROUND INFORMATION ----------------------- DSP INTERFACE - Here is a quick summary of the DSP interface with the PC. The DSP sends a fixed format data stream to the PC as fast as 9600 baud will allow. No handshaking or other conrols are used. A checksum tells if it was received correctly and an escape character, 31H starts the stream. If an escape character is sent during the data stream it wil be sent twice. Therefore the length of the stream will vary. [Ver 2.0 Note: This entire interface has been revised and is not correct. Details are forthcoming.] The data stream looks like: 31H Initial byte of escape sequence 41H 2nd byte of our only sequence (there could be more later) --- 512 data bytes + doubles for any 31H --- Checksum of all data bytes 0 12H Version of DSP software 1 42H If no DSP UART receive error, else 43H 2 --- Last Command Byte 1 received 3 --- AGC Gain, low byte 4 --- AGC Gain, high byte 5 --- Average receive power in FM mode, low byte 6 --- Average receive power in FM mode, high byte 7 --- Address of fir3_coeffs0, high byte; low byte always 0 8 --- Address of fir3_coeffs1, high byte; low byte always 0 9 --- Largest a/d magnitude, low byte 10 --- Largest a/d magnitude, high byte 11 --- Largest d/a magnitude, low byte 12 --- Largest d/a magnitude, high byte 13 --- Character position for triggered DSP blocks, 0 to 15H 14 00H For non-triggered DSP blocks; 01, 02 or 03 block if triggered 15 --- Floating point block exponent from last FFT 16 --- Flags into DSP (CW Key, PTT, PLL Lock, Hdw Rdy) 17 02H Always 01H 01H Left as 1 so that it is never an escape character. The numbers on the left side of the above table correspond to the status bytes that are printed on the bottom of the screen when the diagnostics are in mode 2 (Scrl F3.) The commands to the DSP are all 6 bytes long and can be sent anytime, also at 9600 8N1. Of course, these are all sent automatically by the C program running in the PC so this information is only needed if you are changing the control program. Each command starts with an 31H byte, followed by a command byte and four data bytes. Not all data bytes are used for all commands. Any byte can be sent to pad out the full six bytes. Prefix Cmnd Data Data Data Data Byte 0 Byte 1 Byte 2 Byte 3 Byte 4 Byte 5 Command ------- ------- ------- ------- ------- ------- ------------------------- 31H 00H --- --- --- --- Reset DSP 31H 01H ADRL ADRH DATAL DATAH Modify data memory 31H 02H ADRL ADRH DATAL DATAH Modify MS16 prog memory 31H 03H ADRL ADRH DATAL --- Modify LS8 prog memory 31H 07H DATAL DATAH --- --- Enable SR, Delta Ph 31H 08H DATAL DATAH DATAL DATAH Program SR, Prog 1st LO 31H 41H DATA DATA --- --- Aud filt, 1=ON & Denoise 31H 42H DATA --- --- --- Audio filter coef select* 31H 44H DATA --- --- --- Data 8bit=0, 16bit=1 31H 46H DATAL DATAH --- --- Frequency: Delta phase 31H 47H DATAL DATAH --- --- AF Gain 31H 4AH DATA --- --- --- 0=transceiver, 1=audio in 31H 4DH DATAM DATAS DATAL DATAH Mode 0=ssb; Sub 1=usb, Mike G 31H 53H DATAL DATAH --- --- FM Squelch 31H 54H DATA --- DATAL DATAH Recv=0, Xmit=1, Xmit Pwr 31H 57H DATA --- --- --- Window: 0=NO, 1=Hamming etc *Audio filter coef select sets the filter coefficients with bit 0 and also sets the audio FIR filter post gain, needed for narrowband filters. If bit 3 is 1 the gain is 1/8 and if bit 6 is 1 the gain is 1/64. Commands 01, 02 and 03 allow real time changes to the DSP routines, so long as they do not involve a routine that is currently in use. DSP OPERATION - To use the transceiver, it is not necessary to deal directly with the DSP. This is handled by the PC program. However, it is useful to understand the general inner-workings to understand the commands on the PC screen. Most of this must come from comments in the DSP listings for now. But a few ideas are here. The FFT in the DSP is always 1024 points. The data is arranged to commence a new FFT every 512 data points with 50% overlap on the data sets going to the FFT. This gives some correlation between adjacent FFT outputs which generally only causes extra computation. But, due to windowing of the data, it insures that all input data is used to generate the spectral estimate from the FFT's. Twelve successive FFT outputs are power averaged in the DSP before being sent to the PC. This is limited by the serial link. On the PC this is referred to as 6 spectral averages since the data is overlapping and the time period was only long enough for 6 independent data sets. Windowing is available in two levels to reduce the Gibbs spreading of strong signals. 'No window' results in spectral sidebands of up to -13 dB but gives the narrowest noise bandwidth of 9.4Hz. Hamming windows increase the noise bandwidth to 12.8 Hz with sidelobe reductions to -43 dB. The extreme Blackman-Harris (BH-92) window reduces sidelobes to -92 dB but widens the noise bandwidth to 18.7 Hz. The Hamming window is often the best compromise. The audio FIR filters are 200 taps. In order to not loose accuracy with narrow filters, the output of the filter has 3 steps of gain, 1, 18 and 1/64 as set by the pc when the filter is selected. Any FIR design used here should have a gain of 1, 8 or 64. You choose the highest of the three gains that does not cause coefficients to exceed (0x8000, 0x7FFF). COMPILING - Borland C compiler Ver 4.0 has been used throughout the project for the C program running in a PC. The use of other compilers will require replacement of the Borland Graphic Interface (BGI) routines and calls. All files are supplied except for the header files that are part of the compiler routines and object libraries for the various standard subroutines. As an example, one can invoke the compiler with BCC @C:\BC4\UHF\UHFA.RSP which works from the .RSP file, that for me consisted of: -ID:\BC4\INCLUDE -IC:\BC4\UHF -LD:\BC4\LIB -Lc:\bc4\uhf -AT -M -N -ml uhfa.c asyncl.obj gifsave.obj moonsun.obj u_code.obj D:\BC4\LIB\graphics.lib Of course, one must modify the directory paths to suit. DSP ASSEMBLY - Assembly of the DSP program can be accomplished with the following batch file using the tools supplied with the EZ-KIT Lite: asm21 uhf3 -2181 -l asm21 uhf3_utl -2181 -l asm21 lms -2181 -l asm21 f2n1024b -2181 -l ld21 -i listu3 -a c:\adi_dsp\21xx\ezkitl\2181\dsp\ezkit_lt -e uhf3 -g -x The directory path should be modified to suit. The file listu3 keeps the length of the command line shorter and is: uhf3 uhf3_utl lms f2n1024b CREDITS - I will probably forget someone here, but I must attempt to thank and credit the many people that have helped me during this project. Johan Forrer KC7WW, has been of great help with the DSP side and has gratiously shared his wizardry in real time DSP programming. The LMS code also came from Johan. Kirk Bailey N7CCB has supplied ideas throughout the project and improved the product in many areas. Gary Oliver WA7SHI has contributed ideas and programming wisdom in the area of weak signal DSP going back to 1987 when he wrote a 32010 assembler because nothing was available within ham budgets. Andy Baranski, PE1ROE, has provided many useful ideas and lot's of fun discussion. Bob Rullman K7MSH, Deane Kidd W7TYR and Merle Cox W7YOZ have all helped with the weak signal ideas. Conversations at the Microwave Update in Phoenix have certainly been influential. The same goes for the recent Mars Global Surveyor (MGS) relay experiment where this equipment and software was used to detect the spacecraft at 437 MHz. Various people on the MGS net were informative and helpful. Thee GIF routines from Sverre Huseby, the ASYNC routines from David Kessner and the DSP loading routines EZLD from Dwight Elvey all were great time savers. Analog Devices has provided considerable assistance through their application manuals. Thanks to all for their ideas. ------------------------------------------------------------------------------ MISC. AUDIO PROCESSOR NOTES: USING THE AUDIO PROCESSOR - Using the stand alone audio processor requires almost no hardware construcion. You need to have an Analog Devices EZ-KIT Lite and some speakers or headphones. I use amplified speakers from Radio Shack that were intended for computer use. The audio input goes to the left channel of the DSP and the right channel is not used in the audio mode. Audio from most headphone jacks seems to be OK to a bit strong, so don't turn the audio gain on the receiver too high. If the bar graphs at the bottom of the screen are being displayed, the first red bar should light most of the time and the second bar should light occasionally. The EZ-KIT JP2 is jumpered to 'LINE' (1 to 3, 2 to 4). Loading of the programs is identical to that described for the full transceiver above. The scale for signal amplitudes is all relative in the audio processor. Both the S-meter display and the spectrum displays use the same relative scales. Functions having to do with frequency accuracy and transverters do not apply. AGC is available in the audio processor. But your transceiver may already cover this function and it may be best to turn off the AGC in the audio processor. Transmission of CW is possible. The Left channel audio out has a key-click free CW signal, ready to go into the Mike jack of a transceiver. You can then send CW from the keyboard while operating the audio processor. The "Transmit Power" function sets the level of this audio signal. A side-tone signal is available from the Right channel. Moon and Sun functions are available (see above.) The only special item for the audio processor is a configuration file entry (in UHFA.CFG) f_eme which is the frequency in Hz that is used for EME doppler calculations. In the full transceiver, the frequency used is the transmit frequency. The frequency offset function replaces the RF tuning of the full transceiver. This is a "Hilbert shifter" (see Forrer, QEX Sept 96) that shifts all audio frequencies up or down. HARDWARE - The DSP processor expects a manual key at the PF5 programmable flag input. It will droop to zero Volts and the key will come on for CW transmit, unless you place a 100K resistor between P3-30 and +5 Volts (P3-49.) See page 8-7 of the EZ-Kit manual for P3 details. Note: This is only needed if you are going to use CW transmit. The audio processor doesn't care. Everything else in the audio processor uses the unmodified EZ-Kit Lite. MODES - The mode selection is active in audio processing. CW, USB and FM are available. Don't try to make much out of these names. Basically, CW allows transmission of CW as well as audio processing. It restricts the spectral display, so if you are not using CW transmission, it is better to use USB. The audio processing is identical for these two modes. FM is only for the power measurement as described above. AGC - This is at the beginning of the audio processor, but after the FFT. So when it is on the signal level will be kept 'constant' regardless of the input. AUDIO PROC TRANSMISSION - At this point the only useful transmit mode is CW. This gives an audio signal out whenever a) P3-30 is grounded, b) the "emergency key," Right-Alt, is pushed or c) text is entered from the keyboard. See the 'Operation and Program Notes' for details on keyboard entry. There are AR, SK, etc. commands, repeated text and the like. The normal transmission output is the left channel. The right channel has the sidetone and will sound about the same in the headphones. Actually, there are some differences. Both are set to the frequency 'cwoffset' set by Scrl C and Scrl V. The level of the left channel is 'Xmit Pwr' set by Scrl O and Scrl P. The right channel level is the sidetone level, set by Scrl S and Scrl D. The cwoffset and sidetone level are displayed on the left between 'Mode' and 'CW', when in the CW mode. In CW transmit the right channel has key clicks, but the left doesn't. The left is interesting to see on a scope (it is the sigal actually transmitted in rf.) This is a quirk of the way that the CW generation is done in the DSP. A square wave keying waveform is run through a 500 Hz LPF to remove keyclicks, and then this is used to AM modulate the CW carrier. This processing is not used on the side tone. Transmission also works on SSB and FM with a carrier frequency of 0 Hz. May be of some use, but I doubt it. --------------------- FILE LISTS ------------------------- There are three file groups that are zipped together. They are listed here: A - If you only want to use the programs and do not need the source code, you can download and unzip DSP10_16.ZIP which should yield: README16.TXT This file GNU_GPL.txt License file UHFA.EXE The PC executable file (see above) EGAVGA.BGI The graphics drivers UHF3.EXE The DSP file (not a PC executable, see above) UHFA.CFG Sample configuration file B - If you want the source code for the PC program (Borland C), you can download and unzip UHFA16PC.ZIP: README16.TXT This file GNU_GPL.txt License file UHFA.EXE The PC executable file (see above) EGAVGA.BGI The graphics drivers UHFA.C Source for main module MOONSUN.C Source for astronomy portions U_CODE.C Source for CW and other communications stuff GIFSAVE.C GIF stuff - disabled for now UHFA.OBJ Compiler outputs, ready for linker MOONSUN.OBJ U_CODE.OBJ GIFSAVE.OBJ ASYNCL.OBJ UHFA.H Header files UHFA_KBD.H Most of the key definitions U_CODE.H ASYNC.H GIFSAVE.H MOONSUN.H U.BAT Example of batch assemble of main program and linking UHFA.RSP Details for U.BAT In addition you need 11 header files that come with the Borland compiler. These are shown in the .C files and need only have a path defined to the compiler. C - If you want the source code for the DSP program, download and unzip the file UHF3DP16.ZIP. The list of files (about 24) is included in a file read16.txt.