Files
PentaTrack/README.md
2023-02-28 09:47:59 +01:00

160 lines
4.6 KiB
Markdown

# 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](https://github.com/LowPowerLab/RFM69)
* pro:
* con:
* only for RFM69 Boards
* [RadioHead](http://www.airspayce.com/mikem/arduino/RadioHead/)
* pro:
* con:
* [Arduino Lora](https://github.com/sandeepmistry/arduino-LoRa)
* pro:
* supports lots of boards
* api seems nice, uses callbacks for send/receive
* con:
**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](https://www.youtube.com/watch?v=vWLpbNqdNU0&ab_channel=BitBastelei)
* 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](https://news.rakwireless.com/how-to-build-a-lorawan-gateway-make-your-own/)
``` text
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):
``` shell
sudo chmod 777 /dev/bus/usb/001/003
```
start gdb server:
``` shell
st-util
```
#### connect to uart
``` shell
stty -F /dev/ttyUSB0 #get baudrate
screen /dev/ttyUSB0 9600 #set baudrate according to stty cmd
```
#### GPS NMEA Example:
[online decoder](https://rl.se/gprmc)
sample:
``` shell
$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
```
`