The following reference includes the latest firmware revision 6 released October 20, 2011.
The DMK -11A Hardware-Software Reference is designed to provide detailed information about the hardware and software interfaces of the DMK-11A to enable a user to interface of a variety of marine hardware and wireless devices to the DMK-11A and to allow software developers to configure and control the unit through its Wi-Fi interface.
The DMK-11A is a wireless gateway that bridges marine electronics data from a variety of marine data buses to Wi-Fi (802.11b). Its objective is to allow the graphic display of marine data on a variety of devices including laptop and desktop personal computers and a range of compact portable devices including Apple iOS devices (iPhone/iPad/iPod touch) and Android devices.
The DMK-11A was created with the realization that almost everyone carries around intelligent portable devices and these devices make ideal platforms for displaying marine data. These devices have the added feature that programs can easily be upgraded to incorporate new features unlike fixed function marine displays which can be upgraded only through a complicated firmware download if at all. Because they are portable, the devices support a number of wireless connections-Bluetooth and Wi-Fi being the most common. Wi-Fi was chosen as the wireless connection for the DMK- 11A because it is available across the widest variety of portable and fixed platforms.
Using Wi-Fi also allows the DMK-11A to connect to the Internet though Wi-Fi Access Points available at many marinas. This means that it is possible to monitor your boat from a remote location with the DMK-11A.
The DMK-11A consists of a small waterproof, impact resistant polycarbonate box with a single 10 pin flat ribbon cable and one or two (-GPS option) antenna connectors. Inside the box are:
The three interfaces of the DMK-11A support virtually all existing marine electronics instrumentation. The DMK-11A has been designed to support data transfer on all buses simultaneously so that it is possible to serve multiple bus types with a single DMK-11A.
The DMK-11A runs firmware programmed into the Flash Memory of its embedded processor. This flash memory is preserved even when power is removed from the unit. Configuration information written into the unit is also preserved when power is removed.
The following is the pin-out of the 10 pin I/O connector located inside the DMK-11A and the color coding of the flat ribbon cable that is attached to the I/O connector and brought out of the box through the environmentally sealed cable gland:
|1||Brown||DC In (5-24VDC)|
|3||Orange||NMEA 0183 In (Port A)|
|4||Yellow||NMEA 0183 Out (Port A)|
|5||Green||NMEA 0183 In (Port B)|
|6||Blue||OnBrdGPSOut (4800 baud)|
|8||Gray||NMEA 2000 L|
The DMK-11A can be powered from 5-25 VDC. Power is normally provided through the NMEA2000 interface or the SeaTalk® interface or can be provided through a separate power circuit. The DMK-11A consumes about 80 ma (milliamps) at 12VDC and less than 50ma at 24VDC. The two Ground wires are connected in parallel and either or both can be used as a Ground Return (using both is recommended).
Six LEDs are visible through the transparent box cover and indicate the following functions:
|LED0||Green||Status of Wi-Fi and Data Connections to DMK-11A|
|LED3||Yellow||NMEA0183 PortA Activity|
|LED4||Yellow||NMEA0183 PortB Activity|
|LED5||Yellow||On Board GPS Activity|
When power is initially applied to the DMK-11A, all the LEDs flash on for 1⁄2 second and then off.
LED0 displays the real-time status of Wi-Fi and Data Connections to the DMK-11A. This is done through a series of distinct flashing patterns:
|Short On/Off (1/8sec On, 1/8sec Off)||Wi-Fi Initializing + Connecting|
|Short On followed by Long On (1/8sec On,1/8sec Off,5/8sec On, 1/8sec Off)||Wi-Fi Active + DHCP In Process (Infrastructure Mode Only) See Section 1.2.8 on DHCP|
|Solid On||Wi-Fi Active---No Active Data Connections|
|One, Two or Three Short On followed by a Long Off||Wi-Fi Active—1, 2 or 3 Active Data Connections|
The DMK-11A has an RP-SMA (Reverse Polarity SMA) connector that is designed to support a number of different Wi- Fi antennas. A 2 dB gain Wi-Fi antenna with a swivel is provided that provides flexibility in mounting the DMK-11A. Other higher gain antennas are readily available and it is possible to mount the antenna in a different location from the DMK-11A by using low loss coaxial cable to remote the antenna.
It has been found that the 2 dB gain Wi-Fi antenna provided has a range of at least 150 feet in most mounting situations. A comprehensive antenna mounting guide is beyond the scope of this reference but the following practical tips are offered to achieve maximum range:
|Orientation||Mount the DMK-11A such that the antenna can be swiveled to vertical and use the antenna in this orientation.|
|Height||Mount the DMK-11A at about the same vertical level where most of its use will occur. If use occurs on several vertical levels, mount the DMK-11A near the vertical center of use.|
|Location||Mount the DMK-11A near the horizontal center of use. If most of the use is anticipated in the stern of the boat, this is where it should be mounted.|
|Metal||Do not mount the DMK-11A inside a metal container including a metal enclosed engine room.|
If the DMK-11A is equipped with the GPS option (DMK-11A-GPS), a high performance 12 channel GPS is integrated into the unit and an external antenna is provided. The on-board GPS messages will generate the same type of NMEA 0183 messages that begin with ‘$’ as an external NMEA 0183 GPS unit. Although the On Board GPS is On by Default, it can be turned off by means of a software setting. See Section 2.4 for more information on the packets generated by the On Board GPS.
The DMK-11A can be configured to operate in either Adhoc Mode (also known as Peer to Peer Mode) or Infrastructure Mode but not both at the same time.
In Adhoc Mode, the DMK-11A initializes and starts broadcasting its SSID (SSID stands for Service Set Identifier—the technical term for the Wi-Fi Network Name). Other devices within range can see the SSID and knowing the WEP Code of the DMK-11A (see Sect 1.2.7 Network Security) can connect to it. Peer to Peer mode does not support DHCP (see Sect 1.2.8 Dynamic Host Configuration Protocol) and before you can transfer packets to and receive packets from the DMK- 11A, you must manually set the IP address of your device to be in the same subnet as the DMK-11A. See the default configuration of the DMK-11A for more guidance.
In Infrastructure Mode, the DMK-11A initializes and then tries to connect to the network with the SSID that has been configured into it. If the DMK-11A cannot find a network with a matching SSID (SSIDs are case sensitive), it will keep trying forever to connect to that network. If it does identify a network with the correct SSID, it will apply the network security setting that has been configured to try to complete the network connection.
Note—DMK-11A automatically detects a dropped network connection in Infrastructure Mode and re-enters the Connecting Mode where it remains until the network is available again.
The DMK-11A always operates with WEP (Wireless Encryption Protocol) security when in Adhoc Mode and requires any device connecting to the DMK-11A to provide a 10 hex digit “key” that must match the key configured into the DMK-11A.
In Infrastructure Mode, the DMK-11A can use no security (an “open” connection), WEP security, WPA (Wi-Fi Protected Access) or WPA2 security depending on what the Access Point requires. Rather than a hex key, WPA and WPA2 use a plain English passphrase (also known as a PSK--preshared key) between 8 and 64 characters long.
Note—The DMK-11A Rev 6 firmware has an issue with the Adhoc WEP security configured as Default. Devices that attempt to connect to the DMK-11A with an incorrect key think that they have successfully connected although no data can be sent to or received from the DMK-11A. An effort is being made to resolve this problem.
In addition to the network security described above, the DMK-11A has a second level of security in the form of a ten character “challenge string” that is sent to the DMK-11A as a part of every command packet. If the incoming challenge string does not match the configured challenge string, the packet is ignored. The default challenge string is set to “0123456789” but it can be changed as part of the software configuration (Section 2).
In Infrastructure Mode, the DMK-11A supports DHCP after a connection to an Access Point has been made. DHCP is a protocol which requests that the Access Point provide an appropriate IP Address, a NetMask and a Default Router Address. DHCP is automatically invoked by the DMK-11A in Infrastructure Mode when the unit’s IP Address is configured to “0.0.0.0”. DHCP is not utilized in Adhoc Mode.
The DMK-11A supports up to three simultaneous wireless connections. Each of these connections can either be Streaming or On-Demand. The difference between a Streaming and an On-Demand connection is that in a Streaming Connection, the DMK-11A is pre-configured with an IP Address and Port (the combination of IP Address and Port is referred to as an Endpoint) . Once the DMK-11A has completed setting up its network connection, it continuously streams data to any configured and enabled streaming connections. No action is required on the part of the receiving Endpoint.
On-Demand Connections require that the device accessing the DMK-11A send periodic Start packets to it. When the DMK-11A receives a valid Start packet from a device and at least one of its three connections is available, it begins sending data to that device’s Endpoint. The DMK-11A needs to be “refreshed” with a Start packet every 60 seconds to keep sending data to that Endpoint. If a Start Packet is not received within 60 seconds, data stops and the connection is taken down. The connection is immediately available for reuse.
Streaming and On-Demand connections each have their individual benefits outlined in the table below:
|Streaming||No commands to the DMK-11A are required. This type of connection works well with 3rd party applications. This type of connection is also useful in Infrastructure Mode if you want to stream data to a remote location at a known fixed Endpoint (IP Address + Port) over the Internet.|
|On-Demand||Mount the DMK-11A at about the same vertical level where most of its use will occur. If use occurs on several vertical levels, mount the DMK-11A near the vertical center of use.|
Note—The DMK-11A will always respond to valid command packets even when all three connections are active. An attempt to Start a 4th connection will fail, however. The response packet will indicate the failed Start attempt.
All communication with and control of the DMK-11A, with the exception of the Manual Reset (Section 2.3), is done by means of UDP packets sent and received over the Wi-Fi interface. Only one type of packet is received by the DMK-11A, Command Packets which are used for configuration and control purposes. Two types of packets are generated by the DMK-11A, Response Packets which are the responses to valid Command Packets and Data Packets which are sent to devices connected to the DMK-11A through either Streaming or On-Demand Connections.
Note--With the current DMK-11A firmware (Rev6), all connections, Streaming and On-Demand, receive all data packets. In future firmware versions, there will be configuration options to allow different data packets to be streamed to different connections.
As discussed in Section 1 of this manual, the DMK-11A can receive data from multiple sources and multiple protocols simultaneously. When receiving this data, the DMK-11A insures that the received packets are formatted properly but does not attempt to interpret their contents before encapsulating them as UDP packets for transmission to all current connections. The following is the format of Data Packets transmitted over the Wi-Fi link by the DMK-11A. Of the three protocols, NMEA0183 is the only protocol that contains ASCII readable data. The other two protocols transmit binary data.
|Source||Input Packet Format||Wi-Fi Packet Format|
|NMEA0183+OnBoard GPS||$ABC....<CR>and/or<LF>+!ABC....<CR>and/or<LF>*||$ABC....<CR><LF>+!ABC....<CR> <LF>|
|SeaTalk||Variable Length SeaTalk packet. The beginning of each packet is detected by the DMK-11A hardware.||Variable Length Binary Packet consisting of 0x7f + the variable length binary SeaTalk Packet.|
|NMEA2000||Fixed Length 13 Byte Binary Packet consisting of 5 bytes of address/packet type information + 8 bytes of data.||Fixed Length 79 byte Binary Packet consisting of 0x7e + Six 13 byte NMEA2000 Packets.**|
|DMK-11A||None||One Byte 0x7d Keep Alive Packet. The Keep Alive Packet is sent by the DMK-11A every two seconds if no other packets have been sent in the last two seconds.|
*All 0183 packets other than AIS packets begin with ‘$’. AIS packets begin with ‘!’
**NMEA2000 instruments send packets at a much higher rate than older instruments. The packaging of 6 NMEA2000 packets into one Wi-Fi packet results in a lower chance of dropped packets due to trying to send packets over the air at too high a rate.
Each DMK-11A box is shipped with the same default configuration. This default configuration will work fine for many applications. However, for other more advanced applications, changing the configuration is required. It is possible to change the configuration in such a manner that it is no longer possible to communicate with the unit over the Wi-Fi link. In such a situation, a Manual Reset is provided to return the unit to its default configuration.
The following table illustrates the default configuration of theDMK-11A as well as the available settings for each configuration:
|SSID||“dmkyacht”||Any string up to 32 Ascii characters*|
|Mode||Adhoc with WEP Security||Infrastructure Open or with WEP,WPA,WPA2 Security|
|WEP Code||0123456789||Any 10 hex digits|
|PSK (WPA/WPA2)||“dmkyacht”||Any string up to 64 Ascii characters*|
|Challenge String**||“0123456789”||Any 10 Ascii characters|
|0183 PortA Baud Rate||38,400 Baud||4800,9600,19200,57600,114200 Baud|
|0183 PortB Baud Rate||4800 Baud||9600,19200,38400 Baud|
|On Board GPS||On||Off|
|IP Address||192.168.1.124||Any valid IP Address|
|NetMask||255.255.255.0||Any valid NetMask|
|Gateway IPAddress||192.168.1.1||Any valid Gateway IP Address|
|Streaming Endpoint 1||192.168.1.2/1703||Any valid Internet Endpoint|
|Streaming Endpoint 2||192.168.1.3/1703||Any valid Internet Endpoint|
|Streaming Endpoint 3||192.168.1.4/1703||Any valid Internet Endpoint|
*It is recommended although not required that printable Ascii characters are used in the SSID and PSK.
**The10 character Challenge String is part of the command packet format used to program the DMK-11A. The Challenge String in the command packet must match the DMK-11A challenge string for the command to be considered valid. The Challenge String does not have to be printable characters.
All configuration of the DMK-11A, with the exception of the Manual Reset, is done through the Command Packet Interface. Comand Packets are UDP packets sent from a connected or unconnected device to the DMK-11A. In addition to Command Packets which configure the DMK-11A, there are two Command Packets which provide status responses which indicate the configuration of items on the unit. All command packets have the same format, a command byte which indicates the type of the packet followed by 10 bytes which form a Challenge String followed by 0 or more bytes which provide configuration information.
The following table is a complete list of all Command Packets which can be sent to the DMK-11 (as of Firmware Revision 6). Command packets are either fixed length or variable length depending on the data carried by the packet. Each packet has either an “Immediate” Action which means that it acts immediately or a “Reset” Action which means that the information is written into Non-Volatile memory but has no effect until the next hardware reset of the DMK-11A.
The response to all packets except the GetStreamingEndPoints and the GetStatus packets is a two byte UDP packet where the 1st byte is the CmdByte echoed back followed by a byte which contains the firmware revision (currently 6). The one exception to this is the response to a Start Connection when all three available connections are currently active. The response in this case is still two bytes—0xff followed by the firmware revision. 0xff indicates that the Command cannot be executed since no more connections are available.
Command Packets that have CmdBytes other than the ones in the table below, have an invalid Challenge String or have data lengths other than indicated in the table below are ignored (no response).
One Ascii character:|
0x30-Adhoc Mode WEP Security (Default)
0x31-Infrastructure Mode Open (No Security)
0x32-Infrastructure Mode WEP Security
0x33-Infrastructure Mode WPA Security
0x34-Infrastructure Mode WPA2 Security
|SetPSK||0xa1||Reset||1-64||Sets the Pre Shared Key used in WPA and WPA2 Security. Although any Ascii characters can be used (0-255), using printable Ascii characters is recommended.|
|SetIP Address||0xa2||Reset||4+4+4||Sets the IP Address(data bytes 0-3), the NetMask(data bytes 4-7) and the GateWayAddress(data bytes 8-11) of the DMK-11A. Setting any 4 byte field to 0xff,0xff,0xff,0xff causes that field to revert to it default setting. Setting the IP Address to 0.0.0.0 causes DHCP to be used in Infrastructure Mode. Setting the IP Address to 0.0.0.0 in Adhoc Mode is not valid|
|SetStreamingEndPoints||0xa3||Reset||6+6+6||Sets the IP Address and Port Number (4+2 bytes) for each of three streaming endpoints (data bytes 0-5,6-11,12-17)|
|GetStreamingEndPoints||0xa4||Immed||0||DMK-11A responds with a 19 byte packet with the 1st byte 0xa4 and the remaining 18 bytes providing the 3 streaming endpoints currently set in the DMK-11A.|
|StartConnection||0xa5||Immed||0||Starts an On-Demand Connection to the Endpoint (IPAddress/Port) of the device that issued the command. The On-Demand Connection must be “refreshed” with an additional StartConnection at least every 60 seconds to maintain the connection. Issuing StartConnections more frequently than every 60 seconds has no adverse affect. Issuing a StartConnection on a Streaming Connection has no effect.*|
|StopConnection||0x5a||Immed||0||Immediately stops an On-Demand Connection that has been started. Issuing a StopConnection when no On- Demand Connection exists has no effect. Issuing a StopConnection when a Streaming Connection exists has no effect (ie, the connection remains).|
|Reset||0xa6||Immed||0||After two seconds, the DMK-11A resets which results in all Reset updates being used. The two byte response packet is issued before reset takes place.|
|SetSSID||0xa7||Reset||2-32||Sets a new SSID. Although any Ascii characters can be used (0-255), using printable Ascii characters is recommended.|
|SetWEPCode||0xa8||Reset||5||Sets a new WEP Code. The five data bytes contain 10 hexadecimal digits packed two to a byte.|
|SetChallenge||0xa9||Reset||10||Ten characters (0-255) which represent the Challenge String that is compared to validate each Command Packet.|
|Set0183BaudRatePortB||0xab||Reset||1||￼ 0x30-4800 0x31-9600 0x32-19200 0x33-38400|
DMK-11A responds with an 18byte packet—0xad + 17 bytes of status:|
Byte 1-current number of active connections
Byte 2-number of dropped 2000 packets*
Byte 3-number of dropped 0183 Port A packets* Byte 4-number of dropped 0183 Port B packets* Byte 5-number of dropped OnBoardGPS packets* Byte 6-number of dropped SeaTalk packets*
Byte 7-number of SeaTalk collisions detected*
Byte 8-primary port programmed baud rate
Byte 9-seondary port programmed baud rate
Byte 10-OnBoardGPS programmed On/Off
Byte 11-number of Streaming connections programmed Bytes 12-17-Wi-Fi MAC address
Sets the number of Streaming Connections. 0x30-No Streaming Connections|
0x31-One Streaming Connection to Streaming EP1
0x32-Two Streaming Connections to Streaming EP1+EP2
0x33-Three Streaming Connections to Streaming EP1+EP2+EP3
|SetDefault||0xaf||Reset||1||All settings are returned to the Default Configuration after the next Reset.|
*After responding to the GetStatus Command, these counters are reset to 0.
Manual Reset provides a method of resetting the DMK-11a to its default configuration. To do a manual reset of the DMK-11A, connect the SeaTalk input (pin 2-Red) to Ground (pin 9 or 10-White/Black) and apply power to the unit. All the LEDs will flash multiple times. Wait until the LEDs finish flashing, about 5 seconds. The DMK-11A will now be in its default configuration.
The NMEA 0183 protocol covers a broad array of data. This broad array of information is separated into discrete messages, each of which conveys a specific set of information. The entire protocol encompasses over 50 messages, but only a sub-set of these messages apply to a GPS receiver. The NMEA message structure is described below.
“$” The “$” signifies the start of a message.
ID The talker identification is a two letter mnemonic describing the source of the navigation information. The GP identification signifies a GPS source.
MSG The message identification is a three letter mnemonic which describes the message content and the number and order of the data fields.
“,” Commas serve as delimiters for the data fields. Each message contains multiple data fields (Dn)
“*” The asterisk serves as a checksum delimiter.
CS The checksum field contains two ASCII characters which indicate the hexadecimal value of the checksum. [CR][LF] The carriage return [CR] and line feed [LF]combination terminate the message.
The On Board GPS unit generates 5 packet types. The following information is presented in sufficient detail to allow parsing of each message type. Each of these packets is generated once per second with the exception of the satellites in view command ($GPGSV) which is generated three times each second to provide details on the 12 satellites that the unit can simultaneously track. This data is also driven out OnBrdGPSOut (pin 6-Blue) at 4800 baud (8-N-1).
The following table provides details of each data field type:
Single character field:
A=data valid V-data invalid
Fixed length field:
Degreesminutes.decimal-2 fixed digits of degrees, 2 fixed digits of minutes and a variable number of digits for decimal- fraction of minutes. Leading zeros always included for degrees and minutes to maintain fixed length. The decimal point and associated decimal- fraction are optional if full resolution is not required.
Fixed length field:
Degreesminutes.decimal-3 fixed digits of degrees, 2 fixed digits of minutes and a variable number of digits for decimal- fraction of minutes. Leading zeros always included for degrees and minutes to maintain fixed length. The decimal point and associated decimal- fraction are optional if full resolution is not required.
Fixed/Variable length field:
hoursminutesseconds.decimal-2 fixed digits of minutes, 2 fixed digits of seconds and a variable number of digits for decimal-fraction of seconds. Leading zeros always included for hours, minutes, and seconds to maintain fixed length. The decimal point and associated decimal-fraction are optional if full resolution is not required.
|Variable||x.x||Variable length integer or floating numeric field. Optional leading and trailing zeros. The decimal point and associated decimal-fraction are optional if full resolution is not required (example: 73.10=73.1=073.1=73).|
|FixedHEX||hh||Fixed length HEX numbers only, MSB on the left|
|FixedAlpha||aa||Fixed length field of upper-case or lower-case alpha characters|
|FixedNum||xx||Fixed length field of numeric characters|
Some fields are specified to contain pre-defined constants, most often alpha characters. Such a field is indicated in this standard by the presence of one or more valid characters. Excluded from the list of allowable characters are the following that are used to specify indicated field types:
“A”, “a”, “c”, “hh”, “hhmmss.ss”, “llll.ll”, “x”, “yyyyy.yy”
GGA - GPS Fix Data
The GGA message includes time, position and fix related data for the GPS receiver.
$GPGGA,hhmmss.ss,llll.lll,a,nnnnn.nnn,b,t,uu, v.v,w.w,M,x.x,M,y.y,zzzz*hh <CR><LF>
GLL - Geographic Position - Latitude/Longitude
The GLL message contains the latitude and longitude of the present vessel position, the time of the position
fix and the status. $GPGLL,llll.lll,a,yyyyy.yyy,a,hhmmss.ss,A,i*hh<CR><LF>
GSA – GPS Dilution of Precision and Active Satellites
The GSA message indicates the GPS receiver's operating mode and lists the satellites used for navigation and the DOP values of the position solution.
GSV-GPS Satellites in View
The GSV message identifies the GPS satellites in view, including their PRN number, elevation, azimuth and SNR value. Each message contains data for four satellites. 1st, 2nd and 3rd Messages are sent each second. Fields #1 and #2 indicate the total number of messages being sent and the number of each message respectively.
VTG – Course Over Ground and Speed Over Ground
The VTG message conveys the actual track made good (COG) and the speed relative to the ground (SOG).