Back to binary !
How the low bandwith SIGFOX technology can allow
truly autonomous devices to connect to the Internet
Over The Air 2015
Me
• Web development background, started in 2000
• Web dev turned D.CTO at lequipe.fr, french
leading sports website
• Worked 4 yrs in a startup, focused on multi-
device apps, then on connected solutions only
• Dev & Maker Evangelist @SIGFOX since 6
months
Why SIGFOX ?
• Existing technologies were not adapted to the
IoT world to come
• Mobile networks evolution has been focused on
increasing bandwidth
• Many (most ?) IoT devices will only exchange a
few informations every now and then
Sigfox Basics
• A radio communication protocol, dedicated to
the IoT
• A global operated network
• Low Power Wide Area
• Main focus : energy efficiency
Sigfox Basics
• Indoor & outdoor use
• Two-way communication. From & to the device
• Up to 140 messages per day
• Compliant with ETSI & FCC regulations
Out-of-the-box
• No configuration needed
• No pairing
• No ever-changing hub credentials to set
Energy efficiency
• ~25mA in emission, during a few seconds
• No registration on the network, no negotiation :
power on, send, power off is the default behaviour
• 99% of the time, so-called connected objects are
not connected !
• Idle consumption : a few µA
Low bandwidth
• Emission rates
• Europe: 25mW / 100 bits/s
• US : 100mW / 600 bits/s
• 12 bytes / message
12 bytes !?
12 bytes is
• 12 ASCII characters
• Hello World barely fits
Forget bad habitudes
• Bandwidth is not that free
• No overhead needed
• No need to be human eye friendly
Meaningful bits only
• No overhead or descriptions
• No oversize data types, tailor to your needs
• Don’t use a 2-byte integer when range of
possible values fits in 8 or 12 bits
• Beware of longs, floats, ..
Do you really need
the value ?
• Delta maybe enough
• Scenario from a pre established list
GPS example
St John’s Church, Hoxton
• Latitude: 51° 31’ 48,4608 N
• Longitude: 0° 5’ 8,6424 W
XML
<?xml version="1.0"?>
<position>
<latitude>
<degrees>51</degrees>
<minutes>31</minutes>
<seconds>48,4608</seconds>
<hemisphere>North</hemisphere>
</latitude>
<longitude>
<degrees>0</degrees>
<minutes>5</minutes>
<seconds>8,6424</seconds>
<hemisphere>West</hemisphere>
</longitude>
</position>
XML, honestly
<?xml version="1.0"?>
<pos>
<lat>51°31’48,4608N</lat>
<lng>0°5’8,4624W</lng>
</pos>
Still 94 bytes
JSON + schema.org
{
"latitude":"51°31’48,4608N",
"longitude": "0°5’8,4624W"
}
70 bytes
JSON
{
"lat":"51°31’48,4608N",
"lng": "0°5’8,4624W"
}
59 bytes, better
{
"lat":51.5301278,
"lng": -0.0857343
}
43 bytes !
Down to binary
• North/South : 1 bit
• East/West : 1 bit
• Latitude: 21 bits
• Longitude: 24 bits
Shenanigans ?
• True range of possible values ?
• Clever algorithms (available online ;))
What is it good for ?
Absolutely everything ?
• NO
• Independent devices
• Not that talkative
Independant ?
• Battery-operated
• Direct internet connection
• No maintenance
Sexy Kickstarter Projects
Boring IoT
Useful
Current use cases
• Existing solutions in various sectors
• Metering & Utilities
• Security
• Tracking
• Agriculture
• Public services
Water metering
Fire hydrants
Public equipment
Call to action
• A button & nothing else, to
trigger any pre-determined
action
• « Mommy, I’m home ! »
• « Get me a cab »
• Repeat last order, concierge,
customer support…
Agriculture
• Environment monitoring: soil moisture,
temperature, sun exposure, ..
• Herd geolocalisation
• Livestock health monitoring
DIY Projects
• Recent projects
• Connected wine cellar
• Cat bowl scale
• Garden hydrometry
• …
When, where & how ?
When
NOW
Where - Europe
• Live Nationwide coverage
• France, Netherlands, Spain
• UK: ~10 cities currently
• Rollout in progress
• Belgium, Czech Rep, Denmark, Luxembourg, Portugal
• A couple of nice announcements to be made in the
coming weeks :)
Where - US
• Live coverage
• San Francisco
• New York
• Late 2015/Early 2016
• Atlanta
• Chicago
• Los Angeles
• Austin - Dallas - Houston
Where - spot coverages
• Various cities covered in Europe, Asia & Latin America
• Bogota
• Dublin
• Milan
• Munich
• Santiago
• Seoul
• Warsaw
How
• SIGFOX is not a silicon vendor
• Standard transceivers & SoC from various
enablers : Atmel, SiLabs, Texas Instruments,
Axsem, Atim..
• Certified modules (radio + µC) from Telecom
Design, Telit, Adeunis
Dev Kits
• Dev kits available for Arduino, Raspberry Pi
• Compatible with any platform able to use a serial
communication
Send a message
• Modules are controlled through AT commands
• Send frame : AT$SF=[hex byte][hex byte][hex
byte]..
• That’s it !
Example
• I need to send the following
• A: a 2 byte-integer : 16 bits
• B: a 0-32 value : 6 bits
• C: a state, within 4 possibilities : 2 bits
Example
• My values
• A: 17568 —> 0100010010100000
• B: 17 —> 010001
• C : state #3 —> 10
• Frame : 01000100 10100000 01000110
• AT$SF=44 A0 46
Data handling
• Yours
• 3 ways to access them
• Web interface
• REST API (pull)
• HTTPS Callbacks (push)
Quick Demo
« It worked perfectly an hour ago »
Quick Demo
RFID demo live server is here :
http://bit.ly/ota-rfid-demo
(+ links to source code)
Try by yourself ?
• We just launched a « Maker Tour », half-day
events around our technology.
• Get to know how to use SIGFOX, get a dev kit,
start prototyping, and come home with new
hardware & new projects ideas :)
• Details & registration : makers.sigfox.com/tour
Nicolas Lesconnec
Developer & Maker Evangelist
nicolas.lesconnec@sigfox.com
http://makers.sigfox.com
Twitter: @nlesconnec
Github: @nicolsc

[OTA15] Back to binary !