Radio testing units
The 900MHz Xbee radios don't offer a way to read received signal strength serially like the old ones did. There is an RSSI output pin that fades an LED, but it's not accurate enough for our needs. So in the meantime, I've come up with another way to test them that also allows us to test the microGPS unit.
What you have are two units, each containing a 900MHZ XBee radio. The black unit also contains a GPS micro, and circuitry to allow you to attach an external GPS receiver. When turned on, it will broadcast its GPS location, NMEA-formatted. The other unit contains a radio and a datalogger with a micro-SD card. It will receive the transmission from the GPS unit and log it to a text file on the SD card. We'll use the GPS coordinates to determine how far apart the two radios are when they lose signal. My feeling is you should be able to plug the lat/long list into ArcView and get a map. The point farthest from your stationary point will give us the radio range. If this is not possible, let me know and I'll write an app to calculate the distance using the GPS points.
You should only need to get into the GPS unit when the battery dies. You'll need to get into the datalogger one more frequently, to get the data off the SD card. Hence the pretty pink box.
I've included a spare radio and USB-to-serial adaptor so you can view the results live on a laptop if you want. Attach the radio to the USB-to-serial adaptor, plug it into your computer, and open a serial terminal program (I recommend CoolTerm, the mac version is on the SD card in the datalogger), and open the port at 9600 baud. When the GPS radio is on, you should see the data streaming in.
The USB-to-serial and spare batteries are inside the datalogger unit. Remove teem before using.
What the radios send
The GPS unit will broadcast the output from the serial devices. With the GPS switch set to INT, it will broadcast the output from the microGPS inside the box. We've had bad luck with these in the past,so I also added an external port to attach a Garmin GPS unit. To use it, set the GPS switch to EXT. The one Mike and Arturo will do, using the serial cable I'm sending. Any of yours will probably work with the same cable. I suggest testing from BOTH GPS receivers at every point.
The datalogger unit will broadcast a signal just so there's two-way communication between the radios. What it broadcasts is irrelevant, but if it weren't broadcasting, the GPS unit's RSSI indicator wouldn't light up. This way, both parties will know when signal is lost, even if they're out of hearing range of each other.
Each unit has a round power switch. The LED on the power switch is not connected, so don't expect it to light up.
On the GPS unit, there are two blue lights, one solid to show that it's on, and one blinking to show that the radio's operating. The white LED on the other side shows received signal strength (RSSI) from the other unit. When the two are near each other it should be very bright. When it goes out, they've lost contact. The blue lights should continue to function the same regardless of contact.
On the datalogger unit, there are two LEDs, a red RSSI indicator,and a green indicator to show the radio's working. When the red indicator goes out, the two units have lost contact. The green LED should blink regardless of contact.
Testing with the units
One person takes the logger. The other takes the GPS unit. Logger stays stationary, GPS unit moves. Turn both on and make sure you have RSSI indicators on both before you separate. When you do, the GPS person moves like a monkey through the forest, until there's no longer an RSSI signal on either radio. Then turn the units off. The resulting data file will be what you use to calculate the range.
It would be good to test at stages in the walk with both radios, i.e. move 10m, stop, change GPS from internal to external. Wait, then change back. Move to 20m and repeat the process. And so on. That way we can see how well the microGPS performs, and use the Garmin as a control.
It would be good to test with whip antennas on both, then with a Yagi on one or the other. Whichever has the Yagi will have more range, so the other person is likely to lose RSSI first.
I'd like to see a test with the stationary antenna on each of the towers, if possible,and the GPS unit moving away from the towers, to see the range from each tower. Likewise, perhaps the heliport location, or whatever the highest elevation is?
Inside the Units
The batteries are rechargeable, using the FIO unit as a charger. Remove the battery from the unit, plug it into the FIO unit,and attach the fio to a USB port on your computer. The yellow charging light should light up while charging,and go out when you're charged. You've got a couple spare batteries too. Polarity is indicated on the battery plugs in the boxes.
Here are the settings for the radios, in case you need to re-configure them(note: the serial radio may not be configured with DL and DH set; i See some garbage still in the GPS stream I have here, which could be from that):
Radio 1: GPS radio ATRE (reset to factory defaults) ATBD2,WR (baud rate 4800 bps, save to flash memory)
Radio 2: Datalogger radio ATRE (reset to factory defaults) ATD02 (I/O p is an analog input) ATIR50 (send samples from inputs every 80 ms) ATDH 13A200 (send to this address) ATDL403D698A (send to this address(second half of the address)) ATWR (save to flash memory)
Radio 3: USB-to-serial radio (same as datalogger radio) ATRE (reset to factory defaults) ATD02 (I/O 0 is an analog input) ATIR50 (send samples from inputs every 80 ms) ATDH 13A200 (send to this address) ATDL403D698A (send to this address(second half of the address)) ATWR (save to flash memory)
Again, the logger and the serial radio send garbage, and send it only to the GPS unit so that the GPS unit has something ti indicate on its RSSI indicator.
What the data looks like:
Form the external receiver, if you're set to output NMEA, you should see something like this. I'm attaching a guide to NMEA to help clarify what all this means,but the $GPGLL sentence is probably the most relevant. Explanation below.
External (Garmin) unit:
$GPRMB,V,9.99,R,,GARMIN,3851.3330,N,09447.9410,W,969.969,270.0,,V,S*60 $GPGGA,184000,4046.6786,N,07354.9921,W,8,00,2.0,57.2,M,-34.0,M,,*43 $GPGSA,A,3,,,,,,,,,,,,,3.6,2.0,3.0*36 $GPGSV,1,1,00*79 $GPGLL,4046.6786,N,07354.9921,W,184000,V,S*52 $GPBOD,257.5,T,271.0,M,GARMIN,*58 $GPBWC,184000,3851.3330,N,09447.9410,W,270.0,T,283.4,M,969.969,N,GARMIN,S*7B $GPVTG,0.0,T,13.4,M,0.0,N,0.0,K*78 $GPXTE,V,V,9.99,R,N,S*06
Internal (microGPS) unit:
$PSRFTXT,Version: GSWLT3.5.0MMT_3.5.00.00-CONFIG-CL31P2.00 *26 $PSRFTXT,TOW: 0*25 $PSRFTXT,WK: 1517*67 $PSRFTXT,POS: 6378137 0 0*2A $PSRFTXT,CLK: 96250*25 $PSRFTXT,CHNL: 12*73 $PSRFTXT,Baud rate: 4800*65 $GPGGA,235946.065,,,,,0,00,,,M,0.0,M,,0000*5A $GPGSA,A,1,,,,,,,,,,,,,,,*1E $GPRMC,235946.065,V,,,,,,,310109,,,N*4B $GPVTG,,T,,M,,N,,K,N*2C $GPGGA,235947.062,,,,,0,00,,,M,0.0,M,,0000*5C $GPGSA,A,1,,,,,,,,,,,,,,,*1E $GPRMC,235947.062,V,,,,,,,310109,,,N*4D $GPVTG,,T,,M,,N,,K,N*2C
$GPGLL - Geographic Position Latitude/Longitude
$GPGLL GLL protocol header 3723.2475 Latitude, ddmm.mmmm N N/S Indicator, N=north or S=south 12158.3416 Longitude, dddmm.mmmm W E/W Indicator, E=east or W=west 161229.487 UTC Time, hhmmss.sss A Status, A=data valid or V=data not valid A Mode, A=Autonomous, D=DGPS, E=DR (Only present in NMEA v3.00) *41 Checksum <CR> <LF> End of message termination