Using the CC1101 and Beaglebone black for IP traffic on 70cm

Lately, I have been experimenting with using a CC1101 chip together with a Beaglebone black single board ARM computer to transmit IP traffic over the 70cm Amateur band. There has been a similar project from OEVSV, but I’ve never seen this project reach a final form. Edouard F4EXB has some code that uses the Raspberry Pi instead. Presumably, this will suffer from problems when using the higher data rates supported by the CC1101, as his software is not real-time.

The goal of my project is to build an affordable 70cm IP transceiver with a power of a few Watts. This can be used in the Hamnet Amateur Radio IP network. The modulation should not use more than a couple of hundreds of kHz’s of spectrum, as it doesn’t seem very sensible to take up much more spectrum in the 70cm band. Although the usual maximum bandwidth in the 70cm band is 20kHz, the IARU R1 bandplan allows for wideband experiments around 434.000MHz. A data rate of 128kbps with MSK modulation seems about right, as it uses roughly 200kHz of spectrum. Further on-the-air tests will perhaps change these parameters a bit.

KISS, HDLC, AX.25 and friends

A while ago, I uploaded my gr-kiss out-of-tree GNUradio module to Github. This is a set of blocks to handle KISS, HDLC and AX.25, which are the protocols used in amateur packet radio. There are several other OOT modules that do similar things, but I didn’t like the functionality of them very much. While programming this module, I’ve also noted that the documentation for these protocols is not so good sometimes. Here I’ll give a brief description of the protocols and explain how everything works together.

Concurso Sant-Sadurní V-UHF

Last Sunday, I hiked up Cerro de San Pedro, SOTA summit EA4/MD-020 (1425m) to work in this month’s national V-UHF contest. I was on the summit for 4 hours, from 7:00UTC to 11:00UTC, and I managed to work quite a few stations. As always, I used my portable QRP station consisting of a Yaesu FT-817ND and an Arrow satellite yagi antenna (3 elements in 144MHz and 7 elements in 432MHz).

In the map of stations worked, my position is in red, stations worked both in 144MHz and 432MHz are in green and stations worked only in 144MHz are in blue.

Trying to decode data from ÑuSat

Last Monday, a Chinese CZ-4B rocket launched the Chinese Earth observation satellite ZY-3 and the Argentinian satellites ÑuSat-1 and 2. These two satellites are the first of the Aleph-1 constellation of Earth observation satellites. ÑuSat-1 carries LUSEX, an Amateur payload which consists of a U/V linear transponder. Also, the two ÑuSat satellites transmit backup telemetry in the 70cm Amateur band, as one can see in the IARU frequency coordination application. In fact, the latest news is that ÑuSat-1 transmits telemetry on 436.445MHz and ÑuSat-2 uses 437.445MHz. According to the public announcements, the telemetry was supposed to be 9200 baud or 19200 baud. However, some people have noticed that, on the contrary, it is 40 kbaud. Although the modulation and coding specifications are not public, I’ve taken a look at an IQ recording of ÑuSat-2 by Mike DK3WN to see if I can decode anything. Here are my findings.

GOMX-3 data download

This weekend, Mike DK3WN caught GOMX-3 downloading a good amount of data. See his post here. This data consists mainly of the satellite retransmitting a lot of beacons that were generated during the last 16 hours or so.

GomSpace has recently released a complete parser for GOMX-3 beacons of type 1 0 (these are the beacons that contain ADS-B data). I have already incorporated this code into my gr-ax100 fork.

The binary data in KISS format (almost 250KB) and the parsed beacon data received during this data download is in gist. Probably the most interesting thing is the ADS-B data. Below you can see all the aircraft on the map. Clicking on any of them will show the details for that aircraft.

Since the orbit of GOMX-3 has an inclination of 51.6º, the satellite doesn’t usually detect aircraft above 55ºN or below 55ºS. GomSpace has an image which shows lots of flights received with GOMX-3. There, the major air routes and hubs are apparent.

LilacSat-2 subaudio telemetry

Yesterday, the FM repeater on the Amateur satellite LilacSat-2 was active. I’ve talked about LilacSat-2 before, but so far I hadn’t made any recordings containing subaudio telemetry. While contacting several Spanish stations (EA5TT, EA1JM and EA1IW) throughout the pass, I made an IQ recording to analyse the telemetry later. Here I take a look at the telemetry format and the decoded data.

Scramblers and their implementation in GNUradio

A scrambler is a function that is applied to a sequence of data before transmitting with the goal of making this data more “random-like”. For instance, scrambling avoids long runs of the bits 0 or 1 only, which may make the receiver loose synchronization or cause spectral concentration of the signal. The receiver applies the inverse function, which is called descrambler, to recover the original data. The documentation for the scrambler blocks in GNUradio is not very good and one may need to take a look at the implementation of these blocks to get their parameters right. Here, I’ll try to explain a bit of the mathematics behind scramblers and the peculiarities of their implementation in GNUradio.

Hailstorm in 12GHz

Yesterday, there was a big hailstorm in my town. During the storm, I rushed to the radio shack to see if this produced any effects in my Ku-band satellite receiver. This is a 95cm dish pointing to the 26ºE geostationary orbital position, and it will be used to receive Es’hail-2 in the future. In the image below, you can see that the difference is huge.

11699MHz H pol, during a hailstorm (above) and just after the storm (below)
11699MHz H pol, during a hail storm (above) and just after the storm (below)

In the waterfall, you can see several beacons from broadcast satellites. It is clear that during the hailstorm the noise floor was much higher. In fact, 2.5dB higher. This is probably caused by scattering of DVB-S signals from satellites in other orbital positions, scattering of thermal ground noise, or a combination of both. Also, although it is not easy to see in the waterfall, the beacons of the satellites where weaker during the hailstorm. For instance, the beacon of BADR-5 was 0.9dB weaker, due to the increased attenuation caused by hail.

These differences may not seem large, but in fact they are. I have a cheap DVB-S2 decoder connected to the system. It usually receives fine several channels from the BADR satellites (on some other channels, the signal is not good enough, apparently). However, during the hailstorm, this receiver couldn’t even get a lock on the DVB signal.

Decoding packets from GOMX-3: modulation and coding

Recently, Mike DK3WN pointed me to some decoder software for the satellite GOMX-3. This satellite is a 3U cubesat from GomSpace and transmits in the 70cm Amateur band. It has an ADS-B receiver on board, as well as an L-band SDR. As far as I know, no Amateur has decoded packets from this satellite previously, and Mike had some problems running the decoder software. I have taken a look at the software and tried my best to decode some packets from GOMX-3. So far, I have been able to do Reed-Solomon decoding and get CSP packets. However, I don’t have the precise details for the beacon format yet. Here, I describe all of my findings.