cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Newbie
Newbie
996 Views
Registered: ‎06-25-2019

ZCU111 RFSoC access via rftool at TCP port 8081 via netcat

According to Zynq UltraScale+ RFSoC RF Data Converter Evaluation Tool (ZCU111) [UG1287], the rftool process running on the ZCU111 is listening on TCP port 8081 for commands from the GUI application. Trying to bypass the GUI application and write commands directly using netcat. Sure enough, nc <ip.address> 8081 connects, but no response comes to any command. Perhaps the rftool code isn't recognizing newlines. Anyone else attempt this? Any tips or suggestions?

Also rftool source code shows some logging, but that doesn't seem to be activated by default. Any suggestions about how to activate those logs?

Thanks!

Tags (3)
0 Kudos
Reply
6 Replies
Contributor
Contributor
909 Views
Registered: ‎04-28-2017

I'm facing the same issue. Any pointers would be greatly appreciated. Thank you!

0 Kudos
Reply
Contributor
Contributor
874 Views
Registered: ‎04-28-2017

Update:

The rftool running on the ARM core of the RFSoC requires two open TCP connections: a data connection on port 8082, followed by a control connection on port 8081. So, you need to open these sockets in this order.

Next, on port 8081, go ahead and issue all the control commands that you want. You can look at the GUI (the LabVIEW executable) to see what commands have been executed.

Now, you can issue all the data commands (read/write) that you want, on port 8082. You can also issue additional control commands to re-configure if needed.

When you're done, you need to issue a "disconnect" command on port 8081

Finally, close the two sockets.

 

I've attached the MATLAB code that I used to do this. It's a simple class.

You execute as follows:

mysdr=sdr();

mysdr = mysdr.open('192.168.1.44'); % This is the IP address of my ZCU111 board

 

Happy hacking!

Visitor
Visitor
760 Views
Registered: ‎01-10-2020

>You can look at the GUI (the LabVIEW executable) to see what commands have been executed.

 

@adityadhananjaydoes the LabVIEW UI show the entire command set available with the rftool?  Or is there documentation for external control of the rftool resource?

thanks!

0 Kudos
Reply
Contributor
Contributor
754 Views
Registered: ‎04-28-2017

Hello ipt,

Yes, you can look at the issued commands through the LabVIEW user interface. You can also run tcpdump (or wireshark) to take a look at the packets that are being exchanged between the host computer and the RFSoC. You can cross-reference the commands from the UI and what you capture on wireshark, and will observe that they are the same (obviously). Good luck!

Visitor
Visitor
740 Views
Registered: ‎01-10-2020

> You can also run tcpdump (or wireshark) to take a look at the packets that are being exchanged between the host computer and the RFSoC.

 

I thought about this but wasn't sure if this would be considred reverse engineering of IP they dont want public 🤷‍♂️   glad to hear the UI makes it accessible!

 

thanks for the info!

 

EDIT: I just found this:  https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/57770205/RFSoC+RFdc+Build+and+Run+Flow+Tutorial

0 Kudos
Reply
Visitor
Visitor
491 Views
Registered: ‎01-25-2016

Hi @adityadhananjay ,

Thanks for your  matlab code .It's very useful.

Do you know how to write data to memory via matlab? 

Because the writedatatomemory seems only command without data section.

ps: https://www.xilinx.com/support/documentation/boards_and_kits/zcu111/2018_3/ug1287-zcu111-rfsoc-eval-tool.pdf   Page 5.

For example, to send 1024-byte samples to firmware, the following command is used:
writedatatomemory 0 1 1024 0

 

Best regards,

Paul

 

0 Kudos
Reply