The personal website of Scott W Harden
June 6th, 2010

QRSS DNA

I'm still working on this project, and although progress is slow I'm learning a lot and the circuit is getting better with time. I'm still not yet ready to post the schematics, but you can get an idea of what's going on from the picture. It can handle 255 levels of frequency shift and has the ability to turn the tone on and off. 6 capacitors, 3 resistors, 4 transistors, a single inductor, and a micro-controller.

UPDATE I spotted myself on W4BHK's Grabber about 300 miles away...

#include <avr /io.h>
#include <util /delay.h>

char dotlen = 5;                              // ultimately the speeed of transmission
char call[] = {0, 1, 1, 1, 2, 0, 2, 1, 1, 0}; // 0 for space, 1 for dit, 2 for dah

void setfor(char freq, char ticks)
{
    OCR1A = freq;
    while (ticks > 0)
    {
        sleep();
        ticks--;
    }
}

void sleep()
{
    for (char i = 0; i < dotlen; i++)
    {
        _delay_loop_2(65000);
    }
}

void slideto(char freq, char ticks)
{
    freq = freq + 30;
    char step = 1;
    if (OCR1A > freq)
    {
        step = -1;
    }
    while (OCR1A != freq)
    {
        OCR1A += step;
        setfor(OCR1A, 1);
    }
    setfor(freq, ticks);
}

void DNA()
{
    char a[] = {4, 5, 5, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 7, 7, 7, 7, 6, 6, 6, 5, 5, 4, 3, 3, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 3, 3};
    char b[] = {1, 1, 1, 1, 2, 2, 2, 3, 3, 4, 5, 5, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 7, 7, 7, 7, 6, 6, 6, 5, 5, 4, 3, 3, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0, 0};
    for (char i = 0; i < sizeof(a); i++)
    {
        //slideto(a[i]*4,2);
        //slideto(b[i]*4,2);
        setfor(a[i] * 2 + 5, 10);
        setfor(b[i] * 2 + 5, 10);
    }
}

void ID()
{
    for (char i = 0; i < sizeof(call); i++)
    {
        setfor(10, 50);
        if (call[i] == 0)
        {
            setfor(10, 100);
        }
        if (call[i] == 1)
        {
            setfor(15, 100);
        }
        if (call[i] == 2)
        {
            setfor(15, 250);
        }
        setfor(10, 50);
    }
}

void ID2()
{
    for (char i = 0; i < sizeof(call); i++)
    {
        if (call[i] == 0)
        {
            ampOFF();
            setfor(10, 50);
        }
        if (call[i] == 1)
        {
            ampON();
            setfor(10, 100);
        }
        if (call[i] == 2)
        {
            ampON();
            setfor(13, 100);
        }
        ampOFF();
        setfor(OCR1A, 30);
    }
    ampON();
}

void ampON()
{
    PORTA |= (1 << PA7);
    PORTA |= (1 << PA0);
    PORTA &= ~(1 << PA1);
    _delay_loop_2(10000);
}
void ampOFF()
{
    PORTA &= ~(1 << PA7);
    PORTA |= (1 << PA1);
    PORTA &= ~(1 << PA0);
    _delay_loop_2(10000);
}

int main(void)
{
    DDRA = 255;
    OCR1A = 75;
    TCCR1A = 0x81;
    TCCR1B = 1;
    while (1)
    {
        ID2();
        ID();
        for (char i = 0; i < 3; i++)
        {
            DNA();
        }
    }
}
Markdown source code last modified on January 18th, 2021
---
title: QRSS DNA
date: 2010-06-06 19:15:58
tags: microcontroller, circuit, qrss, old
---

# QRSS DNA

__I'm still working on this project,__ and although progress is slow I'm learning a lot and the circuit is getting better with time. I'm still not yet ready to post the schematics, but you can get an idea of what's going on from the picture. It can handle 255 levels of frequency shift and has the ability to turn the tone on and off. 6 capacitors, 3 resistors, 4 transistors, a single inductor, and a micro-controller.

<div class="text-center img-border">

