Skip to content

fromconcepttocircuit/adalm-pluto-beamforming-2tx

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 

Repository files navigation

📡 ADALM-Pluto Beamforming Demo

This project demonstrates real-time RF beamforming using two ADALM-Pluto SDRs. By enabling dual TX channels on one Pluto and using the second Pluto as a receiver, this Python script sweeps the transmit phase and plots received power—allowing you to visualize the beam steering effect in a simple phased array.

Watch the video


🚀 Features

  • Visual demonstration of beamforming using Python + ADALM-Pluto
  • Supports One-Shot and Continuous phase sweep modes
  • Real-time plots:
    • FFT of received signal
    • Integrated received power vs. TX phase
  • Automatic calculation of:
    • Peak response direction
    • Half-Power Beam Width (HPBW) in phase and angular space

🧠 What You'll Learn

  • How beamforming steers radio waves using phase control
  • Practical use of dual TX channels on ADALM-Pluto for phased array demos
  • Signal visualization techniques using PyQtGraph
  • Integration of pyadi-iio with SDR hardware

🛠️ Requirements

Install dependencies:

pip install numpy pyqtgraph adi

📋 How It Works

  1. Pluto #1 (Transmitter):

    • Sends a baseband tone from two TX channels.
    • Channel 1’s phase is swept from -180° to +180°.
  2. Pluto #2 (Receiver):

    • Measures the received signal.
    • An FFT is performed to extract power at the tone frequency.
  3. GUI Interface:

    • Real-time plots of FFT spectrum and amplitude vs. phase.
    • Calculations of beam direction and HPBW.

🧪 Demo

Run the script:

python pluto_beamforming.py

Use the "One Shot" button for a single sweep or "Continuous" to loop through all phases.


📎 Notes

  • Ensure both Plutos are reachable on your network and have static IPs set to 192.168.2.1 and 192.168.2.2.
  • You must enable dual TX/RX mode on the transmitter Pluto using:
    fw_setenv attr_name compatible
    fw_setenv attr_val ad9361
    fw_setenv compatible ad9361
    fw_setenv mode 2r2t
    reboot

For more, see the official Analog Devices customization guide.


📄 License

This project is open-source and licensed under the MIT License.

🙌 Contributions and Feedback

If you try this project and have feedback or improvements, feel free to open an issue or submit a pull request. Let's make SDR more accessible together!


🔗 Connect


About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages