07 - VBOX Speed Sensor RS232/NMEA Output
The RS232 output is there to provide a connection to a computer so that you can configure the settings of the VBOX Speed Sensor in the VBOX Setup Software. The R232 output can also output NMEA format messages and the Racelogic Braketest format.
RS232 Racelogic Data Format
Protocol:
115200 Baud, no parity, 8 data bits, 1 stop bit
Message format:
$VB2100stttaaaaaaaaoooooooovvhhAAggGGcc
Parameter | Number of bytes | Description |
---|---|---|
$VB2100 | 7 | Header |
S | 1 |
Sats Number of satellites used |
ttt | 3 (MSB first) |
Time Ticks since midnight UTC, incrementing every 100 ms |
aaaaaaaa | 8 (MSB first) |
Latitude Double precision float 64 bit (radians) |
oooooooo | 8 (MSB first) |
Longitude Double precision float 64 bit (radians) |
vv | 2 (MSB first) |
Velocity 0.01 knots per bit |
hh | 2 (MSB first) |
Heading 0.01° per bit |
AA | 2 (MSB first) |
Vertical Velocity 0.01 m/s per bit |
gg | 2 (MSB first) |
Lateral Acceleration 0.01 g per bit |
GG | 2 (MSB first) |
Longitudinal Acceleration 0.01 g per bit |
cc | 2 (MSB first) | See CRC Calculation example below |
CRC Calculation example:
s[n] is a string containing the message
Polynomial:= 4129
CRC:=0;
for Loop:=1 to Length(s) do
begin
Temp:=s[Loop];
CRC:= CRC xor (integer(Temp) *256);
CRC:= CRC mod 65536;
for i:=7 downto 0 do
begin
if ( (CRC and 32768)=32768) then
begin
CRC:= CRC *2 ;
CRC:= CRC xor Polynomial;
end
else
begin
CRC:= CRC *2 ;
end;
CRC:=CRC mod 65536;
end;
end;
result:=CRC;
Brake Test Serial Data Stream
Protocol:
115200 Baud, no parity, 8 data bits, 1 stop bit
Message format:
$VBBTSTstttvvvvhhVVVVddddddddeeeescc
The header $VBBTST is in ASCII, the rest of the message is in hexadecimal.
Parameter | Number of bytes | Description |
---|---|---|
$VBBTST | 7 | Header |
S | 1 |
Sats Number of satellites used |
ttt | 3 (MSB first) |
Time Number of 10 ms ticks since midnight UTC, 24 bit unsigned integer |
vvvv | 4 (MSB first) |
Velocity (m/s), 32 bit IEEE float |
hh | 2 (MSB first) |
Heading Heading in degrees (0.01°), 16 bit unsigned integer |
VVVV | 4 (MSB first) |
Event Velocity Speed at last event (m/s), 32 bit IEEE float |
dddddddd | 8 (MSB first) |
Brake Distance Distance since brake event (m), 64 bit IEEE double precision floating point number |
eeee | 4 (MSB first) |
Event Time Time of event from midnight (seconds) |
s | 1 (MSB first) |
Status Flag 0x01 for brake trigger, 0x02 for brake trigger active |
cc | 2 (MSB first) | See CRC Calculation example below |
Notes:
- The 32-bit floats are in Little endian format (low byte first or Intel format)
- The Brake distance number is in Big endian format (high byte first or motorola format)
CRC Calculation example:
s[n] is a string containing the message
Polynomial:= 4129 (0x1021)
CRC:=0;
For Loop:=1 to Length(s) do
begin
Temp:=s[Loop];
CRC:= CRC xor (integer(Temp) * 256);
CRC:= CRC mod 65536;
for i:=7 downto 0 do
begin
if ( (CRC and 32768)=32768) then
begin
CRC:= CRC *2 ;
CRC:= CRC xor Polynomial;
end
else
begin
CRC:= CRC *2 ;
end;
CRC:=CRC mod 65536;
end;
end;
result:=CRC;
NMEA Output
IMPORTANT - This is not available on the 5 Hz unit.
The VBOX Speed Sensor can output 6 types of NMEA messages, the most commonly used are GPGGA and GPVTG, the contents of which are shown below.
$GPGGA,hhmmss.ss,Latitude,N,Longitude,E,FS,NoSV,HDOP,msl,m,Altref,m,DiffAge,DiffStation*cs<CR><LF>
Name | ASCII String | Units | Description | ||
---|---|---|---|---|---|
Format | Example | ||||
$GPGGA | string | $GPGGA | Message ID | GGA protocol header | |
hhmmss.ss | hhmmss.ss | 092725.00161229.487 | UTC Time | Current time | |
Latitude | dddmm.mmmm | 4717.113993723.2475 | Latitude | Degrees + minutes | |
N | character | N | N/S Indicator | N=north or S=south | |
Longitude | dddmm.mmmm | 00833.9159012158.3416 | Longitude | Degrees + Minutes | |
E | character | WE | E/W indicator | E= east or W= west | |
FS | 1 digit | 1 | Position Fix Indicator | See Table 41 | |
NoSV | numeric | 078 | Satellites Used | Range 0 to 12 | |
HDOP | numeric | 1.001 | HDOP | Horizontal Dillution of Precision | |
Ms1 | numeric | 499.69.0 | m | MSL Altitude | |
M | character | M | Units | m | |
Altref | blank | 48.0 | m | Geoid Separation | |
M | blank | M | Units | m | |
DiffAge | numeric | second | Age of Differential Corrections | Blank (Null) fields when DGPS is not used | |
DiffStation | numeric | 0 | Diff. Reference Station ID | ||
Cs | hexadecimal | *5B*18 | Checksum | ||
<CR> <LF> | End of message |
$GPVTG,cogt,T,cogm,M,sog,N,kph,K*cs<CR><LF>
Name | ASCII String | Units | Description | ||
---|---|---|---|---|---|
Format | Example | ||||
$GPVTG | string | $GPTVTG | Message ID | VTG protocol header | |
cogt | numeric | 77.52 | Degrees | Course over ground (true) | |
T | character | T | fixed field | True | |
cogm | Blank | Course over ground (magnetic) | Not output (empty) | ||
M | character | M | fixed field | Magnetic | |
sog | numeric | 0.004 | Knots | Speed over ground | |
N | character | N | |||
kph | numeric | 0.008 | km/h | Speed | |
K | character | K | K | Kilometers per hour - fixed field | |
cs | hexadecimal | * 0B | Checksum | ||
<CR> <LF> | End of message |