Title: eBlocks
1eBlocks An Enabling Technology for Basic Sensor
Based Systems
Susan Cotterell, Ryan Mannion, Frank Vahid,
Harry Hsieh Department of Computer Science and
Engineering University of California,
Riverside susanc, rmannion, vahid,
harry_at_cs.ucr.edu http//www.cs.ucr.edu/eblocks
Also with the Center for Embedded Computer
Systems at UC Irvine This work is being
supported by the National Science Foundation
(CCR-0311026)
2Introduction
- Sensor networks are emerging as an important
general computing domain - Small inexpensive battery-powered sense and
compute nodes - Tens to thousands of nodes
- Wired or wireless communication
- Stringent requirements (power, cost, size)
Environmental Monitoring http//www.greatduckislan
d.net/ http//today.cs.berkeley.edu/retreat-6-03/
Military Applications http//robotics.eecs.berkele
y.edu/pister/29Palms0103/
Home Automation http//www.smarthome.com
Structure/Building Monitoring http//www.mrr.dot.s
tate.mn.us/research/MnROAD_Project/MnROADProject.a
sp
Medical Monitoring http//www.eecs.harvard.edu/md
w/proj/codeblue/
3Introduction
- Potential sensor network application developers
may not be computer programmers - Instead, engineers, scientists, office workers,
homeowners, etc. - Existing programmable nodes
- Flexible, but require programming
- Existing off-the-shelf end applications
- Specialized, so hard to customize
- Expensive due to small volumes
- Our solution eBlocks
- Enables non-programming users to create simple
but useful customized sensor network applications
http//www.xbow.com/
Flexible, hard to program
Photo Jason Hill http//www.dustnetworks.com/
Easy to use, inflexible
http//www.smarthome.com
4eBlocks Overview
- eBlocks (UC Riverside)
- Began as low-cost reusable basic building blocks
- Enables non-programmers to create basic but
useful sensor-based applications - Function of each block is pre-defined
- Block types
- Sensors motion, light, contact, etc.
- Output led, electric relay, beeper, etc.
- Compute logic, prolong, toggle, etc.
- Basic configuration required (dials, switches)
- Communicate wireless point-to-point link
- Users merely connect blocks to create working
customized application - Evolving into a spatial programming methodology
for sensor networks with programmable nodes - CODES/ISSS03, SECON04, CHI05, DATE05
5Creating an application with eBlocks
- Create an application to detect if the garage
door is left open at night - Choose which blocks to use
- Plug blocks together using standard plugs
- Configure blocks if needed (e.g. logic block)
Need something to indicate garage open at night
use led
We want to detect night use light sensor
Need a function of light sensor output and
contact switch output use Logic Block
We want to know if garage door open use contact
switch
Configure Logic Block to turn led on when its
night and when door is open
Block Connectors
6Building eBlocks Systems
- The same basic blocks can be used in a variety of
applications
7Inside eBlocks Technology
- Tiny computer in every block
- Even the simplest button
- Enables low-power, and easy connection
- Block asleep gt99 of time
- But user doesnt notice
- Communicates tiny computer packets, lt 0.1 of
time - Connecting eBlocks actually creates a computer
network - Use PIC microprocessor costing lt1, consumes
little power - Same processor as in blinking tennis shoes
- Currently in the process of patenting eBlocks
- Method of adding computing intelligence to
previously passive components, method of using
such computers to reduce power.
8Design Entry/Simulation
- User specifies and tests block design
- Java-based simulator
- Blocks added to workspace by dragging blocks from
Available eBlocks tray - Connections created by drawing lines between
blocks - User can create, experiment, test and configure
design
9Synthesis -- Partitioning
- Mapping of pre-defined blocks to programmable
blocks - Problem map pre-defined blocks to minimum
number of programmable blocks - Intermediate blocks (non-sensor, non-output)
- We assume 2-input/2-output programmable block
available - Partitioning problem differs from existing
problems - Classic bin-packing or knapsack algorithms
- But we need to be conscious of two constraints
number of inputs and number of outputs - Two-dimensional bin-packing problem (cutting
stock problem) - But number of inputs and outputs of programmable
block are mutually independent - FPGA synthesis, namely DAG covering
- But we do not require all nodes to be covered
- Our goal is to minimize block count, many focus
on minimum-delay solutions or approximations - Many solutions permit replications contrary to
our goal of minimizing block count
10Synthesis -- Partitioning Strategies
- Exhaustive
- Search every combination of n blocks into n
programmable blocks - Extremely long run times (hours)
- Aggregation
- Clusters nodes into subgraphs, continue adding
blocks until unable to fit into programmable
block - Unable to take advantage of convergence thus
yields non-optimal results
- Developed a new heuristic PareDown
- Based on a decomposition method
- Takes advantage of convergence
- Unconstrained by depth at which heuristic looks
ahead - Runtime complexity O(n2)
11Synthesis -- Code Generation
- For each partition a syntax tree is generated to
represent equivalent functionality of the
partition - Able to generate C code for each partition to
download unto a programmable block - Simulators interpreter able to evaluate syntax
tree and simulate corresponding behavior
12Experiments
- Conducted numerous experiments in 2003-2004
- Physical Prototypes
- Nobody reads/follows the instructions
- Re-designed blocks to be self-explanatory
- Added debugging lights to indicate block status
- Simulator
- Allows rapid iterations of eBlock design
- Eliminates hardware ambiguities (i.e. power
switch, crossed connections) - Enables a wider participations
- Enables us to save various user-defined systems
for later analysis
13Physical Prototype and Simulator Usage Summary
- Non-computing users - non-science,
non-engineering users (psychology, business, etc.
majors) - Beginner users - Students in their first
introductory to programming course (lt10 weeks) - Intermediate users - Students with 2-3
programming courses - Advanced users - Students with both programming
and electronics experience - Miscellaneous - Middle school or high school
kids, non-engineering adults
14Usability of eBlocks
Total number of students is higher than
previous table because individual students may
have participated in multiple tests
- Student participants of various expertise levels
- None of the students had previous experience with
eBlocks - More than half of the students were able to build
the first three systems in less than 10 minutes - Compared to the days to weeks required by
advanced students to build similar systems
without the benefit of eBlocks
15Conclusions and Future Work
- Summary
- Presented physical prototypes and graphical tool
that can be used by non-computing specialists to
develop basic sensor/actuator applications - Summarized usage in a large variety of user
experiments - Present/Future work includes
- Extend eBlocks to integers (presently Boolean)
- Deployment of real systems
- Proactive health care (Intel)
- Insect monitor and automated pesticide deployment
(Isca Corporation)