Page 1 of 1

RedPitaya has Qt GUI window

Posted: Sun Apr 15, 2018 5:50 pm
by pippo
Succeeded to make HDMI video TX FPGA logic and LX device drivers on RedPitaya to have Qt GUI applications that runs directly on RedPitaya.
Generated HDMI video is SXGA (1280x1024@60fps, 24bit color, Pixel Clock 108MHz) resolution.
In attached picture the FPGA logic coloured with yellow is the one that implements HDMI TX (DMA video data from DDR, HDMI video stream, video timing and HDMI output signal generate logic).
All other logic (in blue) is some my adc data acquisition and processing logic.
With this support I have possibility to write stand alone (no network connection need) GUI applications to output video results directly to connected HDMI monitor.

I used Qt and Qwt for GUI framework, LX is 4.6 kernel version and video is handled by LX DRM driver.
On pictures you can also see the small HW board that I have to made to buffer HDMI output signals and drive them to HDMI TX connector.
From signal quality point of view (wire length and impedance) the board is far from perfect, but I need to make something quickly for proof of the concept.
I will now draw and make made a proper PCB board.

It would be also possible to add X driver to attach to DRM driver and than have complete X Window system on RedPitaya.
For my purposes the Qt GUI is far enough for my requirements (e.g. I don't need X terminal window) and also RedPitaya resources (amount of DDR memory and bandwidth) are limited.

On attached pictures are standard Qt and Qwt examples (framebuffer, cpuplot and sysinfo) that I cross compiled and than executed on RedPitaya to proof that it works.
Now I can start to write my own RedPitaya Qt GUI application.

Re: RedPitaya has Qt GUI window

Posted: Tue Apr 17, 2018 9:30 am
by amike88
Congrats looks good :)

what is the resources usage?

Re: RedPitaya has Qt GUI window

Posted: Tue Apr 17, 2018 8:22 pm
by pippo
Sum done by Vivado utilization report for modules used by HDMI TX logic (colored yellow in attached picture above):
Slice LUTs (17600): Used=1993
Slice Registers (35200): Used=4003
Block RAM Tile (60): Used=3
OLOGIC (100): Used=8
BUFIO (8): Used=1
MMCME2_ADV (2): Used=1
BUFR (8): Used=2
In parenthesis is max avail for Z7010. All the rest is available for other FPGA processing stuff.
In my design the other processing logic (colored blue) is used for ADC data acquisition and processing.

Re: RedPitaya has Qt GUI window

Posted: Fri Jun 08, 2018 7:00 pm
by pippo
I have now RedPitaya extension board with HDMI signal buffer that gives perfect video signals for my 1280x1024@60fps HDMI clock rates. Board is also mechanically robust for HDMI connector pull in/out. I have attached also picture of another Qwt example refreshtest (see in Qwt sources what it does).

Complete BOM cost (hobbyist single piece buy, with VAT and shipment costs) for it was ~30EUR.

I have now a development board to develop GUI applications running on RedPitaya and using all Qt and Qwt widgets to display acquired and processed data directly on RedPitaya connected HDMI monitor.
Next on my list is to put some push buttons on extension board and connect input events to Qt mouse/keyboard events to have control over Qt application. This way RedPitaya will become really stand alone board with GUI display on HDMI monitor.

Re: RedPitaya has Qt GUI window

Posted: Wed Jun 13, 2018 6:11 pm
by pippo
I can control Qt application with USB mouse and keyboard (thanks to linux hid-generic USB mouse and keyboard driver).
On picture is Qt oscilloscope example demo controlled with USB mouse via RedPitaya USB connector.
This makes RedPitaya complete Qt GUI desktop ARM based computer.