SIGFOX Makers Tour - Dublin

nicolsc-slides 692 views 101 slides Mar 11, 2016
Slide 1
Slide 1 of 101
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44
Slide 45
45
Slide 46
46
Slide 47
47
Slide 48
48
Slide 49
49
Slide 50
50
Slide 51
51
Slide 52
52
Slide 53
53
Slide 54
54
Slide 55
55
Slide 56
56
Slide 57
57
Slide 58
58
Slide 59
59
Slide 60
60
Slide 61
61
Slide 62
62
Slide 63
63
Slide 64
64
Slide 65
65
Slide 66
66
Slide 67
67
Slide 68
68
Slide 69
69
Slide 70
70
Slide 71
71
Slide 72
72
Slide 73
73
Slide 74
74
Slide 75
75
Slide 76
76
Slide 77
77
Slide 78
78
Slide 79
79
Slide 80
80
Slide 81
81
Slide 82
82
Slide 83
83
Slide 84
84
Slide 85
85
Slide 86
86
Slide 87
87
Slide 88
88
Slide 89
89
Slide 90
90
Slide 91
91
Slide 92
92
Slide 93
93
Slide 94
94
Slide 95
95
Slide 96
96
Slide 97
97
Slide 98
98
Slide 99
99
Slide 100
100
Slide 101
101

About This Presentation

SIGFOX Makers Tour Dublin
* What is Sigfox ?
* Technical informations
* Use cases
* Hardware solutions
* Cloud integrations


Slide Content

#12 DUBLIN - 2016.03.09

Schedule
Intro
Slides - All about Sigfox
Demos .. hopefully
Workshop - Your turn to work
Enjoy !

About us
Anthony Charbonnier
Startup Relations Manager
Nicolas Lesconnec
Developer & Maker Evangelist
Will Ferguson
VT Networks COO
Carles & Bastian
thethings.io
#SigfoxMakersTour

Sigfox basics

About Sigfox
Sigfox is not selling chips
Sigfox is not building connected solutions
Sigfox has invented a radio protocol
Sigfox operates a global network

Why Sigfox ?
Already plenty of communication protocols around !
Gateway-based solutions not suited for independent things
A protocol designed for the IoT, not an existing one tweaked to
address it

New possibilities
Existing solutions: Cheaper connection & extended battery life
Enables totally new IoT applications
Backup connectivity for higher bandwidth devices

How to communicate
Detect something to send (that’s the hard part)
Power on the communication module
Send
Message is picked up by the network
Data is received on your server

How hard ?
Send an AT command
You receive an HTTP Request on your application server

Core concepts

Energy efficiency
The Sigfox protocol has been designed to maximise energy
efficiency
Tx: ~20-35 mA during a few seconds (25mW ; 14dB)
Key factor: idle consumption (unconnected 99.x% of the time)
Idle consumption: a few µA

Out of the box
No configuration, no pairing, no signalisation
The network is serving the devices, not the other way round
A message is picked up by several base stations ; validation &
reduplication are handled by the network

Very Long Range
Best case scenario
+100km between transmitter & receiver (base station)
Real life
A few kms (city) to tens of kms (countryside), depending on
the topography

Outdoor & Indoor
Sigfox works well indoor
Of course, you need to consider signal attenuation (~20dB)

Two-way communication
Devices can receive updates sent from your application server
Each communication is instigated by the device

Small messages
Useful payload: 12 bytes
Up to 140 times each day
100 bits/s

Payload examples
GPS coordinates (lat x lng) : 6 bytes
Temperature: 2 bytes
State reporting : 1 byte
Heartbeat, update request : 0 byte
And … who needs full bytes when 5 bits are enough ?

Payload examples
A (int): 17568 —> 0100010010100000
B (0-32): 17 —> 010001
C (state): 3 —> 10
Frame: 01000100 10100000 01000110
Frame: 0x44 0xA0 0x46
AT$SF=44A046

Security
Each message is signed with a key unique to the device
Messages can be encrypted or scrambled
No keys exchanged over the network, no handshake
Security is an ever ongoing effort

Radio properties
Great tolerance to interferors
Jamming resistant
Interception is hard: UNB & frequency diversity

Jammers

Interferors

Low cost of communication
Small subscription fees
Short SW development cycle
Low cost HW components

Ultra Narrow Band

Sigfox use
The network currently monitors a 200KHz part of the spectrum
Each message is ~100Hz wide

UNB Analogy

