Skip to content

Installing ns3-sigfox on higher versions of ns-3 using CMake

Low-power wide-area network (LPWAN).

Sigfox was a French global network operator founded in 2010 that built wireless networks to connect low-power objects such as electricity meters and smartwatches, which need to be continuously on and emitting small amounts of data. And latter, in April 2022 Singapore-based IoT network firm Unabiz subsequently acquired Sigfox and its French network operations4].

Sigfox, in terms of network standard, is a low-power, wide-area network (LPWAN) technology designed for connecting devices and sensors to the internet of things (IoT). It operates on licensed cellular bands, providing better coverage and longer battery life compared to other wireless IoT technologies. NB-IoT is optimized for low-bandwidth, low-power applications that require long-range connectivity and is suitable for use cases such as smart metering, asset tracking, and environmental monitoring.

These networks use low-power radio signals, such as those in the sub-1 GHz range, to send small amounts of data over a large area. LPWANs are used in applications such as wireless sensor networks(WSN), smart energy, smart cities, and the Internet of Things (IoT). 

They are also used to connect devices in remote locations that don’t have access to reliable internet connections. LPWANs are ideal for applications that require low data rates, long battery life, and low cost. 

Examples of LPWANs include Sigfox, LoRaWAN, and Weightless. LPWANs are commonly used in applications including Smart metering, smart lighting, asset monitoring and tracking, smart cities, precision agriculture, livestock monitoring, energy management, manufacturing, and industrial IoT deployments.

The following article presents some introduction to some of the available LPWAN technologies:

 

Low-power wide-area networks(LPWAN) & Internet of Things(IoT)

 

Sigfox. 

It is a low-power, wide-area network (LPWAN) technology designed for connecting devices to the internet of things (IoT). It operates on unlicensed radio frequencies and provides long-range, low-bandwidth connectivity for IoT devices. Sigfox is optimized for low-power applications that require long battery life and infrequent data transmission, such as asset tracking, environmental monitoring, and smart city infrastructure. Sigfox offers a global network coverage and is typically used in conjunction with a subscription-based service for IoT connectivity.

ns3-Sigfox[1]

It  is a module for the popular network simulator ns-3 that allows simulation of Sigfox network performance. It provides an open-source tool for researchers and developers to model and evaluate the performance of Sigfox networks in various scenarios, such as different network topologies, traffic loads, and radio propagation conditions. ns3-Sigfox can be used to analyze network performance metrics such as throughput, latency, packet loss, and energy consumption, and to optimize network configurations and protocols. It is a useful tool for designing and testing Sigfox-based IoT applications before deploying them in the real world.

Installing ns3-sigfox module

Installing Under ns3.33 version

One may follow the following article to install ns3-sigfox under ns3.33 using ns-3-dev version.

Installing ns3-sigfox module under ns3.33 by using ns-3-dev.

Installing Under ns3.37 version and any ns-3 version with cmake support

Step 1: Installing ns-3.37

For installing ns-3.37, one may follow the procedure explained in the following article :

Cmake based ns-3.37 install in Debian 11 chroot Environment

 

Step 2: Downloading ns3-sigfox 

Now we can clone the ns3-sigfox project from [1] in to the /src folder of ns3 as follows :

$ cd your_home/ns-allinone-3.37/ns-3.37/src
$ git clone https://github.com/DEIS-Tools/ns3-sigfox
The following output shows the successful end of the clone operation.

Step 3: Configuring ns-3 

$ cd your_home/ns-allinone-3.37/ns-3.37
$ ./ns3 configure
 
Probably, the configure operation may fail and end up with following error :
 

 

and it will show the ns3-sigfox module in the list of “Modules that cannot be built” as follows:

 

It can be corrected as follows :

Hidden Section! Contact Charles  

The key/passphrase will be given once you have been approved for getting paid research support/assistance from Charles. To get paid support, you may start a 'free' research discussion.  

WhatsApp chatDiscuss Through WhatsApp
 

Now we can see that the ns3-sifgox module is ready to get compiled along with ns-3.37.

At the end of successful configure operation, we will that that the ns3-sigfox moduel is ready to compile along with all other modules.

 

Step 4: Compiling ns-3 

Now we can compile ns-3 (along with ns2-sigfox module) as follows:

$ cd your_home/ns-allinone-3.37/ns-3.37
$ ./ns3

 

If you try to resolve this error and reconfigure and compile again, you may end with an error like the following one :

 

Step 5: Avoiding all these errors

We have to correct the errors as follows:

Hidden Section! Contact Charles  

The key/passphrase will be given once you have been approved for getting paid research support/assistance from Charles. To get paid support, you may start a 'free' research discussion.  

WhatsApp chatDiscuss Through WhatsApp
 

The following screen shows the successful compile of ns-3 along with ns3-sigfox module.
 

 

Step 5: Testing ns3-sigfox module with an example simulation

Now we can test the working of the ns3-sigfox module by running the simulation ‘large-scale-network-example.cc’ which is available with the ns3-sigfox module.

$ cd your_home/ns-allinone-3.37/ns-3.37
$ ./ns3 run large-scale-network-example

Conclusion

In fact, ns3-sigfox is a significant work on simulating Sigfox based IoT/WSN network simulations on ns-3. But, implementing it on machines with latest version of linux OS and latest version of ns-3 will be a challenging task. The reason is: Sigfox is old ns-3 project, originally developed on ns3.33.  Even though the authors of ns3-sigfox tried to include generic wscript support and cmake support to make it work on higher versions of ns-3, still the work seems to be incomplete in that regard – so it needs lot of manual intervention to get it compiled on older version of ns-3 as well as the new versions of ns-3.

Father, as mentioned in [1], the implementation of a complete Sigfox IoT solution including network server is still under development. So it will become a complete Sigfox simulation module in near future. Even one may try to incorporate network server features in the existing module.

For a simple and powerful network simulations, one may consider using LoRaWAN ns-3 module, as mentioned in the following article:

Simulation and Analysis of IoT LoRaWAN Networks Under ns-3

 

References :

  1. https://github.com/DEIS-Tools/ns3-sigfox
  2. https://www.projectguideline.com/installing-ns-3-dev-under-chroot-jail-and-compile-with-cmake/
  3. https://www.projectguideline.com/low-power-wide-area-networkslpwan-internet-of-thingsiot/
  4. https://en.wikipedia.org/wiki/Sigfox
WhatsApp Discuss Through WhatsApp