Saturday, 5 October 2013

Spectrum Analyzer v1.0

This is version 1 of a spectrum analyzer I built based on Wes Haywards W7ZOI and Terry White's KZTAU architecture. I have made design changes mainly because some of the parts are way to pricey for me to purchase. Further refinements and features are are added as the problems or need presents itself. Most of the simulations and initial calculations are done on EMRFD Ladpac tools.

Calibration oscillator is connected to the SA


I chose a 2nd IF of 25Mhz there are disadvantages in using this frequency.1. The chosen log amplifier AD8037 has better linearity at 10Mhz
2. Narrow band 10.7Mhz IF filter are readily available.

Other things that are highly recommended when building an SA.
1. Signal Generator with frequency range that can cover the BPF filters
2. Highly sensitive RF Power meter.
3. Lots of BNC connectors
4. A copy of EMRFD

People that helped me a lot.
1. Wes Hayward-
2. Todd Gale -http://

Here are a few more pictures.

I am using a 100Mhz clock IC for my 2nd LO. To remove the harmonics a low pass is used. The latest version is using a 9th order filter.
5th Order low pass filter.

The 2nd LO is being tested for proper output levels.
Some useful links for parts and tools
1. Rigol Oscilloscope used for the build and testing - Rigol DS1052E 50MHz Digital Oscope with 2 Channels, USB Storage Access, 1 GSa/sec sampling
2. Hammond Aluminum Boxes - Hammond 1590B Aluminum Diecast Case
3. Coaxial Cables - CableWholesale 6-Feet RG58 AU Stranded BNC Cable, Braided (10X1-01106)  

Tuesday, 7 May 2013

Sending Morsecode via an Atmega

A few weeks ago I wrote an openBSD client to connect to CWCOM servers and called it irmc

A new version of the client was implemented using an Atmel microcontroller. I decided to use an arduino board that was gathering dust on my work bench. I was initially planning to use the arduino as a testbed only and build an actual board later, But I usually only have time to do weekend projects and the coding already took me the entire weekend. So I decided to put building a standalone hardware for later or maybe never.

The source is available here The code is written in C compiled using the avr-gcc tools. Orginally it was a port of the original irmc, but the limited memory of the atmega required a considerable rewrite. In addition to the limitation of the original irmc, here are few things to note.
1. Only 12 presets are programmed, instead being able to connect to an arbitrary frequency/wire.
2. PD6 is a GPIO that generates a ~650Hz square wave tone.
3. Some clock jitter results in 4ms variation in timming was observed.
4. I have it configured to interface to a separate sidetone generator for keying so the key input is expecting a 5V pulse.
5. I did not like the way I implemented the MorseKOB latch function in the original irmc, so I did not add that function into the avr version. (maybe someday)

BUGS?: Probably a few.

The final version was placed into an enclosure. The green LED blinks to indicate that it is connected to the cwcom servers.

Thursday, 7 March 2013

Internet Relay Morsecode

I have been using cwcom to practice sending morsecode, unfortunately my main computer at home is running openbsd and it has gotten harder to gain access to a reliable MS Windows machine. So I wrote my own client that works on openbsd.
This is written in C and although not tested it should compile under other OS. If any one wants to try it and send me feedback. you can download version 0.01 here
Les Kerr of has been very patient in answering my questions regarding the cwcom protocol and setting up a test server during debugging.

There are few difference between this and the official cwcom client
1. It is a command line tool
2. It does not send the characters of the message to the receivers screen.
3. It does not translate CW for you. You can try fldigi if you just want see the transmission.
4. Tone pitch is currently hard coded to 650Hz
5. It does not have a way to show you who is listening. 

There are a few that I am working on right now, but feel free to send me feedback if you get a chance to try it out.


The following people have helped me a lot to learn the protocols and setting up test servers.
Les Kerr -
Bob Denny -
John Samin -