UKHAS Wiki

UK High Altitude Society

User Tools

Site Tools


guides:chipcon_cc1020_software_define_radio

This is an old revision of the document!


CC1020 SDR

By sampling the 8 bit I and Q filter test registers on the chipcon CC1020 ISM band transceiver IC it is possible to reconstruct the baseband. This file contains avr code for an atmega168, and c code for *nix (tested on ubuntu 10.04) for converting the serial data to a 8Ksps WAV stream. This can then be used by fldigi using file-audio-playback (or -stream on the custom fldigi build). This has been tested with the cc1020em(x)k-434 evaluation board from mouser, running at 3.3v with the Lock pin connected to INT0 on the avr, and the “programming” spi interface on the cc1020 connected to the avr spi. The avr has to be clocked at an appropriate rate for 460800baud or faster serial to work - this has been tested with a 7.3728MHz crystal.

Test results

This technique has not been tested over long range, but bench tests with a very heavily attenuated signal suggest the front end noise figure for the 1020 is around 6.5dB. This mfsk64 data was recorded from a nxt2 transmitter with filtered pwm used to generate the small frequency shifts. The bandwidth is 9.6khz (mfsk64 spans approx 1.1khz). The PLL on the cc1020 allows steps of 225Hz to be made, here the local oscillator frequency was reduced by 225hz around point 800 on the horizontal axis. The horizontal line just below the ntx2 frequency is from an LCD monitor. The ntx2 signal is actually much stronger than the frontend noise and RFI, as can be seen by the disappearing background noise as the AGC adjusts. In fact the ADC on the chipcon is starting to saturate, causing the faint line at 0Hz during the transmissions.

A waterfall display of some MFSK-64 packets

A histogram of data from the I register (Q has the same shape) shows that the AGC is working perfectly to keep the samples in the +-127 range (signed 8 bit integer output). The probability density function is a Guassian as would be expected from a random noise source.

Histogram of I output

Usage instructions

Libsamplerate is required to resample the data to 8Ksps. A custom build of dl-fldigi in hab mode is required (./dl-fldigi –hab to use in hab mode). Hopefully this can be merged with the main dl-fldigi, but for now it can be sound at https://github.com/Laurenceb/dl-fldigi.

Using without AFC

With dump.c compiled and the hardware connected to the machine, fire up dump (./dump /dev/tty<port> e.g. ./dump /dev/ttyUSB0 ) and it should say “waiting for the stream to be opened”. Then in fldigi/dl-fldigi go to file-audio-stream and locate stream.wav in the same directory as dump. Entering positive or negative numbers between -126 and +127 into dump retunes the cc1020 in steps of 225Hz. Always shut down by first stopping playback in fldigi before closing dump, or fldigi may hang. On bootup the cc1020 will be tuned to 434.075MHz.

Using with AFC

Compile dump.c as before. You will also need python installed. Run autotune.py /dev/tty<port> then open fldigi/dl-fidigi as in the instructions above, but also setting rig control to use xmlrpc. You can now set the SDR frequency (has to be in the 434MHz band) using the rig control entry box in fldigi. AFC will control the PLL on the SDR to keep the audio frequency around the region of 2.5KHz. Presently the cc1020 can only be retuned in single steps, so this is only useful for tracking a 434.075mhz - future versions will allow any frequency in the 70cm band to be entered directly.

guides/chipcon_cc1020_software_define_radio.1290475774.txt.gz · Last modified: 2010/11/23 01:29 by laurenceb

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki