Hyperpixel 4.0 Screen not working - service fails

Hi All,

First post, just received my Hyperpixel screen.

I am trying to attach this to a RPi4, however after sudo apt-get upgrading and updating from a fresh install, I run the install.sh script for the Hyperpixel, reboot and I don’t get anything.

This is the output from install.sh:

pi@raspberrypi:~/hyperpixel4 $ sudo ./install.sh Job for hyperpixel4-init.service failed because the control process exited with error code. See "systemctl status hyperpixel4-init.service" and "journalctl -xe" for details. Installed: /usr/bin/hyperpixel4-init Installed: /etc/systemd/system/hyperpixel4-init.service Installed: /boot/overlays/hyperpixel4.dtbo Skipped: dtoverlay=hyperpixel4 already exists in /boot/config.txt Skipped: overscan_left=0 already exists in /boot/config.txt Skipped: overscan_right=0 already exists in /boot/config.txt Skipped: overscan_top=0 already exists in /boot/config.txt Skipped: overscan_bottom=0 already exists in /boot/config.txt Skipped: framebuffer_width=800 already exists in /boot/config.txt Skipped: framebuffer_height=480 already exists in /boot/config.txt Skipped: enable_dpi_lcd=1 already exists in /boot/config.txt Skipped: display_default_lcd=1 already exists in /boot/config.txt Skipped: dpi_group=2 already exists in /boot/config.txt Skipped: dpi_mode=87 already exists in /boot/config.txt Skipped: dpi_output_format=0x7f216 already exists in /boot/config.txt Skipped: display_rotate=3 already exists in /boot/config.txt Skipped: hdmi_timings=480 0 10 16 59 800 0 15 113 15 0 0 0 60 0 32000000 6 already exists in /boot/config.txt

Any ideas? Seems like the service isn’t starting. Reminder, this is a fresh install, upgraded, running Raspbian Buster Lite with no desktop as of yet. Will be using Openbox if I can get this working! I just want to display a picture or something at the moment, start simple.

Please help!

Similar to this topic: https://forums.pimoroni.com/t/hyperpixel-4-0-portrait-raspbian-stretch-lite/9033/2

EDIT:
I have instead run the setup script here: https://github.com/pimoroni/hyperpixel/tree/pi4

Still nothing displaying on the screen, but I also have no desktop so…

EDIT #2:
Just tried sudo fbi -T 1 -a loadscreen2.png. Blank screen. Any ideas? I am SSHing in. Reason why I am using Lite is because I want the OS to be as lightweight as possible - I know that I could get this to worth with normal Raspbian.

On my headless setups, I install the full Raspbian, then when I’m all done setting things up I go in raspi config and set it to boot to command line. The OS footprint isn’t any smaller but less resources are used. And if I need to do something latter on I can do a startX or toggle it back to booting to the desktop GUI. I don’t own a Hyperpixel. I’m wondering if there is something needed in the full Raspbian to make it work?

I could do this but it feels like cheating in a way. I am more concerned that the Hyperpixel won’t work if it doesn’t have the full Raspbian image installed. I tried this guide: https://www.raspberrypi.org/forums/viewtopic.php?f=66&t=133691 which should install a desktop for me, but it didn’t work.

I have finally gotten some sort of display working. Seems to be a stock image? It just had bars and lines of different colours. Can’t see any text on the screen though…

As a test, you could start over with a fresh full Raspbian install. Then run the hyperpixel installer. If it works that rules out a hardware issue.
If still doesn’t work, and you have a Pi that will run Stretch, anything but a Pi 4. I’d have a go at getting it to work on that Pi. If it still doesn’t work its almost certainly a hardware issue with the display.
If it works in Stretch but not in Buster its a PI4 and or Buster issue. << I’m kind of thinking this is your issue.

1 Like

Ok will give that a go, makes sense.

I’ve seen issues like this in the past. New Pi, new Raspbian, the changes break things that worked on the old hardware and software. Then retailers like Pimoroni have to play catch up to sort out what broke and fix it.

I can’t fathom why it wouldn’t work with lite. Bear in mind, however, that “lite” is ruthlessly, ridiculously, untenably, almost cripplingly lite and lacks a frustrating array of dependencies which tends to break things.

It might be worth running hyperpixel4-init on its own to see what happens.

Also make sure you’re using the Pi 4 branch of the HyperPixel4 repository since the non-Pi4 contains a hyperpixel4-init that just wont work on Pi 4 (due to hardware changes.)

