Crossbow: Smarter Sensors in Silicon Johann Ammerlahn Crossbow Platform Review Overview and Goals History Design Approach Current System – Hardware – Software Future Directions 3/14/2016 Graphics Courtesy Crossbow Technologies, Inc. and Berkeley Labs 2 Overview and Goals Big Idea: Ubiquitous sensing How? – Necessarily “cheap” • This is the military. Cheap is relative. – Necessarily small • (more survivable, low profile, etc.) – Necessarily many • (economies of scale, higher measurement granularity, lower power comms, etc.) – Necessarily robust • Common case: no maintenance 3/14/2016 Graphics Courtesy Crossbow Technologies, Inc. and Berkeley Labs 3 Crossbow Mote History $$ + Network Embedded Systems Technology Program 3/14/2016 Graphics Courtesy Crossbow Technologies, Inc. and Berkeley Labs 4 Hardware Development Cycle 3/14/2016 Graphics Courtesy Crossbow Technologies, Inc. and Berkeley Labs 5 Current Design Analysis: Mica Series Integrate sensors, computation and communication in single unit – Basic board has radio, processor, memory – Sandwich sensor boards in layers – “Just like the rock…great cleavage” Open-source hardware/software concept – Software is TinyOS (TOS) and TinyDB (TDB) – Hardware design and Intel networking technology is licensed to Crossbow Modular design allows fast development 3/14/2016 Graphics Courtesy Crossbow Technologies, Inc. and Berkeley Labs 6 Available Mote Designs: MICA Crossbow 2nd generation wireless sensor, 4th from Berkeley Labs Atmel ATMEGA103/128L – 4 Mhz 8-bit CPU – 128KB Instruction Memory – 4KB SRAM and EEPROM 4 Mbit flash (AT45DB041B) – SPI interface – 1-4 uj/bit r/w RFM TR1000 Radio (916/433 MHz) – 50 kb/s – ASK – Focused hardware acceleration – 1 to 300 ft. range, RSSI 51-pin connector – Analog ADC & comparators, I2C, SPI, interrupts, PWM, ext. SRAM, UART $100-400 depending upon configuration 3/14/2016 Graphics Courtesy Crossbow Technologies, Inc. and Berkeley Labs 7 Available Mote Designs: MICA Three low-power modes – Idle: Processor is turned off – Power Down: Everything but the watch-dog is turned off – Power Save: Only asynchronous timer powered on 51-Pin I/O Expansion Connector Digital I/O DS2401 Unique ID 8 Analog I/O 8 Programming Lines Atmega103 Microcontroller 100 mW power consumption Transmission Power Control Hardware Accelerators 30 uW power consumption – All components asleep TR 1000 Radio Transceiver SPI Bus – Processors, radio, typical sensor load Coprocessor 4Mbit External Flash Power Regulation MAX1678 (3V) 3/14/2016 Graphics Courtesy Crossbow Technologies, Inc. and Berkeley Labs 8 Available Mote Designs: MICA2 Crossbow 3rd generation wireless sensor Design changes to MICA: Processor now offers standalone boot-loader New radio (Chipcon 1000) – – – – – – – 500 to 1000 ft. range, 38.4 Kbaud Better noise immunity, linear RSSI FM modulated (vs Mica AM) Digitally programmable output power Built-in Manchester encoding Software programmable freq. hopping within bands Tiny OS v. 1.0 - improved network stack, debugging Wireless remote programming 512 Kb serial flash 3/14/2016 Graphics Courtesy Crossbow Technologies, Inc. and Berkeley Labs 9 Available Mote Designs: MICA2DOT Crossbow 3rd generation wireless sensor Similar feature set to MICA2 Degraded I/O capabilities: 18 pins vs. 51 – 6 analog inputs, digital bus, serial or UART Integrated temperature and battery voltage sensors, status LED Battery is 3V coin cell instead of AA x 2 25 mm diameter, 6 mm height Compatible with MICA2 3/14/2016 Graphics Courtesy Crossbow Technologies, Inc. and Berkeley Labs 10 Next Generation Mote: Spec Single-chip mote 2 mm x 2.5 mm RISC core 3k Memory 8-bit on-chip ADC FSK 19.2 kbps RF transmitter Paged memory SPI, RS232 compatible UART 4-bit input/4-bit output port Hardware support for comms encryption Hardware OEM costs: Under $1 in quantity (w/o antenna and sensors) 3/14/2016 Graphics Courtesy Crossbow Technologies, Inc. and Berkeley Labs 11 Next Generation Mote: Spec (Cont.) 3/14/2016 Graphics Courtesy Crossbow Technologies, Inc. and Berkeley Labs 12 Sensor & External Modules Each sensor has individual power control MTS300 – Light, temperature, acoustic, sounder MTS310 – 2-axis accelerometer, 2-axis magnometer, MTS300 feature set MTS101 – Thermistor, light sensor/photocell, 24-point general prototyping area MDA500 – Connects MICA2DOT I/O signals to thru holes WSC100 – Four-channel “analog” (12-bit digital, 100hz) Bluetooth radios – Single module dedicated to either input or output – 100 ft range Graphics Courtesy Crossbow 3/14/2016 Technologies, Inc. and Berkeley Labs 13 Operating System: TinyOS Tiny Microthreading Operating System – Tiny - 4k OS + program memory limit – Microthreading - processor directly handles almost all data (radio, sensors, etc.) – OS - allows platform for future development - convenient abstractions for hardware Designed to do the job fast and then turn off everything allowed Open source 3/14/2016 Graphics Courtesy Crossbow Technologies, Inc. and Berkeley Labs 14 Design Considerations Make best use of most constrained asset: battery power Network self-configuration – Manage complexity, respond to unplanned events Sensor self-configuration (?) – “Glue and go” Real-time – Limited buffering available Network robustness and maintenance – Multiple points of failure, self-healing ability Heterogeneous end environments – Application specific rather than general purpose (?) – Fast creation of efficient, specific applications w/o too much HW-specific nastiness 3/14/2016 Graphics Courtesy Crossbow Technologies, Inc. and Berkeley Labs 15 Example Software Layer Structure sensing application application Routing Layer routing Messaging Layer messaging packet byte bit 3/14/2016 Radio Packet UART Packet Radio byte UART byte RFM photo clocks Graphics Courtesy Crossbow Technologies, Inc. and Berkeley Labs ADC Temp SW i2c HW 16 Example Memory Allocation 4000 Multihop Router 3500 AM light AM Temp 3000 AM Packet 2500 Radio Byte RFM 2000 Photo Temp UART Packet 1500 UART i2c 1000 Init TinyOS Scheduler 500 C Runtime 0 3/14/2016 Graphics Courtesy Crossbow Technologies, Inc. and Berkeley Labs 17 Example Utilization: Radio Receive Components Packet reception work breakdown Percent CPU Utilization Energy (nj/Bit) AM 0.05% 0.20% 0.33 Packet 1.12% 0.51% 7.58 26.87% 12.16% 182.38 5.48% 2.48% 37.2 66.48% 30.08% 451.17 Radio Reception - - 1350 Idle - 54.75% - 100.00% 100.00% 2028.66 Radio handler Radio decode thread RFM Total 3/14/2016 Graphics Courtesy Crossbow Technologies, Inc. and Berkeley Labs 18 TinyOS: Programming Structural VHDL puts the pieces together – Schematics are (usually) easier to put together and understand than code – Industry standard design model – Scripts take VHDL description and compile the resultant code base Components are aggregated and easily reused Low-level component software written In C and/or assembly – But, this is largely hidden from view for standard modules 3/14/2016 Graphics Courtesy Crossbow Technologies, Inc. and Berkeley Labs 19 TinyOS: Example Code /* Messaging Component Declaration */ //ACCEPTS: char TOS_COMMAND(AM_SEND_MSG)(char addr,char type, char* data); void TOS_COMMAND(AM_POWER)(char mode); char TOS_COMMAND(AM_INIT)(); //SIGNALS: char AM_MSG_REC(char type, char* data); char AM_MSG_SEND_DONE(char success); //HANDLES: char AM_TX_PACKET_DONE(char success); char AM_RX_PACKET_DONE(char* packet); //USES: char TOS_COMMAND(AM_SUB_TX_PACKET)(char* data); void TOS_COMMAND(AM_SUB_POWER)(char mode); char TOS_COMMAND(AM_SUB_INIT)(); 3/14/2016 Graphics Courtesy Crossbow Technologies, Inc. and Berkeley Labs 20 TinyDB: Overview •Imposes SQL-like querying ability on nodes •Treats distributed network like a database (!) •Allows specification of which data should be sent, update rate, etc. •Filters and aggregates before displaying on PC screen (Java interface) •Saves bandwidth and power by allowing nodes to only transmit requested data •Graphical query-builder •Download self-configuring runtime to motes, no C codingGraphics Courtesy Crossbow 3/14/2016 Technologies, Inc. and Berkeley Labs 21 Crossbow Motes Conclusion Crossbow motes are very cool Probably cheap enough for us to buy a couple for playing with? – Otherwise, maybe just TinyOS emulation? Sensor Hardware – Cheap, publicly-available, modular, integrated, power-efficient, extensible, tiny Sensor Software – Free, open-source, modular, abstract, powerefficient, extensible, small 3/14/2016 Graphics Courtesy Crossbow Technologies, Inc. and Berkeley Labs 22