Thanks for the rapid response. Yes, the 45, 90, and 95 all have the same serial interface protocol, although I expect the 45 might be a little reluctant to accept an aviation database. The interface protocols I have seen seem to mis-interpret ACK and NAK packets (0x06 and 0x15) as requests for the next packet - only semantics I suppose - and omit some of the other packet and mode types, mostly applicable to aviation units only. I have tacked my version of all this onto the end of this email. GPS95 GARMIN/GARMIN Protocol and Data Formats --------------------------------------------- _ no.of data bytes | Packet: 10 XX LEN S/C 10 03 | | |-sumcheck to 00--| A byte value 10 anywhere in the 'LEN S/C' is escaped by a second 10, which is not included in the byte count or sumcheck. XX =3D 03 and 10 are never used. XX data Description -- ---- ----------- 00 4 bytes of data. 01 02 04 05 06 XX 00 ACK XX (Acknowledge) 07 08 09 0A NN 00 Set Mode NN 0B 0C NN 00 END of Mode NN 0D 0E 8 bytes of data. 0F 11 16 bytes of data. 12 13 124 bytes of data; one pkt per entry. 14 15 XX 00 NAK XX (Negative Acknowledge - ie fail) 16 17 18 19 1A 1B NN 00 REQ to SEND 'NN' Packets 1C 1D 1 byte of data - the route number. 1E 124 bytes of data; one pkt per wpt in current route. 1F 42 bytes of data; one pkt for each of 32 entries. 20 21 22 13 bytes of data. 23 124 bytes of data. 24 132 bytes (4 addr + 128 data) 25 26 4 bytes (Garmin Time of manufacture) 27 28 29 FE <> Request for Unit Details FF Typically 22 bytes. Modes 00 0B Reset(CFG,Counter,Ref) and POWER DOWN 01 Send Almanac 0C End of Erase (and mode in 'end of 0D') 02 Send Current Posn 0D Receive JEPP DB 03 Send Proximity db 0E Erase JEPP DB. 04 Send Routes db 0F - 05 Send Date & Time 10 - 06 Send Track db 11 - 07 Send USR db 12 - 08 POWER DOWN 13 - 09 - 14 - 0A - 15 to 1F - Example Data 7f 7b 80 8a (last two bytes vary cyclically at random). 23 88 65 bf 95 14 ed 3f 1b 92 49 dd 07 a6 86 bf Possibly 64bit FP. 8 bytes North/8 bytes West. 0a 0c c9 07 16 00 14 2d (M D YY HH M S) (12.Oct.1993 22:20:45) 00 92 06 25 3f d3 8c ff cd 37 19 07 00 |--- Lat --|--- Long --|--- Time --|Start marker A B O 20 20 20 c0 2f 96 28 ff 34 fc fd 66 33 c8 06 |--- Lat --|--- Long --|--- Time --| A B O Y N E 20 A I R F I E L D 5f 5f 5f 5f 5f (20spaces) 00 00 00 00 (56spaces) ff 7f 20 20 20 04 16 00 cb 00 "GPS 95 AVD 2.03 " 00 |unit| s/w | or 2d 00 ce 00 =93GPS 90 2.06 =93 00 Example Sequences PC: 10 0A 02 05 00 EF 10 03 (set 'send date & time' mode) GPS: 10 06 02 0A 00 EE 10 03 (ACK setmode) 10 0E 08 SC 10 03 (date & time packet) PC: 10 0A 02 02 00 F2 10 03 (set 'send current posn=92 mode) GPS: 10 06 02 0A 00 EE 10 03 (ACK setmode) 10 11 10 10 SC 10 03 (posn packet) PC: 10 0A 02 07 00 ED 10 03 (set 'send usr waypoints' mode) GPS: 10 06 02 0A 00 EE 10 03 (ACK setmode) 10 1B 02 17 00 CC 10 03 (req to send 23 pkts) PC: 10 06 02 1B 00 DD 10 03 (ACK rts) GPS: 10 23 7C SC 10 03 (1st waypoint packet) PC: 10 06 02 23 00 D5 10 03 (ACK waypoint) ....... etc .......... GPS: 10 23 7C SC 10 03 (last waypoint packet) PC: 10 06 02 23 00 D5 10 03 (ACK waypoint) GPS: 10 0C 02 07 00 EB 10 03 (end of usr waypoints db) PC: 10 06 02 0C 00 EC 10 03 (ACK end of db)