Software apps and online services
The project I document here is no longer valid. Texas Instrument pulled SigFox support. You can no longer get the binaries and keys needed to connect to SigFox from a CC1310.
SIGFOX is a commercial network that uses the unlicensed sub-1 GHz frequency bands. The CC1310 is able to connect to that network.This blog documents the steps I've taken to make this work. There's more to this than the official instructions.
edit: I got informed by a fellow hackster.io member that TI no longer supports this, and does not provide the necessary sources to reproduce this exercise. And you need those sources because they contain encrypted data that's specific for your device's MAC address.
What do you need?
- CC1310 LaunchPad
- TI-RTOS for CC1310
- SmartRF Flash Programmer 2
- A header file from Texas Instruments with an encrypted key/id
- Firmware project from SIGFOX
- account on SIGFOX backend
What do you get?
You'll get a design that can send information to the SIGFOX network. Secure! Encrypted! Available from wherever there's SIGFOX coverage.I've deliberately used the word send. The CC1310 at this moment supports posting data. Retrieving messages from the network is in development.To understand the SIGFOX network, that doesn't matter. And only sending is a valid use case for a 'sensor + radio' project.
Out of the box you'll be able to send information you type in a terminal. You can consult the data on the SIGFOX web backend. That's a good end-to-end example. Your data (in reality this could be sensor data you collect on the CC1310) has made it safely to the internet, using just a sub-1 GHz radio.
Starting point: CC1310 and tool chain
I'm using a CC1310 LaunchPad and Code Composer Studio 7I've installed TI-RTOS for the CC1310 SimpleLink family via the CCS Resource Explorer. These tools are the basis for your CC1310 projects. I'm assuming you have these set up and know how to compile an run existing project.
The SmartRF Flash Programmer V2 is also needed, available for download from TI.With all of this set up, you can collect the info needed to contact TI and SIGFOX for the pieces of the puzzle.
Getting the MAC address of the CC1310
This is the first piece of information you need to contact TI and SIGFOX. Use SmartRF Programmer to retrieve it from the controller.
- plug the LaunchPad into your computer
- start SmartRF Programmer
- select CC1310 in the tree view on the left (it's your LaunchPad)
- select the MAC Address tab
- press the top Read button
- copy the MAC address
Ask Header File and CCS Project
Follow these instructionsto get the header file with encrypted key from TI and the CC1310 CCS project from SIGFOX.
I've sent this mail to TI:
To: firstname.lastname@example.orgSubject: request for sigfox_data.h file Message:
Dear TI team,Can you please send me the “sigfox_data.h” file for my CC1310 LaunchPad?Full legal company name: XXXXXXXX
First and last name of employee being granted access XX XXX MAC: XX XX XX XX XX XX XX XXThank you,XXX XXXX
And this one to SIGFOX:
To: email@example.comSubject: request for a CC1310 launch-pad solutionMessage:
Dear sigfox team,Can I please get a the example project for sigfox connectivity with Texas Instruments CC1310.I’m following TI’s procedure here to get in touch with you:http://processors.wiki.ti.com/index.php/Sigfox_CC1310_SDK_Demo_Users_Guide#Obtaining_the_Project_from_SigfoxThe purpose of my request is to XXXXXXXXXFull legal company name: XXXXXXXX
First and last name of employee being granted access to the SIGFOX network: XX XXX
Country and state, or region where development work will occur: XXXXX
Country or countries of target product deployment: XXXThank you,XXX XXXX
Build and Run the Project for the First Time
Save the project archive you received from SIGFOX.Start CCS and import the archive into your workspace via Project -> Import CCS Project -> Select Archive fileCheck the Copy projects into workspace option.
Then copy the header file you received from TI in the project's apps folder. Overwrite the existing file.
A few fixes that make the project buildable
In apps/sigfox_data.c move #include <sigfox_data.h> after #include "sigfox_types.h". In CC1310DK_7XD.c replace UARTCC26XX_HWAttrsV1 with UARTCC26XX_HWAttrsV2
For Europeans and other regions that don't use 923 MHz
You need to select the 686 MHz profile. In apps/sigfox_demo.h replace #define MODE_ARIB with #define MODE_ETSI. Now build the project, load and execute it (can be done in one step by pressing the Debug button).
In the debugger, start the program.
Get Device ID and PAC
The next step is to retrieve two codes that you need to get a SIGFOX backend access approved and for device registration. Your LaunchPad must be running the SIGFOX project at this time. Check the COM port of your LaunchPad (on Windows you do this with the Device Monitor):
Start your Terminal program of choise. I use PuTTY. For other terminals, check TI's instructions. COM port is the one from the Device Monitor. 115200, 8, 1, NFor your own comfort (and to see what you're typing) enable these settings:
Connect PuTTY and retrieve both codes:
Send a Second Mail to SIGFOX to White List your LaunchPad
Send a mail to the SIGFOX contact with the device ID you've just retrieved. They will white list your LaunchPad, a step that's necessary to get a SIGFOX backend account.(note: I didn't mail for this step but used a direct contact) Wait with the next step until you have confirmation from SIGFOX.
Create backend Account and Register the LaunchPad
This is the final step before the whole thing works. You don't need to mail or contact anyone from now on.Your faith is in your own hands.
Surf to the backend registry page for TI.Pick your country.
Enter the Device ID and PAC you retrieved via PuTTY.Enter the requested personal and company info until registration is completedYou get an email to set your password. Follow the instructions.
Your device is now registered.
Setting up a Connection and Send Data
Connect to SIGFOX backend, log in and select your device. At this point (I don't know if it's a mandatory step or because I did something wrong) I asked the backend to forget the unique ID that was assigned to my communication.
I then pressed the reset button of my LaunchPad. In the Terminal, I checked the frequency:
I then sent a single byte to SIGFOX:
And a string of data:
Checking the Communication
In the backend, the status of my board changed (via the Device menu):
And I could find evidence of traffic in the Statistics:
The messages are a little more difficult to find back. Click on your device's ID:
Then select the Messages option:
Spend the rest of the day navigating the backend :).
Related CC1310 blog series on element14: SimpleLink™ Sub-1 GHz Wireless Microcontroller blog series: from Unbox to Building a Transmitter