[ota15] back to binary !
TRANSCRIPT
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
http://makers.sigfox.com Twitter: @nlesconnec
Github: @nicolsc