Connecting Things to the Internet with SIGFOX

| 6 Comments

A few weeks ago ekito has been invited to the first SIGFOX VASP training day at their headquarters in Labège, near Toulouse.

SIGFOX is an IoT (Internet of Things) network provider with a dedicated wireless network that makes it surprisingly easy to connect Things to the Internet. SIGFOX claims to have already full network coverage in France and now seeks to build up its network in other countries.

As participants of the VASP training day, we had the chance to take home some trial kits to make up our own mind.

About connecting IoT devices

The particularity of IoT is that sensors send very little information at very low data rates. For example, a thermometer can send a measurement once a minute. The temperature value itself can be encoded in very few bytes. No headers, no XML tags, no special syntax like JSON is required.

By today’s standards this is incredibly little information but enough to make this one little Thing worthwhile. Now imagine a swarm of thousands or even millions of these little sensors, each one providing very little bits of worthwile information. We get a big picture at an incredible resolution. The possibility to federate these little Things, I believe, is the real power of IoT.

One can take the analogy of modelling a truck load of sand. Up to now, the load of sand had been modelled as one wholesome entity. Now the load of sand can be modelled grain by grain.

Considerable breakthroughs have been made in modeling, storing and analysing large amounts of data, commonly referred to as Big Data. However up to now, with respect to IoT, one piece in the chain was missing: The ability to easily and cost-efficiently connect very large populations of sensors to the internet.

SIGFOX provides this enabling technology for IoT applications, connecting all those little worthwile things and as such creating incredible new types of applications.

What exactly does SIGFOX offer?

SigFox provides access to a dedicated long distance highly sensitive low data rate network. A maximum of 12 bytes of information can be transmitted per data burst,  every 10 seconds. Sigfox provides to its customers a radio modem chip for integration with their IoT appliactions. The chip is called TD1202. It is manufactured by the french company Telecom Design from Bordeaux.

The TD1202 radio modem chip on the starter kit’s breakout board

The TD1202 radio modem chip on the starter kit’s breakout board

The radio modem sends data bursts to base station antennas. Ideally a signal is picked up by more than one antenna. The data packet is demodulated in the base station and then sent to the sigfox data center. In the data center, packets received from the same device through several antennas are de-duplicated. The data center then forwards received data to service subscribers via registered REST-style callback web services.

sigfox schema

Subscription fees to the service depend on the number of registered devices. They can be as low as 2€ per device per year.

Examples of Use Cases

SIGFOX also showed us some current use cases, such as services to know the available parking lots in a city; or a monitoring solution for the SNCF (the French national railway) to check the vibrations by putting sensors on the rails.

So SIGFOX covers all France?

Well not quite - yet. While the network seems to have good coverage around all major cities, some blackspots still exist in rural areas. We tested SIGFOX from our office in the city centre of Toulouse and from the homes of three of our colleagues situated in rural areas around Toulouse. All tests have been executed indoors with the following results:

  • Toulouse, Place de la Bourse (ekito HQ) – ok.
  • Caraman – ok.
  • Cintegabelle – ok.
  • Gaillac – not ok.

This map shows our test results.

I have presented our results to Thomas Nicholls. He pointed out that SIGFOX recently signed a contract with TDF, a french radio antenna operator, with the objective to deploy more antennas and make their network more dense and reliable.

Hands on

Now that you have an overall understanding of the SIGFOX solution, we will walk through a little hands on with the starter kit.

The kit comes with a breakout board, housing the TD1202 chip, an antenna connector, an FTDI programming cable connector and another female PIN connector for hardware integrations with external boards, such as Arduino or Rasperrry Pi.

IMG_0255.scale

First, attach the antenna and connect the kit to your computer with the provided FTDI – USB cable. Be careful to plug the FTDI cable the right way around into the breakout board. The black cable goes with the pin on the left marked “FTDI BLACK”.

Make sure there is a serial terminal program installed on your Computer.

In MacOS and Linux use the screen utility. In Windows use putty. Here are the install instructions for each operating system:

Ubuntu

Install screen with:

$sudo apt-get install screen

MacOS

screen should already be installed.

Download and install the FTDI driver that can be found at http://www.ftdichip.com/Drivers/VCP.htm.

Windows

Download and install putty from http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html.

Install the FTDI driver. Plug in the cable connected to the breakout board. Then wait for the driver to install automatically. A new emulated COM port should appear, in “System Peripherals”, usually COM3.

ScreenHunter_01 May. 22 12.01

On your computer, open a serial terminal. General connection parameters are:

9600 baud, 8 bits, 1 stop bit, no parity, no flow control

MacOS:

$ sudo screen /dev/tty.usbserial-FTG5H1ES 9600,cs8,istrip

