Spark core intro

Post on 14-Jul-2015

315 views 4 download

Tags:

transcript

Spark for IOT

A $19 postage stamp-sized Wi-Fi module for IOT.

About Me, David FowlerEMail: David.Fowler@gmail.com

G+: http://goo.gl/LHHakF

LinkedIn: http://goo.gl/jzA1hX

Twitter: uCHobby

GitHub: uchobby

Website: http://www.uCHobby.com

DayJob: Chief Engineer, Advanced Product Development, Raven Ind.

Applying technology in Agriculture. Entrepreneur Innovator.

software, hardware, mobile, embedded and Web Engineering

I do not work for Spark or TechShop and I do not get paid for this…

I am interested in consulting work or project collaboration.

This Presentation

● Spark, what is it?

● How does it work?

● How much does it cost?

● How do they make money?

● How can I use it?

● What if I want to do my own thing?

● Types of development

● Demo - Web development...

Spark? What is it?

IOT Module (Photon)● 120MHz Arm Cortex M3 microcontroller

o 1MB Flash, 128KB RAM

o 18 GPIO, 2 Serial, I2C, SPI, ADC(6),DAC(1),and CAN

● Wi-Fio Broadcom BCM43362, 802.11 b/g/n, soft AP

Current module is the Spark Core which cost more and has less horsepower.

Spark is changing the WiFi module from TI to Broadcom and upgrading the CPU

to lower price and fix some communications issues.

● Beginning of a movement in IOT for Makers (opinion)

How does it work?● Web Based IDE

● Over air firmware loading

● Arduino Compatible

● Built in Spark API/Web

o Module connects to Spark Servers

o Your apps connect to Spark Server

Easy REST API● Modules publish variables and functions

● Can send events

o Talk directly between modules.

How much does it cost?

$39 Spark Core

$19 Spark Photon (pre-order now)

Replaces the Core.

$10 Spark Po

For production of your product

How do they make money?

● Selling you the hardware, moduleso Reasonable price for a module solution

Provides FCC certifications

● A major benefit

Provides the ready made Web API

● Providing Web API

o Reasonable price for low to medium volumes

o They plan to be good option for less then 50K

volume

How can I use it?● Home / Personal Projects

o Use the proton

o Embed the module in your gizmo

o Write a web app or other to interface with the API

Python, C/C++, JAVA, .net, Javascript (web)● Libs to make it easy

● Production Productso Prototype with the Proton, produce with the Po

FCC certs

<$10 at small Quantities.

What if I want to do my own thing?

● Totally Open Sourceo Module

Programmable via JTAG

Firmware in GIT

Hardware Design in GIT

You can make your own modules

o Server

Server code is based on Nodejs

Open and in GIT.

Model Railroad Awesomeness!

Types of development● Firmware

o Web Based IDE with over the air loading

o Desktop IDE

o C/C++ with Arduino libs and more. This is a full up

ARM with full C/C++ support

● Softwareo Web applications are easy using REST API

Javascript and HTML

o Major language support with Libs

o Easy even without libs

The Weak Points● Web IDE is too simple for Pro’s

o Poor code highlighting, syntax checking, etc..

o Simple Text Editor, slightly better than Arduino IDE

● Spark Core Radio is problematic

o Should be fixed in Photon

● Software (not firmware)

o Harder then Arduino code for new users

o What is REST? Web what?

● Power consumption

● Up to others to make this easier for Makers

o Opportunity knocks

Demo of Web development

● Firmware with web IDE

● Over the air FLASHing

● App running

● Web dev in Adobe Brackets

● UI demo in Chrome

● Questions?

● Code Walkthrough

● My Gauges Idea

Show and Tell

Gauges Idea - Make it simpleCreate web app that makes monitoring and control easy for

Makers.

● No web coding required

o Built in functionality, just run from VisualIOT.com

● All control done from Spark Firmware App

● Nice looking Gauges and buttons

● Works in any browser,

o smart phones

o tablets

o Mac, PC, Linux, etc...

Gauges - View Config

● Adds a string variableo viewConfig

260 characters allowed

● Controls the web appo On connection, app checks for viewConfig

o Configures gauges and button based on string

comma delimited

specifies labels and ranges for gauges and

buttons

Gauges - viewConfig Examplechar* viewConfig=

"0,Demo Gauge&"

"gau,Temp C,tempc,-10,110&"

"btn,LED ON,LED,ON&"

"btn,LED OFF,LED,OFF";

First line is version and title. Next are

items to show. “gau” for gauges, “btn” for

buttons.

Gauge ViewConfig “gau” example

"gau,Temp F,tempf,-10,110"

● Display a gauge

● Label the gauge “Temp F”

● Pull the “tempf” variable

● Minimum value is -10

● Maximum value is 110