[![](DSCN0776_thumb.jpg)](DSCN0776.jpg)
[![](OnOffDNA_thumb.jpg)](OnOffDNA.png)
[![](dnareport_thumb.jpg)](dnareport.jpg)

</div>

__UPDATE__ I spotted myself on [W4BHK's Grabber](http://www.qsl.net/w4hbk/W4HBKgrabber.html) about 300 miles away...

```c
#include <avr /io.h>
#include <util /delay.h>

char dotlen = 5;                              // ultimately the speeed of transmission
char call[] = {0, 1, 1, 1, 2, 0, 2, 1, 1, 0}; // 0 for space, 1 for dit, 2 for dah

void setfor(char freq, char ticks)
{
    OCR1A = freq;
    while (ticks > 0)
    {
        sleep();
        ticks--;
    }
}

void sleep()
{
    for (char i = 0; i < dotlen; i++)
    {
        _delay_loop_2(65000);
    }
}

void slideto(char freq, char ticks)
{
    freq = freq + 30;
    char step = 1;
    if (OCR1A > freq)
    {
        step = -1;
    }
    while (OCR1A != freq)
    {
        OCR1A += step;
        setfor(OCR1A, 1);
    }
    setfor(freq, ticks);
}

void DNA()
{
    char a[] = {4, 5, 5, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 7, 7, 7, 7, 6, 6, 6, 5, 5, 4, 3, 3, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 3, 3};
    char b[] = {1, 1, 1, 1, 2, 2, 2, 3, 3, 4, 5, 5, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 7, 7, 7, 7, 6, 6, 6, 5, 5, 4, 3, 3, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0, 0};
    for (char i = 0; i < sizeof(a); i++)
    {
        //slideto(a[i]*4,2);
        //slideto(b[i]*4,2);
        setfor(a[i] * 2 + 5, 10);
        setfor(b[i] * 2 + 5, 10);
    }
}

void ID()
{
    for (char i = 0; i < sizeof(call); i++)
    {
        setfor(10, 50);
        if (call[i] == 0)
        {
            setfor(10, 100);
        }
        if (call[i] == 1)
        {
            setfor(15, 100);
        }
        if (call[i] == 2)
        {
            setfor(15, 250);
        }
        setfor(10, 50);
    }
}

void ID2()
{
    for (char i = 0; i < sizeof(call); i++)
    {
        if (call[i] == 0)
        {
            ampOFF();
            setfor(10, 50);
        }
        if (call[i] == 1)
        {
            ampON();
            setfor(10, 100);
        }
        if (call[i] == 2)
        {
            ampON();
            setfor(13, 100);
        }
        ampOFF();
        setfor(OCR1A, 30);
    }
    ampON();
}

void ampON()
{
    PORTA |= (1 << PA7);
    PORTA |= (1 << PA0);
    PORTA &= ~(1 << PA1);
    _delay_loop_2(10000);
}
void ampOFF()
{
    PORTA &= ~(1 << PA7);
    PORTA |= (1 << PA1);
    PORTA &= ~(1 << PA0);
    _delay_loop_2(10000);
}

int main(void)
{
    DDRA = 255;
    OCR1A = 75;
    TCCR1A = 0x81;
    TCCR1B = 1;
    while (1)
    {
        ID2();
        ID();
        for (char i = 0; i < 3; i++)
        {
            DNA();
        }
    }
}
```

June 3rd, 2010

Soup Can MEPT

This page documents the progress of my MEPT (manned experimental propagation transmitter) endeavors. If you have questions, feel free to E-mail me! My contact information can be found by clicking the link on the right navigation menu.

The Soup-Can Transmitter

The Signal

The Spots

Florida

288.3 miles away (W4HBK) May 22, 2010

Massachusetts

1,075.5 miles away (W1BW) May 27, 2010

Belgium

4,496.3 miles away (ON5EX) May 27, 2010

Germany

4,869.2 miles away (DL4MGM) May 28, 2010

Essex

4,356.4 miles away (G6AVK) May 28, 2010

New Zealand

8,077.6 miles away (ZL2IK) May 29, 2010

Markdown source code last modified on January 18th, 2021
---
title: Soup Can MEPT
date: 2010-06-03 13:51:34
tags: qrss, amateur radio, circuit, old
---

# Soup Can MEPT

__This page documents the progress__ of my MEPT (manned experimental propagation transmitter) endeavors. If you have questions, feel free to E-mail me! My contact information can be found by clicking the link on the right navigation menu.

## The Soup-Can Transmitter

<div class="text-center img-border">

[![](IMG_3459_thumb.jpg)](IMG_3459.jpg)
[![](IMG_3466_thumb.jpg)](IMG_3466.jpg)
[![](IMG_3467_thumb.jpg)](IMG_3467.jpg)

</div>

## The Signal

<div class="text-center img-border">

[![](aj4vd_gator_thumb.jpg)](aj4vd_gator.png)
[![](antenna_thumb.jpg)](antenna.jpg)

</div>

## The Spots

### Florida
288.3 miles away (W4HBK) May 22, 2010

<div class="text-center img-border">

[![](spotNice_thumb.jpg)](spotNice.jpg)

</div>

### Massachusetts
1,075.5 miles away (W1BW) May 27, 2010

<div class="text-center img-border">

[![](gatorSeen_thumb.jpg)](gatorSeen.jpg)

</div>

### Belgium
4,496.3 miles away (ON5EX) May 27, 2010

<div class="text-center img-border">

[![](aj4vd_gator_belgium_thumb.jpg)](aj4vd_gator_belgium.jpg)

</div>

### Germany
4,869.2 miles away (DL4MGM) May 28, 2010

<div class="text-center img-border">

[![](2010_05_28_DL4MGM_Germany_thumb.jpg)](2010_05_28_DL4MGM_Germany.png)

</div>

### Essex
4,356.4 miles away (G6AVK) May 28, 2010

<div class="text-center img-border">

[![](aj4vd_gator_essex_thumb.jpg)](aj4vd_gator_essex.jpg)

</div>

### New Zealand
8,077.6 miles away (ZL2IK) May 29, 2010

<div class="text-center img-border">

[![](2010_05_29_ZL2IK_NewZealand_thumb.jpg)](2010_05_29_ZL2IK_NewZealand.png)

[![](NewZealand_thumb.jpg)](NewZealand.png)

</div>

May 28th, 2010

Measure QRP Radio Output Power with an Oscilloscope

I added a backlight to my oscilloscope! My o-scope's backlight hasn't worked since I got it (for $10), so I soldered-up a row of 9 orange LEDs (I had them in a big bag) and hooked them directly up to a 3v wall wart. In retrospect I wish I had a bunch of blue LEDs... but for now I can't get over how well this worked! Compare it to the images a few posts back - you can really see the grid lines now!

I know this is super-basic stuff for a lot of you all, but I haven't found a place online which CLEARLY documents this process, so I figured I'd toss-up a no-nonsense post which documents how I calculate the power output (in watts) of my QRP devices (i.e., QRSS MEPT) using an oscilloscope.

I think I have increased power output because I'm now powering my 74HC240 from this power supply (5v, 200A) rather than USB power (which still powers the microcontroller). Let's see!

There's the signal, and I haven't calibrated the grid squares (this thing shifts wildly) so I have to measure PPV (peak-to-peak voltage) in "squares". The PPV of this is about 5.3 squares.

I now use a function generator to create square waves at a convenient height. Using the same oscilloscope settings, I noticed that 10v square waves are about 7 squares high. My function generator isn't extremely accurate as you can see (very fuzzy) but this is a good approximation. I now know that my signal is 5.3/7*10 volts. The rest of the math is pictured here:

140mW - cool! It's not huge... but it's pretty good for what it is (a 2-chip transmitter). I'd like to take it up to a full watt... we'll see how it goes. My 74HC240 is totally mutilated. I accidentally broke off one of the legs, couldn't solder to it anymore, and thought I destroyed the chip. After getting distraught about a $0.51 component, I ripped ALL the legs off. Later I realized I was running out of these chips, and decided to try to revive it. I used a Dremel with an extremely small bit (similar to a quarter-round burr in dentistry) and drilled into the black casing of the microchip just above the metal contacts, allowing me enough surface area for solder to adhere to. I'm amazed it works! Now, to get more milliwatts and perhaps even watts...

Markdown source code last modified on January 18th, 2021
---
title: Measuring QRP Radio Output Power with an Oscilloscope
date: 2010-05-28 19:54:39
tags: amateur radio, circuit, old
---

# Measure QRP Radio Output Power with an Oscilloscope

__I added a backlight to my oscilloscope!__ My o-scope's backlight hasn't worked since I got it (for $10), so I soldered-up a row of 9 orange LEDs (I had them in a big bag) and hooked them directly up to a 3v wall wart. In retrospect I wish I had a bunch of blue LEDs... but for now I can't get over how well this worked! Compare it to the images a few posts back - you can really see the grid lines now!

<div class="text-center img-border">

[![](oscilliscope_leds_thumb.jpg)](oscilliscope_leds.jpg)
[![](qrss_qrp_circuit_scope_thumb.jpg)](qrss_qrp_circuit_scope.jpg)

</div>

__I know this is super-basic stuff__ for a lot of you all, but I haven't found a place online which CLEARLY documents this process, so I figured I'd toss-up a no-nonsense post which documents how I calculate the power output (in watts) of my QRP devices (i.e., QRSS MEPT) using an oscilloscope.

__I think I have increased power output__ because I'm now powering my 74HC240 from this power supply (5v, 200A) rather than USB power (which still powers the microcontroller). Let's see!

__There's the signal, and I haven't calibrated__ the grid squares (this thing shifts wildly) so I have to measure PPV (peak-to-peak voltage) in "squares". The PPV of this is about 5.3 squares.

<div class="text-center img-border">

[![](qrss_qrp_signal_thumb.jpg)](qrss_qrp_signal.jpg)
[![](10vSquare_thumb.jpg)](10vSquare.jpg)

</div>

__I now use a function generator__ to create square waves at a convenient height. Using the same oscilloscope settings, I noticed that 10v square waves are about 7 squares high. My function generator isn't extremely accurate as you can see (very fuzzy) but this is a good approximation. I now know that my signal is 5.3/7\*10 volts. The rest of the math is pictured here:

<div class="text-center img-border">

[![](powerCalcs_thumb.jpg)](powerCalcs.jpg)

</div>

__140mW - cool!__ It's not huge... but it's pretty good for what it is (a 2-chip transmitter). I'd like to take it up to a full watt... we'll see how it goes. My 74HC240 is totally mutilated. I accidentally broke off one of the legs, couldn't solder to it anymore, and thought I destroyed the chip. After getting distraught about a $0.51 component, I ripped ALL the legs off. Later I realized I was running out of these chips, and decided to try to revive it. I used a Dremel with an extremely small bit (similar to a quarter-round burr in dentistry) and drilled into the black casing of the microchip just above the metal contacts, allowing me enough surface area for solder to adhere to. I'm amazed it works! Now, to get more milliwatts and perhaps even watts...

<div class="text-center img-border">

[![](testcircuit_thumb.jpg)](testcircuit.jpg)

</div>

May 27th, 2010

AJ4VD Gator Spotted in MA

That's over 1,00 miles on a few milliwatts! The transmitter is the ridiculously simple one pictured below. I'm blown away! It was seen on running QRSS VD software! Awesome!!

Markdown source code last modified on January 18th, 2021
---
title: AJ4VD Gator Spotted in MA
date: 2010-05-27 11:24:17
tags: qrss, old
---

# AJ4VD Gator Spotted in MA

__That's over 1,00 miles on a few milliwatts!__ The transmitter is the ridiculously simple one pictured below. I'm blown away! It was seen on [ running ](http://w1bw.org/drupal/grabber)[QRSS VD](http://www.SWHarden.com/qrssvd/) software! Awesome!!

<div class="text-center img-border img-medium">

![](map.jpg)

[![](gatorSeen_thumb.jpg)](gatorSeen.jpg)
[![](actual_thumb.jpg)](actual.jpg)
[![](IMG_3456_thumb.jpg)](IMG_3456.jpg)

</div>

May 26th, 2010

Pushing and Pulling

I found a way to quadruple the output power of my QRSS transmitter without changing its input parameters. Thanks to a bunch of people (most of whom are on the Knights QRSS mailing list) I decided to go with a push-pull configuration using 2 pairs of 4 gates (8 total) of a 74HC240. I'll post circuit diagrams when I perfect it, but for now check out these waveforms!

First of all, this is the waveform before and after amplification with the 74HC240. I artificially weakened the input signal (top) with a resistor and fed it to the 74HC240. For the rest of the images, the input is 5v p-p and the output is similar, so amplification won't be observed. The wave I'm starting with is the output of a microcontroller which is non-sinusoidal, but this can be fixed later with lowpass filtering.

Here you can see the test circuit I'm using. It should be self-explanatory.

Here's the output of the microcontroller compared to the in-phase output of the 74HC240

Here are the two outputs of the 74HC240. 4 of the gates are used to create output in-phase with the input, and the other four are used to create out-of-phase wave. Here are the two side by side. The top is 0 to 5v, the bottom is 0 to -5v, so we have a push-pull thing going on... woo hoo!

The waves, when overlapped, look similar (which I guess is a good thing) with a slight (and I mean VERY slight) offset of the out-of-phase signal. I wonder if this is caused by the delay in the time it takes to trigger the 74HC240 to make the out-of-phase signal? The signal I'm working with is 1MHz.

Okay, that's it for now. I'm just documenting my progress. 73

Markdown source code last modified on January 18th, 2021
---
title: Pushing and Pulling
date: 2010-05-26 07:42:39
tags: circuit, amateur radio, old
---

# Pushing and Pulling

__I found a way__ to quadruple the output power of my QRSS transmitter without changing its input parameters. Thanks to a bunch of people (most of whom are on the Knights QRSS mailing list) I decided to go with a push-pull configuration using 2 pairs of 4 gates (8 total) of a 74HC240. I'll post circuit diagrams when I perfect it, but for now check out these waveforms!

<div class="text-center img-border">

[![](qrss_amplified1_thumb.jpg)](qrss_amplified1.jpg)

</div>

First of all, this is the waveform before and after amplification with the 74HC240. I artificially weakened the input signal (top) with a resistor and fed it to the 74HC240. For the rest of the images, the input is 5v p-p and the output is similar, so amplification won't be observed. The wave I'm starting with is the output of a microcontroller which is non-sinusoidal, but this can be fixed later with lowpass filtering.

<div class="text-center img-border">

[![](qrss_74hc2401_thumb.jpg)](qrss_74hc2401.jpg)

</div>

Here you can see the test circuit I'm using. It should be self-explanatory.

<div class="text-center img-border">

[![](qrss_inPhase1_thumb.jpg)](qrss_inPhase1.jpg)

</div>

Here's the output of the microcontroller compared to the in-phase output of the 74HC240

<div class="text-center img-border">

[![](qrss_out_of_phase1_thumb.jpg)](qrss_out_of_phase1.jpg)

</div>

Here are the two outputs of the 74HC240. 4 of the gates are used to create output in-phase with the input, and the other four are used to create out-of-phase wave. Here are the two side by side. The top is 0 to 5v, the bottom is 0 to -5v, so we have a push-pull thing going on... woo hoo!

<div class="text-center img-border">

[![](qrss_out_of_phase_overlap1_thumb.jpg)](qrss_out_of_phase_overlap1.jpg)

</div>

The waves, when overlapped, look similar (which I guess is a good thing) with a slight (and I mean VERY slight) offset of the out-of-phase signal. I wonder if this is caused by the delay in the time it takes to trigger the 74HC240 to make the out-of-phase signal? The signal I'm working with is 1MHz.

__Okay, that's it for now.__ I'm just documenting my progress. 73
Pages