www.riot-os.orgEmmanuel Baccelli
on behalf of the RIOT Community
RIOTAgenda
• Why?• How?• What is RIOT?
• Solving IoT technical challenge1:constraineddevices• Solving IoT technical challenge2:interoperability
• Current stand,inanutshell
RIOTAgenda
• Why?• How?• What is RIOT?
• Solving IoT technical challenge1:constraineddevices• Solving IoT technical challenge2:interoperability
• Current stand,inanutshell
SoftwarePlatforms AreCrucial
• Recent callsforOSanddata’’sovereignty’’
Snowdenpolitical scandalà strategic&privacyincentives
Androidgeneratesbillionsofdollarsà businessincentives
Advantage: extremely big business
Drawback:extreme challengeforprivacy
SoftwareplatformsareevenmorecrucialinIoT
IoT = FutureInternet’s extremity
e.g.like Arduino(butnotlikeRasberry Pi)
• GreatexpectationsforIoT,but……nostandardplatform yet,toprogrammost IoT devices!
SoftwarePlatforms forIoT?
LinuxAndroid
Moore’s law
GoalsforanIoT softwareplatform
ü long-term IoT softwarerobustness &security
ü trust,transparency &protectionofIoT users’privacy
ü faster innovationbyspreading IoT softwaredev.costs
ü less garbage with less IoT device lock-down
RIOTAgenda
• Why?• How?• What is RIOT?
• Solving IoT technical challenge1:constraineddevices• Solving IoT technical challenge2:interoperability
• Current stand,inanutshell
Howcan we achieve our goals?
• Experience (e.g.with Linux)showswe arelikely tosucceedwith aplatform that is:
§ opensource§ free§ driven byagrassroots community
• Contributors worldwide– Peoplefrom industry,academia,hobbyists/makers– Community self-organizes,follows openprocesses
• Large-scale distributed sourcecodemanagement
Geopolitical neutrality
RIOTPrinciples
RIOTPrinciples
• Free&opensourcesoftwareplatform– core distributed with non-viralcopyleft license
(aimsforlessforks=morecoherentcode+community)
Indirectbusinessmodels(likebusinesswithLinux)
RIOTAgenda
• Why?• How?• What is RIOT?
• Solving IoT technical challenge1:constraineddevices• Solving IoT technical challenge2:interoperability
• Current stand,inanutshell
RIOT : anOSthat fits IoT devices
IoT
Memory~16kB
Memory~100kBMemory~8kB
RIOT:anOSthat fits IoT devices
• RIOTis thecombination of:
q neededmemory&energy efficiency tofitIoT devices
q functionalities ofafull-fledged operatingsystem
• Advanced,consistentAPIsacross 32-bit,16-bit,8-bithardware• Full-featured,extensiblenetworkstacks
• Why?• How?• What is RIOT?
• Solving IoT technical challenge1:constraineddevices• Solving IoT technical challenge2:interoperability
• Current stand,inanutshell
RIOTAgenda
IoT Challenge1:ConstrainedDevices
ENERGYMilliwatt insteadofWatt
CPUMegahertzinsteadofGigahertz
MemoryKilobytesinsteadofGigabytes
HowRIOT solves Challenge1
• Micro-kernel architecture(contrary toLinux)àminimalrequirements around 1kBRAM
• Tickless schedulerà energy efficiency
• Deterministic O(1)schedulerà real-time
• Low latency interrupt handlerà reactivity
HowRIOTsolves Challenge1
• Consistent,powerful APIon8-bit,16-bit,32-bità preemptivemultithreading,IPC…
• Modular structure,adaptivetodiversehardwareà supportfor50+different IoT boards/devices andcounting
MCUs:ARMCortexM,TIMSP430,AVR… Radios:AT86RF233…
Zoomonhardware-dependent code
Red:musthave
Green:musthavebutshared byallportswith samearchitecture
Grey:optional forinitialporting
Task Switching,StackHandling,Interrupt Handling:done forARMCortexM3,M4andM0is ontheway
(GPIO,UART,SPI,Timers:done forSTM,Atmel,NXP…)
• EfficientHAL:minimized hardware-dependent code
HowRIOTsolves Challenge1
Well-known tools areusable!
• Compliancewith common systemstandardsü POSIXsockets,pthreadsü standard C,C++applicationcoding
à Muchshorter development life-cyclesü Run &debug asnativeprocess inLinuxü Useofwellknowndebugtoolsenabled
• Why?• How?• What is RIOT?
• Solving IoT technical challenge1:constraineddevices• Solving IoT technical challenge2:interoperability
• Current stand,inanutshell
RIOTAgenda
IoT Challenge2:Interoperability
• System-level interoperability– Hardware-independent IoT software– Usability ofthird-party,well-known tools
• Networklevel interoperability– End-to-endconnectivity perdefault– Device-to-device connectivity
IoT Interoperability Challenge:TheIoT today looksmostly like this
IoT Interoperability Challenge:TheIoT we want looksmorelike that
TheIoT we want is…theInternet!
InternetInteroperability:Based onOpenStandards
BLE
OSPF
LoRa
DHCP
SLAACOLSR
InternetInteroperability:Accelerated with OpenSource
Usual solutionsforInteroperability:Challenged byIoT…
…because ofresource constrains onIoT devices§ Memory,CPU,energy
…because oflow-powercommunicationcharacteristics§ Lossy /duty cycles§ Super-small frames§ Spontaneouswirelessarchitecture
à AdaptedstandardIoT protocolsneeded
StandardIoT protocols? Ontheway!Work inprogress atIETF,IEEE,W3C,OMA…
Radio Transmission
COAP
RPL
6LoWPAN
ICMP
UDP
IEEE 802.15.4 MAC
IPv6
Newspecs forlink layertechnologies– Low-powerradios,PLC,BACnet– IEEE802.15.4,Z-Wave,BLE,LoRa (andIEEE802.11)– Moretocome…
Newspecs fornetworklayerprotocols– Fitting IoT requirements andinteroperablewith IP– 6TiSCH,6LoWPAN,RPL,OLSRv2,AODVv2– Moretocome…
Newspecs forapplicationlayerprotocols– Fitting IoT requirements andinteroperablewith web– CoAP,LwM2M,CBOR– Moretocome…
Newnetworkparadigms– Content-centricnetworkingforIoT– Moretocome…
à Networkstack ultra-flexibility andmodularity
HowRIOTsolves Challenge2
Traditional stack RIOTstack (GNRC)
HowRIOTsolves Challenge2
ü 6LoWPANstack,supporting IoT wireless tech.ü StandardIPv6stackü BSD-like portsforthird-partymodules/stacks:
§ OpenWSN,CCN-lite,Emb6,lwIP,tinyDTLS…
RIOTAgenda
• Why?• How?• What is RIOT?
• Solving IoT technical challenge1:constraineddevices• Solving IoT technical challenge2:interoperability
• Current stand,inanutshell
RIOTinanutshell
Peripherals (including network interfaces)
Lowpower MCU + radio or wired communications
Other network stacks
Closed- & Open-source IoT Applications
CoAP, LWM2M...RPL, UDP …
IPv6, 6LoWPAN …
Closed-Source DriversOpen-Source Drivers
RIOT offers a platform functionally equivalent to Linux, based on:
open-source,open-access protocol specs,community-driven dev.
IETF
Free,open-sourceplaftorm forportableIoT software
Third-party softwareHardware
MicroKernel
RIOTcan domore,so RIOTcan doless
• Arduino scriptscan run as-is ontopofRIOT• mbed applicationscould run ontopofRIOT• Contiki can run inasingleRIOTthread
RIOTRoots &Evolution
• 2008 – 2012Ancestors ofRIOTkernel developed inresearch projects (FireKernel,uKleos).
• 2013 – 2016BrandingofRIOTstarted,sourcecodemoved toGithub,majordevelopmentofthenetworkstack &theOSassuch.
• Speed-evolutionofthecode-base.110+ contributors.
Foundinginstitutions
Some supporters/users
…anddozensofindependentdevelopers aroundtheworld!
ü bringing together RIOTers,beginners &expertsü gathering peopleinterested intheIoT ingeneralü plenary talks,hands-ontutorials & demos
Callforcontributions&sponsorshttp://summit.riot-os.org/category/calls/
http://summit.riot.org
IETFInconjunction with IETF96inBerlin
Thanksfor yourinterest!
News:https://twitter.com/RIOT_OSForcooperationquestions:[email protected]
Fordeveloperquestions:[email protected]
Support&discussionsonIRC:irc.freenode.org#riot-os