Archive for the 'Networking' Category

ITP ZigBee Wiki for PAN IDs

ZigBeeWiki.jpg

Setting your own unique PAN ID prevents your radios from conflicting with other people’s projects. Most importantly, it prevents other people from accidentally interfering with your projects. Everyone at ITP that is using ZigBee 802.15.4 radios should select one or more unique PAN IDs for themselves, and set all their radios to use those PAN IDs by default. Here’s how to do it on the XBee brand ones:

  1. Select a unique hex number between 0 and FFFE and note it here: http://social.itp.nyu.edu/cgi-bin/itpwiki/wiki.cgi?ZigBee
  2. Connect to your XBee serially, using screen in Terminal on the Mac or Hyperterm on the PC
  3. Get into command mode (+++) and issue the ATID command, followed by your chosen PAN ID
  4. Issue the ATWR command to write your new settings into the firmware, so that they persist even when you turn off power to the XBee

EXAMPLE: If you chose the PAN ID 23A1 you could issue the following commands (where <cr> indicates a carriage return):
    +++
    ATID23A1<cr>
    ATWR<cr>

XBee Direct I/O with ADC

XBee radios can now record and output multiple channels of digital and analog data without using microcontrollers. The latest firmware (version 10A1) supports up to seven channels of analog input, nine channels of digital I/O and two channels of analog (pulse-width modulation) output. These will be great for creating small sensor modules or miniature output modules with low power and very low complexity.

Andrew Schneider and I cobbled a couple experimental modules together last weekend, and I recreated them for a demonstration to my Project Development Studio class. Here’s the presentation on XBee Direct that I gave to the class. Firmware updates can be performed with MaxStream’s X-CTU software, and you’ll certainly need to do this if your XBee’s were purchased before 2007.

Direct I/O should be considered for wearables, remote controls, toys, covert sensors, computational jewelry or anything airborne. Photos of the input and output circuits are below, along with the AT commands for this setup, with one analog (potentiometer) and one digital (switch) input, and the corresponding outputs (motor & LED):

INPUT MODULE:
ATID3456 –> PAN ID
ATMY1 –> my address 1
ATDL2 –> destination address 2
ATD02 –> input 0 in analog mode
ATD13 –> input 1 in digital in mode
ATIR14 –> sample rate 20 milliseconds (hex 14)
ATIT5 –> samples before transmit 5
ATWR –> write settings to firmware

OUTPUT MODULE:
ATID3456 –> PAN ID
ATMY2 –> my address 2
ATDL1 –> destination address 1
ATP02 –> PWM 0 in PWM mode
ATD15 –> output 1 in digital out high mode
ATIU1 –> I/O output enabled
ATIA1 –> I/O input from address 1
ATWR –> write settings to firmware


Input Module with Potentiometer and Switch


Output Module with Vibrator Motor and LED

Sampling from Samtec

samtec_tiger.jpg

Samtec will sample small quantities of parts (usually no more than 10 of each. However their web site is confounding. If you want to find a part number, request or download a catalog first. When you are ready to order, use the Samtec Sample Form Put in the Item number and Quantity only. You don’t need the pull-down menus or Build a Part Number button at all.

Here’s some part numbers you may want:
Strips of 32 female headers with standard 100 mil breadboard spacing: SSA-132-S-T

Strips of 32 male headers with standard 100 mil breadboard spacing: TSW-132-07-G-S

Strips of 10 2mm female headers for XBee radios: MMS-110-01-L-SV

Strips of 20 2mm female headers for Lantronix MatchPort: MMS-120-01-L-SV

Sockets for 28-pin Arduino chips (low insertion force): ICA-328-ZSGG

BlueSMiRF AT Commands

Main-BlueSMiRF-Extended-1.jpg

May 15, 2007: Apparently the AT commands for the BlueSMiRF radios are a trade secret. BlueRadios requested that they not be posted. So, uh, don’t use them I guess?

Here’s the AT command set for BlueSMiRF modules. It’s tremendously handy to know all this stuff when working with the modules. I had high hopes that the SNIFF command would cause the module to make sniffling noises. No such luck.

XBee DriveBy Presentation

XBee_apple.jpg

At ITP on Thursday evenings, students teach students in hour-long sessions that we call DriveBys, because a lot of knowledge gets sprayed into the crowd in a short period of time. I just did one on the XBee ZigBee radios, covering the basics of applications, comparisons to other technologies, how to make one, advanced projects and some configuration in-depth. Here’s the XBee DriveBy presentation as a PDF. There is also a streaming video of the session available now, thanks to Dan Phiffer.

Programming Arduino Wirelessly (PAW)

PAW_Arduino_Diagram.jpg

The Arduino system offers an easy and open-source method for programming microcontrollers. Normally this means using a serial cable or USB cable attached directly to the microcontroller project. But what if your project is floating in a weather balloon, glued to the bottom of a swimming pool or baked in a loaf of bread? It would be great to upload code changes wirelessly, and even greater if you could do it from a mile away.

Here’s a quick primer on how to program an Arduino over a wireless connection.

Now, we can put an Arduino on the ceiling, underwater, up a tree, stuffed in a turkey or what have you and still be able to change and improve its behavior. In fact, by adding an XPort or WiPort to the XBee, we can extend the connection over the Internet, and program anything from pretty much anywhere.

XBee Firmware Upgrade Example

X-CTU Modem Configuration.jpg

MaxStream sells several Development Kits that include interface boards and cables for loading firmware upgrades. These interface boards will not connect directly to an XBee that has been soldered to a breakout board, and are rather costly if your only purpose is to upgrade the firmware.

My XBee Firmware Upgrade example demonstrates how to build a bare-bones circuit for loading firmware and configurations to the XBee radio without the need for custom interface boards.