Problems with HDMI and Picade in Raspi4

I have the picade with an 8 "monitor and a raspberry pi 4 with the pimoroni USB-C charger.
In the microsd I have Raspbian Buster. I do not use Retropie. I use Attract-Mode as frontend and RetroArch as emulator.
I installed the pimoroni software for the X-Hat.
I also have the booster header with the fan SHIM.
When the picade starts, I hear the sound of Attract-Mode working, but only a square sign inside HDMI flashes on the screen.
Connecting to SSH everything seems to be going correctly.
If I connect the hdmi of the pi 4 to an RGB adapter and an external monitor to the Picade, I see that everything works very well, both Rasbian, Attract-Mode and RetroArch.
In config.txt I have activated the following parameters:

hdmi_force_hotplug=1

hdmi_group=2
hdmi_mode=16
sdtv_aspect=1 
disable_splash=1
dtparam=audio=on

[pi4]
dtoverlay=vc4-fkms-v3d
max_framebuffers=2

[all]
gpu_mem=512
dtoverlay=picade
dtparam=audio=off

Would anyone know what’s wrong?

Can you connect the Picade screen to a PC?
Does anything show up on the Picade screen, like the 4 Raspberries?
Make sure its plugged into HDMI 0 and not HDMI 1.

I will try to connect the picade to a pc.
And the hdmi connector is 0, the one that is closest to the USB-C connector.
Thank you.

I connected my old Raspberry pi 3B + directly to the HDMI screen, without using the picade and everything looks great. In fact i was surprised by the quality of this small 8-inch screen.
In config.txt (pi 3B+ without picade) have activated the following parameters:

disable_overscan=1

overscan_left=20
overscan_right=12
overscan_top=10
overscan_bottom=10

hdmi_group=2
hdmi_mode=16

hdmi_drive=2

sdtv_mode=2
stdv_aspect=1
disable_splash=1
gpu_mem=320

dtparam=audio=on

What is not there is sound, logically since it is not connected to the Picade.

On the 3B+ with a stock Raspbian install, the sound will be either going out the analog jack or to the HDMI. Right clicking the speaker ICON in the tray will let you select which one. If the monitor doesn’t have speakers you won’t hear anything.
On the Picade, audio is switched to the DAC on the Picade Hat via i2s.
The setting I think you need to add to the Picade config.txt is
hdmi_force_hotplug=1

I don’t want to use pi 3B + with the Picade, what i want is to use pi 4.
I usually use Pi 3B + from JukeBox.
I only used the 3B + pi to verify that the controller and the Picade screen worked well.
Now i am going to install a clean micro SD with Raspbian Buster and see what happens with the Picade with an operating system that starts from scratch.
Alphanumeric, from what I read in the forum you have a picade only with Raspbian Buster, or am I wrong?
If so, we can compare our respective config.txt if it seems good.

I don’t own a Picade. I run Buster with Desktop on most of my Raspberry Pi’s. My 4B and 3B’s are all running it. I have some other Pi’s still running Stretch but thats only because they are in no need of upgrading. I’ll wait until they have issues that require a reinstall to upgarde them.

Try the stock Raspbian install. The display should work without any extra software install. If it doesn’t try uncommenting the hdmi_force_hotplug=1 line in the config.txt file. Remove the # from in front of it.

Well, this is crazy…
Connecting the Picade to an external monitor with an HDMI-RGB adapter, Rasbitan Buster and applications are perfectly visible on the external monitor.
Without turning off the Picade, I disconnect the external monitor and connect the Picade screen and surprise! everything looks great and works great on the Picade’s screen…
I turn off the Picade with the yellow button, turn it on again and return to the beginning, nothing is seen on the screen.
I don’t understand anything anymore…

Its likely a race condition, the Pi is turning on before the monitor is fully powered up. Therefore the monitor doesn’t get detected in time. If you have a spare power supply, power up the display from it so its on before you turn on the Pi via the X Hat power button. If it works its as I described above. The hdmi_force_hotplug=1 entry should force the Pi to use HDMI regardless.

That does solve the problem, but i don’t like the idea of having two power supplies for a single Picade.
There must be some parameter in config.txt that replaces this “orthopedic” solution.
This is my current config.txt:

hdmi_force_hotplug=1
hdmi_group=2
hdmi_mode=16
# hdmi_cvt=1024 768 60 1 0 0 0
hdmi_drive=2

stdv_mode=2
sdtv_aspect=1
disable_splash=1

