http://www.viestikallio.fi/ilmari/2003/ilmari-2003-ihu.php
	(2002-12-29)


IHU ohjelma:

     * Vastaanotetaan $GPGGA ja $GPVTG sanomat GPS:lt.
       Paikkatiedon jlkimminen tietue (VTG) kynnist prosessoinnin.
       Fiksin validiteetti pit ilmaista..
       (Testit  osoittivat,  ettei  GPS-moduli  vhenn  tehonkulutustaan
       "FIXRATE 60" sdll, joten otetaan fiksit kerran sekunnissa.)
     * Base-timer kilkattaa 6000 Hz tahtia, tuottaa 32 bitin jiffy-kellon
       (7.7 vrk pyrhdys ympri)
     * Tarkastetaan oma kello (6h startista -> drop abort)
     * Tarkastetaan    pysyminen   missiolaatikon   sisll   (ulkona   3
       perttist fiksi -> drop abort)
     * Mitataan analogiatiedot ja luetaan digitaalitiedot.
     * Lhetetn APRS paketti (ks. yll), 2-3 kertaa!
     * Lhetetn jatkuvasti P3-tyylist BPSK400 datavirtaa
          + Vuorotellen  P3-tyylisi  "BASIC"  datakehyksi ja "KA9Q-FEC"
            kehyksi.
          + Tarvittavan    400    Hz   kellokantin   tuotanto   aiheuttaa
            keskeytyksi IHU:lle 800 Hz tahdilla
     * Lhetetn HF ja Translaattori MFSK16 ja CW beaconit perkkin.
          + Yhteens hieman alle 60 sekuntia.
          + Lhetyskierros   alkaa   aina   kunkin  minuutin  ensimmisen
            GPS-fixin tullen, tai sitten ajastimella hieman myhemmin...
     * Shkn sstmiseksi tehdn kaikki mahdolliset temput

   Johonkin  vliin  mukaan DTMF dekooderin pollaus (kellokeskeytys 10-32
   kertaa sekunnissa vlein ? -> DTMF vilkaisu..)

   Sarjaportin  (GPS)  luku  keskeytysrutiinilla  ?  Tai  vain hertetn
   nukkumasta  keskeytyksell  ?  (Koodari  tekee  kaikkensa sstkseen
   shk..)

            ____________________________________________________


Tarjolla olevat IOt:

     * NMEA 3V CMOS logic level output (EI RS232!)
     * iTrax02 iTalk console + IHU console (RS232)
     * JTAG/OnCE softakehitystykalua varten
     * DTMF vastaanotin (MT88L70)
     * DDS 3.6 MHz CW/MFSK + PTT (3V, I/O) + PSEL (3V, I/O)
     * DDS 10.x MHz CW/MFSK + PTT (3V, I/O) + PSEL (3V, I/O)
     * P3-tyylinen 400 baud BPSK datalhde, CMOS, 3V, output
     * APRS/AUDIO DAC out (3V p-p), PTT (3V, I/O), TIMER-#22 (3V, I/O)
     * CMOS HV-IO:
          + 5-12 V logiikka, riippuu syttvst regulaattorista
          + 24 mux ottoa
          + 24 mux lht
          + 1 suora lht (PA1)
          + 4 suoraa ottoa (PA0, PB4,PB5,PB7)
     * 18 Analogia ottoa (0 - 5.0 voltia)
     * 2 erillist ajastinlinjaa (timer-10 ja timer-13) (3V, I/O)
     * 3 erillist taso-/reuna-herkk linjaa (3V, I/O)


