File format:chronovu_la8

From sigrok
Revision as of 17:35, 24 May 2018 by Gsi (talk | contribs) (discuss the file format, its limitations and implementation details)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
chronovu_la8
Name ChronoVu LA8
Status supported
Source code (in) chronovu_la8.c
Source code (out) chronovu_la8.c
Common extension(s) .kdt, .kd1
MIME type
ASCII format no
Compression none
Website chronovu.com

chronovu_la8 is a binary file format used to store data from the ChronoVu LA8 logic analyzer. ChronoVu LA16 logic analyzer software uses a very similar format that is handled by the same input module support code.

Format

Every chronovu_la8 file is exactly 8388613 bytes in size. The file starts with 8MBytes of logic analyzer samples, followed by 5 trailing bytes which contain some metadata.

Properties

  • The file size must be exactly 8388613 bytes (8 MB samples + 5 bytes metadata).
  • There is no unique identifier or "magic" value in the file, thus autodetection for this file format is almost impossible.
  • The file content encodes a clock divider, but the devices' base clock differs between models, and the file content does not hint towards which model saved the file.
  • The file may either contain LA8 data, stored in one byte each per sample. Or LA16 data, stored in two bytes per sample (in little endian format). There is no way to tell from file content which variant a file corresponds to.
  • Filenames might hint towards the model, and thus the number of channels and the samplerate. LA8 uses the .kdt file extension, LA16 uses the .kd1 extension.

Implementation

  • Automatic detection of the input file format is weak, and can result in false positives.
  • An implementation detail results in the filename not being available to the input module. That's why LA8 files can be used with default parameters, but LA16 files require users to specify the number of channels.
  • In either case the samplerate needs to get specified by the user (defaults to 100MHz, the LA16 variant cannot get detected in the absence of a filename). An implementation detail of the input module in combination with the file format results in the clock divider only becoming available after the sample data got processed, and forwarded to other software components.

Examples

See the misc/chronovu_la8_la16 subdirectory in the sigrok-dumps repository for example files.

Resources