Alternatively you can: curl -sSL https://get.pimoroni.com/hyperpixel4 | bash and choose “HyperPixel4 Rectangle Pi 4” when presented with the list of install options.

It’s on my TODO list to consolidate all this absolute mayhem into one stable installer for HyperPixel, but right now the curl | bash installer helps get the right branch from GitHub for a particular configuration.

Ok I’ll give this a go too. See I installed a fair amount of packages with the guide a followed for getting desktop on the rpi. So I’d assume I have some things to display.

Hi gadgetoid,

using the curl command worked, and I selected 1 for the install - Pi4 rectangular. However when I boot to CLI, the screen is showing in portrait, with the ports facing up which was unusual.

I startx’d and found the touchscreen wasn’t matching the screen and mouse. Using the hyperpixel4-rotate command, I tried all types without success. I then tried using :rotate in the config.txt file, but that didn’t get the touchscreen to match up either. I saw that there was a previous thread about this, but it was 11 months ago… tried a few things there but haven’t installed different drivers. I think they were merged?

My current situation:
hyperpixel4-rotate normal
taskbar top of screen, in portrait mode. Ports facing up.

Tap tl: mouse in br
Tap tr: mouse in tr
Tap bl: mouse in tl
Tap br: mouse in br

Tap in middle: mouse in the middle.

Hope this helps? Have to go to bed now!

For some reason screen and touch rotation appear to be 180 degrees out of phase for some users but not others and I’ve been unable to figure out why.

The quick fix is to use hyperpixel4-rotate to get the touch working the way you want it, and then launch Preferences->Screen Configuration and use that to rotate the display to match.

hyperpixel4-rotate might need an additional argument to handle this out-of-phase case.

Hi,

I have installed a really lite version of RDP so I cannot access preferences->screen configuration. Or I did something wrong.

I now know what the issue is: my touch screen is inverted, so for all rotations it will still not match up.

Anyway, I have set display_rotate=2, which turned it 180 from what I had before. Still, not correct.

Copying the format of my last post, I have put it into the “same” configuration:
hyperpixel4-rotate inverted
taskbar top of screen, portrait mode, ports facing up.
tap tl: mouse in tl
tap tr: mouse in bl
tap bl: mouse in tr
tap br: mouse in br

Does putting dtoverlay=hyperpixel4:rotate do anything? I haven’t seen a difference at all.

Nope, for Pi 4 these commands have changed to:

  • touchscreen-inverted-x
  • touchscreen-inverted-y
  • touchscreen-swapped-x-y

So you might want:

dtoverlay=hyperpixel4,touchscreen-inverted-x,touchscreen-inverted-y
1 Like

Works! I hadn’t seen those commands anywhere (probably in plain sight), thank you so much!

1 Like

They’re not well documented yet- the whole HyperPixel4 Pi3/Pi4 Square/Rectangular thing is a bit of a work in progress!

Edit: added here https://github.com/pimoroni/hyperpixel4/commit/cc44dab5f0a528eb688ffe9bd9adeddbe6504be6

Sorry to be a pain, but I think it might have spat the dummy again.

I am trying to hyperpixel4-rotate right and it isn’t matching up. I need this to be landscape (I do know that this was a screen designed to be portrait).

The only thing that comes close is when I have x inverted and x-y swapped. In this setup, my landscape x axis (ports facing left) is correct but my y is inverted. Then, if I invert y, it is incorrect again. If I remove invert x, it is not correct either. This doesn’t make much sense to me…

EDIT: And likewise if I have y inverted and x-y swapped, it works for y axis but not for x.
I have also tried just x-y swap, and also both x and y inverts separately. Its like they are cancelling each other out or something?

With no rotation settings set in /boot/config.txt try running the command:

xinput set-prop "pointer:Goodix Capacitive TouchScreen" "Coordinate Transformation Matrix 0 1 0 1 0 0 0 0 1"

Half helped, now my x axis is the wrong way but y axis is fine.

Well at least we’re getting somewhere- just a case of figuring out the right transformation matrix- which I’m unbelievably terrible at.

Try:

xinput set-prop "pointer:Goodix Capacitive TouchScreen" "Coordinate Transformation Matrix -1 0 1 1 0 0 0 0 1"

Yeah I was just looking all that up and trying a few things haha

1 Like