Connecting Devices to the Cloud on Open Source Hardware and Software

Connecting Devices
to the Cloud on Open
Source Hardware and
Software
Colin Miller – Microsoft
Chris Walker – Secret Labs LLC
Connected Devices – The Internet of Things
 The connection of the physical world with the virtual world.
 eg - Thames water (replacing Victorian Cast Iron water mains
with new plastic pipes and instrumenting all of it.) Don’t wait
for the sink hole, send a crew before the failure. Eliminate
waste in many parts of all of our infrastructure systems.
 Not just new applications but new business models
 Perspective
- 1.5B Internet connected PCs
- <1B Internet connected phones
- By 2020 – 50B Internet connected Devices
“But the bandwagon is not just rolling for the benefit of technology companies and ambitious politicians. It has
gained momentum because there is a real need for such systems. In many countries the physical
infrastructure is ageing, health-care costs are exploding and money is tight. Using resources more
intelligently can make taxpayers’ money go further. Monitoring patients remotely can be much cheaper and
safer than keeping them in hospital. A bridge equipped with the right sensors can tell engineers when it needs
to be serviced. “ The Economist
Imagine Cup 2011 winning team – Team Hermes
Example Industrial Scenarios
Fleet Tracking
Power Usage
Labor Allocation
Power generation
Predictive Maintenance
Inventory Management
The Internet of Things ‘Stack’
Public Cloud
Private Cloud
Device Management
Smart devices – Dumb devices
Privacy
Gateway devices
Security
Data Analytics
Why managed code on Devices
 It’s not the ‘embedded’ development environment we are used to
 Changes to the embedded development landscape
- Before mostly no OS or proprietary OS
- Lower cost/power of 32 bit processors
- Connected applications more complex and require a stack
- Moving to standard OS options
 Productivity
 Uniformity
- A single programming model and tool chain throughout connected solutions
The NETMF Open Source Project
 Smallest .NET implementation
 Targets small 32 bit processors (ARM 7-9, Cortex M(x), Analog Devices
Blackfin, Renesas SH2)
 Currently used in consumer products, industrial automation, energy
management, health/eldercare, and lots of new categories.
 First Open Source release – Nov 2009
- Apache 2.0
 Community based model
- Motivation
-
Avoid fragmentation
-
Develop a clear collaborative direction
- Core Tech Team
- Microsoft Development Team
- netmf.codeplex.com
- netmf.com
The NETMF Version 4.2
From Microsoft Resources:
From the community:
 VB.NET (a collaboration)
 VB.NET (a collaboration)
 Cryptographic Primitives and Object Model
 New Platform builder
 Remote firmware update
 IL Optimizations
 FTP – client (desktop compatible) and server (NETMF
only)
 Bug fixes
 Regular Expressions
 SNTP
 StringBuilder Type
 PWM and Analog/Digital Conversion
 Bug fixes
 Secure Hardware (SIM Card) drivers
Netduino Open Source Project
 Company Background (Secret Labs LLC)
- Electronics and software company
- 4+ years of experience with .NET Micro Framework
- Designs consumer and industrial electronics using .NET Micro Framework
- Also creates Netduino, an open source electronics platform for .NET Micro Framework
 Open Source Licenses
- Firmware/SDK: Apache 2.0 license (BSD for networking) (LGPL-style)
- Hardware: Creative Commons – Attribution (LGPL-style)
 Open Source Hardware
- Netduino
- Netduino Mini
Netduino Open Source Project
 Netduino Plus
- lwIP network stack (BSD OSS)
- MMC “SPI” SD card support (open protocol) with community SDHC enhancements
- 64KB for .NET MF code
- 40KB RAM
- 8KB of on-chip storage (.NET MF 4.2)
 Cross-platform development tools (Mac/Linux support)
- Mono Compiler
- MetaDataProcessor runs under WINE
- MFDeploy/MFDeployEngine run under Mono Runtime on Mac/Linux
- MonoDevelop (in progress)
Netduino Open Source Project
 Netduino Community Contributions
- OneWire support – CW2
- C# to ARM/THUMB native code interpreter – Corey Kosak
- Enhanced SD support -- KodeDaemon
- I2C repeated start bit
- Extended SPI configurations
- Hardware feedback for open source hardware roadmap
- Bug fixes
 NETMF Community Contributions (as Colin mentioned)
- Regular Expressions
- StringBuilder
- Bug fixes
Demo
Connecting Devices to the Cloud
 First Wine Cellar application PDC 2009
- Sensor to local interface device via 802.15.4 ($$$)
- DPWS (Web Services)
- Discovery
- Eventing
 Second Wine Cellar app – 2011
- REST-ful Interface Netduino Plus
- Pachube
Demo Architecture
www.pachube.com
HTTP://PUT
Sensor
HTTP://GET
Actuator
Alterative Architecture
www.pachube.com
HTTP://GET
HTTP://PUT
Sensor as Server
Actuator as Server
Questions