This page is being kept around for historical reasons, some of the links are
getting an update now... Lance 8/29/2001
This projects page is starting to come together...
let me know if you have any suggestions.
The software downloads are towards the bottom.
for the most recent info on the the software
tools I've made publicly available, go to tools.rfdude.com
DSP audio filters (ham radio DSP
More recently I've been getting back into DSP programming.
With the intent of using surplus target hardware around the office, I've written
the microcontroller code to load the dsp, and several utility programs to
automatically convert coefficients into assembly files, assembled code into C
data structures, etc. With some kind donations of hardware from some other guys
at work I've implemented the following audio filters for ham radio use:
- 200 Hz BW bandpass filters centered at 400, 750, 1000
Hz (filters designed using MathCad mainly). I chose these center frequencies
because they are the same as the W9GR filters published elsewhere... seemed
like he probably put some thought into it.
- LMS denoiser and autonotcher (based on various books,
code samples, and the article by W9GR et al.). When playing with the
algorithm I wrote PERL simulations and viewed/analyzed the data with
MathCad. This worked out quite well...
I'm now scoping out the task of doing SSB
modulation/demodulation using the DSP. I've got some sort of bug in my way of
thinking about this, so not all that much progress has been made. Hopefully this
winter (1998/1999) I'll pick it up again and figure out what's going on.
Iambic memory keyer (functionality added to my
ham radio DSP filter box. It's just software, right?)
During the summer of 1998 I decided I needed a memory
keyer... so I wrote some HC11 microcontroller code and made my DSP filter box
into a "DSP filter box and memory keyer". Here are it's key features
(no pun intended)
- Iambic keying from x WPM through 42 WPM (just what I
chose as an upper limit)
- Two buttons for control: Command and Repeat
- One dial for setting the CW speed.
- All keyer commands are issued by hitting the
"command" button then sending the command in CW to the keyer (the
keyer has a decoder built in). Here's a brief list of the commands and the
- S: the keyer sends xxWPM (the speed)
- ?: the keyer sends a help string (I have yet to
summarize the online help information into one string).
- Pn (n=1-6): Keyer plays one of the six memories
- Rn (n=1-6): Keyer records one of the six memories
- the keyer sends "k" to signal that
you should start sending
- when it times out (i.e. you stop sending for a
couple/few seconds), it then sends "bk" to signal that
it's done and the memory has been recorded correctly. If there is an
error in writing the EEPROM, the keyer will send "err".
- T: sends the temperature in Celsius (the surplus
board the keyer/filter box is built in has a temperature sensor on it,
so I figured why not).
- Another feature for those of us who are not as good at
sending pure code as we thought is that the memories can be loaded and
previewed from a handheld RS-232 terminal or a PC running a terminal
Analog radio software for (baseband) DSP based
data transceivers (active work being done 11/1998 through 2/1999)
This is the same hardware platform as the other
projects above were done with, but with the radio parts functional.
Current features include:
- Command line interface through PC terminal
program or Hand Held Terminal (still a little rough on the HHT).
- multiple memory channels, each with
independent TX/RX frequencies, as well as subaudible tone frequencies
- transmit subaudible tone generation (CTCSS) ,
0.0 to 999.9 Hz (not that you would go up to 999.9 Hz ever), frequency
accuracy is better than 0.01 %
- straightforward calibration
- RX calibration with a voltmeter and signal
generator (squelch open threshold, squelch close threshold, discriminator
offset, rx frequency offset trim, discriminator offset trim)
- TX calibration with a service monitor or some
method of measuring deviation & frequency error (TX frequency offset
trim, power output setting, TCXO and VCO modulation scaling, audio clipping
level, ctcss output level)
- Software debugging commands for many
- Morse code signaling (used very little so far,
but to become more significant in the future)
Someday I would like to have a block diagram
here. The basic circuit uses a microcontroller and DSP working together. The DSP
does all of the analog processing beyond the discriminator on RX and after the
microphone on TX. I've had fun implementing polyphase decimators and
interpolators. There are also several other FIR and IIR filters in the system.
Squelch is implemented digitally on RX and adjustable speech clipping is
implemented digitally on TX. The CTCSS tone generation is done using direct
digital synthesis (DDS or a fancy way of saying "table lookup").
The input/output sampling rate for my system is
200 kHz and the intermediate processing is mostly done at a 25 kHz sampling
I don't have too much more to say here, I'm
having lots of fun working on this in lots of ways. The DSP stuff is obviously
neat, but also working out the user interface and the DSP<-> micro
communications has provided fun little challenges here and there.
Close up of my low-level RX/TX sections
This transverter is nothing special. I was
happy that none of the low-level circuitry required tuning except for the 116
MHz LO (fifth overtone xtal osc. circuit popular in amateur circles these days).
The LNA has a couple dB NF as I recall, which is fine in my book since it is
doable in a no-tune circuit and it has high dynamic range. For most terrestrial
work, this NF is just fine (send me email if you want to argue this point, it's
a favorite of mine). I used coilcraft SMT inductors, which allowed the filters
to be no-tune. Later, I added a tunable BPF for the front end since where I live
is very RF "rich". It's hard to build a selective, low-loss bandpass
filter without adjustments. Someday it might be nice to do a circuit board
layout of this design... but I haven't found the right layout program or the
time to do so!
schematics of 2m transverter, including some of the filters and amplifiers
Here are some fragments from my portion my
senior design project… John Barenys, KE4IBF was my partner on the project
2304 & 3456 MHz LNA's (all self-biased PHEMT no-tune designs)
- 50 MHz transverter (144 MHz IF)
schematic designed during 1995 Note: I
recently gutted the transverter (during April/May of 1998) and built a
new front end, PA, and T/R switching circuit. The filters and LO remain
the same. Unfortunately I don't have an updated schematic in electronic
- The HC11 source for my Beacon
controller with a newer synthesizer loader using the bit-bang approach.
- The HC11 source for my Repeater
controller and support files Regs
- The HC11 source for a very simple Synthesizer
Loader using the SPI.
- The Perl source for a program that converts network
analyzer files (HP8753D is what I have access to) into two-port
S-parameter files (.S2P) NWA2S2P
. Note: HP also has a program to do this (I don't know how long they
have, I certainly didn't know about it when I wrote this)... I still
like mine since it lets me automatically stick some more information in
the header of the file.
- The Perl source for a program that converts S2P
files into a format more useful to the ARRL radio designer. S2PTOARD
- Both of the above with a little documentation
- Source code for a very old and crude 68705P3
Beacon controller (Morse ID and such). My
first programming efforts with the help of a fellow ham.
- Some info
on programming a certain type of surplus "P-COM" synthesizers
- For the stuff that used to be here, see
Last modified July 12, 2012 12:08:10 PM