2023-02-28 11:18:50 +01:00
2022-12-18 15:37:26 +01:00
2023-02-28 11:18:50 +01:00
2023-02-28 01:34:04 +01:00
2022-12-18 15:37:26 +01:00
2023-02-28 11:18:50 +01:00
2023-02-17 15:18:10 +01:00
2023-02-28 01:34:04 +01:00
2023-02-28 01:34:04 +01:00
2023-02-28 09:47:59 +01:00
2022-12-18 15:37:26 +01:00
2022-12-18 15:37:26 +01:00
2023-02-17 15:18:23 +01:00
2022-12-18 15:37:26 +01:00
2022-12-18 15:37:26 +01:00
2022-12-18 15:37:26 +01:00
2023-02-18 11:00:29 +01:00

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:

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:

online decoder

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

`

Description
A small, cost and energy efficient device that tracks position.
Readme 101 KiB
Languages
CMake 58%
C++ 30%
C 11.1%
Nix 0.9%