Telemetria data

   Fletcher telemetriasta/komennoista:

     Laskeskelin     silloin    edellisess    IRC-palaverissa    jotain
     tmntapaista (Tm on suurinpiirtein pahin mahdollinen kokoonpano,
     syyn  RATS-SAT-simulointiajatus  ja  se,  ett  vahingosta  tytyy
     viisastua):

   Mit:                                          A-Tlm D-Tlm D-Cmd
   Sislmptilamittaus:                          3          
   Ulkolmptilamittaus:                          1          
   Transponderin ALC:                             1          
   Transponderin syttjnnite:                   1          
   Transponderin kideoskillaattorit:              2          
   Transponderin majakoiden ohjaus:                           2
   Transponderin majakoiden status:                     2    
   Transponderin kynnistys:                                  1
   Transponderin pstkaistan esto:                          1
   Transponderin status:                                1    
   Transponderin IF:n status:                           1    
   APRS-TX:n ulostuloteho:                        1          
   APRS-TX:n status:                                    1    
   3.5 MHz:n TX:n ulostuloteho:                   1          
   3.5 MHz Tx:n kynnistys:                                   1
   3.5 MHz majakan status:                              1    
   14 V:n litiumrikkidioksiparistojen jnnitteet: 4          
   1.3 GHz:n ATV-TX:n ulostuloteho:               1          
   ATV-Tx:n kynnistys:                                       1
   Pallon irroitusprosessin aktivointikomento:                1
   Pallon irroituskomento:                                    1
   Pallon irroitustieto:                          1?    1    
   ATV-kamerat:                                         1    
   ATV-kameroiden ohjaus:                                     1
   Kameroiden status:                                   1    
   Kinokameran laukaisu:                                      1
   Yhteens:                                      16    9     10
   Ylimrisi:                                  5     5     5
   Yhteens:                                      22    14    15

     HUOM: IHU:ssa on 18 A/D inputtia (0.0 - 5.0 Volttia).

     24 CMOS (5 tai 10 V) lht

     24 CMOS (5 tai 10 V) ottoa

     Joukko muita I/O linjoja 3.0 voltin jnnitetasolla

   Fletcher sanoo lis:

     Priorisointien  vuoksi  perin  surkeasti  olen  ehtinyt dokumenttia
     vnt.  Idea  on  kuitenkin se, ett vioittunut linja (tuleva tai
     lhtev,  maihin  tai  kyttjnnitteeseen  juuttuessaan - pahimmat
     tapaukset),  eivt  saa  est  muita  portteja toimimasta, eivtk
     myskn  saa  aiheuttaa  lisvaurioita.  Mys  virrankulutuksen on
     pysyttv  minimiss  vikatapauksissa.  Lhettimien  yms. ohjaukset
     kytkintransistoreineen  on  implementoitava  lhetin- yms. purkkien
     sisll.  Ohjauksen  on  oltava  esimerkiksi 10 V:n luokkaa (virran
     pienentmiseksi     (toimittaja    ihmettelee    perustelua))    ja
     lhde-/kuormaimpedanssien  oltava  mahdollisimman korkeita, luokkaa
     yli >10 kohm. 

   Muutamaa  piv  myhemmin  Mikko  sanoo  laskeneensa  jnnitespeksi
   viiteen  (5.0) voltiin.   Tm kuulemma riippuu siit, mik on yleinen
   reguloitu jnnitetaso systeemill muuhun, kuin bitinnitkutuskyttn.

   Liitntrajapinnaksi  sopii  siis  digitaalitapauksissa MC14000 sarjan
   CMOS  ajettuna  10V  (tai  vaikka  14V,  tai  5V) jnnitteell ja 5-10
   k-ohmin sarjavastuksella pinnist kyttkohteeseen.

   Noissa   pit   kyll   huomioida  mit  CMOS:n  ottojen  ja  antojen
   jnnitetasot ovat eri kyttjnnitteill..
            ____________________________________________________

Telemetriasta:

     * APRS standardissa pakettiradioformaatissa ?
     * [80]MFSK16 ?
     * PSK63 ?
     * [81]JT44, WSJT ??
     * [82]MFSK16 vs. PSK31 vertailu simuloiduilla signaaleilla.
     * N9VV [83]MFSK resources
     * KA9Q AO-40 esitys [84]ao40tlm.html
     * TAPR   [85]AX.25   protocol   specification,   Paikallinen  kopio:
       [86]AX25.2.2.pdf
     * TAPR  [87]APRS  wg, sis. APRS protokollaspeksi. Paikallinen kopio:
       [88]APRS101.pdf.
     * [89]FastraX NMEA protokolladokumentti.

   MIM-moduli lhett APRS:
     * Raw NMEA ($GPGGA tietue)
     * Telemetry Report Frame

   GPS lhett NMEA sanoman ($GPGGA), jonka MIM lhett sellaisenaan.
   Sen pern MIM lhett telemetriapaketin.

   "Minusta tuntuu ett MIM pst lpi vain nit GGA sanomia."

                     Timo Pekurisen kertomaa asiaa hnelt kysyttess...

AX.25 UI kehys sislt:

     * Kohdeosoite{7}: "ALL___-_" ? (AX.25 koodaussnt!)
     * Lhdeosoite{7}: "OHxnnn-11" (SSID "-11" = "balloon")
     * Control{1}: 0x03 ( = UI-frame )
     * ProtocolId{1}: 0xF0 ( = ei tason 3 AX.25 protokollaa )
     * APRS payload data {1..256 tavua}, tarkemmin alla:

   Kehys 16 merkki.
            ____________________________________________________

