Professional Documents
Culture Documents
1
Sun Small Programmable Object Technology
( Sun SPOTs )
one talk to rule them all
2
Agenda
3
Brace Yourself!
4
An Introduction
Roger Meike
Sun SPOT Chief Troublemaker
roger.meike@sun.com
5
Project Sun SPOT
Small
Programmable
Sun Object
Technology
6
Built to Inspire
• Designed for flexibility
> Make hardware projects into
software projects
> Not designed for cost effective
deployment today
• Substitute money for time
• We want to
> Build a Community of
Developers
> Enable New Devices and
Services
> Engage with new potential
customers
> Inspire!
7
Shiny Objects
• Education
• Researchers
• Hobbyists
• Sun’s interest
8
Building Community
• Open Source
• Hardware Designs
• Squawk JVM
• Drivers
• Libraries
• Sample Apps
• Widespread Availability
9
Java.net projects
10
Community Driven Projects
christmasspots - Use this program to have your SunSPOTs elect which gift you get.
ctp - Collection Tree Protocol for Sun SPOTs
drip - A data dissemination protocol for Sun SPOTs and TinyOS motes.
trackbot-greenfoot - Robot simulator support including sensor suites
spottrackbot - Java robotics application for SunSPOTs and Systronix Trackbots
trackbotcode - Runtime libs, example and test code for Systronix TrackBot
spot-angi - Use Sun SPOT technology to present angular motion and indicate specific
sections of the path as important.
SpotCara - Uses Sun SPOT technology to control simple RC cars.
SpotCreate - SpotCreate is a Java application designed to run on SunLab's SunSPOT wireless
Java controller and manage the iRobot Create robot platform for investigating group
behaviors.
SpotGestureController - SpotGestureController is a SunSPOT Java application for the wireless
control of remote devices using hand gestures.
11
Open Source Hardware
12
Custom Hardware Ecosystem
13
What is a Sun SPOT?
?
14
Sun SPOT Device
• Basic device has three layers
• Battery
• Processor Board with Radio
• Sensor Board (application
specific)
15
Sun SPOT Mainboard
• 180 MHz 32 bit ARM920T core
• 802.15.4 radio
16
eDemoboard
• Light sensor
• Temp sensor
• 2 push buttons
• 6 analog inputs
17
Software
• Squawk Virtual Machine
• Easy to port
18
Sun SPOT developer’s kit
• Two Full Sun SPOTs with
eDemoSensor boards and
batteries
• Software
• Squawk VM
• Java SDK
• Netbeans
• USB cable
• Mounting clips
19
What Do They Do?
?
• What are the good for?
20
Sun SPOTs In Action
21
Swarms
• Combine Mesh Networks and Mobile Platforms
• Autonomous Light Air Vessels ALAVs - Jed Berk - Art
Center College of Design
22
Autonomous Deployment
• Renaissance Computer Institute at UNC - Dan Reed
23
Affecting
• Not just for sensing anymore
24
Dog Oral Reward Kit - DORK 1.0
• http://web.mac.com/bbeasley1
25
Building a robot
• Simple Robot
• Ingredients
1 - Sun SPOT
2 - Servos
3 - Batteries
Wires
26
Servos
Tires
Batteries
Wires
Sun SPOT
27
Servos
Control
Power
(Connect to the Battery)
28
Servo Control Code
import com.sun.spot.sensorboard.EDemoBoard;
import com.sun.spot.sensorboard.io.IOutputPin;
import com.sun.spot.sensorboard.peripheral.Servo;
leftServo.setPosition(0.5F);
rightServo.setPosition(0.5F);
}
29
Cool
• No circuit to design
Java
• This is a software project!
30
Sun SPOTs monitoring water
• KTH, Sweden
• Aqua WSN
MALAWI:
December
5, 2007
BLANTYRE
- At lea
contract s
ed the w t one person has
city, he ater-bor died fro
alth aut ne disea
horities s e in Bla m cholera and 16
said on nt o
Tuesday. yre, Malawi's ma thers have
in comme
rcial
31
Sun SPOTs in the Rainforest
• Warren Wilson College, NC
32
Web Site
Join us!
Projects on Java.net
https://spots.dev.java.net
33
Sun SPOT Hardware
Bob Alkire
Hardware Crank
robert.alkire@sun.com
34
eSPOT
• https://spot-espot.dev.java.net/
35
eDemo
• https://spot-edemo.dev.java.net/
eDemo Board Features
▪ a 3-axis accelerometer (with two range settings: 2G or 6G)
▪ a temperature sensor
▪ a light sensor
▪ 8 tri-color LEDs
▪ 6 analog inputs readable by a 12bit ADC
▪ 2 momentary switches
▪ 5 general purpose I/O pins
▪ 4 high current output pins with a Atmega88 IO processor
36
How to make your own Sun SPOT Hardware
• eBones is all of the starting design files for a user to make their own
interface boards for the SunSPOT project.
37
eBones
• eBones is a template for Sun SPOT board design. This is a good starting place if you are
contemplating making a custom sensor system.
• Includes PC board outlines, fabrication drawings, footprints for inter-board connector and
ICs. This information covers both the smaller 1.9" x 1.5" external board which fits inside
the plastic (similar to the eDemo board) and the larger external board that a eSPOT can
plug into.
• Application Notes
• External Hardware Design Guide (pdf)
• External Software Design Guide (pdf)
• Hardware Files
• BOM - Bill of Materials (.xls format)
• Gerbers - PC board gerber files (RS274X)
• Schematics - PC schematics, assembly and fabrication drawings (.pdf format)
• Design Files - Schematic and PC layout (Altium Designer, Orcad Layout and Eagle
• LICENSE - All files within this project are covered by BSD license.
• https://spots-ebones.dev.java.net/
38
eBones Mechanical Drawings
39
eBones Schematics
40
Using eBones
41
eProto
• https://spot-eproto.dev.java.net/
• LICENSE - All files within this project are covered by BSD license.
42
eProtoMega
• https://spot-eprotomega.dev.java.net/
• LICENSE - All files within this project are covered by BSD license.
43
eSerial
• https://spot-eserial.dev.java.net/
• LICENSE - All files within this project are covered by BSD license.
44
eFlash
• https://spot-eflash.dev.java.net/
• LICENSE - All files within this project are covered by BSD license.
45
eDAQ
• https://spot-eDAQ.dev.java.net/
• LICENSE - All files within this project are covered by BSD license.
46
eUSBHost
• eUSBHost is an add-on board for the Sun SPOT project for adding USB host
• https://spot-eusbhost.dev.java.net/
• LICENSE - All files within this project are covered by BSD license.
47
Squawk
Eric Arseneau
SPOT Squawker
eric.arseneau@sun.com
48
Squawk
• Designed for
• Implements
• CLDC 1.1
• IMP 1.0
49
Squawk - VM Details
• Intention
• No JIT
50
Squawk - Sun SPOT Details
1 square = 8KB
51
Squawk - Open Source
• https://squawk.dev.java.net
52
Active Squawk Ports
• 8501 port
• Custom FPGA
• Others...
53
Networking
Pete St.Pierre
Network Plumber
pete.stpierre@sun.com
54
Networking Overview
• IEEE 802.15.4 (Zigbee): lower cost, power but slower than Bluetooth (802.15.1)
or Wi-Fi (802.11)
55
Self-organizing...
Data
C
for G E
Where
is G?
A
Where
is G?
B F
This
way to
G
G
56
Self-healing...
C
E
DataData
forWhere
for
G G
is G?
A
B F
This
way to
G
B* G
57
Flexible, All-Java Stack
Interfaces Implementation
Applications Applications
UDP TCP
IProtocolManager IRoutingManager Radiogram Radiostream AODVManager
CTPManager
IPv6
ILowPan* LowPan
IRadioPacketDispatcher RadioPacketDispatcher
I802_15_4_MAC 802_15_4_MAC
58
Accessing the Internet
59
Security
Vipul Gupta
Sun SPOT Locksmith
vipul.gupta@sun.com
60
Why?
62
Securing Code Deployment
• Started out as a Java branding problem
Java Project
• Byte code verified on desktop and “sealed”
using a digital signature (ECDSA) compile
• Addresses both
- Java branding
- general code authentication
63
Key Management for Code Deployment
• Each user’s SDK has a public/private key pair. SPOT stores “trusted” key
of owner.
PublicSDK
(empty)
_ __________
PrivateSDK First interaction with “ownerless” SPOT
e.g., application deployment
64
Secure Communication*
65
Key Management for Secure Communication*
First interaction with “ownerless” SPOT
PublicSPOT
SPOT 0000.01C7
has public key PrivateSPOT
PublicSPOT
0014.4F01.0000.01C7
signed,
Owner SDK
• Secure communication between SPOTs with the same owner just works!
• Additional scenarios also supported, e.g. trusting web CAs and SPOTs
belonging to other users
66
Main Takeaways
• It just works!
67
Solarium
Randy Smith
Master of Sun SPOT SpaceTime
randy.smith@sun.com
68
Solarium
Randy Smith
Vipul Gupta
Arshan Poursohi
Ron Goldman
69
SPOTWorld
Discover
Program
Deploy
Debug
Configure
Manage
70
Solarium
SPOTWorldViewer 1
SPOTWorld
?
SPOTWorldViewer 2
?
...
71
Demo
72
Emulating Sun SPOTs
Ron Goldman
Sun SPOT Virtual Handyman
ron.goldman@sun.com
73
How to give everyone a Sun SPOT?
• We would like every student & developer to be able to use Sun SPOTs.
74
SPOT emulator
75
Emulating the sensors
• Use a sensor panel to set the values of the virtual SPOT’s sensors
76
Emulator architecture
Solarium
77
Demo
com.sun.spot.Solarium
Solarium
78
Sun SPOTs in the Field
Arshan Poursohi
SPOT Whisperer
arshan.poursohi@sun.com
79
Sun SPOT advantages
80
Project Blackbox
• http://www.sun.com/blackbox
81
After some consultation
• Environmental conditions
• Location, GPS
• Datalogging
82
2 weeks later
83
2 weeks later (con’t)
84
Building a Datalogger
• Requirements
• Plan A
• Laptop or MiniPC
• Plan B
85
2 Months later
86
Sun SPOTs on Blackbox
87
Blackbox Shake Test
88
Educational Outreach Program
• Leverage existing and establish links to world wide universities to the benefit
of the whole company
• Our grant programs are combined with a new pricing model, substantial
educational discount
89
Request for Participation
JDKs for projects that are a Are you a professor, student, or hobbyist? Would you like to use
wireless sensors in your curriculum, research or project? Join the Sun Small
Programmable Object Technology (SPOT) Open Source developer community!
community at large.
hardware and software projects. To encourage this goal monetarily as
well as in spirit, Sun Labs will award Sun SPOT development kits to those
projects that we think will be most effective in inspiring and expanding
the Sun SPOT Open Source community.
What do we want?
Interesting code posted to http://spots.dev.java.net that inspires the Sun SPOT user community and is a basis
for other great ideas, as well as your help in growing the Sun SPOT community by actively participating in Sun
SPOT forums, blogs and user groups, etc. We’re particularly interested in projects that are creative building
blocks for future work.
Your proposal should include the following:
• Project description including why your project is a good building block for the embedded open
source community
• What you plan to call your project on Java.net
• Your plan for regular updates to the community so members can follow your progress
• Description of how the community will gain access to your code and documentation
• Your project timeline
• How many Sun SPOTs you think you’ll need to complete the project
The award for this program will be one or more Sun SPOT JavaTM Development Kits (JDKTM). There will be no
cash grants.
Submit your proposal to http://sunspotproposals@sun.com. If you submit a proposal by the 15th of the
month, we will respond on the 1st of the following month, and award Sun SPOT JDKs, while supplies last, to
the proposals that best address the project goals.
About Sun SPOTs and the Sun SPOT JDK
The Sun SPOT hardware platform is a small, battery operated, wireless device running the Squawk JavaTM Virtual
Machine (JVMTM), which acts as both operating system and software application platform and runs directly
on the processor without an intervening OS. Based entirely on Java, Sun SPOTs provide a low-cost, low-power
versatile platform for developing wireless sensor and embedded applications. The Sun SPOT JDK includes a
complete hardware platform, the Squawk JVM, and a set of programming tools, including the NetBeansTM IDE,
so even high-level programmers can quickly write custom embedded applications. For more information, technical
details, forums, news, events and to purchase a Sun SPOT JDK, visit http://www.sunspotworld.com/
90
Yggdrasil
• https://yggdrasil.dev.java.net/
91
Warren Wilson College
Cocobolo Natural Reserve
92
Your turn
• http://www.sunspotworld.com
• buy online
• EDU pricing
• forums
• http://spots.dev.java.net
93
Sun SPOTs Hands On Lab
David Simmons
SPOT Knocker
davidgs@sun.com
94
Hands On Lab
95
Robotics Contests
• Systronix
• https://trackbots-greenfoot-contest-2008.dev.java.net/
• Wintriss School
• http://www.iaroc.org
96
96
Web Site
Join us!
Projects on Java.net
https://spots.dev.java.net
97