开云体育

ctrl + shift + ? for shortcuts
© 2025 开云体育

Binary Overlay Format Specification

Starting with firmware version 0.x.15, the camera always includes a binary timestamp in the last row of each frame. The binary timestamp uses 128 pixels and is repeated to fill the full frame width. Information is encoded in the lower 8 bits of each pixel in big-endian format.?

Structure of the timestamp:

  • Offset - Length - Title - Description
  • 0 - 4 - Preamble - fixed 00 00 54 53
    • in overlay format 5 and earlier, byte 2 was set to 5C
  • 4 - 2 - Overlay Format Version
    • fixed 00 01 for versions before 0.x.28
    • fixed 00 02 for versions 0.x.28 and higher; these include the camera status in the timestamp, starting at offset 80
    • fixed 00 03 for versions 0.x.31 and higher; these include the current fix state and number of satellites at pos. 74 and 75
    • fixed 00 04 for versions 0.x.35 and higher; these include the altitude above sea level in mm at offset 76
    • fixed 00 05 for versions 0.x.55 and higher; these include a checksum and the sensor temperature; in addition, the black level is now the sensor black level, and the "high gain" flag has been added
    • fixed 00 06 for versions 0.x.75 and higher (universal firmware)
    • fixed 00 07 for versions 0.9.77 and higher
  • 6 - 2 - FPGA firmware Version
  • 8 - 12 - Start timestamp - YY MM DD HH MM SS ns-ns-ns-ns flags
    • ns is a 4-byte nanoseconds field and goes from 0 to 999999999
    • bit 0 in the flags indicates a valid time (due to a current or previous GNSS sync)
  • 20 - 12 - End timestamp - same format as start timestamp
  • 32 - 4 - reserved - 00 00 00 00
  • 36 - 4 - frame number - 4-byte unsigned frame counter
  • 40 - 2 - frame width
  • 42 - 2 - frame height
  • 44 - 1 - horizontal binning - add 1 to the value (e.g. value is 3 for 4x binning)
  • 45 - 1 - vertical binning - add 1 to the value
  • 46 - 2 - reserved - 00 00
  • 48 - 2 - signal multiplication M - multiplier used in compensating gain from binning; raw pixels are multiplied with (M/D) before sending them to the host.
  • 50 - 2 - signal division D - divider
  • 52 - 8 - integration time - split in a 32-bit unsigned number of seconds and a 32-bit number of nanoseconds
  • 60 - 2 - gain index
    • Starting in 0.x.55, the MSB is 0 in low-gain and 1 in high-gain mode
  • 62 - 2 - black level -
    • in versions up to 0.x.54, this value indicates the value of the darkest pixel in the frame, before adding overlays
    • in versions from 0.x.55 onwards, this is the black level configured into the sensor
  • 64 - 4 - gps lattitude - divide by 1E7 to get number of degrees; MSB is 1 for south, 0 for north
  • 68 - 4 - gps longitude - divide by 1E7 to get number of degrees; MSB is 1 for west, 0 for east
  • 72 - 2 - gps accuracy - position accuracy in meters as reported by the gps receiver module
  • 74 - 1 - gps fix state
    • [000000 | dateTimeFullyResolved | validFix]
  • 75 - 1 - gps number of Satellite Vehicles
  • 76 - 4 - gps height above sea level (mm)
  • 80 - 4 - camera status flags
    • [00 | marker1 | marker2 || 0 | markers_enabled | overlay_mode:2 ]
    • [00 | 4digit_mode | 0 || gpo_mode:2 | led_control:2 ]
    • [000 | high_gain_mode || clamp | 8bit | invert | 0]
    • [0000 || flip_mode:2 | 00]
  • 84 - 4 - camera status information
    • gain
    • [0000||0000]
    • exposure time (MSB)
    • exposure time (LSB)
  • 88 - 4 - USB PHY info
    • [tooManyPhyErrors:1 | 0 | phyErrCtr:14]
    • [phyErrFlags:16]
  • 92 - 4 - USB LNK info
    • [usbVersion:2 | lnkErrCtr:14]
    • [lnkErrFlags:16]
  • 96 - 2 - Sensor temperature; the high byte contains the degrees centi grade, the low byte the fraction; bit 0 is set if the temperature is valid; available in versions 0.x.55 and newer
  • 98 - 4 - GPS DOP Time (v6, 0.9.77 and newer)
  • 102 - 10 - GPS DOP Data (v6, 0.9.77 and newer)
    • GDOP, PDOP, TDOP, VDOP, HDOP in range 0..65535, projected to 0.00..655.35
  • 112 - 14 - reserved
  • 126 - 2 - checksum - the checksum (fletcher16, M=255) is calculated over bytes 0 to 125

?