xbee basics - faludi basics rob faludi. ... bandwidth fast routing. existing methods for device...
TRANSCRIPT
XBee Basics
Rob Faludi
Moving Data by Radio
toys wearables performance
portablesemergent systems
anything spinning
network objects sensors audio/video
feedback remotescontext
awareness
What Do We Want?
wirelesseasy
communicationreliability
low power addressing broadcast
small standardized cheap
bandwidth fast routing
Existing Methods for Device Communication
• Bluetooth
• "RF"
• XPort TCP/IP
• MatchPort TCP/IP
• Cell Phone Data GPRS
ZigBee & 802.15.4
• ZigBee is built on top of the IEEE 802.15.4 protocol
• XBee radios are available with or without ZigBee
• XBee 802.15.4 vs. ZNet 2.5
• Both ways are useful
802.15.4
• low power
• addressing
• cheap
• wireless
• small
• standardized
802.15.4 Topologies
• single peer
• multi-peer
• broadcast
ZigBee
• routing
• self-healing mesh
• ad-hoc network creation
ZigBee Topologies
• peer
• star
• mesh
• routing
How Do I Make One?
Materials
• XBee OEM Module (30-100 m range) $19XBee Pro (100m - 1.6 km range) $32
• Digi: http://www.digi.com
• Breakout Board, 2mm to 10 mil pin spacing. From me or Spark Fun
• Female headers 2mm from me or Spark Fun
• Male headers 10 mil (in stock at ITP)
Soldering Breakout Boards: pin spacing
2mm 0.1”
Soldering Breakout Boards: headers
2mm 0.1”
Soldering Breakout Boards: finished
Wiring
+3.3 Vtransmitreceive
ground
Remember!
• Use only +3.3 Volts. The regulator often has a different pin arrangement: G-O-I
• Always use decoupling capacitors. The radios often don’t work without them.
• You can’t send infinitely fast. Try putting a 10 ms delay into your loop.
• XBee TX goes to Arduino RX and vice versa.
• Arduino can run on 3.3 Volts (use a mini or breadboard with NG bootloader)
Instructions
• XBee Practical Example: Paired communication between two microcontrollers. Includes building, wiring and code for PIC and Arduino
• Making Things Talk by Tom Igoe
• I/O Example on my blog, or in the XBee manual section 2.2
XBee Send/Receive
Serial Terminal Programs
• Processing: http://rob.faludi.com/teaching/cmn/code/XBee_Terminal.pde
• Z-Term: http://homepage.mac.com/dalverson/zterm/
• HyperTerm: Windows Start Menu, Accessories, Communication
• screen: Terminal program on the Mac (or Linux)
• X-CTU: http://www.digi.com/support/productdetl.jsp?pid=3352&osvid=57&tp=4&s=316
• plenty of others
Baud, Bits and Parity
• Setting different baud rates: 9600
• Stop bits: 1
• Parity: None
• Flow control: none for now...
Data Mode vs. Command Mode
• Idle Mode, transmit and receive data
• Command Mode, talk to the XBee itself
• +++ "Yo, XBee"
• AT "Attention!" (Hayes command set)
Some AT Commands
• AT -> OK
• ATMY -> my address
• ATDH, ATDL -> destination address hi/lo
• ATID -> personal area network ID
• ATCN -> end command mode
AT Command Format
Hexadecimals
• Just like decimals, but count from 0 to 15 in each position
• Since there’s no existing single numeral representing 10 - 15, use A - F instead
• A = 10, B=11, C=12 ... F=15
• A1 = 161, common notation: 0xA1
• What does BFF equal? What does it look like?
• Calculators on Mac & Windows
Example:Remote Rotation
I/O Why
• Why:
• Save space, save power, save weight and save money
• Reduce complications
• Why not:
• Limited inputs/outputs
• No access to logic
• Each radio must be manually configured
Input/Output Wiring
+3.3 Vtransmitreceive
Ground
I/O pins
PWM outVoltage
reference
I/O AT Commands
• ATD0...D8 -> configure pins for I/O
• ATIR -> sample rate
• ATIT -> samples before transmit
• ATP0...P1 -> PWM configuration
• ATIU -> I/O output enable (UART)
• ATIA -> I/O input address
Example Configuration
• ATID3456 (PAN ID)ATMY1 my address 1ATDL2 destination address 2ATD02 output 0 in analog modeATD13 output 1 in digital out modeATIR14 sample rate 20 milliseconds (hex 14)ATIT5 samples before transmit 5
• ATID3456 (PAN ID)ATMY2 my address 2ATDL1 destination address 1ATP02 PWM 0 in PWM modeATD15 output 1 in digital out high modeATIU1 I/O output enabledATIA1 I/O input from address 1
Radio Communications
• What is radio?
• electromagnetic waves
• no medium required
• Modulation
• Well-described mystery: “air waves” “wireless” “ethereal communication”
• posters
Why Wireless?
• why wireless (mesh ≠ wireless)
• inverse square law
• what technologies can be used for device communication?
API Mode
• Powerful, steeper learning curve
• Data wrapped together with commands, addressing and status information
API Mode Format
*ATNJ = node join
Protocols
• Sending
• Flow control
• Call / response
• Broadcast
• Start / stop
• Checksums
• Collisions