PYNQ: PYTHON PRODUCTIVITY

No HDMI output with OpenCV Face Detection Webcam example

Hi!
I have tried to display Video on HDMI, but there was not any activity on a screen. A Python processing hangs without any information and this is the result of Jupyter kernel interruption:

Mode = VideoMode(1280,720,24)
hdmi_out = base.video.hdmi_out
hdmi_out.configure(Mode,PIXEL_RGB)
hdmi_out.start()

Frequency: 74250000


KeyboardInterrupt Traceback (most recent call last)
in ()
3 hdmi_out = base.video.hdmi_out
4 #hdmi_out = DisplayPort()
----> 5 hdmi_out.configure(Mode,PIXEL_RGB)
6 hdmi_out.start()

/usr/local/lib/python3.6/dist-packages/pynq/lib/video/hierarchies.py in configure(self, mode, pixelformat)
299 self._hdmi.mode = mode
300 self._vdma.writechannel.mode = mode
→ 301 self._hdmi.start()
302 return self._closecontextmanager()
303

/usr/local/lib/python3.6/dist-packages/pynq/lib/video/xilinx_hdmi.py in start(self)
184 while _hdmi_lib.HdmiTx_ready(self.handle):
185 _hdmi_lib.HdmiTx_handle_events(self.handle)
→ 186 while not _hdmi_lib.HdmiTx_ready(self.handle):
187 _hdmi_lib.HdmiTx_handle_events(self.handle)
188

KeyboardInterrupt:

Can someone give me a hint how to solve this? What could be a reason? The monitor is connected and it is also possible to read its EDID.

Thanks
Paweł

Which board? Which PYNQ version? What does your cable setup look like?

This is a custom board based on ZynqMP. I use PYNQ 2.5. The board can display Video on HDMI with using Linux kernel drivers. The Vivado design for HDMI is very similar to ZCU104. The only important difference is a clocking. The board uses Si570 programmable oscillator, instead of IDT8T49N240. By default PYNQ does not have a driver for the chip. As a workaround I set the required frequency with using Linux driver.

Paweł

I added a driver for Si570, but the problem still exists. Jupyter processing hangs in the same place:

/usr/local/lib/python3.6/dist-packages/pynq/lib/video/xilinx_hdmi.py in start(self)
** 184 while _hdmi_lib.HdmiTx_ready(self.handle):**
** 185 _hdmi_lib.HdmiTx_handle_events(self.handle)**
→ 186 while not _hdmi_lib.HdmiTx_ready(self.handle):
** 187 _hdmi_lib.HdmiTx_handle_events(self.handle)**

Does anybody know how to solve the problem?