FLoRa
FLoRa (Framework for LoRa) is a simulation framework for carrying out end-to-end simulations for LoRa networks. It is based on the OMNeT++ network simulator and uses components from the INET framework as well.

FLoRa allows the creation of LoRa networks with modules for LoRa nodes, gateway(s) and a network server. Application logic can be deployed as independent modules that are connected with the network server. The network server and nodes support dynamic management of configuration parameters through Adaptive Data Rate (ADR). Finally, the energy consumption statistics are collected in every node.
stack photo
Related Publication
Features
  • Accurate model of LoRa physical layer (including collisions and capture effect)
  • Simulations with one (or more) gateways in the network
  • End-to-end simulations, including accurate modeling of the backhaul network
  • Statistics of energy consumption in network
Download
  • Latest stable version of FLoRa: FLoRa
  • Repository with the code: GitHub
Requirements
  • OMNeT++ 5.2.1
  • INET framework 3.6.3
  • Note: We have checked that FLoRa works also with newer versions (OMNeT++ 5.3, and INET 3.6.4), but we have not verified all functions.
Installation
  • Note: For some reasons, FLoRa does not work on Windows, when compiled with clang. To solve this problem, you can compile the whole environment with gcc. To do that, just set the default compiler to 'gcc' instead of 'clang'. You can do that in a configure.user file located in the main OMNeT++ directory
  • Download OMNeT++ 5.2.1 and install following the installation guide
  • Download INET 3.6.3 framework and install following the installation guide
  • Download FLoRa, extract the files and import it as a new project into your OMNeT++ workspace (File > Import > General > Existing project into Workspace). HINT: If this is your first experience with OMNeT++ it is convenient to extract the archive into "samples" directory in the main OMNeT++ directory, and change name of this directory to "flora" (instead of "flora-master").
  • Make sure the FLoRa project has INET project as a project reference (Project > Properties > Project References)
  • Build the FLoRa project (right-click on the project and select 'Build project')
  • Check if FLoRa is working correctly by running a sample simulation scenario located under 'simulations' directory. Right click on loRaNetworkTest.ini and select Run as > OMNeT++ simulation. If all goes well, the simulation terminates on completion of simulated time
Sample scenario
A sample scenario is present in the simulations directory of FLoRa. The scenario is defined in the loRaNetworkTest.ini file

The sample scenario has the following features:
  • A network of 10 nodes, one gateway and a network server
  • The nodes are placed uniformly randomly distributed in a square deployment area
  • Each node sends a packet after a time drawn from an exponential distribution with a mean of 100s
  • Spreading factor and transmission power for each node are chosen randomly (uniform) from available settings
  • ADR is disabled on both the network server and nodes
  • Simulation time limit is configured for 7 days with a warm-up period of 1 day
  • The backhaul network configuration is defined by cloudDelays.xml file
  • The backhaul network links are set in package.ned

The simulation statistics files are generated in simulations/results directory on completion of the run. The simulation statistics can be viewed through the OMNeT++ GUI.
Version history

0.8

  • Update default parameters with LoRaWAN values
  • Multiple changes to add cache to speed up simulations for large networks

0.7.1

  • Solve segmentation fault that occurs infrequently in networks with multiple gateways
  • Move the source executables to the correct directory
  • Update statistics collection for networks with multiple gateways

0.7

  • Updated to the newest OMNeT++ and INET
  • Code published on GitHub: link

0.6

  • Initial working version published online

Authors