Undesired signals (aka real life)

Sigfox messages

Sigfox messages

Frequencies
Sigfox uses unlicensed frequencies
Compliant with regulations
Europe : 868MHz (ETSI 300-200)
USA: 902MHz (FCC part 15)

Coverage

Global network
Sigfox is offering a global network, not a solution to build
private networks
Roaming is included is the standard service
Devices will work the same all over the network

Current coverage
Nationwide coverage
France
Netherlands
Portugal
Spain

Countries under rollout
Belgium
Czech Republic
Denmark
Germany
Ireland
Italy
Luxemburg
Mauritius
United Kingdom
United States

United States
In production now
San Francisco & part of the bay area
In production with a couple of months
10 of the larger metropolis (NY, LA, Chicago, Dallas, ..)

Network rollout started last autumn
Irish Sigfox Network Operator

Demo #1
BASIC HELLO WORLD MESSAGE

Use cases
EXAMPLES OF SOLUTIONS ALREADY IN PRODUCTION

What does IoT means ?
Sexy stuff : connected gadgets
Boring
& useful
IoT

Perfect Sigfox use cases
Independant solutions
no user, no power socket, no local network
Shy devices
Doesn’t speak much, but only useful data

Metering & utilities

Smart City

Logistics
Track any good or equipment (Sigfox + GPS)
Aftertheft solutions

Predictive maintenance
Monitor an equipment (industrial, railroads, public lighting, ..)
Be alerted when it’s about to fail
Schedule maintenance efficiently

Predictive maintenance
Monitoring beer keg
temperature

If this then that
Press a button
Send an empty message
Trigger a configurable action

« Silver Economy »
Lots of use cases :
Heath monitoring, fall detection, ..
Tracking the community-subsidized services

Agriculture
Soil & crops monitoring
Cattle tracking
Health monitoring

Sigfox foundation
Offer free network coverage for non-profit applications
First live project: Antarctica scientific mission

You ?
Electronics are getting easier & cheaper
Very easy to get started using platforms like Arduino
Lot of funny things to make
… And lots of $$ too

Hardware solutions

Hardware
SIGFOX is not a hardware vendor
Ecosystem of established partners : Atim, Atmel, OnSemi,
SiLabs, TI, …
More to come soon

Solutions
Modules
Easy to get started
Atim, Telit, TD
Quite expensive for
industrialisation
SoC
Cheaper
Atmel, OnSemi
Skills needed
Ref.Designs
Transceivers
SiLabs, Texas
Instruments
Cheapest solution
Skills++ needed

Antenna
Not optional :)
Best way to ruin a great device is to mess the antenna
integration
Balance between design & performance
We’re here to help you get in touch with specialists if needed

Prototyping
Arduino & Raspberry Pi kits available from various websites
Check out http://makers.sigfox.com for the full details

Cloud

Get your data
View messages : Sigfox web platform
Get messages : REST API (pull)
Receive new messages : HTTP Callbacks (push)

Callbacks
Each message received from your devices will be forwarded
to your application server
Customisable headers & body
You can set more than one callback

3rd party platforms
You can easily push your data to a 3rd party platform :
AWS, Azure, Telefonica, thethings.iO, OVH, …

Downlink messages
A downlink message can be
Semi automatic : sent directly by the network
Customised : sent by your own application server

Semi automatic callback
Simply set up the message to send, it can be:
an hardcoded frame
pre defined variable (timestamp, rssi)

Downlink callbacks
Same mechanism as for the uplink callback, set an URL
Reply with the 8-byte downlink frame
Respect this JSON format :
{
'{{deviceId}}': {
'downlinkData':{{data}}
}
}

Workshop
YOUR TURN TO WORK

Contribute

Contribute
Don’t forget to publish your experiments
Code Samples, HW design, fails … will be useful to other
people
We all start by copy/pasting ;)
Your own website, github, hackster.io, instructables … your call!

We’re hiring !
Maker In Residence
(internship)
Build useful and/or funny
prototypes
Test new hardware
Publish & document them
Field Evangelist Europe
Run workshops
Talk at conferences
Support the community

Useful Resources
Workshop slides
http://bit.ly/SMTAkeru
Q&A
http://ask.sigfox.com
Github
http://github.com/sigfox/
makers-tour-resources
http://github.com/nicolsc
Add your own !

Register
http://backend.sigfox.com/activate
Provider: Snootlab
Country : Ireland
Device ID: sticker on the board
PAC: check the list

