Information about my experiments with software defined radio (SDR) using Softrock, the Si570 VCXO, and a hacked Linux based ADM5120 router to control the Si570, using a web browser. On Apple's Mac OS X the frequency can be controlled directly from the SDR software using a specialized browser.
- June 2008: initial release, SDRBrowser for SDR Transceiver 1.1.0(1).
- Januari 2009: SDRBrowser updated for DO8SEM's DSP Radio 1.0.0(3) (Dec 24, 2008)
- Januari 2010: Implemented Si570 software on mbed platform. (Si570 - mbed project)
Very little hardware is needed in order to build a software defined radio. The SoftRock is a small, low-cost, good performing SDR receiver that delivers I-Q audio signals to the computer's sound card. It was designed by Tony Parks, KB9YIG and Bill Tracey, KD5TFD as an "SDR sampler project" for hams everywhere to easily try out software defined radio. See the links below for more information. Here is an image of my setup:
The first version uses a DDS-60 controlled by an AVR Butterfly. The Butterfly needs 3.3 Volt power, which I made with a LM317. The maximum frequency of the DDS-60 is 60 MHz resulting in a maximum of 15 MHz for the Softrock. Then I switched to the Si-570 with a maximum frequency of 160 MHz for the cmos version.
Si570 control is implemented on an AMD5120 based Linux controller. The controller is a Sweex, Edimax or Omnima Router, with the Midge OpenWRT like Linux distribution. You can buy these routers on ebay for $15 or less, and it gives you a very convenient hardware development platform. I2C is already implemented, the ioports are 3V, so no level converters are needed for the Si570.
Here is an overview image:
I2C lines are connected to the leds on the board. These leds are connected to io lines on the AMD5120. You don't need to remove the leds.
The WB6DHW board was used to mount the Si570. Since the router already supplies 3.3 volt, and the I2C also operates on 3.3 volt, no regulator and level converters were needed. Here is an image of the board, connected to the Softrock.
A small quick and dirty command line utility to control the Si570 was written in C. It can be compiled using a so called toolchain, or directly on the router. For detailed information see the links below. Some examples of the syntax and usage:
midgevfo# ./si570 -h Usage: ./si570 [-rqsih] [frequency] Control si570 VCXO on I2C bus Options: -r reset si570 to initial frequency -q quadrature mode for SDR (multiply frequency with 4) -s set frequency [MHz] -i print information from si570 registers -h print this information midgevfo# ./si570 -i reg7-12: 05 42 b5 e7 2f 5b hsdiv: 4 n1: 16 rfreq: 43.368942 fxtal: 114.279020 fout: 56.320002 midgevfo# ./si570 -qs 7.05 midgevfo# ./si570 -i reg7-12: e3 c2 b6 e3 81 fc hsdiv: b n1: 10 rfreq: 43.430544 fxtal: 114.279020 fout: 28.200000 midgevfo#
Since the router runs the Apache web server the logical next step is to interface si570.c to Apache so that we are able to run it from a remote web browser, for instance on your desktop computer. But control from the other side of the world is also possible. I made a quick and dirty CGI script to fulfill this task. It can be found in the zip file below. For installation put si570.cgi in /var/www/cgi-bin/si570/ on your router, together with the si570 executable. Then browse to http://routerip/cgi-bin/si570/si570.cgi using your desktop browser. Here is how this looks like from my iMac using Safari:
Interface to SDR software
Apple's Mac OS X provides a nice notification system between software packages. This was used to set the Si570 frequency direct from Sebastian Mrozek's SDR software. A program 'SDRBrowser' was written for this. SDRBrowser is a simple web browser which captures the frequency sent by a notification from SDR 1.1.0. SDRBrowser uses Apples WebKit browser engine, the same as used in Safari and the new Google Chrome browser.
As you can see in the image above SDRBrowser has three fields in the upper bar, as expected there is the URL field, and below this there are 'Center Frequency' and 'Rx/Tx'. All the fields are set by the SDR software. When I modify the center frequency in SDR, the 'Center Frequency' and the URL in SDRBrowser are changed, resulting in a change of the output frequency in the Si570. The same for the 'Rx/Tx', but this one isn't implemented yet. The rest of the URL is hard coded in the software. The name of the router is 'midgevfo' you can set this for your situation in /etc/hosts. Please let me know when you need some more flexibility, so that I can add this in future releases. SDRBrowser can be downloaded from the link below, or from the Download section in the left side menu.
- http://dl2sdr.homepage.t-online.de/ - DSP Radio from DL2SDR.