Speksit:Tekninen määrittely

Tekninen määrittely on vielä kovasti vaiheessa. Täydennetään, kun saadaan yksityiskohdat selville. Tämä dokumentti käsittelee ainakin raudan osalta ensimmäistä prototyyppilaitetta (RuuviTracker REVA).

Noudatettava formaatti:
 * Varmaksi päätetyt asiat kirjoitetaan lihavoituina.
 * Jollain tapaa lopulliseksi miellettävät tai päätetyt asiat kirjoitetaan normaalilla leipätekstillä.
 * Ehdotukset kirjoitetaan kursiivilla.

HW
Komponenttien datalehdet löytyvät omalta sivultaan.

Yhteydet ulkomaailmaan

 * SimCOM SIM908 (GSM/GPRS/GPS-moduuli)
 * USB (STM32:n Full speed -portti)
 * Näkyminen tavallisena massamuistilaitteena isäntälaitteelle
 * Asetustiedoston muokkausmahdollisuus
 * Muistikortin luku (jos tallennettu muistiin vaikkapa GPS-paikkatietoa)

Antennit

 * GSM-antenni
 * Taoglas FXP07.07.100A (ainakin ensimmäiseen prototyyppiin)
 * GPS-antenni
 * Taoglas AP-12A-01 (ainakin ensimmäiseen prototyyppiin)

Mikrokontrolleri

 * STM32F103-sarjan LQFP64-koteloitu malli (ARM Cortex-M3, 72 MHz)
 * Tarkka malli ensimmäiseen versioon STM32F103RET6
 * Kaveriksi 8 MHz:n kide, jonka USB vaatii toimiakseen
 * Piirilevy tehdään niin, että on mahdollista käyttää myös F2xx- ja F4xx-sarjojen LQFP64-koteloituja malleja

Anturit

 * 3-akselinen kiihtyvyysanturi + 3-akselinen digitaalinen magnetometri (kompassi)
 * LSM303DLHC (voidaan jättää latomatta)

Muistikortti + SIM-kortti

 * MicroSD + Mini-SIM -combokorttipaikka

Mikrofonit / kaiuttimet / Line-In

 * Haukkutunnistin toteutetaan REVA:ssa lisäkortilla ja lisätään todennäköisesti REVB:ssä emolevylle
 * Mikrofoni GSM-puhelua varten
 * Speakkeri GSM-puhelua varten (ei vahvistinkytkentää)
 * STM32:n DA-muuntimelta ulostulo GSM-moduulin linjasisääntuloon (mahdollisuus toistaa esim. muistikortilta äänitiedostoja linjan vastapäähän)

Virransyöttö

 * LiPo- tai Li-ion-akku
 * Kapasiteetti loppukäyttäjän muutettavissa (~400 - 10 000 mAh)
 * Yhteensopiva akku vaatii sisäiset ylivirtasuojat, ylilataussuojat ja alijännitesuojat
 * SIM908 sisältää latauselektroniikan LiPo- ja Li-ion-akkujen oikeaoppiseen lataukseen, joten käytetään sitä ohjaamaan latausta
 * Laturin virransyöttö standardien mukaisella Micro-USB-laturilla (min. 750 mA)

ARM:n ohjelmistokehitysliitännät

 * JTAG (ja SWD)
 * Flashays ja debuggaus esim. OpenOCD + Eclipse -yhdistelmällä
 * USART1 (ei HW Flow-controllia)
 * Flashays (myös tuotannossa)
 * Debuggidatan tulostus

Optioliitännät

 * Jatkokehitystä ja lisäpiirilevyjen käyttömahdollisuutta varten tehdään laajennusportti
 * I2C (SDA, SCL)
 * SPI (MISO, MOSI, SCK ja pari chip selectiä)
 * Muutamia IO-pinnejä, joissa ADC
 * 5V, VDD, VBAT + GND

Palvelinohjelmisto

 * RESTful
 * Toteutetaan Clojure:lla käyttäen Compojure frameworkkia.
 * Ottaa vastaan dataa HW-moduulilta käyttäen määriteltyä API:a
 * Dataa saapuu HW:lta &rarr; autentikointi &rarr; datan tallennus tietokantaan
 * Viestit optionaalisesti autentikoidaan shared secret menetelmällä
 * Viestit optionaalisesti salataan algoritmilla X
 * Tallennettavat datakentät?
 * Vastaa päätelaiteohjelmistojen datapyyntöihin
 * Päätelaite vaatii dataa &rarr; autentikointi &rarr; datan haku ja muotoilu (&rarr; datan lähetys päätelaitteelle)
 * JSON