Some more documentation

pull/2/head
Mateusz Lubecki 2017-08-22 20:28:21 +02:00
rodzic 8330ef7af1
commit d13ddfeba2
2 zmienionych plików z 31 dodań i 9 usunięć

Wyświetl plik

@ -6,7 +6,7 @@ ParaTNC jest oprogramowaniem wbudowanym (firmware) przeznaczonym do pracy na pł
uniwersalnego radiomodemu/sterownika sieci APRS, wyposażonego w szereg funkcjonalności takich jak:
-> Digipeater retransmitujący pakiety posiadające ustawioną ścieżkę WIDE1-1.
-> Dwustronna (Radio-PC oraz PC-Radio) komunikacja z komputerem przy użyciu protokołu KISS po łączu szeregowym (TTL-UART).
-> Dwustronna komunikacja z komputerem przy użyciu protokołu KISS po łączu szeregowym (TTL-UART).
-> Stacja pogodowa z obsługą wiatromierza TX20, termometru Dallas DS12B20 oraz czujnika ciśnienia MS5611.
-> Telemetria umożliwiająca monitorowanie ilości odbieranych, nadawanych i powtarzanych pakietów.
@ -40,11 +40,18 @@ Sterownik wysyła co 10 minut ramkę telemetryczną zawierającą informację o
pakietów APRS przez okres minionych 10 minut. Ilość nadanych ramek jest sumą powtórzonych ramek i ramek własnych
wliczając w to ramki telemetrii. Co ok 75 minut nadawane są pełne opisy kanałów.
Sterownik nie umożliwia bezpośrednie transmitowanie jakichkolwiek danych do internetu (do serwerów APRS-IS) z powodów
oczywistych. Uruchomienie funkcjonalności igate wymaga podłączenia przez UART komputera PC, Raspberry-PI lub czegokolwiek
innego na czym można uruchomić oprogramowanie takie jak APRX, APRSIS32, czy UiView32. Na chwile obecną pakiety własne,
czyli generowane przez sterownik ramki pozycyjne, pogodowe czy telemetryczne są nadawane wyłącznie na port radiowy.
W przyszłości pojawi się funkcjonalność polegająca na wysyłaniu przez KISS do komputera nie tylko ramek odebranych drogą
radiową, ale również tych pochodzenia własnego.
4. KOMPILACJA
Do kompilacji oprogramowania ParaTNC na płytkę STM32VLDISCOVERY potrzebny jest zestaw narzędzi GNU ARM Embedded Toolchain
w którego skład wchodzi kompilator gcc-none-arm-eabi, debugger gdb, linker, oraz zestaw bibliotek i plików include.
w którego skład wchodzi kompilator gcc-arm-none-eabi, debugger gdb, linker, oraz zestaw bibliotek i plików include.
Dodatkowo niezbędny jest make i binutils znajdujący się w kazdej dystrybucji linuksa. ParaTNC został napisany i jest
rozwijany na systemie Xubuntu 16.04LTS z toolchainem w wersji 2016q-3, aczkolwiek bez problemu będzie się kompilował na
dowolnie nowszej wersji. Kompilacja w systemie Windows czy MacOS nie jest wspierana ale powinna się udać, jeżeli ktoś
@ -100,9 +107,8 @@ kompilacji
Płytka STM32VLDISCOERY ma wbudowany programator/debugger sprzętowy ST-Link v1. Komunikacja z nim odbywa się przez
komendy SCSI passthrough a samo urządzenie wykrywa się w systemie jako pamięć masowa. W domyślnej konfiguracji po
podłączeniu płytki prez USB do komputera system (a dokładnie modprobe) automatycznie załaduje dla tego urządzenia sterownik
mass-storage, co uniemożiwi zaprogramowanie.
W związku z powyższym należy w jego konfiguracji zablokować taką konfigurację. Robi się to przy pomocy polecenia:
mass-storage, system zamontuje emulowany przez programator system plików jako pendrive, co uniemożiwi zaprogramowanie.
W związku z powyższym należy w jego konfiguracji zablokować takie zachowanie. Robi się to przy pomocy polecenia:
'sudo echo "options usb-storage quirks=483:3744:i" >> /etc/modprobe.d/stlink_v1.conf'

Wyświetl plik

@ -15,6 +15,10 @@
//#define _METEO
#define _DIGI // Comment this do disable WIDE1-1 digipeating
#define _MUTE_RF // TODO: Not yet implemented - This will make station RXonly and disable all data transmission
#define _MUTE_OWN // TODO: Not yet implemented - This will disable all self-generated packets (wx, telemetry, beacon)
// and switch device to "pure" kiss TNC operation. Packets from PC will be transmitted normally.
// Coordines should be in APRS decimal format DDDMM.SS for Longitude and DDMM.SS for latitude
#define _CALL "NOCALL"
#define _SSID 12
@ -41,22 +45,34 @@
#define _WIDE21_PATH // CALL-S>AKLPRZ,WIDE2-1:data
// Comment this to disable beacon auto sending during startup (this can be risky if RF feedback occur)
#define _BCN_ON_STARTUP
//#define _BCN_ON_STARTUP
#define _WX_INTERVAL 3 // WX packet interval in minutes
#define _WX_INTERVAL 4 // WX packet interval in minutes
#define _BCN_INTERVAL 10 // Own beacon interval in minutes
//#define _PTT_PUSHPULL // Uncomment this if you want PTT line to work as Push-pull instead of Open Drain
// Transmitting delay
#define _DELAY_BASE 16 // * 50ms. For example setting 10 gives 500msec delay. Maximum value is 16
#define _RANDOM_DELAY // adds random delay TO fixed time set by _DELAY_BASE. This additional time can be
#define _DELAY_BASE 12 // * 50ms. For example setting 10 gives 500msec delay. Maximum value is 16
//#define _RANDOM_DELAY // adds random delay TO fixed time set by _DELAY_BASE. This additional time can be
// from 100ms up to 1 sec in 100ms steps. Values are drawn from samples going from ADC
// so it is better to use Unsquelched output in radio to provide much more randomness
//After waiting time declared above ParaTNC will check DCD (Data Carrier Detect) flag, which works as some
//kind of semaphore. If radio channel is not occupied by any other transmission TX will be keyed up immediately,
//otherwise software will wait for clear conditions.
// Few IMPORTANT hints about setting transmit delay properly.
//
// Transmit delay is key parameter to maintain RF network free from packet losses and collisions. If your station will be
// installed on tall object, without any other digi's close to it, you can set _DELAY_BASE to very low value and disable
// _RANDOM_DELAY. If you wanna rather auxiliary station, witch should only fill gap in RF coverage in small area, then
// _DELAY_BASE parameter should be not less than 12 (600msec), the smallest range the higher _DELAY_BASE should be.
// Additionally for gapfillers (auxiliary stations) _RANDOM_DELAY schould be enabled.
//
// This delay will ensure that while other station will be transmitting repeated packets from mobile, Yours will keep
// always quiet and won't jam RF network. This greatly improve DCD based access to channel. Various controllers uses
// various lenght of preamble, some of them produce signal which might be impossible to decode by ParaTNC, so DCD
// is only one part of effective multiaccess to medium.
// Do not touch this