The things.io
Data management platform
Free to use for attendees

thethings.iO analytics (1 of 3)
Go to https://sigfox.thethings.io

Register @ thethings.iO
https://sigfox.thethings.io
Register user
Create a Sigfox product

HELLO WORLD

Hello World Sketch
Open the Arduino IDE
Select the board
Board type : Arduino Uno
Try one of the File > Examples samples

Hello World Sketch
#include <SoftwareSerial.h>
SoftwareSerial sigfox(5,4);
void setup(){
Serial.begin(9600);
sigfox.begin(9600);
sigfox.write("AT$SF=48 45 4c 4c 4f 20 57 4f 52 4c 44" );
}
void loop(){
while (sigfox.available()){
Serial.print(sigfox.read());
}
}

Message received ?
http://backend.sigfox.com
Navigate to the devices menu in the top bar
Click on the ID of your device
Enter the messages menu from the left navigation column

First callback

Callback setup
Device Type menu
Click on your device type name
Enter the Callbacks menu
Select new default callback

Callback setup
TYPE : DATA UPLINK
Choose a CHANNEL : URL (EMAIL for a quick test)
Url pattern: URL of your own server
Use HTTP method: GET/POST/PUT

Callback status
In the Devices > Messages panel, you have a indicator of the callback
status (an arrow)
Black : in progress
Green : Callback OK
Red : Callback KO
Click the arrow to display details.
KO means at least one of the callbacks failed

Downlink

How does it work ?
Send a message, with a downlink flag
Once message is sent, the module gets back to sleep
After 20s, it will wake up automatically, in Rx mode
It will wait 20s for a downlink message
Afterwards it will get back to sleep

Downlink setup
To setup an automatic callback :
Device Type > Info > Edit
In the Downlink data settings, set the following :
Downlink Mode : DIRECT
Set the following value : 123400000BADCAFE

How to request a downlink
Same AT command, with additional parameters
AT$SF=[hex byte]*, 2, 1

Handle the response
When entering Rx mode, the module will display
+RX BEGIN
Received frame (if any) will be displayed as:
+RX= [byte] [byte] [byte] [byte] [byte] [byte] [byte] [byte]
End of Rx mode
+RX END

Downlink callback
In Device Type > Info > Edit
change Downlink mode to CALLBACK
Create a new default callback, with TYPE : DATA | BIDIR
Then set up your URL

Sample input output
AT$SF=55 50 4C 49 4E 4B, 2, 1
OK
+RX BEGIN
+RX=44 4F 57 4E 4C 49 4E 4B
+RX END

Sample code
Arduino
https://github.com/sigfox/makers-tour-resources/tree/
master/Akeru/downlink
Server side
https://github.com/nicolsc/sigfox-downlink
PR welcome in different languages

FIRST SKETCH
WITH THETHINGS.IO CODE

Random number Sketch
Download the akeru library inside thethings.iO sigfox github
and place it to your Documents > Arduino > Libraries folder.
Open the Arduino IDE
Copy & Paste thethings.iO Arduino code from thethings.iO
Sigfox github
Board type : Arduino Uno

Message received ?
http://backend.sigfox.com
Navigate to the devices menu in the top bar
Click on the ID of your device
Enter the Statistics menu from the left navigation column

thethings.iO analytics (1 of 3)
Go to Things Manager > Product Details

thethings.iO analytics (2 of 3)

thethings.iO analytics (3 of 3)
Go to Cloud Code > Functions
Edit the sigfox_parser Function (thethings.iO
github)

thethings.iO analytics (3 of 3)
Make a cool dashboard!

Go further
USING AN AKERU BOARD

Other AT commands
AT&V : Detailed info about the module
AT$SF=[hex byte]* : Send a frame
ATS300=[int] Schedule the emission of a keep-alive frame every [int] hours
AT&W : Save settings
ATI26 :Module temperature in °C
ATI27 : Module idle power supply voltage

Other AT commands
Arduino sample code + link to full references of the TD1208
module
https://github.com/sigfox/makers-tour-resources/tree/master/Akeru/mirror

Use the module only
The module has a Cortex M3 than you can reprogram
Checkout the TD Next website for instructions
http://rfmodules.td-next.com/sdk/

Keep in touch
Nicolas
[email protected]
twitter: @nlesconnec
Anthony
[email protected]
twitter: @Anth0_
Carles & Bastian [email protected] [email protected]
twitter: @thethingsiO