Under the hood of the AIS 600 transmitter
Categories
Tags
Recent articles
Ubuntu 16.10 LXC host on ZFS Root, with EFI and Time Machine
How to connect any serial device to the internet
I installed a Garmin AIS 600 AIS transceiver, although as my VHF receives AIS too I'll only power this one up when I want to transmit. Installation requires a Windows machine, which annoyed me as I dont have one. I fired up a virtual machine and put a sniffer on the serial port to log the conversation - the AIS600 uses a standard FT232R USB UART with a USB id of 0403:6001, and talks at 38400 baud. Here are a few of the sentences I received from it when I connected with a terminal program and didn't send anything:
$PGRM,MSG,INITDONE*4B $PGRM,TXT,00,Part No: A038*2A $PGRM,TXT,01,HWVersion: 05*2A $PGRM,RES,LED,12*2E $PGRM,RES,SM,0,0*52 $PGRM,TXT,02,Serial: 1234*4E $PGRM,TXT,03,Date of manufacture: 150303*39 $PGRM,TXT,04,Firmware ver G.2.14*58 $AIVER,,,AI,GARMIN@,,1234,A038,G.2.14,05*36 $AITXT,01,01,50,AIS: GPS: no valid fix*4A !AIVDO,1,1,,,B00000000GwjL67Fe69L?wfUkP06,0*16 $AISSD,@@@@@@@,@@@@@@@@@@@@@@@@@@@@,000,000,00,00,0,00*3C $AITXT,01,01,55,AIS: No MMSI*0A $AIVSD,037,,,,,,,,*51 $GPRMC,093142.267,A,5124.8098,N,00011.1093,W,0.00,147.58,090715,,,A*77 $PGRM,RES,LED,13*2F $PGRM,RES,MMSI,000000000*4A $PGRM,RES,SM,0,0*52
and here's the conversation when I fired up Garmin's configuration software - lines sent from the computer to the AIS are in yellow:
$PGRM,GET,MMSI*44 $PGRM,RES,MMSI,000000000*4A $AIAIQ,SSD*39 $AISSD,@@@@@@@,@@@@@@@@@@@@@@@@@@@@,000,000,00,00,0,00*3C $DUAIQ,VSD*25 $AIVSD,037,,,,,,,,*51 $PGRM,GET,MMSI*44 $PGRM,RES,MMSI,000000000*4A $AIAIQ,VER*3C $AIVER,,,AI,GARMIN@,,9829,A038,G.2.14,05*36 $PGRM,DEBUG,ADC,1*02 $PGRM,DEBUG,LED,1*09 $PGRM,RES,ADC,0000,0000,41,5C,04EC,04EC,0488,0488*79 $PGRM,RES,LED,13*2F $PGRM,SET,GPSCONF,2,1,3*16 $PGRM,RES,ADC,0000,0000,41,5C,04EC,04EC,0488,0488*79
So we've learned the following:
- It is configured, and reports, over USB using standard NMEA0183-style sentences at 38400 baud. I haven't looked at its NMEA output yet but I'd be surprised if the output wasn't identical.
- The AIS reports GPS location over USB - a surprise, as the manual says "The AIS 600 does not accept GPS information from any other GPS device or antenna on the boat. Also, the AIS 600 does not share GPS information from the GA 30 antenna with any other device on the boat. Mind, the manual (along with Garmin's website and Garmin Support when I emailed them) also describe the supplied GA38 antenna as passive, which is rubbish - it is an active antenna.
-
The device reports on its status LEDs - the value "13" above is, I think in hex (binary
00010011) and
is a bitmask. Here's the table of LEDs from the manual, which I'll annotate with which
bit in that value
it is as I work them out - the only values I've seen in response so far are 13, 42
and 02:
All ok Solid when the device is ready to transmit and receive. Bit 1 RX Flashes when the device receives an AIS message ? TX Flashes when the device sends an AIS message Bit 6 ??? RX only Solid when the device is in silent mode or when the device is not ready to transmit Bit 0 or 4 Warning Flashes when there is a warning condition Bit 0 or 4 SRM Flashes when the device transmits an SRM. ? Error The device is not able to transmit due to a critical error. ? VHF TX Solid when a connected VHF radio is transmitting. ? - The device reports on at least one ADC with values in hex. The UI has a few fields where ADC values might apply: device voltage during idle and transmit, TX forward and reverse power and so on, but I didn't try to match the fields up with the reported values.
So far, so good, although to be honest there's not a lot we can do with this box other than set it up and forget about it. The unit sends a Class B AIS message type 19, which doesn't carry a lot of data that needs configuring. The only fields you can set in the GUI are MMSI, Callsign, Ship name, Vessel type (see table 11 for a list) and dimensions in four directions from the GPS antenna (useful on a supertanker, less so on a 10m yacht). Here's the conversation where I set the MMSI - substitute your own 9-digit MMSI for "xxxxxxxxx"
$PGRM,SET,MMSI,xxxxxxxxx*48 $PGRM,GET,MMSI*44 $PGRM,RES,MMSI,xxxxxxxxx*4E
And to set the vessel name, callsign and dimensions:
$AISSD,aaaaa,bbbbbbbbb,c,d,e,f,0,AI*17 $AIAIQ,SSD*39 $AISSD,aaaaa@@,bbbbbbbbb@@@@@@@@@@@,ccc,ddd,ee,ff,0,AI*57
Here "aaaaa" is your callsign (the response pads this to 7 characters with the "@" characters), "bbbbb" is your vessel name (which must be in capital letters - again the reponse is padded to 20 characters), and c, d, e and f are your bow, stern, port and starboard measurements from the GPS antenna in meters - response values are 0-padded to 3 or 2 digits. Finally, to set the vessel type to 36 (sailing vessel):
$AIVSD,36,,,,,,,,*60 $DUAIQ,VSD*25 $AIVSD,036,,,,,,,,*50
It's worth pointing out that once you set your MMSI you can't reset it without some
magic help
from Garmin. Sending a $PGRM,SET,MMSI,123456789*4F
and then a
$PGRM,GET,MMSI*44
returns my original MMSI, and the UI tells me it can't be changed.
Finally, the software always sends $PGRM,SET,GPSCONF,2,1,1*14
before it
disconnects, maybe to write the settings to flash? Don't know.