This repository contains the files and code for the EN2130 Communication Design Project, focused on building a point-to-point digital wireless communication system using software-defined radios (SDRs).
- Transmission of Images, Voice, and Video over a wireless channel.
- Communication in the 2.4 GHz ISM band, adhering to power limitations.
- Utilizes BladeRF 2.0 micro xA9 and A4 devices for transmission and reception.
- Performance evaluation based on:
- Distance
- End-to-end delay
- Security features for secure communication.
- Channel estimation to improve transmission quality.
- Adaptive transmission to optimize performance under varying conditions.
/src
- Contains source code for the system./docs
- Documentation related to system design and implementation./tests
- Test scripts for evaluating system performance./media
- Example image, voice, and video files for transmission./BPSK
- Contains BPSK modulation related files./FM
- Contains FM modulation related files./QPSK
- Contains QPSK modulation related files./temp
- Temporary files and scripts./Transiver
- Contains the files used for the final demonstration of the system./User interface
- User interface related files.
To install GNU Radio on Windows, follow these steps:
- Download the GNU Radio installer from Radioconda or follow this link.
- Run the installer and follow the on-screen instructions to complete the installation.
- Launch the GNU Radio Companion (GRC) graphical interface from the start menu.
For additional information and installation instructions on other operating systems, refer to the official GNU Radio documentation here.
This project utilizes BladeRF A9 and BladeRF A4 devices. Below are the separate instructions for installing drivers for each device.
To install drivers for the BladeRF A9, follow these steps:
-
Download the BladeRF A9 Driver:
- Visit the Nuand BladeRF Downloads page.
- Locate the BladeRF A9 section and download the appropriate Windows installer (e.g.,
bladeRF-win-installer-2024.05.exe
).
-
Connect the BladeRF A9 Device:
- Use a USB cable to connect your BladeRF A9 device to your computer.
- Ensure the device is securely connected.
-
Run the Installer:
- Double-click the downloaded installer file.
- Follow the on-screen instructions to install the BladeRF A9 drivers and associated software.
To install drivers for the BladeRF A4, follow these steps:
- Download and run Zadig
- Select your device (It may be auto-selected since it is missing a driver)
- Ensure the target driver (middle of the interface) reads "WinUSB"
- Click "Install Driver" or "Replace Driver"
For additional information follow this link
To start working with the project, follow these steps:
-
Clone the Repository:
- Run the following command to clone the repository:
git clone https://github.com/NaveenSanjaya/DigitalCommDesign.git cd DigitalCommDesign
- Run the following command to clone the repository:
-
Set Up the Environment:
- Ensure that you have installed GNU Radio using the Radioconda installer as described earlier.
- Use Visual Studio Code (VS Code) with the Radioconda interpreter to run the system.
-
Run the Home Script:
-
Locate the
User interface
folder: -
Run the
home.py
script to start the system: -
The
home.py
script serves as the main entry point for the system. From this interface, you can navigate to different modules:- Transmitter Window: Configure and start data transmission.
- Receiver Window: Set up the receiver for incoming data.
- Video Stream Window: Stream video over the wireless channel.
-
-
Load Flowgraphs in GNU Radio (Optional):
- If you want to directly run specific flowgraphs for debugging or analysis, open GNU Radio Companion (GRC):
- Load the desired flowgraph:
- For BPSK:
BPSK_Pkt_Tx_Rx.grc
- For QPSK:
QPSK_Pkt_Tx_Rx.grc
- For FM:
nuand_transmitter.grc
ornuand_receiver.grc
- For BPSK:
-
Transmitter and Receiver Demonstration:
- The final demonstration uses the files in the
/Transiver
folder.
- The final demonstration uses the files in the
-
Verify and Adjust:
- Monitor the system's performance and make adjustments to parameters (e.g., frequency, gain, sample rate) as needed.
- GNU Radio Companion not opening: Ensure that GNU Radio is correctly installed and added to your system's PATH.
- BladeRF device not recognized: Check the USB connection and ensure that the drivers are correctly installed.
If you would like to contribute to this project, please fork the repository and submit a pull request with your changes.
For any questions or issues, please contact the project maintainers at naveensanjayab@gmail.com,hpelagewatta@gmail.com, nethmiamashamso1671@gmail.com.