How do I get the Hyper Pixel 4 and Raspberry Pi model 4 (4 GB) to work together. It worked once until i rebooted and now there is nothing! have reinstalled everything again and still nothing.
Raspberry Pi 4
4 GB
Raspberry Pi OS
A port of Debian bullseye with pi desktop
(PI 3/4/400)
RELEASED 04/04/2022 NEWEST
ALL UPDATED AND UPGRADED.
Again, It worked once until I rebooted and then the screen was black and no back lights. Redone everything I had done for it to work the first time and still no change. BLACK SCREEN.
It did the same on pi 400. Worked until reboot than blank screen.
As I mentioned before I can see the DPI display is showing in screen config as if it’s all working. I can us both in the screen configuration screen. So I do believe the software is working but the hardware (hyper pixel) is not.
I also seen several comments in the pimoroni forums many people are dealing with dead hyper pixel displays!!
What changes have you made to /boot/config.txt?
I’ve been round the houses with this screen recently, in the end I managed to decipher this post:
opened 05:25PM - 11 Apr 22 UTC
notice
:warning: PSA: Make sure you disable i2c, SPI and any other interfaces since the… se will cause a conflict in device-tree with HyperPixel :warning:
:warning: A fresh image is recommended, but otherwise make sure you also disable the `hyperpixel4-init` system service! :warning:
Pi 3B and Pi 4 users running the latest and greatest Raspberry Pi OS should forego our installer and use the instructions below.
> :information_source: If you're tied to an older OS and you want to install the legacy drivers, use:
> `curl -sSL get.pimoroni.com/hyperpixel4-legacy | bash`
This new OS can currently be found in Raspberry Pi Imager under "Raspberry Pi OS (Other)"
![image](https://user-images.githubusercontent.com/1746967/162789702-0c95f165-e482-4d47-a179-d841b903985c.png)
Once installed you need only one line in `/boot/config.txt`:
* Rectangular: `dtoverlay=vc4-kms-dpi-hyperpixel4`
* Square: `dtoverlay=vc4-kms-dpi-hyperpixel4sq`
You can rotate these in config.txt by adding the `rotate=` parameter, like so:
```
dtoverlay=vc4-kms-dpi-hyperpixel4sq,rotate=90
```
This supports rotation in console, too, for all you CyberDeck builders!
## HyperPixel 4 Rectangular Rotations
Ensure rotation is set to "Normal" in "Display Configuration"
And that the dtoverlay is in `/boot/config.txt`:
```
dtoverlay=vc4-kms-dpi-hyperpixel4
```
Finally use one of the following `dtparam` lines immediately underneath to set the parameters:
* The default is portrait with header on the right, no extra line needed
* `dtparam=rotate=90,touchscreen-swapped-x-y,touchscreen-inverted-y` - Landscape with header on the bottom
* `dtparam=rotate=180` - Portrait with header on the left
* `dtparam=rotate=270,touchscreen-swapped-x-y,touchscreen-inverted-x` - Landscape with header on the top
## HyperPixel 4 Square Rotations
HyperPixel 4 Square does not correctly swap or invert touch input, so you may want to use the Xorg config method below.
Ensure rotation is set to "Normal" in "Display Configuration"
And that the dtoverlay is in `/boot/config.txt`:
```
dtoverlay=vc4-kms-dpi-hyperpixel4sq
```
Finally use one of the following `dtparam` lines immediately underneath to set the parameters:
* Default is header on the top
* `dtparam=rotate=90` - Header is on the left (wonky touch, see below)
* `dtparam=rotate=180` - Header *still* on the top (doesn't work? Same as default)
* `dtparam=rotate=270` - Header is on the right (wonky touch, see below)
:warning: The `touchscreen-swapped-x-y` parameter does not seem to work with Square. You may need to use the script below for Raspberry Pi OS with Desktop.
## On the fly rotation
Rotating the display via "Screen Configuration" ("arandr") results in inverted touch input and other weirdness- use the dtoverlay params.
If you want to rotate on the fly you can use the below bash script to rotate either display and persist settings into Xorg configuration files.
:warning: Note: You *must* remove the `rotate=` argument from `/boot/config.txt` for these to make sense.
You can remove the rotation config by deleting the `/usr/share/X11/xorg.conf.d/88-hyperpixel4-touch.conf` and `/usr/share/X11/xorg.conf.d/88-dsi-1-rotate.conf` files.
```bash
#!/bin/bash
UTILITY="hyperpixel4-rotate (Rectangular)"
XORG_TOUCH_CONF_FILE="/usr/share/X11/xorg.conf.d/88-hyperpixel4-touch.conf"
XORG_CONF_FILE="/usr/share/X11/xorg.conf.d/88-dsi-1-rotate.conf"
OVERLAY_S="vc4-kms-dpi-hyperpixel4sq"
OVERLAY_R="vc4-kms-dpi-hyperpixel4"
function success() {
echo -e "$(tput setaf 2)$1$(tput sgr0)"
}
function inform() {
echo -e "$(tput setaf 6)$1$(tput sgr0)"
}
function warning() {
echo -e "$(tput setaf 1)$1$(tput sgr0)"
}
function set_xorg_conf {
if [ "$DISPLAY" == "" ]; then
inform "No DISPLAY variable set, trying :0.0"
export DISPLAY=:0.0
fi
inform "Rotating display $1";
xrandr --output DPI-1 --rotate $1
MATRIX="$2 $3 $4 $5 $6 $7 $8 $9 ${10}"
inform "Setting libinput Calibration Matrix: 1 0 0 0 1 0";
xinput set-prop "pointer:$DEVICE" "libinput Calibration Matrix" 1 0 0 0 1 0 0 0 1
inform "Setting Coordinate Transformation Matrix: $MATRIX";
xinput set-prop "pointer:$DEVICE" "Coordinate Transformation Matrix" $MATRIX
inform "Saving xorg touch config to $XORG_TOUCH_CONF_FILE";
sudo tee $XORG_TOUCH_CONF_FILE > /dev/null <<EOF
# Auto generated by $UTILITY, edit with care!
Section "InputClass"
Identifier "HyperPixel4 $DEVICE"
MatchProduct "$DEVICE"
Option "CalibrationMatrix" "1 0 0 0 1 0 0 0 1"
Option "TransformationMatrix" "$MATRIX"
EndSection
EOF
inform "Saving xorg rotate config to $XORG_CONF_FILE";
sudo tee $XORG_CONF_FILE > /dev/null <<EOF
# Auto generated by $UTILITY, edit with care!
Section "Monitor"
Identifier "DPI-1"
Option "Rotate" "$1"
EndSection
EOF
}
printf "HyperPixel 4: Display & Touch Rotation\n"
printf "This utility requires the Raspberry Pi OS desktop or an *Xorg-based* alternative.\n\n"
ORIENTATION=$1
grep -e "^dtoverlay=$OVERLAY_S.*" /boot/config.txt > /dev/null
if [ $? -ne 0 ]; then
grep -e "^dtoverlay=$OVERLAY_R.*" /boot/config.txt > /dev/null
if [ $? -ne 0 ]; then
warning "Rotation requires hardware support on the Pi 4 or Pi 400"
warning "Ensure your HyperPixel4 is enabled in /boot/config.txt"
printf "\nSquare: dtoverlay=$OVERLAY_S\n"
printf "Rectangular: dtoverlay=$OVERLAY_R\n\n"
exit 1
else
inform "Detected HyperPixel 4 Rectangular (found \"$OVERLAY_R\" in config.txt)"
DEVICE="Goodix Capacitive TouchScreen"
fi
else
inform "Detected HyperPixel 4 Square (found \"$OVERLAY_S\" in config.txt)"
DEVICE="EP0110M09"
fi
case $ORIENTATION in
"right")
set_xorg_conf $ORIENTATION 0 1 0 -1 0 1 0 0 1
;;
"left")
set_xorg_conf $ORIENTATION 0 -1 1 1 0 0 0 0 1
;;
"inverted")
set_xorg_conf $ORIENTATION -1 0 1 0 -1 1 0 0 1
;;
"normal")
set_xorg_conf $ORIENTATION 1 0 0 0 1 0 0 0 1
;;
*)
printf "Unsupported orientation: $ORIENTATION\n\n";
printf "Usage:\n"
printf " $0 <orientation>\n\n"
printf "Where orientation is one of: left, right, normal, inverted.\n"
exit 1
esac
```
The post says you only need this one line in your config.txt, but it really means is you need to keep /boot/config.txt completely untouched, apart from adding this to the very bottom:
dtoverlay=vc4-kms-dpi-hyperpixel4
Hope that helps.
Edit: Leave the existing dtoverlay line in place too, don’t remove it or comment it out.
Ok everything is back to redone! ran the pi 4 installer and added the dtoverlay at the end of config.txt
This is my current config.txt
For more options and information see
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 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=1
#hdmi_mode=1
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
Automatically load overlays for detected cameras
camera_auto_detect=1
Automatically load overlays for detected DSI displays
display_auto_detect=1
Enable DRM VC4 V3D driver
dtoverlay=vc4-kms-v3d
max_framebuffers=2
Run in 64-bit mode
arm_64bit=1
Disable compensation for displays with overscan
disable_overscan=1
[cm4]
Enable host mode on the 2711 built-in XHCI USB controller.
This line should be removed if the legacy DWC2 controller is required
(e.g. for USB device mode) or if USB support is not required.
otg_mode=1
[all]
[pi4]
Run as fast as firmware / board allows
arm_boost=1
[all]
enable_uart=0
dtoverlay=hyperpixel4
enable_dpi_lcd=1
dpi_group=2
dpi_mode=87
dpi_output_format=0x7f216
dpi_timings=480 0 10 16 59 800 0 15 113 15 0 0 0 60 0 32000000 6
dtoverlay=vc4-kms-dpi-hyperpixel4
Still NO HYPER PIXEL DISPLAY!!!
Hmm, nope, you’ve added a lot more than just the single line I suggested. To repeat - keep the config.txt file completely vanilla and just add this single line at the bottom:
dtoverlay=vc4-kms-dpi-hyperpixel4
I did only add the one line. The install added everything else
If you read the linked announcement - “users running the latest and greatest Raspberry Pi OS should forego our installer …”
The extra lines are coming from the installer, that you no longer require. I imagine they are tripping things up.
So do a clean os install and just add that line? Don’t do anything from get hub?
That’s what the PSA linked above says. Also contains info about rotations, and I would highly recommend you read it and then proceed.
ok did a clean fresh OS install and added only
dtoverlay=vc4-kms-dpi-hyperpixel4
to the end of the config.txt and still no display !
i still think its a bad display because the dpi shows up in the screen config and it shows overlayed on my desktop!