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.
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.
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"
Click here to go to the documentation on flashing various components in the testbed and bringing them up.
Install poetry
pip install -U poetry
Navigate to the root directory of this git repository. Run tests:
poetry run pytest
Install:
poetry install