Change Detect for all 8 digital IO Pins


I am trying to use a pair of series 1 XBee(s) as a remote keypad/joystick. I have them connected using a sparkfun usb explorer for the base and the regulated explorer for the remote.

I have set the change detect bit field to 0xFF and set all DIO channels to 3(Digital Input). I have also set the internal pull up resistor field to 0xFF

Every time I ground a pin (DIO0 in this example)i get a response of a 14 byte string as follows:
7E 00 0A 83 00 00 3B 00 01 00 FF 00 5E E3
Releasing the ground I get this packet.
7E 00 0A 83 00 00 3E 00 01 00 FF 00 5F DF

My problem is that inputs 5 and 7 are not showing up in the bit field (grounding the pins doesn’t generate a packet either)

The example packet shows byte 13 to be 5E and 5F, I expected it to be FE and FF.

My questions are:

  1. Am I missing something?
  2. Would anyone be able to verify my results either way?

I have attached the config saved from X-CTU if anyone can help.

Kind Regards,


The .pro file looks fine, so it’s not that.

Those two inputs are the only two out of the eight that don’t have pullup resistors, so my guess would be that it might start to work if you supplied external resistors to do the job. I seem to think that a value of about 50k should work - don’t know where I got that from though.

Thanks for the reply,

I assumed the 8 internal pull-up resistors were all for the digital IO lines. it’s how you say on page 51 of the manual.

I will try this tomorrow.



Hi John,

I can confirm it is working, used a 47k resistor on each line.

for further information, it is also noted on Rob Faludi’s website under the ‘XBee LilyPad Mistakes’ section.

Once you know what you’re looking for…

thanks for your help,