PentaTrack
goal
A small, cost and energy efficient device that tracks position and announces it using long range transmission. Multiple devices will repeat each others messages and therefore extend the range in a mesh like manner.
Encryption should be used in a way that devices cant decrypt the position of other devices. Only priviliged devices will have the ability to decrypt all messages. Those devices will let endusers access those positions as raw data over a serial or wireless interface.
devices should be able to send a "help request". All the other devices around should then show a message with the direction and distances to the help request. It should be possible to deauth single devices so that they will not be able to read help requests anymore, while they still repeat them.
modules
PentaTrack will consist of different modules, each fullfilling a different purpose. Research for each of does modules has to be done
MCU
- manages other units using some protocol (I2C)
- manages user input (buttons)
- controls status LED's
Communication Unit
- send, receives and repeats messages
- handles encryption. maybe needs some extra "data unit" for storing public keys
- activated/decativated by MCU
GPS Unit
- tracks position, forwards to MCU
- activated/decativated by MCU
User Access Unit
- serial port
- ESP for wifi access
API
research
cost estimation
| Unit | Price |
|---|---|
| NEO-6M GPS | 12.50 |
| LoRa Module | 20.00 |
| MCU | |
| UAU | 8.00 |
MCU
Communication Unit
software libraries:
- RFM69
- pro:
- con:
- only for RFM69 Boards
- RadioHead
- pro:
- con:
- Arduino Lora
- pro:
- supports lots of boards
- api seems nice, uses callbacks for send/receive
- con:
- pro:
hardware modules
- Checkout HC-12 Wireless Modules
- Checkout LoRa Modules/Lib
- Checkout CC1101
protocoll research
LoRa/LoRaWAN:
- Lange Funkstrecken mit Arduino, LoRaWAN/RFM95W und The Things Network
- deutschland legal 868mhz
- diy antenne: 8.64cm blanker draht
- gibt schon gateways bei thethingsnetwork.org
- anscheinend muss man sihc registrieren um es nutzen zu koennen
- an sich cool da man vorhandene gateways nutzen kann, schoen waere aber auch komplett eigene infrastruktur
- man kann auch private netzwerke erstellen indem man eigenen lorawan gateway hostet, z.b. auf einen raspberry
It does not support the Mesh topology:
Although it is long-range, it is impossible to extend the distance or get over geographic obstruction using other nodes as a repeater (like XBee, Wirepas or Bluetooth 5 Mesh). It was designed based on the original concept of ALOA 1971.
DigiMesh:
- proprietary wireless mesh... proprietary.. yuck
GPS Unit
User Access Unit
DevEnv
arduino and nixos. to let arduino access serial device it seems like the user should be added to the 'dialout' group
STM32
debugging
start debugging server
allow access to usb device (this is bad practice but works for now):
sudo chmod 777 /dev/bus/usb/001/003
start gdb server:
st-util
connect to uart
stty -F /dev/ttyUSB0 #get baudrate
screen /dev/ttyUSB0 9600 #set baudrate according to stty cmd
GPS NMEA Example:
sample:
$GPGSV,4,4,13,32,13,043,18*46
$GPGLL,5103.74732,N,01345.18897,E,225640.00,A,A*60
$GPRMC,225641.00,A,5103.74725,N,01345.18895,E,0.879,,270223,,,A*7C
$GPVTG,,T,,M,0.879,N,1.629,K,A*29
$GPGGA,225641.00,5103.74725,N,01345.18895,E,1,04,8.27,90.8,M,43.6,M,,*69
$GPGSA,A,3,01,21,04,03,,,,,,,,,15.97,8.27,13.66*02
$GPGSV,4,1,13,01,70,140,30,03,73,277,20,04,30,197,25,06,02,306,*77
$GPGSV,4,2,13,09,00,2114,3,13,21,46,141,17,22,39,056,,28,26,074,07,31,24,084,15*70
$GPGSV,4,4,13,32,13,043,17*49
$GPGLL,5103.74725,N,01345.18895,E,225641.00,A,A*65
$GPGSV,4,4,13,32,13,043,17*49
$GPGLL,5103.74725,N,01345.18895,E,225641.00,A,A*65
$GPRMC,225642.00,A,5103.74732,N,01345.18880,E,0.748,,270223,,,A*70
$GPVTG,,T,,M,0.748,N,1.385,K,A*27
$GPGGA,225642.00,5103.74732,N,01345.18880,E,1,04,8.27,90.9,M,43.6,M,,*69
$GPGSA,A,3,01,21,04,03,,,,,,,,,15.96,8.27,13.65*00
$GPGSV,4,1,13,01,70,140,29,03,73,277,21,04,30,197,25,06,02,306,*7E
$GPGSV,4,2,13,09,00,2114,3,13,21,46,141,17,22,39,056,,28,26,074,07,31,24,084,13*76
`