My LoRaWAN Signal Mapping MSc summer project. This is a copy of the actual repository with personal information removed.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Starbeamrainbowlabs f8b09e5b9d
Add gateway marker layer to display gateway locations
4 years ago
client_src Add gateway marker layer to display gateway locations 4 years ago
common Write AI layer, but it's untested. 4 years ago
iot ttn listener:Delete debug lines 4 years ago
lantern-build-engine@617fcdb5b9 Create initial report template 4 years ago
server Update CLI help 4 years ago
.gitignore Create initial scaffolding for client-side map interface. 4 years ago
.gitmodules Add TinyGPS as it's got a smaller program size then TinyGPS++ 4 years ago
.tern-project Start creating the database structure, but it's unfinished. 4 years ago
Initial Report Spec.pdf Add initial report spec 4 years ago
LICENSE Initial commit 4 years ago Implement an extra layer of encryption, but it's untested. 4 years ago
Signal Mapping Architecture.drawio Add participant information sheet & consent form to ethical form phase 2 4 years ago
build Optimise client-watch by using rollup --watch 4 years ago
compile_flags.txt Start weaving the libraries together, but there's quite a ways to go..... 4 years ago
package-lock.json Bugfix the new web worker. 4 years ago
package.json Bugfix the new web worker. 4 years ago
rollup.config.js Bugfix the new web worker. 4 years ago Create shel script proxy for server script access 4 years ago
ttn-listener.conf rsyslog: Fix syntax 4 years ago
ttn-listener.service Add logging.colour settings option 4 years ago


My Msc Summer Project

Hardware Used

Getting Started

Run bash ./build setup from the command line at the root of this repository.

IoT Device

  • Copy settings.custom.cpp.example to settings.custom.cpp and fill in the fields there
    • This Bash one-liner can be used to generate a new encryption key in the right formats: head -c16 /dev/urandom | od -tx1 | awk '{ gsub(/^0+\s+/, "", $0); toml=$0; gsub(/\s+/, "", toml); print("settings.toml format: " toml); arduino=toupper($0); gsub(/\s+/, ", 0x", arduino); print("settings.custom.cpp format: 0x" arduino); exit }'
  • Review settings.h to make sure it matches your setup
  • Copy the folders in iot/libraries to your Arduino IDE libraries folder


  • The bash ./build setup should have already installed the necessary dependencies.
  • Create settings.toml in the root of the repository if it doesn't exist already.
  • Review server/settings.default.toml and adjust settings.toml to fill in the values for the required fields, not forgetting the encryption key generated when setting up the IoT device.