[OTA15] Back to binary !

48

Transcript of [OTA15] Back to binary !

Page 1: [OTA15] Back to binary !
Page 2: [OTA15] Back to binary !

Back to binary !How the low bandwith SIGFOX technology can allow truly autonomous devices to connect to the Internet

Over The Air 2015

Page 3: [OTA15] Back to binary !

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

Page 4: [OTA15] Back to binary !
Page 5: [OTA15] Back to binary !

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

Page 6: [OTA15] Back to binary !

Sigfox Basics

• A radio communication protocol, dedicated to the IoT

• A global operated network

• Low Power Wide Area

• Main focus : energy efficiency

Page 7: [OTA15] Back to binary !

Sigfox Basics

• Indoor & outdoor use

• Two-way communication. From & to the device

• Up to 140 messages per day

• Compliant with ETSI & FCC regulations

Page 8: [OTA15] Back to binary !

Out-of-the-box

• No configuration needed

• No pairing

• No ever-changing hub credentials to set

Page 9: [OTA15] Back to binary !

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

Page 10: [OTA15] Back to binary !

Low bandwidth

• Emission rates

• Europe: 25mW / 100 bits/s

• US : 100mW / 600 bits/s

• 12 bytes / message

Page 11: [OTA15] Back to binary !

12 bytes !?

Page 12: [OTA15] Back to binary !

12 bytes is

• 12 ASCII characters

• Hello World barely fits

Page 13: [OTA15] Back to binary !

Forget bad habitudes

• Bandwidth is not that free

• No overhead needed

• No need to be human eye friendly

Page 14: [OTA15] Back to binary !

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, ..

Page 15: [OTA15] Back to binary !

Do you really need the value ?

• Delta maybe enough

• Scenario from a pre established list

Page 16: [OTA15] Back to binary !

GPS example

Page 17: [OTA15] Back to binary !

St John’s Church, Hoxton

• Latitude: 51° 31’ 48,4608 N

• Longitude: 0° 5’ 8,6424 W

Page 18: [OTA15] Back to binary !

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>

Page 19: [OTA15] Back to binary !

XML, honestly

<?xml version="1.0"?> <pos> <lat>51°31’48,4608N</lat> <lng>0°5’8,4624W</lng> </pos>

Still 94 bytes

Page 20: [OTA15] Back to binary !

JSON + schema.org

{

"latitude":"51°31’48,4608N",

"longitude": "0°5’8,4624W"

}

70 bytes

Page 21: [OTA15] Back to binary !

JSON{ "lat":"51°31’48,4608N", "lng": "0°5’8,4624W" }

59 bytes, better

{

"lat":51.5301278,

"lng": -0.0857343

}

43 bytes !

Page 22: [OTA15] Back to binary !

Down to binary

• North/South : 1 bit

• East/West : 1 bit

• Latitude: 21 bits

• Longitude: 24 bits

Page 23: [OTA15] Back to binary !

Shenanigans ?

• True range of possible values ?

• Clever algorithms (available online ;))

Page 24: [OTA15] Back to binary !

What is it good for ?

Page 25: [OTA15] Back to binary !

Absolutely everything ?

• NO

• Independent devices

• Not that talkative

Page 26: [OTA15] Back to binary !

Independant ?

• Battery-operated

• Direct internet connection

• No maintenance

Page 27: [OTA15] Back to binary !

Sexy Kickstarter Projects

Boring IoT

Useful

Page 28: [OTA15] Back to binary !

Current use cases

• Existing solutions in various sectors

• Metering & Utilities

• Security

• Tracking

• Agriculture

• Public services

Page 29: [OTA15] Back to binary !

Water metering Fire hydrants

Page 30: [OTA15] Back to binary !

Public equipment

Page 31: [OTA15] Back to binary !

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…

Page 32: [OTA15] Back to binary !

Agriculture

• Environment monitoring: soil moisture, temperature, sun exposure, ..

• Herd geolocalisation

• Livestock health monitoring

Page 33: [OTA15] Back to binary !

DIY Projects

• Recent projects

• Connected wine cellar

• Cat bowl scale

• Garden hydrometry

• …

Page 34: [OTA15] Back to binary !

When, where & how ?

Page 35: [OTA15] Back to binary !

When

NOW

Page 36: [OTA15] Back to binary !

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 :)

Page 37: [OTA15] Back to binary !

Where - US• Live coverage

• San Francisco

• New York

• Late 2015/Early 2016

• Atlanta

• Chicago

• Los Angeles

• Austin - Dallas - Houston

Page 38: [OTA15] Back to binary !

Where - spot coverages• Various cities covered in Europe, Asia & Latin America

• Bogota

• Dublin

• Milan

• Munich

• Santiago

• Seoul

• Warsaw

Page 39: [OTA15] Back to binary !

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

Page 40: [OTA15] Back to binary !

Dev Kits

• Dev kits available for Arduino, Raspberry Pi

• Compatible with any platform able to use a serial communication

Page 41: [OTA15] Back to binary !

Send a message

• Modules are controlled through AT commands

• Send frame : AT$SF=[hex byte][hex byte][hex byte]..

• That’s it !

Page 42: [OTA15] Back to binary !

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

Page 43: [OTA15] Back to binary !

Example• My values

• A: 17568 —> 0100010010100000

• B: 17 —> 010001

• C : state #3 —> 10

• Frame : 01000100 10100000 01000110

• AT$SF=44 A0 46

Page 44: [OTA15] Back to binary !

Data handling

• Yours

• 3 ways to access them

• Web interface

• REST API (pull)

• HTTPS Callbacks (push)

Page 45: [OTA15] Back to binary !

Quick Demo

« It worked perfectly an hour ago »

Page 46: [OTA15] Back to binary !

Quick Demo

RFID demo live server is here :

http://bit.ly/ota-rfid-demo

(+ links to source code)

Page 47: [OTA15] Back to binary !

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

Page 48: [OTA15] Back to binary !

Nicolas Lesconnec Developer & Maker Evangelist

[email protected]

http://makers.sigfox.com Twitter: @nlesconnec

Github: @nicolsc