Tuesday, March 18, 2014

Morse Code Trainer

Since I was preparing to appear for the General grade Ham Radio Licence exam, I had to learn Morse Code at 8 WPM.


I got the inspiration from G4FON. Few feature that have been added are the option to enter the text and provision to check against the sent text. The software works on winxp and win 7.

To be Continued...

Oscilloscope booster pack for TIVA Launchpad

TIVA C ARM launchpad highlights TM4C123GH6PM ARM controller. TM4C123GH6PM has dual 12 bit 1MSPS ADC. Booster pack is a plugin daughter card to the Lauchpad, that provides added functionality. A Oscilloscope booster pack design is planned to have the following features:
  1. Analog Front-End with adjustable gain and offset for oscilloscope
  2. Logic analyzer inputs
  3. Frequency counter input
Since the ADC has 1MSPS sampling rate, the analog input bandwidth could be maximum of 500KHz. However input bandwidth is limited to 250KHz to relax the anti-aliasing filter specifications.

To be continued...

Sunday, March 16, 2014

HF-VHF SWR and Power Meter

HF-VHF SWR & Power Meter is one of the essential gadgets in ham radio station. In this project, the focus is on getting a high dynamic range and wide band SWR/Power Meter. The targeted power handling capability is 1kW. The SWR meter is planned to be wide band, meaning single coupling circuit should operate from 0.5MHz to 150MHz.

To achieve higher power handling capability, the voltage and current transformer should have higher turns ratio. The higher turns ratio will result in higher leakage inductance and will have limited bandwidth. To enhance power handling and bandwidth, cascading of 2 transformers is done. The following is the scheme that is followed.
SWR Coupler for 1:50 ratio and wider bandwidth

AD9850 module based HF and 2m DDS VFO

A VFO which can generate LO in HF and VHF bands is described in this post. The VFO will be useful for antenna analyzer. This VFO is also planned to be used in a high power signal source for HF & VHF SWR + Power Meter testing. AD9850 module available of the Ebay makes things simpler.

AD9850 DDS Module pinout

AD9850 Module Schematic

The AD9850 DDS module has 2 sine outputs - one filtered output and another is unfiltered. The filtered output is has an 70MHz elliptic low pass filter. The AD9850 DDS module uses a 125MHz DDS clock. The filtered output can be used to generate 0 to 30MHz output. VHF output (2m) falls in the 3rd Nyquist Zone (2nd Image) . For example to generate 145MHz, program the DDS for (145MHz - 125MHz) = 20MHz. However, to generate the VHF output, we need to add a bandpass filter, which allows 140MHz to 150MHz output. The bandpass filter should have notches at 125MHz and 187.5MHz.

Example VHF Bandpass Filter for 2m

Graphic Equalizer in C++

I wanted my Echolink audio to sound better (or adjustable for a given MIC/headset). I was in need of a graphic equalizer to adjust my audio input spectrum. I came out with the following plan:
  1. Mic input Capture Routine in C++
  2. Perform 10 band Graphic Equalizer on the Captured data in C++
  3. Render the processes audio samples to Virtual Audio Cable Input in C++
  4. Configure Echolink recording input as Virtual Audio Cable Output

Capture Routine

The Capture routine is based on Windows Core Audio APIs. The MSDN example  Capturing a Stream  was modified to capture in Exclusive Mode. Exclusive mode was chosen to ensure that we could configure our best settings for the capture device. The MyAudioSink was made a dummy and the processing of audio data was done in a separate thread with thread priority boost.

Render Routine

The Render routine is based on Windows Core Audio APIs. The MSDN example Exclusive-Mode Streams was used as reference and modifed to our needs. Again for rendering also Exclusive mode was chosen. The MyAudioSource was made a dummy class and the audio processing as mentioned earlier done in the separate thread.

Audio Processing: Graphic Equalizer

The 10 band graphic equalizer was implemented with a latency of 100 milliseconds. The equalizer worked for even 10 millisecond latency, but was set to 100 millisec to allow any additional processing.

The 10 band GE was based on bi-quad filter - an elegant implementation by Nigel Redmon.

Virtual Audio Cable

The processed audio was rendered to VB-Audio Virtual Cable. I am planning to do a virtual audio cable, which will be good learning project for virtual audio drivers in windows.