The can be used for testing out communications and software. It comes with two mother boards known as Transceiver Evaluation or TrxEB boards and some CC11xL series radio daughter boards with built-in PCB antennas - more photos and information here. It is possible to achieve full home coverage, and more likely an entire street depending upon location. The CC11xL devices support multiple bands particularly the 868MHz and 900MHz bands for Europe and US regions.
I was interested in eventually building up a larger network of devices that can be used to forward information from one location or node to another, all wirelessly.
For testing out interesting packet forwarding or path selection strategies, more than a couple of development boards are needed, and probably they need to be tested in a realistic environment. They are rather large, they look quite interesting with their fancy LCD screen and therefore in my home town they would be stolen if I left them outside for any length of time unattended.
Another option is to make use of TI’s LaunchPad and BoosterPack ecosystem, which is smaller and can be packaged up a bit more discreetly.
The aim in this initial piece of work was to interwork the full-blown CC11XL development kit with the smaller LaunchPad/BoosterPack combination, so that the LaunchPad/BoosterPack pairs can be used during software development as nodes that do not require a display (such as intermediate nodes), and the Development Kit boards can be used for the nodes of interest where data is needed from the LCD screen, such as user interfacing endpoints. To make it clearer the diagram here shows the proposal. The red paths can be primary paths, but the blue path can be a backup one.
What are LaunchPads/BoosterPacks?
Texas Instruments LaunchPad boards are microcontroller boards, and most can be used in a similar manner to Arduino boards. A development environment called ‘Energia’ is near-identical to Arduino’s interactive development environment (IDE). Alternatively, LaunchPad boards can be programmed using a more advanced IDE known as Code Composer Studio (CCS).
BoosterPacks are ‘shields’ or accessory boards intended for plugging onto the LaunchPad boards. I used a and an (photo below) that contains a small Anaren transceiver module which internally contains the CC110L integrated circuit. I also used an , which comes with a lithium ion cell and can be used for powering LaunchPad projects. The end solution was a stack of LaunchPad and the two BoosterPacks as shown in the photo at the top of this post, with the Li-Ion cell in-between.
Some slight hardware modification needs to be done to the battery BoosterPack before the sandwich can be made; this is described later.
Working with the CC110L Radio Transceiver Integrated Circuit
The TI CC110L has a nice, straightforward interface. It is configured and controlled using a serial peripheral interface (SPI). Some optional outputs are available from the CC110L, which can be monitored to know what the device is internally doing.
Once configured, any data that needs transmission is send to the CC110L using the SPI wires too.
Using the spectrum analyzer, a lot of knowledge had been gained. Now it was time to dive into the code. The CC11xL development kit comes with the full source code, and this was examined. The code was not directly ported, but was used to adapt Anaren’s demo software supplied with their BoosterPack, intended for a LaunchPad. As a first step the modified software was run on the evaluation module supplied with the development kit, by soldering on some wires and connecting to the LaunchPad to create a hybrid, Doctor Moreau style.
This hybrid was tested as shown in the short video clip below; the radio noise in the background was useful as a quick aid to know that transmissions were occurring.
The next step was to make some modifications to get the Anaren BoosterPack up and running.
The actual Anaren module that is pre-soldered on it is pretty tiny, smaller than a postage stamp. For creating custom projects the pinout is shown below from the datasheet; apart from some supply decoupling no other circuitry is needed. The connections needed to the microcontroller are the SPI wires, an SPI bus-select pin (*CSN) and a couple of optional outputs marked GDO0 and GDO2.
Internally the Anaren module has a 27MHz crystal, whereas the TI evaluation modules have a 26MHz crystal. This means that some register values are different. To get the correct values, Texas Instruments has an excellent piece of software called SmartRF studio; it is essential for development with the CC11xL family and for working with any other wireless connectivity integrated circuits from TI. The diagram below shows how to use it to select parameters (modulation scheme, frequency, bitrate and so on) and the output is a list of register settings that can be exported in multiple formats.
Once this was done, the next step was to get the LaunchPad and Anaren BoosterPack ready for mobile use. This was achieved using the Element14 battery BoosterPack as mentioned earlier. The photo below shows some modifications that are required.
Circled in green above are two resistors (R11, R13) that need to be desoldered; these are part of the circuit intended to provide charge and power status to the LaunchPad but they clash with the Anaren board so they need removing.
Shown in blue are two tracks (I2C SDA and SCL) that need cutting; this was achieved by drilling out the copper layer (I didn’t drill all the way through, but that is possible too).
In future the SDA and SCL lines could be easily rerouted by taking the signals from a couple of resistors shown in the photo below, and soldering them to the desired new pins. To achieve that I drilled a hole large enough in future to pass a couple of kynar wire links from the resistors onto the protruding pin side of the board.
Testing the LaunchPad board
Here is the final result:
With the interworking done, the possibility exists to greatly extend the number of nodes at low cost. Future experiments will look at modifying the software to send more intelligence in the packets of information, with the aim of controlling packet forwarding based on some rules yet to be determined. This is all experimental at the moment while I’m still learning how to use the CC110L series.