ARPS kehys:

   Uusi  Ilmari  Housekeeper  Unit voisi prosessoida GPS:lt tulevat NMEA
   $GPGGA  ja $GPVTG sanomat APRS "Lat/Long Position Report Format - with
   Data Extension and Timestamp" formaattiin ja lhett tuon:

     * "/": Vakiomerkki ("APRS asema aikaleimalla, ei viestiliikennett")
     * Time{7}: HHMMSS+"h", UTC aikaa(?), ei pivtietoa.
     * Lat{8}: DDMM.MM+"N"; degrees, and decimal minutes to two decimals,
       plus "N"/"S" indicator. ("6133.79N")
     * SymTableId{1}: "/"
     * Long{8}:  DDDMM.MM+"E"; degrees (000..180), and decimal minutes to
       two decimals, plus "E"/"W" indicator. ("02358.98E")
     * SymCode{1}: "O" ("Balloon symbol")
     * Course{3}: 001..360 ( "000" tarkoittaa liikkumatonta asemaa )
     * "/": vakiomerkki
     * Speed{3}: Nopeus solmuina, kokonaisluku
     * "/A=" + AltFeet{6}: Korkeus jalkoina "%06d" formaatissa.
     * + telemetria (0..30 mki)

   Yhteens {40 + telemetria} merkki. Maksimi 70 merkki.

   Kehyksen kanssa 56 .. 86 merkki.

Telemetriasanoma:

     * Vakioteksti{2}: "t=" (4+9 = 13 bit)
     * 18  kpl  10 bit analogiamittalukuja, 2 lukua kolmeen tavuun. -> 27
       tavua (Must be printable - BASE64 ???)
     * 4 kpl yhdell "BASE64" merkill koodattua 6-bitin digitaalitietoa.
       -> 4 tavua

   Yhteens XX mki.

   [90]test-ihu-aprs.wav (6000 Hz 8-bit mono, 3.1 kB)

/223355h6155.99N/02455.88EO030/030/A=-00099
            ____________________________________________________

