Launched · 1 Oct 2026
↓ 436.888 MHz
ES
SPACE COWBOY II CHALLENGE

KNOWLEDGE
PILLS

One pill a week with what you need for the next step of the challenge. Start with the first one.

1 · How satellites communicate 2 · FSK: the signal is binary 3 · Scrambler and CRC 4 · From packet to message · 23 Oct
Week 1 · 2 Oct 2026

How satellites communicate

A satellite like UNNE-1B is, at heart, a small radio station circling the Earth. To listen to it you only need an antenna, an inexpensive SDR receiver and free software.

The key idea

Radio wavesUNNE-1B transmits on 436.888 MHz (UHF, 70 cm band) and listens on 145.925 MHz (VHF). The waves travel at the speed of light: they arrive in thousandths of a second.
PassesIt flies about 520 km up and completes an orbit every ~95 minutes. You only hear it while it is above your horizon: 10–15 minutes per pass, several times a day.
Doppler effectBecause it moves at 27,000 km/h, the frequency you receive shifts by up to ±10 kHz: higher as it approaches, lower as it moves away.

See it in action in the pass simulator of the Radio module.

What you need

ItemRecommended optionWhat it is for
SDR receiverA USB RTL-SDR-type dongle (≈ 30–40 €)Turns the radio signal into data the computer can process
70 cm antennaHome-made V-dipole (two rods of ~17 cm) or a portable YagiCaptures the signal. It is the part that improves reception the most
Pass predictionGpredict (free) or Heavens-AboveKnow when the satellite passes and correct the Doppler shift
SDR softwareSDR++ (free, Windows/Linux/macOS) or GQRX (free, Linux/macOS)Tune, watch the waterfall and record the signal
No equipment?

The SatNOGS network publishes recordings from stations all over the world. You can download the audio of a UNNE-1B pass and work with it without an antenna.

Step by step with SDR++

  1. Install the receiver. On Windows, plug in the SDR and use Zadig to install the WinUSB driver. On Linux and macOS it usually works out of the box.
  2. Open SDR++ and choose the RTL-SDR source. Press ▶ to start receiving.
  3. Tune to 436.888 MHz in NFM (narrow FM) mode, with a bandwidth of about 12 kHz.
  4. Find the next pass in Gpredict. The higher the maximum elevation, the better the signal.
  5. During the pass, watch the waterfall: you will see the signal drift because of Doppler. Keep correcting the frequency or let Gpredict do it.
  6. Record. Save the audio as WAV (and, if you can, the IQ signal). You will need it in the next pill to extract the bits.
Challenge of the week

Set up your station and practise before UNNE-1B starts transmitting: find a pass of the ISS (145.800 MHz) or of an AMSAT-EA satellite and record the signal. Once UNNE-1B is catalogued, it will appear in Gpredict and SatNOGS.

Week 2 · 9 Oct 2026

FSK: the signal is binary

What you recorded last week sounds like a beep jumping between two notes. Each jump is a bit. Understanding that is understanding how UNNE-1B talks.

Two tones, ones and zeros

UNNE-1B uses FSK (Frequency Shift Keying): it sends a 1 on one frequency and a 0 on another, 1125 Hz apart. The lower one (mark) is 1; the higher one (space) is 0. It sends 200 bits per second: each bit lasts 5 milliseconds.

FSK lab Tap the bits to flip them and listen to how they sound.
Binary—
Hexadecimal—
Decimal—
ASCII character—

From bits to bytes

Bits are grouped in eights to form bytes, and sent most significant bit first (MSB). To write them compactly we use hexadecimal: each group of 4 bits is one digit from 0 to F.

1011111100110101
BF35

This is the UNNE-1B sync word, 0xBF35: the receiver looks for it in the bit stream to know where each packet begins.

From audio to bits, in practice

You don't have to do it by hand. AMSAT-EA publishes in its projects section the ground station software for its satellites: a ready-configured demodulator (UZ7HO Soundmodem), SatNOGS-compatible decoders and the detailed description of each transmission, with the CRC and scrambler code. The UNNE-1B ones are published there.

For the curious

With GNU Radio (free) you can build your own FSK demodulator: filter, FM demodulator, clock recovery and bit slicer. It is the best way to understand what happens inside.

Challenge of the week · find the packet

This is a fragment of received bits. Look for the sync word 0xBF35. Which byte comes right after it, in hexadecimal? Hint: it contains the packet type and the satellite address.

1010101010101010101010101011111100110101101011000000000000000000
Week 3 · 16 Oct 2026

Scrambler and CRC

You already know how to turn tones into bits. But those bits travel «scrambled» and may arrive with errors. This week you learn to unscramble them and to check that the packet arrived intact.

Two problems of sending bits by radio

Long runsIf the satellite sends many zeros in a row, the signal stays on a single tone and the receiver loses track of where each bit begins. It needs frequent changes to keep the rhythm.
NoiseA click, interference or a weak signal at the end of the pass can turn a 0 into a 1. We need a way to know whether the packet arrived correctly.
The solutionThe scrambler shuffles the bits so there are no long runs; the CRC adds a 16-bit «fingerprint» that reveals any error.

The scrambler: shuffling to transmit better

UNNE-1B uses a multiplicative scrambler defined by the polynomial G(x) = x¹⁷ + x¹² + 1. The idea is simple: each outgoing bit is combined (with an XOR) with the bits sent 12 and 17 positions earlier. The result looks random, even if the input is all zeros.

Best of all, it is undone with the same rule: the receiver keeps the last 17 bits received and applies the XOR again. No key is needed. That is why it is not encryption: anyone who knows the polynomial can undo it.

Scrambler labChoose an input and watch it come out scrambled and get recovered.
Input
Scrambled (transmitted)
Recovered on the ground

A demonstration of the principle with G(x) = x¹⁷ + x¹² + 1. The initial register state and which UNNE-1B fields are scrambled (everything except training, sync, type, address and CRC) are in the AMSAT-EA transmissions overview, together with their code.

The CRC: the packet's fingerprint

The CRC (Cyclic Redundancy Check) is a 16-bit number the satellite computes from the whole packet and appends at the end. On the ground, the receiver computes it again from the received bits: if it matches, the packet is good; if not, it is discarded. It works like the check letter of an ID number, but much stronger: it detects every one- or two-bit error and any burst of up to 16 consecutive bits.

UNNE-1B uses the CRC-CCITT-FALSE variant: polynomial 0x1021, initial value 0xFFFF and no final XOR. It is computed from the type field to the last data byte.

CRC-CCITT-FALSE calculatorType text or hexadecimal bytes.
CRC—

Check the calculator against the reference examples: «EASAT-2» gives 0x7D58 (example from the AMSAT-EA document) and «123456789» gives 0x29B1 (the standard check value of this variant).

Real data is already here

Look at the data registry: decoded receptions start with 1C, 2C, 3C… The first digit is the packet type and the C is the UNNE-1B address: the same thing you found in last week's challenge. The decoding software normally undoes the scrambler and checks the CRC before showing those bytes.

Challenge of the week · the message fingerprint

The Space Cowboy II signed its messages with its name. What is the CRC-CCITT-FALSE of the text SPACE COWBOY (upper case, with the space)? Write it in hexadecimal.

Week 4 · 23 OctFrom packet to message

First steps to decrypt the Space Cowboy II string of numbers.