I built a RPi4-based Picade Console this Christmas (December 2023), and thought I’d share a couple of snags I hit, and fixes I found, when building it, just in case it helps anyone else out in the same boat:
-
After installing the picadehat software and rebooting, instead of launching EmulationStation at the end of booting Raspbian, the screen just went blank.
- To fix this, I tweaked the values in
/boot/config.txt
related to the hdml display to get the display to work correctly (see below for the actual details).
- To fix this, I tweaked the values in
-
Once EmulationStation was up and running, and I’d transferred over some games, I tried running them, but every time the screen faded to almost-black (you could just about make out the list of games) and didn’t start the game.
- To fix this, I removed a line from
/boot/config.txt
that was turning on the audio, leaving only the line that the picadehat software had written that turned the audio off (again, see below for the details).
- To fix this, I removed a line from
I don’t know how “normal” my experiences are but I thought there’s a possibility that there are others building RPi4-based Picades this Christmas who might hit the same issues, so I thought it worth sharing.
Here’s a diff of my working config.txt
and the original config.txt
that gets saved as config.txt.picade-preinstall
during the installation
$ diff /boot/config.txt /boot/config.txt.picade-preinstall
28,29c28,29
< hdmi_group=2
< hdmi_mode=16
---
> #hdmi_group=1
> #hdmi_mode=1
33c33
< hdmi_drive=2
---
> #hdmi_drive=2
57,58c57
< #dtparam=audio=on
< dtparam=audio=off
---
> dtparam=audio=on
68,69d66
< dtoverlay=picade
<
(if you’re not familiar with diff, lines starting with <
are lines that I’ve added, lines starting with >
are lines I’ve removed)
My entire, working, config.txt is as follows:
$ cat /boot/config.txt
# For more options and information see
# http://rpf.io/configtxt
# Some settings may impact device functionality. See link above for details
# uncomment if you get no picture on HDMI for a default "safe" mode
#hdmi_safe=1
# uncomment this if your display has a black border of unused pixels visible
# and your display can output without overscan
#disable_overscan=1
# uncomment the following to adjust overscan. Use positive numbers if console
# goes off screen, and negative if there is too much border
#overscan_left=16
#overscan_right=16
#overscan_top=16
#overscan_bottom=16
# uncomment to force a console size. By default it will be display's size minus
# overscan.
#framebuffer_width=1280
#framebuffer_height=720
# uncomment if hdmi display is not detected and composite is being output
#hdmi_force_hotplug=1
# uncomment to force a specific HDMI mode (this will force VGA)
hdmi_group=2
hdmi_mode=16
# uncomment to force a HDMI mode rather than DVI. This can make audio work in
# DMT (computer monitor) modes
hdmi_drive=2
# uncomment to increase signal to HDMI, if you have interference, blanking, or
# no display
#config_hdmi_boost=4
# uncomment for composite PAL
#sdtv_mode=2
#uncomment to overclock the arm. 700 MHz is the default.
#arm_freq=800
# Uncomment some or all of these to enable the optional hardware interfaces
#dtparam=i2c_arm=on
#dtparam=i2s=on
#dtparam=spi=on
# Uncomment this to enable infrared communication.
#dtoverlay=gpio-ir,gpio_pin=17
#dtoverlay=gpio-ir-tx,gpio_pin=18
# Additional overlays and parameters are documented /boot/overlays/README
# Enable audio (loads snd_bcm2835)
#dtparam=audio=on
dtparam=audio=off
[pi4]
# Enable DRM VC4 V3D driver on top of the dispmanx display stack
dtoverlay=vc4-fkms-v3d
max_framebuffers=2
[all]
#dtoverlay=vc4-fkms-v3d
overscan_scale=1
dtoverlay=picade
I ought to do a proper write-up of the whole thing but hopefully this will be enough to help someone. Feel free to add comments if something doesn’t make sense!
Thanks