EDAN SE-2012 Holter recorder files

Written by Paul Bourke
June 2021

The EDAN SE-2012 Holter recorder is normally configured as either a 3 or 12 channel ECG recorder. Following a recording it creates a number of files in the recording directory, typically these are as follows but there may be others generated for various types of analysis.


Unfortunately the meaning of each of these files is undocumented including the contents which is largely binary data so not decipherable by casual inspection. While one can imagine the intended meaning of some of the files from their name, in the following the aim is to be able to extract the raw ECG data for analysis in other packages.

Raw data

The as-recorded ECG data is stored in the file called "ecgraw.dat". This is simply a binary encoding of the electrode voltages, each a short unsigned integer (2 bytes). So, for the case of 12 electrodes there are 2 x 12 bytes per time step. There is no header and the sample number or seconds are not included. The file is read until the end. One can calculate the number of samples in advance by dividing the file size by 12. Normally one would subtract 16384 from each sample to get a signed sample with zero mean.


The file "patient.hea" (patient header) contains a range of information about the recording, although much of it is empty unless one takes the effort to add the additional metadata. Most of the information is not important for the exercise of extracting the recording data for analysis elsewhere. But some field are important, such as sampling frequency, filter settings and electrode names. The table below gives the offsets from the start of the file of the information deduced so far. If some of the metadata files are not available the relevant area is normally padded with ascii 0.

Offset Length Description
4 4 byte int A date and time
Seconds since Jan. 1, 1970
8 4 byte int A date and time
Seconds since Jan. 1, 1970
12 1 byte Number of channels
32 short int, 2 bytes Sample frequency (Hz)
60 short int, 2 bytes Patient height
If missing = -1
64 short int, 2 bytes Patient weight
If missing = -1
68 ascii, 40 bytes(?)
software limited to 30(?)
Telephone number
108 ascii, 32 bytes(?)
software limited to 30(?)
Patient ID
140 ascii, 120 bytes(?)
software limited to 61(?)
Patient diagnosis
242 ascii, 102 bytes(?)
software limited to 56(?)
Patient medication
344 ascii, 68 bytes(?)
software limited to 65(?)
Accession number
412 ascii, 134 bytes(?)
software limited to 31(?)
In/Out/PE ID (?)
546 ascii, 134 bytes(?)
software limited to 31(?)
Patient area
1796 8 ascii characters
per ECG channel
ECG electrode names
For example: I, II, III, aVR, aVL, aVF, V1, V2, V3, V4, V5, V6
1960 ascii, 134 bytes(?)
sotware limited to 31(?)
2304 ascii, 10 bytes Recorder id.
For example: B37335370
2314 ascii, 6 bytes A version number(?)
For example: V1.14
2416 ascii, 6 bytes A version number(?)
For example: V1.10
2596 short int, 2 bytes Low pass filter (Hz)
For example: 100Hz
2628 ascii, 5 bytes DFT filter
For example: 0.67
2637 ascii, 64 bytes(?) Patient name
2700 ascii, 64 bytes(?)
software limited to 61(?)
Physicians name
2764 ascii, 64 bytes(?)
software limited to 61(?)
Technicians name
2828 ascii, 64 bytes(?)
software limited to 61(?)
Procedure description
2892 ascii, 64 bytes(?)
software limited to 61(?)
Medical history
2956 ascii, 86 bytes(?)
software limited to 86(?)
Patient address
3672 End of file


  • A key piece of information not yet identified in the header is the number of electrodes. This would be useful for reading the "ecgraw.dat" file otherwise it needs to be known in advance and specified to the decoder.

  • Despite the app listing options to record at 8,12,14,16,18 bits, the recorded files all seem to have ECG samples that are +- 256, so 9 bit or 8 bit with sign.

  • If fewer than 12 electrodes are used, all 12 are still written to the output file.

  • The file "fileterecg.dat" contains a filtered version of the data, not sure if it's the "DFT Filter" or the "LP Filter" parameter.

  • The EDAN software provides for an export to a ".arc" file. This is nothing more than a concatenation of some of the files in the directory shown above with some wrapper information to assist with the extraction of the files at a later date. ".arc" denotes an archive file. Also undocumented, but not useful.