ScratchRadio

Democratising Wireless Innovation
Jump to navigation Jump to search

Introduction

Scratch Radio is intended to introduce new users to some of the basic concepts behind Software Defined Radio, using the Scratch visual programming environment on the Raspberry Pi as the development platform. It uses GNU Radio and the LimeSDR-Mini USB adapter to provide the underlying radio implementation and since this is loosely coupled to the Scratch Radio frontend the same radio implementation could also be adapted to other environments.

Scratch Radio depends on the standard GNU Radio package that is already available for the Raspberry Pi as part of the official Raspbian Linux distribution. The current beta test implementation also builds and uses the latest master branch versions of the Lime Suite repository (see github.com/myriadrf/LimeSuite) and the GNU Radio LimeSDR module (see github.com/myriadrf/gr-limesdr). These currently need to be built from source and the Scratch Radio repository contains scripts and makefiles to automate the process, as well as building and installing Scratch Radio itself. Full instructions can be found here: ScratchRadio Installation

Using Scratch Radio

The Scratch Radio extension allows various software definied radio blocks to be included in Scratch programs. The set of blocks provided can be used to implement low bandwidth radio links between Raspberry Pi computers for sending and receiving short text messages. These blocks provide simple implementations of the common wireless system functions - framing, error checking, modulation, demodulation and receiver synchronisation - giving an insight into how a typical radio system is implemented.

Scratch Radio programs are written such that a radio subsystem is first constructed by connecting various radio component blocks, and then the assembled subsystem can then be started and stopped on demand. Details of how this may be achieved can be found in the programming guide: ScratchRadio Programming

The programming guide shows the basic approach to implementing Scratch Radio programs and demonstrates a simple loopback example. For implementing more complex radio subsystems, the full set of Scratch Radio component blocks is described in the component library: ScratchRadio Library

Some example Scratch Radio programs are provided in order to demonstrate the implementation of complete radio subsystems for transmitting and receiving short text messages. Further details of these examples can be found here: ScratchRadio Examples