As I progress my problems are becoming more complex. I fear there might not be a solution I like for this one. I'm building a RC rudder for a stand up paddle board, and I've found an ideal keypad for the project (the little thumb joysticks I built are too fiddly) in the Sparkfun wearable keypad. Unfortunately they elected to multiplex the five switches into three leads, which seems particularly silly since they have an unused wire in the ribbon cable. schematic is here: http://dlnmh9ip6v2uc.cloudfront.net/datasheets/Components/Switches/China%20Coin%20PIN%20out%20and%20Circuit%20design.pdf
Basically they connect up, down, and center switches to ground to pull pin 5.3 low for down, 5.2 low for up, 5.1 low for center, and the left and right switches are steered by diodes so they connect pin 5.3 to 5.2 for right and 5.3 to 5.1 for left.
Reading the switches with an arduino is fairly easy -- but I want the pin states to be sent via xBee with no arduino connected to the transmitting xbee--just a size consideration, everything needs to fit into a hollow paddle handle. Yes, I could probably squeeze a Pro in there, but you can see the benefits of a bare xbee.
So I configured a transmitter xbee for DI on pins D0, D1, D2, D3 and set a sample rate. Then configured the receiving xBee for DO High on the same pins. And of course it works for up and down since they pull low, but connecting the pins together doesn't change the logic state. When I read the resulting packet (stripping out all the stuff that doesn't change) I get 00 0E for down. 00 0B for up and 00 0F for both left and right.
the center switch gives a strange result, it truncates the packets. There must be something odd about pin D1 on the xbee, but I can figure that out later.
I thought about configuring the pin connected to the 5.3 switch pin to low so it would pull either 5.2 or 5.1 low when the right or left button is pressed, but pressing the down button wouldn't change the state.
Any ideas, other than "get a different keypad".