DFM-06:


GPS Chip:
Navman/Telit

Modulation: FSK
raw: 2500 baud
Manchester codiert -> 1250 bit/s

Frame: 280 bit, davon 16 bit Header 0x45CF, dann
       3 Bloecke (CFG,DAT1,DAT2) mit (56,104,104) bits
Interleaved: 7x8, 13x8, 13x8
erweiterter systematischer [8,4]-Hamming-Code, erste 4 bit sind Daten
Big Endian


GPS_DAT-Block 48bit + 4bit-PCK_ID 0x0..0x8 (letztes nibble):
PCK_ID  bitpos

0x0     24..31   Counter: 8 bit

0x1     32..47   UTC-msec : 16bit  (sec*1e3),  GPS = UTC + 18s (ab 1. Jan. 2017)

0x2      0..31   GPS-lat  : 32bit, Faktor 1e7
        32..47   hor-V m/s: 16bit, Faktor 1e2

0x3      0..31   GPS-lon  : 32bit, Faktor 1e7
        32..47   direction: 16bit, Faktor 1e2 (unsigned, 0-36000)

0x4      0..31   GPS-alt m: 32bit, Faktor 1e2
        32..47   ver-V m/s: 16bit, Faktor 1e2 (signed)

0x8      0..11   Jahr : 12bit
        12..15   Monat:  4bit
        16..20   Tag  :  5bit
        21..25   Std  :  5bit
        26..31   Min  :  6bit

0xF      0..47   000000000000


CFG/MEAS-Block beginnt mit nibble
0,1,2, 0,1,3, 0,1,4, 0,1,5, 0,1,6,
0,1,2, ...

DFM-06 (341110), NXP
Seriennummer/ID:
CFG-Block 6xxxxxx (Kanal 6)
e.g.
6324695 -> 324695
(fehlt bei aelteren DFMs)

DFM-09 (543410), STM32
Seriennummer/ID:
CFG-Block Acaaaab (Kanal A)
b=0: high 16bit aaaa
b=1: low  16bit aaaa
e.g.
AC00070 : 0x0007
ACDB131 : 0xDB13
-> 0x0007DB13 = 514835

PS-15
Seriennummer/ID:
CFG-Block 70aaaab (Kanal 7)
b=0: high 16bit aaaa
b=1: low  16bit aaaa
e.g.
7001040 : 0x0104
7004C61 : 0x04C6
-> 0x010404C6 = 17040582


measure_sensor, Kanaele n=0,..,4:

nexxxxx: float24 (4bit_exp + 20bit_mantisse)
         fn = xxxxx/2^e
bei  DFM-NXP(8bit) ist letztes nibble=0,
d.h. nexxxx0 (somit 4+16=20 bit)

n=3: Rs (dfm6-pcb 10k, dfm9-pcb 20k)
n=4: 220k

n=0: Thermistor + Rs

Temperatur-Sensor, DFM-06:
NTC-Thermistor EPCOS B57540G0502 ?
R/T No 8402, R25=5k

f0 = a*(R+Rs)  , R: thermistor
f3 = a*Rs      , Rs = 10k,20k
f4 = a*220k    , a: A/D-faktor

(f0-f3)/f4 = R/220k

ntc thermistor approx:
R/Ro = exp(B(1/T-1/To))
1/T = 1/To + 1/B * log(R/Ro)

To = 25C = 273.15+25 Kelvin
Ro = 5k
B(0C..100C) = 3450 Kelvin
B(-55C..30C) etwas niedriger (z.B. 3260 Kelvin)

R/Ro = (f0-f3)/f4 * 220k/5k

EEPROM: GRAW-Kalibrierdaten -80C..+40C ?


DFM-06 und DFM-09 haben unterschiedliche Polaritaet bzw. Manchester-Varianten
DFM-06 hat Kanaele 0..6 (anfangs nur 0..5)
DFM-09 hat Kanaele 0..A
Ausnahme: erste DFM-09-Versionen senden wie DFM-06
PS-15  hat Kanaele 0..7 (Polaritaet wie DFM-06)



alter Quellcode (Codierung, Telemetrie):
https://www.amateurfunk.uni-kl.de/projekte-aktivitaeten/decoder-wettersonden/
Sensor-Info:
https://www.imk-tro.kit.edu/download/Diplomarbeit_Fuetterer.pdf

