What marketing won t tell you about the Internet of Things Elecia White #eelive Produced by EE Times
Why are you here?
Why am I here? Founder of Logical Elegance, embedded systems consulting firm Author of O Reilly s Making Embedded Systems Host of Making Embedded Systems podcast on embedded.fm, itunes, Stitcher, Instacast Twitter: @logicalelegance I m an embedded software engineer who has made several internet enabled devices.
What are we going to talk about? Protocols: BTLE, WiFi, GSM, etc. Unhappy customers stuff: HTML, Java, CSS, PHP Devices tradeoffs The phrase Internet of Things Stuff I want
What marketing WILL tell you: The revolution is coming!
State the problem Well, let s get this talk started Dev Comms Net
Getting on the cloud Be careful what you wish for. Internet Communication user Device
Case studies Original Kindle Cell modem (that s just cheating except for cost) Configuration is easy Internet enabled scale WiFi with OTS chipset which required RTOS to run TCP/IP stack Java pages served up from device and PC setup program; lots of returns due to changing WiFi access points during configuration. Data sent in HTML URLs to site, stored in database, presented to use via pretty webpages and device apps. Dev Comms Net
Case studies (continued) Internet enabled pedometer BLTE, specialized chipset, requires BT stack on device s processor Smart phone users have it easy, PC users less so (dongle!) Smart phone app development Your system What are the pieces? Where are the bottlenecks? Do you know what you need? What skills do your engineers need? Do you know what the tradeoffs are? Do you know the questions to ask? Dev Comms Net
Unhappy users The downsides of the possible communication methods Dev Comms Net
WiFi 802.11 a/b/g/n configuration Install program Sign up Open device Enter SSID, pwd PC switches to device AP Turn on device, put it in AP mode Device connects
Users configure WiFi 802.11 Install program Sign up Open device The guy who set up my router never told me the password Enter SSID, pwd PC switches to device AP Turn on device, put it in AP mode Device connects a/b!= n How do I do this? Why are there always chickens to sacrifice?
BTLE configuration with a smart phone Install app Sign up Open device Device connects Enter ID from device Put device in discovery mode
Users configure BTLE with a smart phone I don t have a smart phone Install app Sign up Open device Device connects Enter ID from device Put device in discovery mode My phone battery keeps dying!
BTLE configuration with a computer Install program & service Sign up Open Device + dongle Enter ID from device Turn on device, findable Plug in dongle Device connects
BTLE configuration with a computer Install program & service Sign up Open Device + dongle Enter ID from device Turn on device, findable Plug in dongle Device connects As long as my computer is on Another dongle? I need yet another USB hub.
ANT configuration with a computer Install program & service Sign up Open Device + dongle Enter ID from device Turn on device, findable & close Plug in dongle Device connects As long as my computer is on Another dongle? I need yet another USB hub.
Cell modem configuration Install app Sign up Open device Device connects Enter unit s serial number
Users configure cell modem Install app Sign up Open device It is so expensive! It eats batteries! I m not paying for another data plan. Device connects I don t get good coverage at home/work/ school. Enter unit s serial number
Other risks What are the other tradeoffs for connecting to the Internet of Things? Comms Dev Net
Device: What is it? Is this the first user experience the customer will have with your company? Is the device an information consumer or provider? Is power a consideration? How much will connectivity add to the bill of materials? How does my device connect to communications? (SPI, UART, etc.) How much RAM, flash, cycles does it need? Does it mean running an RTOS? How to update the firmware? Dev Comms Net
Communication protocols: I slept through networking class How does the user set up the device? Is there a flowchart? What % of RMAs are your other OEMs seeing? How can we debug to determine software vs. hardware issues? How reliable is the communication method? Ramifications? How long will my operations take? What about firmware update? What about security? What certifications are required? Dev Comms Net
Internet: what does that even mean? How does it get to the internet? What are the tradeoffs? Bluetooth can t go to the internet, has to go through something (i.e. cell phone, computer) WiFi goes to a router, don t take device outside your home Cell modem: who is going to pay the monthly bill? How does data get from the device to my servers? Does it go through someone else s servers? What does the user need to have? Hub? WiFi router of the right flavor? Computer? Smart phone? Broadband? Dev Comms Net
: Oh! The amorphous cloud, what are you? Where does the data go? Why? What are you going to do with it when it gets there? Do I have to (get to) run my own servers? How do I maintain the uptime I need? What do I need to know for that? (i.e. PHP, databases, sys admin)? How secure is the user s information? Am I storing anything on the cloud that would get my face on Wired Magazine? How to design the protocol from device to sensor? Am I aggregating data from multiple devices? How can I send data back to the device? (What about FW update?) Dev Comms Net
Interface: It doesn t mean a thing if it ain t got that How does the user interact with the connected device? Web pages Apps on iphone, Android, etc Device itself Is there a real-time component to this? (i.e. texts) How does the user know the device is working? What is the time between the user doing something and seeing it on their interface? Is there a backup interface for when connectivity fails? Is the device better for the user if it is connected? How to make it feel magical? Comms Dev Net
Getting to a solution Knowing is half the battle, let s talk about the other half Dev Comms Net
Do you have the skillset? Deep experience in embedded devices, optimization and resource management C/C++ on ARM Cortex-M* Device Wireless communication expert w/ understanding of stack integration and debugging (i.e. TCP/IP with wireshark), optimal RTOS configuration. Communication System administration (high uptime!) who develops front and back end software. Required expertise in PHP, database administration. Internet Expert with protocol development in nonrobust environment, experience with creating secure, tokenized channel. Able to build service/daemon for each OS User interface specialist, expert in HTML, CSS, Ajax. Must have developed successful Android and ios apps.
Everybody wants to sell you something There are shortcuts but no easy answers. You need a plan, a list of questions. Comms Net Produced by EE Times
Questions? (And thank you!) Elecia White (@logicalelegance) Logical Elegance, Inc. Making Embedded Systems amazon.com & embedded.fm Comms Dev Net Produced by EE Times