The personal website of Scott W Harden
July 21st, 2019

New QRSS Keyer

I'd like to use an interesting pattern that takes advantage of both FSK and OOK. I want it to be 5 Hz or less in bandwidth, and I want it to be unique and recognizable in cases where only a few seconds are spotted, but I don't want it to be so odd that it's annoying. I came up with something like:

Here's what it looks like on the air:

Microcontroller

ATTiny2313 programmed with C (source code)

GPS serial data parsing

To ensure the message transmits exactly at the 0:00 mark of every 10 minutes, the microcontroller is occasionally put into a "wait" mode where it continuously watches the GPS output (parsing the serial data that bursts out every second) and waits for the minutes digit to become zero before beginning a transmission.

Technical details: The output is 9600 baud serial data in NMEA format. A string buffer is filled as incoming characters are received. If the message starts with $GPRMC we know the 11th character is the ones digit of the minutes number in the time code. Waiting for the next ten minute rollover to occur is as easy as waiting until that character becomes zero.

$GPRMC,184130.00,...
^    ^     ^

The start of a time message looks like this. To identify $GPRMC we just need to match the $ and the C (indicated by the first two arrows above). We then know if we keep reading, we will arrive at the ones digit of the minutes number (the third arrow).

I have some notes on the Neo-6M here

FSK Circuit

I found this design very convenient. A potentiometer (RV1) sets center frequency to let me adjust where in the QRSS band I want to transmit.

The FSK input (which could be digital or analog) is 0-5V, expected to originate from a microcontroller pin. The keyer is programmed to transmits over the full 0-5V range.

The second potentiometer (RV2) sets the width of the FSK input. I adjust this to achieve a bandwidth of about 5 Hz.

The output is buffered, mixed, and sent to the oscillator module with coax.

Markdown source code last modified on January 18th, 2021
---
title: New QRSS Keyer
date: 2019-07-21 21:00:00
tags: qrss, circuit
---

# New QRSS Keyer

**I'd like to use an interesting pattern** that takes advantage of both FSK and OOK. I want it to be 5 Hz or less in bandwidth, and I want it to be unique and recognizable in cases where only a few seconds are spotted, but I don't want it to be so odd that it's annoying. I came up with something like:

<div class="text-center">

[![](pattern_thumb.jpg)](pattern.jpg)

</div>

Here's what it looks like on the air:

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

[![](WD4ELG-30.1907210830.d1c3ee1f06_thumb.jpg)](WD4ELG-30.1907210830.d1c3ee1f06.jpg)

</div>

