PYNQ: PYTHON PRODUCTIVITY FOR ZYNQ

Pynq VIDEO HDMI tutorial fails on hdmi_in.configure()

Hello,

I’m following this “official” Pynq VIDEO HDMI tutorial:

https://pynq.readthedocs.io/en/latest/pynq_libraries/video.html

but it fails in the following way after few steps on hdmi_in.configure()

xilinx@pynq:~$ sudo python3
[sudo] password for xilinx:
Python 3.6.5 (default, Apr 1 2018, 05:46:30)
[GCC 7.3.0] on linux
Type “help”, “copyright”, “credits” or “license” for more information.

from pynq import Overlay
from pynq.lib.video import *
base = Overlay(‘base.bit’)
hdmi_in = base.video.hdmi_in
hdmi_out = base.video.hdmi_out
hdmi_in.configure()
Traceback (most recent call last):
File “”, line 1, in
File “/home/xilinx/pynq/lib/video/hierarchies.py”, line 108, in configure
self._hdmi.start()
File “/home/xilinx/pynq/lib/video/xilinx_hdmi.py”, line 288, in start
self.set_hpd(1)
File “/home/xilinx/pynq/lib/video/xilinx_hdmi.py”, line 351, in set_hpd
_hdmi_lib.HdmiRx_set_hpd(self.handle, value)
TypeError: initializer for ctype ‘void *’ must be a cdata pointer, not NoneType

Does this happen to somebody else?
Thanks

Is this on a ZCU104 board by any chance?

It looks like we haven’t updated the documentation to account for the changes for the ZCU104 and PYNQ-Z1/2 boards. For the ZCU104 you need to

from pynq.overlays.base import BaseOverlay
...
base = BaseOverlay('base.bit')

As the video subsystem on that board needs some additional setting up which is performed by the BaseOverlay class.

Peter

Hello Peter,

yes is a ZCU104 and sorry for forgetting to mention it.

I tried, now I face no errors but it hangs forever on hdmi_in.configure() with no error messages. Tried multiple times.

Here my updated steps:

xilinx@pynq:~$ sudo python3
[sudo] password for xilinx:
Python 3.6.5 (default, Apr 1 2018, 05:46:30)
[GCC 7.3.0] on linux
Type “help”, “copyright”, “credits” or “license” for more information.
from pynq.overlays.base import BaseOverlay
from pynq.lib.video import *
base = BaseOverlay(‘base.bit’)

Successfully loaded edid.
hdmi_in = base.video.hdmi_in
hdmi_out = base.video.hdmi_out

hdmi_in.configure()

hdmi_in.configure() will wait for the input signal to be present and stable before returning.

What source are you using for the video input?

Peter

OK, thanks.

I connected a PC as input and it stepped over. I was making some tries and I wrongly supposed that the real input was not yet needed at that point, but only from the following .start method.

Stefano