VBOX Video HD2 Serial (RS232) Protocol

Updated on Mar 4, 2026

115200 Baud, no parity, 8 data bits, 1 stop bit

Message format: 

$VBOXV$_nnnnffff_stttaaaaoooovvhheeezzxxyymmmcc

The $VBOXV$ and commas are in ASCII, the rest are in binary
 

FormatBytesDescriptionnnnn, bit mask.
nnnn4Reservedto indicate channel presence (always 0x080003FF on VBOX Video HD2)
ffff4Status FlagsBit      Description4         Logging active6         Media full7         Media available
sInteger1Satellites
Number of satellites
0x00000001
tttInteger3Time
Number of 10 ms ticks since midnight UTC
0x00000002
aaaaSigned4Latitude(MMMM.MMMMM * 100_000)Signed Integer of Decimal minutes *100_000.Positive = North, Negative = South0x00000004
ooooSigned4Longitude(MMMMM.MMMMM * 100_000)Signed Integer of Decimal minutes *100_000.Positive = West, Negative = East0x00000008
vvInteger2Velocity
Velocity in knots * 100
0x00000010
hhInteger2Heading
Degrees from true north * 100
0x00000020
eeeInteger3HeightAltitude in metres WGS84 * 100True signed 24 bit number0x00000040
zzSigned2Vertical Velocity
Vertical velocity in m/s * 100
0x00000080
xxSigned2Long acc (GPS)
Longitudinal acceleration in g * 100
0x00000100
yySigned2Lat acc (GPS)
Lateral acceleration in g * 100
0x00000200
mmmInteger3RAM Address
Free space on SD *980991 = Full, 0 = Empty
0x08000000
cc2Checksum
CRC of message, See Note 1*

*Note 1

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;