HF-beacon 16-FSK-16-F modessa ("MFSK16") lhett:

     * Kutsu{4..6}: "oh2zzz" (5+6+9+3*7 = 41 bit)
       (merkin bittimrt pisimmn koodin mukaan)
     * Lismerkki{0..3}: "/am" (9+5+7 = 21 bit)
     * Vakioteksti{5}: " bcn " (3+9+8+8+3 = 31 bit)
     * Time{6}: HHMMSS (UTC aikaa) (6*9 = 54 bit)
     * Vakioteksti{5}: " utc " (3+6+4+6+3 = 22 bit)
     * Latitudi{7}: DDMM.mmX ("6133.79n) (7*9+5 = 68 bit)
     * Vakioteksti{1}: " " (3 bit)
     * Longitudi{8}: DDDMM.mmY ("02358.98e") (8*9+4 = 75 bit)
     * Vakioteksti{1}: " " (3 bit)
     * Altitudi{5}: 23456 (metrein) (5*9 = 45 bit)
     * Vakioteksti{2}: "m " (7+3 = 10 bit)
     * Course{3}: 012 (3*9 = 27 bit)
     * Vakioteksti{2}: " " (10+3 = 13 bit)
     * speed{5}:  sss.s  *  10  ("0999" = 99.9km/h = 27.75 m/s) (5*9 = 45
       bit)
       NOTE: GPS gives km/h and knots
     * Vakioteksti{4}: "m/s " (7+9+6 = 22 bit)
       (62 mki thn menness) (480 bitti)
     * Telemetriasanomana sama teksti, kuin APRS:ss. (41 mki, 382 bit)
     * Vakioteksti{1}: (ASCII char 13, 8 bitti)

   Varicode-koodauksen  takia PIKKUKIRJAIMIA (lyhyemmt koodit!) Yhteens
   123 mki / max 827 bitti.

   Nopeudella  31.250  bit/sec  varicoden lhetys kest: 26.47 sekuntia.
   (pre+post  idlet:  8+4  symbolijaksoa,  eli  12/15.625 sec = 0.77 sec)
   Enint  27.24  sekuntia  sanomaan!  Mahdollisesti  2..6 symbolijaksoa
   (0.1-0.3   sec)   nopeammin  todellisella  datalla  tapahtuvan  pienen
   kompression ansiosta.

Telemetriasanoma:

     * Vakioteksti{2}: "t=" (4+9 = 13 bit)
     * 18  kpl  kahdella "BASE64" merkill koodattuja 10 bitin lukupareja
       18 analogiakanavalle.
       PERL notaatio: $BASE64[ $val / 64 ] . $BASE64[ $val % 64 ];
     * 4 kpl yhdell "BASE64" merkill koodattua 6-bitin digitaalitietoa.

   Yhteens 41 mki.

   BASE64  koodisto  Varikoodataan  4-9  bitill, sanokaamme siis 13+41*9
   bitti = 382 bitti.

   [91]test-ihu-mfskcw.wav  (8000  Hz  8-bit mono, 477 kB) CW @ 100 CPM +
   MFSK16..

oh2nxx/am bcn 135959utc 6133.7988n 02358.9876e 23456m 012 99.9kt 13.87v -57c -
20c
            ____________________________________________________

HF-beacon CW modessa lhett:

   Samalla   15.625   baudin   nopeudella   (pisteen   pituudella),  kuin
   MFSK-modekin;  30  sekunnissa  ehtii  468  pistett. Nopeudella 20.000
   ehtii 600 pistett. Nopeudella 31.250 ehtii 937 pistett.

   Keskimrinen  kirjaimen  pituus  merkkivleineen on 9-10 pistett ja
   _lyhennetyn_ numeron pituus 10 pistett. Sanavli 5 pistett.

     * Kutsu{4..6}: "OH2zzz/AM" (14+10+18+16+16+16+16+8+10 +3 = 127)
       (merkin pistemrt pisimmn koodin mukaan)
     * Latitudi{7}: DDMM.mmmmX ("N61337988") (8 + 8*10 + 3 = 90)
     * Longitudi{8}: DDDMM.mmmmY ("E023589888") (8 + 9*10 + 3 = 100)
     * Altitude{5}: kkmmm ("00250") (5*10 + 3 = 53)
     * head{3}: ddd ("002") (3*10 + 3 = 33)
     * speed{4}: sss.s * 10 ("0999" = 99.9km/h = 27.75 m/s) (4*10+3 = 43)
       NOTE: GPS gives km/h and knots
     * BatVolt*100-1000{3}: 13.87 -> "387" (3*10+3 = 33)

   Telemetriaa  lhetetn  30  sekunnin  vlein  vuorotellen  MFSK ja CW
   modeja!   Paikkafiksit 60 sekunnin vlein!

   [92]test-ihu-mfskcw.wav  (8000  Hz  8-bit mono, 477 kB) CW @ 100 CPM +
   MFSK16..

     Msg:
  OH2NXX/AM N61337988 E023589876 00250M 387

     CW: (short numbers!) "TAUV4 56BDN" = "01234 56789"
  OHuNXX/AM N6avvbndd Etuv5dndb6 ttu5tm vdb
            ____________________________________________________

AO-40 telemetria / BASIC & KA9Q-FEC versions

   TO BE DEFINED!   Initial draft ideas below...

   [93]BASIC: 512 bytes per frame

   [94]KA9Q-FEC: 256 bytes per frame (512 bytes including FEC)

   6 bytes outside the payload

   400 bps BPSK -> 50 bytes/sec -> 10.84 - 11.04 sec per frame

   KA9Q-FEC: 13 sec/frame

   Data:

0      "A"
1-31   "Hi, This is OH#xxx/AM  Ilmari! "
32-50  "20030917 075655.22 "              Fix time
51-63  "6157.9876'N "                    Fix Lat
64-79  "02157.9876'E "                   Fix Long
80-86  "01234m "                          Fix Alt
87-92  "000 "                            Last heading
93-100 "99.9m/s "                         Last speed
        (GPS gives km/h and knots...must change this..)
101-105 "0020 "                           Mission time  hhmm
106-253 Base64 encoded telemetry block (150 bytes ~900 bits)
        - 6-bits per byte
        - 10-bit A/D results take 2 bytes        -> 36 chars
        - 30 bit D-out bits                      ->  5 chars
        - 30 bit D-in  bits                      ->  5 chars
        - Sun-sensor timer data
          last 8 edge jiffy-deltas, 3 chars each -> 24 chars
        - UNSPECIFIED:  ASCII SPACE              -> 82 chars
254-255 AO-40 CRC16 of preceding 254 byte block
256-511 BASIC only: repeat first 256 byte block ?

   [95]test-ihu-ao40bpsk-ka9qfec.wav (9600 Hz 8-bit mono, 243 kB)

   Simuloitua spin-fadingia erilaisilla Eb/N0 arvoilla:
   [96]test-ihu-ao40bpsk-ka9qfec-fade-ebn10.wav  (9600 Hz 8-bit mono, 243
   kB)
   [97]test-ihu-ao40bpsk-ka9qfec-fade-ebn16.wav  (9600 Hz 8-bit mono, 243
   kB)
   [98]test-ihu-ao40bpsk-ka9qfec-fade-ebn23.wav  (9600 Hz 8-bit mono, 243
   kB)
            ____________________________________________________