### Microcontroller
ATTiny2313 programmed with C ([source code](https://github.com/swharden/QRSS-hardware/tree/master/builds/keyer/main.c))

### GPS serial data parsing
To ensure the message transmits exactly at the 0:00 mark of every 10 minutes, the microcontroller is occasionally put into a "wait" mode where it continuously watches the GPS output (parsing the serial data that bursts out every second) and waits for the minutes digit to become zero before beginning a transmission.

Technical details: The output is 9600 baud serial data in [NMEA format](https://www.gpsinformation.org/dale/nmea.htm). A string buffer is filled as incoming characters are received. If the message starts with `$GPRMC` we know the 11th character is the ones digit of the minutes number in the time code. Waiting for the next ten minute rollover to occur is as easy as waiting until that character becomes zero.

```
$GPRMC,184130.00,...
^    ^     ^
```

The start of a time message looks like this. To identify `$GPRMC` we just need to match the `$` and the `C` (indicated by the first two arrows above). We then know if we keep reading, we will arrive at the ones digit of the minutes number (the third arrow).

I have some notes on the [Neo-6M here](https://github.com/swharden/AVR-projects/tree/master/uBlox%20Neo-6M)

### FSK Circuit

I found this design very convenient. A potentiometer (RV1) sets center frequency to let me adjust where in the QRSS band I want to transmit. 

The FSK input (which could be digital or analog) is 0-5V, expected to originate from a microcontroller pin. The keyer is programmed to transmits over the full 0-5V range.

The second potentiometer (RV2) sets the width of the FSK input. I adjust this to achieve a bandwidth of about 5 Hz.

The output is buffered, mixed, and sent to the oscillator module with coax.

<div class="text-center">

[![](fsk-circuit_thumb.jpg)](fsk-circuit.jpg)

</div>

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

[![](2019-07-19-keyer_thumb.jpg)](2019-07-19-keyer.jpg)
[![](2019-07-19-modules_thumb.jpg)](2019-07-19-modules.jpg)
[![](2019-07-31_thumb.jpg)](2019-07-31.jpg)

</div>
July 20th, 2019

QRSS Stitch and Stack

If the transmitter frequency is stable, transmissions start every 10 minutes, and grabbers are time-aligned to be every 10 minutes, multiple grabs can be averaged together to enhance signal-to-noise ratio. This is called QRSS Image Stacking. To simplify the process of making these images I created a new tool for the job: QRSS Stitch and Stack.

Markdown source code last modified on January 18th, 2021
---
title: QRSS Stitch and Stack
date: 2019-07-20 21:00:00
tags: qrss
---

# QRSS Stitch and Stack

If the transmitter frequency is stable, transmissions start every 10 minutes, and grabbers are time-aligned to be every 10 minutes, multiple grabs can be averaged together to enhance signal-to-noise ratio. This is called QRSS Image Stacking. To simplify the process of making these images I created a new tool for the job: [QRSS Stitch and Stack](https://github.com/swharden/QRSS-Stich-and-Stack).

<div class="text-center">

[![](qrss-stitch-and-stack-screenshot_thumb.jpg)](qrss-stitch-and-stack-screenshot.jpg)

</div>

Started Transmitting Letters

I finished writing the microcontroller code to read the GPS time and only start transmissions when the minutes value ends with a zero. The signal now stacks nicely in 10-minute grabs. Now that GPS and the oven is working well I've started sending my call sign (AJ4VD).

AJ4VD spotted in Pensacola, FL (W4HBK)

First spot occurred while I was actively adjusting the transmission length

AJ4VD spotted in Greensboro, NC (WD4ELG)

5x frame stack (mean frame) from the WD4ELG grabber reveals the AJ4VD signal much better, and confirms the GPS timer is working well.

Markdown source code last modified on January 18th, 2021
---
title: Started Transmitting Letters
date: 2019-07-20 21:00:00
tags: qrss
---

# Started Transmitting Letters

I finished writing the [microcontroller code to read the GPS time](https://github.com/swharden/QRSS-hardware/tree/master/builds/keyer) and only start transmissions when the minutes value ends with a zero. The signal now stacks nicely in 10-minute grabs. Now that GPS and the oven is working well I've started sending my call sign (AJ4VD).

### AJ4VD spotted in Pensacola, FL (W4HBK) 

First spot occurred while I was actively adjusting the transmission length

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

[![](W4HBK-first-callsign_thumb.jpg)](W4HBK-first-callsign.jpg)

</div>

### AJ4VD spotted in Greensboro, NC (WD4ELG)

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

[![](WD4ELG-first-callsign_thumb.jpg)](WD4ELG-first-callsign.jpg)

</div>

5x frame stack (mean frame) from the WD4ELG grabber reveals the AJ4VD signal much better, and confirms the GPS timer is working well.


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

[![](WD4ELG-5x-stack_thumb.jpg)](WD4ELG-5x-stack.jpg)

</div>
July 18th, 2019

OSK and FSK

I got OOK and FSK working together (the S shape in the middle). I'm also now using a crude oven, but am not sure yet how stable frequency is over long time spans.

AJ4VD spotted in Pensacola, FL (W4HBK)

AJ4VD spotted in Greensboro, NC (WD4ELG)

I kept thinking my oscillator was drifting frequency because the line wasn't straight. Turns out it was my curved monitors!

Markdown source code last modified on January 18th, 2021
---
title: OOK and FSK
date: 2019-07-18 21:00:00
tags: qrss
---

# OSK and FSK

I got OOK and FSK working together (the S shape in the middle). I'm also now using a crude oven, but am not sure yet how stable frequency is over long time spans.

### AJ4VD spotted in Pensacola, FL (W4HBK)

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

[![](W4HBK-OOK_thumb.jpg)](W4HBK-OOK.jpg)

</div>

### AJ4VD spotted in Greensboro, NC (WD4ELG)

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

[![](WD4ELG-Greensboro-NC-OOK_thumb.jpg)](WD4ELG-Greensboro-NC-OOK.jpg)

</div>

I kept thinking my oscillator was drifting frequency because the line wasn't straight. Turns out it was my curved monitors!

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

[![](2019-07-19-curved-monitors_thumb.jpg)](2019-07-19-curved-monitors.jpg)

</div>

Amplifier Improvements

I improved my amplifier (now output 500mW) and am impressed how well my attic dipole is doing! It runs east/west so it radiates north/south. I saw my signal on a few more grabbers.

AJ4VD spotted in Northwood, OH (N8NJ)

AJ4VD spotted in Las Cruces, NM (WA5DJJ)

AJ4VD spotted in Florida (WD4AH)

This grab shows a nice airplane reflection in the middle

AJ4VD spotted in Ontario, Canada (VA3ROM)

AJ4VD spotted in Pensacola, FL (W4HBK)

This 8-hour grab reveals when my AC kicks on and off and demonstrates the necessity of ovenizing my setup. It's the signal around 10,139,980 Hz.

Markdown source code last modified on January 18th, 2021
---
title: Amplifier Improvements
date: 2019-07-14 21:00:00
tags: qrss
---

# Amplifier Improvements

I improved my amplifier (now output 500mW) and am impressed how well my attic dipole is doing! It runs east/west so it radiates north/south. I saw my signal on a few more grabbers.

### AJ4VD spotted in Northwood, OH (N8NJ)

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

[![](N8NJ-Northwood-OH-USA_thumb.jpg)](N8NJ-Northwood-OH-USA.jpg)

</div>

### AJ4VD spotted in Las Cruces, NM (WA5DJJ)

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

[![](WA5DJJ-LasCruces-NM-USA_thumb.jpg)](WA5DJJ-LasCruces-NM-USA.jpg)

</div>

### AJ4VD spotted in Florida (WD4AH) 

This grab shows a nice airplane reflection in the middle

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

[![](WD4AH-FL-USA_thumb.jpg)](WD4AH-FL-USA.jpg)

</div>

### AJ4VD spotted in Ontario, Canada (VA3ROM)

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

[![](VA3ROM-Ontario-Canada_thumb.jpg)](VA3ROM-Ontario-Canada.jpg)

</div>

### AJ4VD spotted in Pensacola, FL (W4HBK)

This 8-hour grab reveals when my AC kicks on and off and demonstrates the necessity of ovenizing my setup. It's the signal around 10,139,980 Hz.

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

[![](W4HBK-Pensacola-FL-USA-unstable_thumb.jpg)](W4HBK-Pensacola-FL-USA-unstable.jpg)

</div>
Pages