• 0

Pmod Wifi SDK issues

Go to solution Solved by DanielN08,



I've been trying for over a two months to make a project including the PmodWifi for sending data from PIR motion sensors to a computer with wifi.

At fisrt I was working with Basys 3 board that I had but I undrstood that it doesn't have enough memory space. So I got Nexys 4 DDR board and tried using it there. Unfourtunatly I had some trouble with configuring the DDR so I reached some professional help from an engineer that works in the field. He gave me a new board, Zynq UltraScale+ MPSoC ZCU106, that he knows for sure how to work with and configure.

We managed to generate bitstream and started working on the SDK by trying to use the TCPEchoClient example from the PmodWifi library ip (2019.1). We tried using this ip library first but it had errors so we switched to this one. We are currently working with Vivado 2017.4 because of what we learned that other versions have errors (flexible array member 'DHCPDG_T...). We got some other errors that we can't find any information how to solve.

The first one is that from the beginnig when I just make a new application project I see an error in the bsp on the System.h file:

'XPAR_CPU_CORE_CLOCK_FREQ_HZ' undeclared (first use in this function)    Final_Project_bsp        line 73    C/C++ Problem

This error happened also with the other library and to be clear, I didn't modify any of the files.

After I edited the main.cc file (copy/paste from the TCPEchoClient example code) about 20 other errors showed up:

undefined reference to `DEIPcK::begin()'    main.cc    /Final_Project/src    line 186    C/C++ Problem
undefined reference to `DEIPcK::periodicTasks()'    main.cc    /Final_Project/src    line 244    C/C++ Problem


undefined reference to `vtable for DEMRF24'    AdaptorClass.h    /Final_Project_bsp/psu_cortexa53_0/include    line 61    C/C++ Problem

I've been trying to make this thing work for too long, please help me finish this project.

I'm attaching some screenshots of the project and the main.cc file.

Thank you, Netanel.





Edited by netanel_shor
Link to post
Share on other sites

4 answers to this question

Recommended Posts

  • 1
  • Solution

Hello Netanel,

It sounds like I was having the same issue as you. I have found a solution to connect the Echo TCP client to any local TCP server.

In SDK go to your BSP folder\ps7_cortexa9_0\libsrc\PmodWIFI_v1_0\src\DEIPcK\utility\DHCP.c and uncomment line 725 "pLLAdp->ipStack.pARPIPv4->macDest = MACNONE;" and line 727 "pLLAdp->ipStack.pARPIPv4->macSrc = pLLAdp->pNwAdp->mac;".

The TCP client fails to connect to your local TCP server most likely because your TCP server receives an invalid MAC address (0:0:0:0) of the TCP client, changing those lines will attribute the correct MAC adress of the Pmod WiFi to your TCP server. I found this fix after spending a few days on it and reading the TCP packets in Wireshark.

I hope this helps,



Edited by DanielN08
Link to post
Share on other sites
  • 1

Hi @netanel_shor,

I haven't gotten to work with an Ultrascale board so I can't readily verify if there is any odd compatibility errors between the Pmod IP and Ultrascale, but I will recommend that you take a look at this thread starting around this comment, https://forum.digilentinc.com/topic/17224-pmod-wifi-sdk-problem/?do=findComment&comment=52875, where I got the Pmod WiFi working with the Zedboard in both 2019.1 and 2019.2. One main difference that I did differently from the normal Pmod IP flow (tutorial link) was that I used the master version of the Vivado library rather than the release version because there were some fixes made to the Pmod WiFi material that aren't captured in the latest release.

Otherwise the other thing that you would likely need to do (it looks like you may have done this, but in the interest of providing complete information for other readers) is to make the Pmod_out from the Pmod WiFi IP external via right-clicking on it, finish the block design and create the HDL wrapper, and then re-open the wrapper to find out the names it used for the Pmod out pins so that you can specify those in an .xdc file.

Let me know if you have any questions about this.



Link to post
Share on other sites
  • 0

Hello @JColvin and thank you for the help.

So I have managed to solve this problem I had by using the Nexys 4 DDR board and Vivado 2017.4 if anyone is having the same kind of errors, but I have a different kind of problem now.

As a reminder I'm currently trying to connect to a server located on a computer using the PmodWifi.

I used an example code that came inside the PmodWifi library called TCPEchoClient for this purpose.

The code compiles and running but I have a wierd problem:

When I am trying to connect to the local network at my house it says "Wifi Connected" but then it tries to connect to the server and it get stuck.

So I checked the server by connecting to it from a different computer and it worked, what gives me the indication that my server code is not the problem.

After that I wanted to check if the example code works on a different server and used google's server IP: and Port: 80 and it worked. I even sent the stream:

byte rgbWriteStream[] = {'G', 'E', 'T', ' ', '/', ' ', 'H', 'T', 'T', 'P', '/', '1', '.', '1', '\r', '\n', '\r', '\n'};  and got a reply.

So this is what's so wierd, both parts of the system works individualy but somehow they don't with each other.

I don't know if this is the place for these kind of questions, but I wanted to see if maybe somone had that issue before and know how to solve it.

I'm attaching the example code for reference.

Thank you,



Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now