FIO is an Arduino compatible board based on the original design from LilyPad Arduino v1.6. It has connections for a Lithium Polymer battery and includes a charge circuit over USB. An XBee socket is available on the bottom of the board.

NOTE: The USB port is charging use only, so a FIO board is not recognized as a USB device.


  • a FIO board
  • two XBee RF modems (802.15.4 model, firmware version 1.0.C.D). If you purchased your XBee board from SparkFun and the firmware is not the correct version, just load up X-CTU in Windows and update the firmware to version 10CD. Note: the newer Series 2 XBee modules will not allow for wireless programming since I/O line monitoring (used for toggling the reset pin) cannot be setup the same way!
  • a XBee to USB interface module
  • a polymer lithium battery
  • a USB cable (A to mini-B)

How to configure XBee RF modems

Option 1: Using XBeeConfigTool (on Mac OS X and Windows) -- Easy, but requires the correct firmware.

  • make sure you are using a Series 1 (not 2 or 2.5) XBee module if you want to do wireless programming. Series 2 modules do not allow for automatic IO Line Passing; this is required for toggling the reset pin when programming.
  • also make sure that you have a recent version of the firmware (preferably version 10CD, higher number are not necessarily better, just different). If you need to upgrade your firmware, use X-CTU as described below (windows only, unfortunately).
  1. download the XBeeConfigTool package for your platform
  2. choose a proper serial port
  3. set a proper PAN ID (The ID of the network these two devices will share)
  4. set a proper MY ID (The unique ID of the device on the PAN network)
  5. choose a proper mode: Coordinator (PC Side) or End Device (Arduino/Funnel Side)
  6. press the Configure button to configure the XBee modem

Option 2: Using X-CTU (on Windows) with exact same XBee hardware listed above

  1. upload hardware/fio/xbee/coordinator_auto_reset.pro to the coordinator
  2. upload hardware/fio/xbee/enddevice.pro to the end device

Note: If you change something on your XBee board with X-CTU and you can't communicate with your XBee anymore, here is a hack from the Sparkfun forums for how to bring it back to life:

 You can do it without a dev board.
 It is possible when using the USB board.  
 1. Take the module out of the interface board.
 2. Connect the interface board to the computer.
 3. Open X-CTU
 4. Go to "Modem Configuration"
 5. Put a check in the "Always update firmware" box
 6. Select proper modem from drop down menu,
 7. Select proper function set and firmware version
 from drop down menus.
 8. Click on the "Write" button. After a few seconds of
 trying to read the modem, you will get an Info box
 that says Action Needed. At this point, CAREFULLY
 insert the module into the interface board.
 9. You may get the info box again a short while after,
 just use the reset button on the interface board.
 This should get you back up and running. 

Option 3: Using XBee terminal and configure manually (on Mac OS X)

  1. launch a serial terminal such as XBee terminal example (provided as a part of Making Things Talk's examples)
  2. configure both modems as follows
CommandCoordinator (i.e. a PC side)End device (i.e. a FIO side)
ATMY (see note)01
  • note: from the Arduino forums, if you have a series 2 XBee module and the ATMY command is not returning OK:
"Check out the How-to for setting up XBee Series 2 modules. You may have already done the firmware upgrade (you must re-flash one Series2 module to be your network coordinator), but if you look at the last section, there's a little bit of information about how the code is different for series 2 modules. The biggest difference is that you can't change ATMY, instead you address modules by their Alpha-numeric Node Identifier (ATNI)."

How to configure your hardware

1. FIO board: close the solder jumper on the top side near by the power switch

2. XBee Explorer USB or XBee starter kit: solder in a tiny jumper between the RTS pin and D3

How to upload sketches from an Arduino IDE to a FIO board

  1. choose Tools/Board/Arduino Pro or Pro Mini (8MHz)
  2. choose a proper serial port in Tools/Serial Port
  3. write a sketch and press the Upload button


Language / 言語

Featured Pages

For Members

Not a member?