Ok - this is the best progress i’ve made so far- thanks for posting such in-depth steps.
Already installed wiringpi - but re-ran and confirmed it was installed.
Ran the watch on GPIO status and was shocked to see all the buttons we’re being detected including joystick.
picade.dtbo exists in the correct directory
dtoverlay=picade is in the config.txt
10-picade.rules exists in the correct directory.
So looking good up until there. As a last step ran dmesg and thats where im seeing an issue.
[ 3.060885] gpio-keys gpio_keys: could not find pctldev for node /soc/interrupt-controller@7e00b200, deferring probe [ 3.066847] gpio-keys gpio_keys: could not find pctldev for node /soc/interrupt-controller@7e00b200, deferring probe [ 3.067918] gpio-keys gpio_keys: could not find pctldev for node /soc/interrupt-controller@7e00b200, deferring probe [ 3.103345] gpio-keys gpio_keys: could not find pctldev for node /soc/interrupt-controller@7e00b200, deferring probe [ 3.229713] gpio-keys gpio_keys: could not find pctldev for node /soc/interrupt-controller@7e00b200, deferring probe [ 3.238833] gpio-keys gpio_keys: could not find pctldev for node /soc/interrupt-controller@7e00b200, deferring probe [ 3.488704] gpio-keys gpio_keys: could not find pctldev for node /soc/interrupt-controller@7e00b200, deferring probe [ 3.497899] gpio-keys gpio_keys: could not find pctldev for node /soc/interrupt-controller@7e00b200, deferring probe
Okay, I haven’t seen that before. Do you see a significant number of these messages? Is there anything else related to “input” or “gpio_keys” in the dmesg output?
If you dmesg | grep input you should see a line reading something like:
input: gpio_keys as /devices/platform/gpio_keys/input/input3
The next thing to check is if you have a keyboard device showing up in /dev/input/. It might be /dev/input/event3 (depending on what the line from dmesg says) and should always be available at /dev/input/by-path/platform-gpio_keys-event
So you can:
And hit a few buttons. You should see garbage appearing on the screen. This is the raw event protocol, and is normal. Hit “ctrl+c” to exit.
If you sudo apt install evtest you should also be able to:
Which will decode that protocol into something almost human-readable.
If you don’t see a corresponding input device, or /dev/input/by-path/platform-gpio_keys-event is not showing up, then presumably those errors you’re seeing are fatal and something odd is happening at the driver level that we’ll have to delve into. In that case, could you run:
And what might also be helpful is:
dtc -I fs /proc/device-tree -o dt.dts
Which will write out a dt.dts file that you can stick into pastebin or include here.
Ouch, 85c means the CPU and GPU are throttling back. If I was going to add a fan, I think I’d try to mount it to the side of the case, to blow / suck hot air out. Do you by chance own a dremel tool? Mine has come in very handy for making fan grills and ventilation holes etc. Or get a fan that comes with a wire grill, then just make a round hole for it. Then put some holes someplace else out of site for cool air to get in. Like a PC case is setup.
Many thanks gadgetoid. Your proposed solution now helped me to get at least the input (all buttons & joystick) detected in emulationstation on a brand new retropie image which I burned to my SD card. As I already have another image with an older retropie version (not stretch but jessie) which I had installed when my raspberry pi 3b (not 3b+) was hooked up to my TV, I wanted to ask you whether the X Hat and thus the input controls should also work on this older retropie version. I have installed this older image on my SD card and performed all the steps for installation, including your solution for the buttons and joystick, but they are not detected in emulationstation. When pressing the buttons and moving the joystick all inputs are recognized in wiringpi. Nonetheless, they are not detected in emulationstation. I have also tried getting it to work by upgrading retropie to the newer stretch version. But that did not result in the inputs getting detected in ES either.
So finally my basic question again: Can I get the X Hat running on my old jessie version of retropie. Or do the X Hat drivers require to switch to a new, blank version of retropie (stretch) without any of my existing Roms and scraped metadata installed. Thank you for your time and support!
Seems to be the same issue im having… It must be something with using a pre-existing image.
Now that i think of it, I never did a completely fresh install on a card but rather have been using an IMG I’ve spent a lot of time currating/customizing over the last year… that i just upgraded all the packages on.
Same as you Rob mines built on the last version of jessie vs stretch.
Tonight I’m gonna try updating to Stretch and seeing if that works, and if not trying a completely fresh install. Would hate to have to completely rebuild my image again, but if it means getting this guy to work -
I hope you are successful in getting the inputs to work after the upgrade to stretch. Don’t forget to make a backup of the existing image before upgrading to stretch. I had some issues after the upgrade with the VLC packages not being installed, so I could no longer start emulationstation. Got that fixed by now but please don’t ask me how. I had to try various methods until I got it to work again. One more thing I wanted to add is that sound is also not working on my old image. But it did already work on the brand new stretch image. So I guess it seems to be a software or driver issue why, inputs don’t work. Correction: Sound is working on the existing image which I upgraded to stretch. Only the inputs do not work.
And then if the USB cable for the display driver board is plugged into the USB port on the Pi, then power will also be cut to the screen. The text that’s displayed when the power button is pressed is the output of the shutdown sequence.