How your device will communicate with the TrackMyRide servers depends upon the type of device, and to some extent, your prefernces. Devices may communicate their position
information in a couple of ways. Devices may use either TCP or UDP to send
information to our servers.
The protocol used primary depends upon the device and how the manufacturer or developer of the device chooses to communicate with our servers.
Learn more about TCP vs. UDP.
For most users the choice between TCP and UDP will already be made for them. Unless you are developing your own device or softare application the choice of communication protocol will
already be decided for you.
For example, if you are using our Android or iPhone app they both use TCP to communicate with the TrackMyRide .
server. If you are using an Arduino with our Wi-Fi software it also uses TCP to communicate.
The Pepwave Router BR1 Max Router on the hand uses UDP to communicate. One of the benefits of using the TrackMyRide service is the flexibility to allow different types of devices and
communications protocols to communicate. We don't care how you get your data here, as long as it gets here.
If you are developing your own device or software application to communicate with our system you may choose the protocol you wish to use. As long as your data is sent to the server
in a format that we can understand your device will be able to send the information so we can track it.
The majority of the devices that communicate with the TrackMyRide servers use TCP to send their position information. TCP is widely understood and is generally supported by all
network devices. Some devices only support TCP while others may support TCP and UDP.
If you are developing your own application or hardware device and want to send your position information to TrackMyRide, all you have to do it create an
HTTP GET request and send it to one of the following web addresses.
http://www.trackmyride.us/iot/web-report.aspx
Calling web-report.aspx is one of the easiest ways to report in with the TrackMyRide servers. When invoked, this page requires two parameters, id and data. An
example is provided below.
http://www.trackmyride.us/iot/web-report.aspx?id=af900462-018b-470f-8e29-676b6578b13f&data=$GPRMC,123519,A,4807.038,N,01131.000,E,022.4,084.4,230394,003.1,W*6A
The id parameter is the way that our server identifies the device. Ids are always 36 character alphanumeric values that uniquely identifies your device to our server. The id is
automatically generated at the time your device is added to the system. Our system ensures that no two devices will ever have the same id.
You can locate your device's identification information by logging in to the system and opening the settings for the device. Hover over the section entitled API Key to see your
device's id as shown in the figure.
The second URL parameter (data) is the location data of the device. The information provided in this parameter is a standard
NMEA GPRMC or GPGGA data string.
Typically we use the GPRMC sentance type as it is widely supported by most devices. The one disadvantge to the RMC sentance is that it doesn't contain altitude information.
However, since most of the devices using the TrackMyRide service are moving about on the Earth's surface as opposed to flying, this isn't usually a factor. If you do wish
to report your altitude then you should use the GGA sentance format. We support either, so that choice is up to you.
GPRMC FORMAT
The GPRMC string contains the recommended minimum amount of data for an effective position report. A typical GPRMC string looks similar to the following:
$GPRMC,123519,A,4807.038,N,01131.000,E,022.4,084.4,230394,003.1,W*6A
The string is known as a CSV string. Each field or bit of data is separated from every other field by a comma. The GPRMC string shown
here has twelve values. Each is described below.
Recommended minimum sentance type
Fix taken at 12:35:19 UTC
Status A=active or V=Void
N = North, S = South. Specifies if device is either north or south of the equator
Longitude Longitude 11 deg 31.000'
W = West, E = East. Specifies if device is either west or east of the Prime Meridian
Speed over the ground in knots. Data is optional.
Track angle (Heading) in degrees True. Data is optional
Date - 23rd of March 1994
Magnetic Variation. The difference between magnetic and true north
The checksum data, always begins with *. This data is not used by TrackMyRide
GPGGA FORMAT
In addition to supporting the standard GPRMC sentance, TrackMyRide servers can also accept GPGGA sentance data. The GPGGA string contains basic location information, fix quality
data, and altitude, but does not contain heading or speed data. Below is an example of a GPGGA sentance.
$GPGGA,123519,4807.038,N,01131.000,E,1,08,0.9,545.4,M,46.9,M,,,*47
The string is also a CSV delimited string similar to the GPRMC string described above. Each field or bit of data is separated from every other field by a comma. The GPGGA string
shown here has sixteen values. Each is described below.
Essential fix data which provide 3D location and accuracy data
Fix taken at 12:35:19 UTC
N = North, S = South. Specifies if device is either north or south of the equator
Longitude Longitude 11 deg 31.000'
W = West, E = East. Specifies if device is either west or east of the Prime Meridian
- 0 = invalid
- 1 = GPS fix (SPS)
- 2 = DGPS fix
- 3 = PPS fix
- 4 = Real Time Kinematic
- 5 = Float RTK
- 6 = estimated (dead reckoning) (2.3 feature)
- 7 = Manual input mode
- 8 = Simulation mode
Number of satellites being tracked
Horizontal dilution of precision
Altitude above mean sea level
Altitude unit of measure M = Meters
Height of geoid (mean sea level) above WGS84 ellipsoid
Unit of measure of height of geoid
Time in seconds since last DGPS update
Checksum data, always begins with *
Devices can communicate with the TrackMyRide servers by using the UDP (User Datagram Protocol). UDP is a connectionless protocol and the TMR servers accept position
information from devices by "listening" for data coming in from a device on a specific UDP port. When you add a device to your account and select UDP as the communication
protocol a specific port number is assigned to your device. That port number is "reserved" for your device and whenever the server receives data on that port it associates
it with your device. Unlike TCP, when you use UDP only one device can be associated with the port. Fourtunatly, there are over 65,000 available UDP ports available.
If you are developing your own application or hardware device and want to send your position information to TrackMyRide via UDP all that is required is to create your
device, specifiy UDP as the communications protocol and send your position data to the server assigned port.
The main advantage of using UDP over TCP is that since UDP is connectionless there is less overhead to sending data via UDP. If you are using a cellular or metered data
connection this means you will use less data and bandwidth which means that you may save money on your connection costs. The TrackMyRide servers don't care which method
you use and there are no advantages or disadvantages to using TCP or UDP as far as your reporting capabilities are concerned. You can even switch between the two methods
at any time.
Currently, our UDP listener only accepts GPS location information in the GPRMC format. Eventually we will modify the data parsing program to support the GPGGA sentance format
as well. Below is an explanation of the GPRMC sentance format. Notice that the data format is the same whether you are using TCP or UDP.
GPRMC FORMAT
The GPRMC string contains the recommended minimum amount of data for an effective position report. A typical GPRMC string looks similar to the following:
$GPRMC,123519,A,4807.038,N,01131.000,E,022.4,084.4,230394,003.1,W*6A
The string is known as a CSV string. Each field or bit of data is separated from every other field by a comma. The GPRMC string shown
here has twelve values. Each is described below.
Recommended minimum sentance type
Fix taken at 12:35:19 UTC
Status A=active or V=Void
N = North, S = South. Specifies if device is either north or south of the equator
Longitude Longitude 11 deg 31.000'
W = West, E = East. Specifies if device is either west or east of the Prime Meridian
Speed over the ground in knots. Data is optional.
Track angle (Heading) in degrees True. Data is optional
Date - 23rd of March 1994
Magnetic Variation. The difference between magnetic and true north
The checksum data, always begins with *. This data is not used by TrackMyRide