The fact that in the setup i made yesterday, the XBee module sometimes had trouble setting up the connection was troubling me, so i tried to figure out what was going on. My guess was that the CTS line was not monitored, so i built a counter into the loop that waits for CTS to get high; and made this counter part of the packet payload so that i could monitor what was going on; this counter was always 1, meaning CTS was high at the time the first CTS check was done!
Hmm, seeing that, the error was found very quickly: CTS was attached to the wrong digital input, so CTS wasn’t monitored at all… fixed the wiring and now everything’s OK.
Second thing i changed was for the sake of convenience: the new sketch does the temperature and pressure calculations “on board”, so now the payload immediately shows value that are easily interpreted. I also took the time to create a small Delphi program that uses my XBee API to log all the packets that are received in a more readable style:
31-1-2010 20:43:30:Packet payload=[2 215 100159] 31-1-2010 20:43:41:Packet payload=[7 215 100150] 31-1-2010 20:43:52:Packet payload=[0 215 100153] 31-1-2010 20:44:03:Packet payload=[0 215 100156] 31-1-2010 20:44:14:Packet payload=[0 215 100166] 31-1-2010 20:44:25:Packet payload=[5 215 100156] 31-1-2010 20:44:36:Packet payload=[10 215 100159] 31-1-2010 20:44:47:Packet payload=[0 215 100150] 31-1-2010 20:44:59:Packet payload=[0 215 100156] 31-1-2010 20:45:10:Packet payload=[0 214 100153]
The first value is the time in milliseconds that it takes for the CTS to become high, the second value is the temperature in 1/10th of a degree and the last value is the pressure in mbar. Neat 🙂