How to TX/RX using 2 boards with the "HW/SW Co-Design QPSK Transmit and Receive Using Analog Devices AD9361/AD9364" example

Hello,
I am trying to transmit and receive using 2 different supported boards (2x ZEDBOARD + 2x FMCOMMS3) using following example:
I have succesfully compiled the simulation, programmed the board via HDL Coder and HDL Workflow Advisor and transmitted and received with ease using one board. However, when trying to use 2 boards, I do not know the procedure I need to follow for a successful TX/RX over air. I am not able to see the other board's data at the receiver. I do not receive anything.
My approach was the following:
- I configured both ZEDBOARDs with the bitstream of the example.
- I attached one antenna to the TX port of the TX FMCOMMS3 and one antenna to the RX port of the RX FMCOMMS3.
- I disabled on one end the AD936x transmitter system and on the other the AD936x receiver system.
- The systems can be seen in the attached images.
- The UDP receive model was running on the receiver side.
The result: I do not see any bits coming into the RX side.
Anybody has some expertise in this? Maybe there are other examples which I have not discovered yet that address this scenario...
Any help would be welcome. Thank you in advance
----------------------------------------------------------------------------------------
RX Side:
TX side:
UDP Model:

 Accepted Answer

Hello,
Thank you very much for the fast answer.
I am having some troubles connecting. When I follow the steps you propose, sometimes the constellation in the RX appears but most of the time it is either distorted or I do not receive at all.
Do I need to connect both TX/RX of board 1 to RX/TX of board 2 together (2-way)? Or only TX of board 1 to RX of board 2 (1-way)?
If I connect 1-way, I can't see the constellation. When I connect it 2-way, I can see a more or less dense constellation around the QPSK symbols but the BER has lots of errors.
Also, I am using cables for now.
Hope you can guide me with this.
Thank you in advance!

5 Comments

If you are using SMA cables, then it should be fine, if tx of one board -> rx of other or 2 wires in the same manner. They dont interfere.
The Ad936x blocks gain values might need some calibration, Try to set Tx ad936x gain to maximum value (0 dB) and try reducing it further if you are seeing improvement. Rx side may also need calibration based on such improvement.
Do you see increasing frame sychronized number on the display?
Any value displayed on estimated Coarse CFO? is it near stable or highly fluctuating?
Okey,
I made some experiments and this is what I get with SMA cables, TX of one board -> RX of other.
I have CFO = 0 on both sides. The constellation seems to be rotating because I get lots of errors.
Frames increase, bitErrors and bitsReceived too. The gains were tuned to get proper receiving.
It is interesting that no matter what CFO I put in on both sides, the CFO stays around -2000 always.
Do you have any clue about this?
It is also interesting that I am decoding the messages correctly... Although the constellation, bit errors, etc... are wrong.
The constellation in your snapshot is good, I don't see a circle with origin as centre. In that sense the constellation is stable. Also the CFO CPO connected to HDL_QPSK become operational when overAir is set to false.
The bit errors comparison doesn't work when externalDataActive is true. It is only meant for internal data.
I do see, the externalDataActive is set to true. The complete snapshot looks like this:
the externalDataActive is connected to the HDL_QPSK and UDP Send 2. It is used to force the bit errors to NaN in the hostUDP model.
Are there any changes made to the software interface model and udp receive model?
Ok, now I see. Thank you a lot for your advice! These tips solved my confusion.
Thank you again and best regards
Cheers

Sign in to comment.

More Answers (1)

Do not comment out let all the four be active. But in real time one tx and other rx are connected to wire/antennas. Make sure centre frequencies are the same for all of them. You comment out only the UPD Send parts of which ever rx you are not using. I suggest you start with a SMA cable kind of, as the distant b/w the boards matters.

Products

Release

R2025b

Asked:

on 4 Feb 2026

Commented:

on 18 Feb 2026

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!