# 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 ``` `