[pi4]
dtoverlay=vc4-fkms-v3d
max_framebuffers=2

[all]
gpu_mem=512
dtoverlay=picade
dtparam=audio=off

I thought hdmi_force_hotplug=1 was all that was needed?
Its what is recommended on the Pi foundation forum for monitor not being detected issues.

Well, it is not enough.
There has to be something else that can be done.

I would remark all of the following so it ignored

#hdmi_group=2
#hdmi_mode=16
#hdmi_cvt=1024 768 60 1 0 0 0
#hdmi_drive=2

#stdv_mode=2
#sdtv_aspect=1
#disable_splash=1

It has been useless.
I have also tried:

hdmi_ignore_edid = 0xa5000080

And nothing at all.

Ok, I’m out of ideas? This link will let you contact Pimoroni directly, I’d put a link in that e-mail to this thread.
https://shop.pimoroni.com/pages/contact-us

I have already contacted Pimoroni, thanks.
Yesterday I sent you another message because my yellow power button stuck, but they still haven’t answered me. I guess they will do it to my email, right?
In any case, thank you very much for your help, Alphanumeric.

The few times I have used the contact us link the responce from them was via email.

Well, I have already contacted Pimoroni, and, unfortunately, the only solution they have given me is to buy a USB hub… I did not know whether to laugh or cry…
As if by starting the screen through a hub I wasn’t going to do it at the same speed as the pi4…
I have already told you that this solution does not work for me, but it has been three days and they have not answered me, so I will have to have my picade with two power supplies, the USB C for pi 4 and another USB 2 for the screen… Great, great…
I have also told you that with the fanSHIM you cannot put the X-HAT properly, it cannot be screwed, to use it you need the Booster Header, and this gives another problem: what it does is that the USB-C connection is raised such that the back cover cannot be closed, since it hides the USB-C connection.
In addition, another thing, if you do not use the fanSHIM, with which the pi4 is heated, the crew of Pimoroni do not offer an alternative to refrigerate the pi4 inside the Picade.
So there is my picade with two hanging cables and with the back in the air…
I have told them that they have not resolved the compatibility with pi4, whatever they say, and that they should have said somewhere very clearly that the fanSHIM is not compatible with the Picade.
But I’m afraid it’s talking to a wall.
Now I will have to start making holes on my own in the Picade to be able to hold a 2.5 "hard drive, which with the pi4 and the new compatible emulators makes it practically essential, this has not been foreseen either, and to make the hole bigger from the power outlet to use the back cover.
Thank you very much for nothing, crew of Pimoroni.

Very sorry to hear that. Let me just say that I don’t work for or have any affiliation with Pimoroni. I just like thier products and like helping out, when I can, on the forum. I’ve had my issues, but so far have managed to sort them out. I wish I had something more to offer but I don’t at this time. =(

I’m unable to reproduce this with a Pi 4 and the Picade 10" kit: hdmi_force_hotplug=1 is enough for me to get a 640x480 console, even if I wait until the Pi finishes booting before connecting power to the display driver.

(I’m testing on mostly-unmodified Raspbian Lite with no Picade software installed; my Picade SD card is currently being ddrescued…)

One thing that might be worth trying is, on an older Pi (a Pi 3 works for me),

  • Boot with hdmi_force_hotplug=1 (or power the display driver separately)
  • Run sudo /opt/vc/bin/tvservice --dumpedid /boot/edid.dat
  • Set hdmi_edid_file=1 and remove/comment-out all the other hdmi/sdtv overrides.

That seems to be enough for me to get the correct display mode on the Pi 3 and 4. (Simply using group 2, mode 16 somehow caused the Pi to output full-range pixels but the display driver to expect limited-range pixels.)

Somehow, tvservice --dumpedid doesn’t work on the Pi 4, even with hdmi_force_hotplug and pre-powering the display (it prints “Nothing written!” to the console). Is there some sort of incompatibility between the Pi 4 and the Picade display which causes it to fail to read EDID?

Alternatively, if you’re happy just copying my EDID data (not sure if it differs between different displays/driver revisions/etc) you could try,

$ base64 -d | sudo tee /boot/edid.dat
AP///////wBBMgEAAAAAAAEAAQSiEAwAgAAAAAAAAAAAAAAhCIABAAEAAQABAAEA
AQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAEAAA
AAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAGw=

$ sha256sum /boot/edid.dat 
62697d8170c6d622687494319d8baff3ea0972d79e41456f9423e1f29ad9f9b7  /boot/edid.dat