Share on Facebook Tweet on Twitter Share on LinkedIn Share by email
Colombo SDK

The Colombo SDK is a software-development kit and simulator environment for experimenting with software-defined radio (SDR) protocol code. It enables development and testing of the distributed SDR code on a PC before testing on real SDR platforms. For full details please read the Colombo SDK Overview document.

The SDK is available as a beta release for experimentation:

Colombo SDK Download

We have ported the Colombo SDK to support the MSR Asia SORA SDR platform but it has also been tested with other SDR platforms (e.g. Lyrtech SFF SDR) although the later is not part of the release.

Colombo SDK will be presented as a demo at the ACM MobiCom 11 conference.

The Colombo SDK was developed in the Networks, Economics and Algorithms group at Microsoft Research Cambridge.

Colombo SDK

Architecture Overview



Colombo is a software development kit (SDK) that speeds up prototyping of a MAC design for software defined radios (SDR). An SDR MAC is typically developed and tested on a single SDR, and it is optimized to meet strict timing requirements and constraints on interaction with other layers (e.g. MAC running in kernel code). Once a MAC is deployed in a distributed environment, new types of bugs may surge due to complex interactions among devices, and with the wireless environment. These bugs can reflect on correctness or performance of the MAC and they are typically very hard to find. Limited debugging capabilities in a test-bed in the wild, and constantly changing environment further aggravate the problem.

Colombo is designed to help a developer correct the bugs arising from these interactions. It takes an arbitrary SDR MAC code and runs it in Colombo simulation environment, where execution is reproducible and bugs are easy to find. The existing network simulators (such as ns-2 and Qualnet) are based on discrete-event simulation architecture and require a specific programming model for MAC code. SDR MAC code requires substantial modification to run on these simulators, which obfuscate the original problem. The key advantage of Colombo is that it virtualizes the SDR environment and it runs the existing SDR MAC code with minimal changes. All the bugs are discovered directly in the original code. By deploying Colombo in two of our research projects we have shorten the design cycle of each project by an order of magnitude. Colombo can also be used to test performance of the proposed MAC in a larger network.

The core of Colombo is a continuous event simulator. The simulator is interfaced to a particular SDR architecture through a shim layer tailored for a specific SDR architecture. We have released a shim layer for SORA, and we have also built an internal shim layer for the Lyrtech SFF SDR. However, the architecture is easily extendible to other SDR radios.