Note: the device could be different, just run a ls -rtl /dev/tty* in a terminal and check for something containing “usbserial”.

Linux:

$ sudo screen /dev/ttyUSB0 9600,cs8,istrip

Note, you might not have the rights to access to your USB device. This was the case with my computer. That’s why I start the terminal as super user.

Windows:

In Windows, start putty and use the configuration shown in the two screen shots below:

ScreenHunter_03 May. 22 15.28

ScreenHunter_04 May. 22 15.28

Once the serial terminal is started, check that you can communicate with the radio modem by typing the following AT command:

at&v

This should return something as follows:

Telecom Design TD1202
Hardware Version: 0F
Software Version: SOFT1117
S/N: 0000580A
ACTIVE PROFILE
E1 V1 Q0 X1 S200:0 S300:24 S301:2 S302:14 S303:1
OK

Ok, the serial communication between your computer and the radio modem works. We just asked for some system information. The device’s serial number (580A), displayed in line 4, will be of use later on.

Now we are ready to send a message. Lets send the typical “Hello World” message. Messages are sent in binary format. So “Hello World” needs to be translated into a sequence of hexadecimals, each one representing the ASCII character of the letter in question. The website http://www.asciitohex.com/ does this very well for us. The resulting code is 48 65 6c 6c 6f 20 57 6f 72 6c 64.

The message can be sent with the following AT command:

at$ss=48656c6c6f20576f726c64

After a few seconds, the terminal should return with:

OK

To check that the message arrived at the backend server, I log into the SIGFOX management console with the credentials provided with the starter kit. From there I browse to see received messages for device 580A.

 Screenshot from 2013-05-22 16:11:21

As you can see, the message has been well received with a respectable signal strength of 16.4dB. What’s neat is that our litttle message has been decoded. It reads as expected “Hello World”.

A more sophisticated trial

My colleague Arnaud Boudou connected a starterkit to his Rasperry Pi in order to monitor battery voltage. The result is pretty impressive and can be seen on his web site. Arnaud also integrated his Rasperry Pi using the USB/FTDI cable. He registered a callback web service that is called every time a measurement is received from SIGFOX. Statistics on his page are updated accordingly.

The Rasperry Pi source code for communicating with the SIGFOX modem can be found in https://github.com/aboudou/picheckvoltage. The following code snippet from main.py illustrates how the voltage reading is sent to the SIGFOX network:

# Push data to SIGFOX network
   if SIGFOX_ENABLE == 1:
      if sigfoxPush % (SIGFOX_PUSH_RATE / REFRESH_RATE) == 0:
           import datetime
           today = datetime.datetime.today()
           sigfox.write("at$ss=" + sigfoxData().encode("hex") + "r")
           if DEBUGMSG == 1:
               print today.strftime("%Y-%m-%d %H:%M:%S - Sent to SIGFOX: "
                                  + sigfoxData().encode("hex")
                                  + " a.k.a " + sigfoxData()
                                  + "(V) in hexadecimal")
       sigfoxPush = sigfoxPush + 1
       # You don't want the counter to become too big :) 
       if sigfoxPush > (SIGFOX_PUSH_RATE / REFRESH_RATE):
           sigfoxPush = 1

The following data callback has been registered at SIGFOX, making it forward received battery voltage measurements to Arnaud’s website:

[GET] https://*********.fr/sigfox/index.php?id={device}&time={time}&signal={signal}&data={data}&avgsignal={avgSignal}&duplicate={duplicate}

Conclusion

With our hands-on session here at ekito I can conclude that SIGFOX fulfils its claim of being an enabling technology for IoT solutions. We will certainly continue our experiments to build up some more experience with it.

Share Button

Bert Poller Author: Bert Poller

Artisan logiciel, Architecte SI - je mets une chemise quand c'est nécessaire.
D'origine allemande, polyglotte pas qu'en langages de programmation. Technophile
de toutes sortes avec un regard critique sur le monde.
#JAVA #SCALA #ALM #DEVOPS #MESSAGING #DIGITAL_FABRICATION #SUSTAINABLE #COFFEE

6 Comments

  1. Thanks for a great article Bert!

    Thomas – Sigfox

  2. Pingback: Connecter des objets sur l’Internet avec SIGFOX | ekito people

  3. Pingback: Connecting Things to the Internet with SIGFOX |...

  4. Pingback: Connecting Things to the Internet with SIGFOX |...

  5. What a nice write-up, Bert! Hope life is treating you guys well! Take care!

    Peter – Kaazing

  6. Pingback: MQTT : the open road to internet of things | ekito people

Leave a Reply

Required fields are marked *.