The Acorn-SDR Project
Acorn-SDR is a distributed platform for software radio development.
Last update 9th August 2009
What does Acorn stand for. Simply - 'A Collaboration of Radio Nodes'. A network of peer nodes, each providing a single function towards the overall aim of a Software Defined Radio (SDR).
The software is built to be cross-platform but is currently built on Linux Ubuntu 8.04 and is tested and used on Linux. I do not plan at the moment to test on Windows although there is a good probability that I will also target Windows 7 in the future.
The software currently supports:
- SDR1000 (RX only)
- HPSDR (Ozy, Janus, Mercury). This can use Mercury RX only or Janus as a sound card replacement.
- Softrock (RX versions with fixed centre frequency)
The system is a work-in-progress. The current release information can be found at http://code.google.com/p/acorn-sdr/. The next features to be implemented are the TX paths and a thorough tidy up and enhancement of the C extensions.
The best analogy I can make of the way acorn is architected is to compare it to a hardware bus. The bus protocol is tcp/udp and each component on the bus has one or more interfaces that it must adhere to. The whole system is defined as a set of interfaces and there is no other way for components to interact except through those interfaces. As with a hardware system there are no rules about what you hang onto the bus provided it has a concrete implementation behind the interface and obeys the protocol rules. This means it is basically technology independent. Of course, those technology independent layers have to be built. This is where the infrastructure comes in. The bus is implemented using Ice from ZeroC. The Ice platform already has language bindings for C++, Java, .NET, Python, Ruby and PHP which covers a pretty wide spectrum. It is also supported on all mainstream OS's and there is Ice-E for small footprint embedded applications with full interoperability with Ice, so extending the bus into embedded controllers is an interesting avenue to explore.
It is very straight forward to replace any part of the system with a different part. For example, in most systems the GUI hangs everything together. This system does not even require a GUI as long as there is some means to poke in the appropriate events to run the system.
Project release information, SVN and downloads are hosted on Google Code, see the User Guide for installation instructions.