Development of a Python application for monitoring RF messages using one NRF24L01 board and a USB-MPSSE cable
Tutor / director / evaluatorMoreno Eguilaz, Juan Manuel
Document typeBachelor thesis
Rights accessOpen Access
The objective of this project is to build a python application to monitor radiofrequency (RF) packets on a personal computer (PC). In order to do this, a NRF24L01 board will be used together with a USB-MPSSE cable to connect the board with the PC. This system attempts to replicate a sniffer functionality, capable of receiving packets from different transmitters with very little information from their configuration. This functionality, which goes beyond regular packet reception, allows the user not only to catch messages from transmitters with little information of their configurations but also to provide message monitoring from devices with different configurations at the same time. This report attempts to give the reader a progressive introduction to RF communications starting from a basic communication mode in which regular messages are sent and received throughout the NRF24L01 and ending with a far more complex mode where the application catches the packets just by knowing the first 3 bytes from their address, no matter how long it is and also without knowing the CRC length. Then it will not only extract the message from the unknown packet but also predict the transmitters configuration and configure the receiver accordingly to optimize the reception of the following packets. None of these latter functionalities are provided by the NRF24L01 itself. Therefore, this project presents a software based enhancement of the NRF24L01 possibilities, extending these chip processing capabilities to the PC processor. In addition, a deep insight into the Graphic User Interface creation is given coupled with the interaction of some basic libraries that have been adapted to meet these project necessities. Two examples of these functionality extensions have been implemented in the application and are detailed in this report. These are: Fast file download and Focus. Finally, this report explains the conversion of the python application into an executable file for Windows, meaning that this application can be executed in every Microsoft Windows OS without requiring neither python or any of its modules installation.