November 07, 2024, 09:25:35 PM

RP2040-PICO-PC HDMI examples

Started by Christo Radev, October 03, 2023, 09:49:46 PM

Previous topic - Next topic

Christo Radev

Hi to All,

I have just received and started testing HDMI output of RP2040-PICO-PC & Pi Pico. As examples I have downloaded Adafruit PicoDVI (https://github.com/adafruit/PicoDVI) and try to run some of the examples. For adapting Olimex' RP2040-PICO-PC I have added in software/include/common_dvi_pin_configs.h file following definition:

static const struct dvi_serialiser_cfg olimex_picopc_cfg = {
  .pio = DVI_DEFAULT_PIO_INST,
  .sm_tmds = {0, 1, 2},
  .pins_tmds = {14, 18, 16},
  .pins_clk = 12,
  .invert_diffpairs = true,
};

and change:
#define DVI_DEFAULT_SERIAL_CONFIG olimex_picopc_cfg

I have also change in example's ino file:
DVIGFX1 display(DVI_RES_640x480p60, true, olimex_picopc_cfg);

In Arduino Tools I have selected "Raspberry Pi Pico" board and in Optimize configuration options try with both -Os and -O3 as recommend. I have also tested with earlier Arduino cores (down to 1.12.0).

I have tested examples with both WINSTAR DISPLAY 800x480 WF50BTIFGDHT0 and Dell P2415Q 24" monitor (both working fine with Olimex' LIME2-SERVER).

Unfortunately, no one of my attempt was successful. At all of them the screen is dark like no power at all or monitor says "No Signal".

One of the things I cannot succeed to do is to find where to change I2C and CEC pins which are different with Adafruit Feather and the boards of the original project creator. Even I am not sure if it should be done.

Any ideas where is the problem?

Best regards
Christo Radev

LubOlimex

Technical support and documentation manager at Olimex

Christo Radev

Thanks Lubomir,

I will try in a few days when come back home.

Christo Radev

#3
Hi  Lubomir,

Quote from: LubOlimex on October 04, 2023, 08:28:33 AMBut did you try our DVI examples (or maybe use them as basis):

https://github.com/OLIMEX/RP2040-PICO-PC/tree/main/SOFTWARE

I have try prebuilt example DVI.uf2 with both HDMI monitors described in my first post and 2 RP2040-PICO-PC I have and the result is the same. Unfortunately, I have no PicoSDK environment to compile and test other examples but I think that the prebuilt example DVI.uf2 should work.

So, where could be the problem?

Edit: Find the problem - SJ1 jumper should be shorted so WINSTAR DISPLAY become powered and Dell P2415Q 24" monitor - enabled. Your prebuilt example DVI.uf2 runs fine on Dell P2415Q 24" monitor but not on WINSTAR DISPLAY. Adafruits examples run fine on both WINSTAR DISPLAY 800x480 WF50BTIFGDHT0 and Dell P2415Q 24" monitor but resolution for WINSTAR DISPLAY should be setup explicitly.

Best regards
Christo


LubOlimex

#4
Ummm, we took one from the shop and tested with the same prebuilt demo from GitHub (https://github.com/OLIMEX/RP2040-PICO-PC/blob/main/SOFTWARE/Prebuilt-UF2/DVI.uf2) and it seems to work fine here.

Tested with five different HDMI monitors (different brands and cables).

I have no idea what can be the problem, probably something silly (like wrongly download and copied uf file, or PICO connected in reverse, or faulty HDMI cable, or wrong video port selected in the monitor, or insufficient powering due to poor battery or USB cable or port, etc). I made some pictures of our hardware setup and what I see on one of the displays to compare. Play with the settings of your HDMI monitor.

Here are some picture of setup that worked:

https://imgur.com/a/n0bEgyZ
Technical support and documentation manager at Olimex

Christo Radev

Hi  Lubomir,

Sorry for adding my last notes in previous one as edit paragraph.

I found the problem - SJ1 jumper should be shorted so WINSTAR DISPLAY become powered and Dell P2415Q 24" monitor - enabled (unexpectedly). Your prebuilt example DVI.uf2 runs fine on Dell P2415Q 24" monitor but not on WINSTAR DISPLAY. Adafruits examples run fine on both WINSTAR DISPLAY 800x480 WF50BTIFGDHT0 and Dell P2415Q 24" monitor but resolution for WINSTAR DISPLAY should be setup explicitly.

The reason your example to not work as-is on WINSTAR DISPLAY is that it cannot adapt itself to unsupported resolutions in contrast to desktop monitors. That's why your experiments are all successful.

Best regards
Christo

Christo Radev

#6
PS: Another problem I run on is USB voltage and consumption. When WINSTAR DISPLAY is powered from the board consumption is very close to 0.5A and voltage can drop below 4.5V depending on USB source and cable. Unfortunately, the output signal is very sensitive to power and may not be acceptable for some monitors. Application may not run as expected as well.

LubOlimex

This is a problem. Yes, most USB ports provide up to 500mA. It can be even less depending on the quality and length of cable. 4.5V is not good. Powering the display from the board either.

Consider using externally powered USB.

Consider powering display from another source.

Consider using better and shorter USB cables.
Technical support and documentation manager at Olimex

Christo Radev

Thanks Lubomir,

All your notes are taken into consideration and useful.