Skip to content

ucsdwcsng/loratestbed

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LoRa Testbed

An infrastructure-less, arduino-compatible LoRa testbed for PHY and MAC research. The user will simply provide a config file (that contains the experiment configuration details) to the testbed. The controller will communicate with the network to then return the results after the experiment has ended. See below for a high level overview.

Diagram 1: High level overview of the LoRa Testbed.

Run a simple experiment with an example configuration

poetry run python3 ./loratestbed/run_testbed.py -g /dev/ttyACM0 -c /dev/ttyACM1 --config ./configs/example.yaml

You will need to have device ID 33 and 26 active to run this successfully.

Configuration format

The configuration YAML file should necessarily have the following format/fields:

device_list: [33, 26] # List of device IDs
experiment_time_sec: 10 # Experiment time in seconds
offered_load_percent: 80 # Aggregate network offered load
packet_size_bytes: 16
mac_protocol: "csma" # MAC protocol used by the devices
packet_arrival_model: "poisson" # Packet generation model used by the devices.
# PHY layer parameters
transmit_SF: "SF8" # Spreading factor
receive_SF: "SF8"
transmit_BW: "BW125" # Bandwidth: "BW125", "BW250", "BW500
receive_BW: "BW125"
transmit_CR: "CR_4_8" # Code rate
receive_CR: "CR_4_8"

Setup and installation

Setting up the testbed

Click here to go to the documentation on flashing various components in the testbed and bringing them up.

Host software

Install poetry

pip install -U poetry

Navigate to the root directory of this git repository. Run tests:

poetry run pytest

Install:

poetry install

About

A LoRa testbed to evaluate PHY and MAC

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published