Code Monkey home page Code Monkey logo

hyperpixel4's Introduction

HyperPixel 4.0" Drivers

HyperPixel 4.0 is an 800x480 or 720x720 pixel DPI display for Raspberry Pi, with optional capacitive touchscreen. The drivers/instructions in this repo are written for and tested with Raspberry Pi OS, and are not guaranteed to work with other operating systems.

Installing / Uninstalling (Bullseye / Linux Kernel 5.15 or later)

Raspberry Pi OS Bullseye includes major changes to how DPI display drivers work. If you're using an image dated 04/04/2022 or later, it will come with Hyperpixel drivers baked in and you don't need to run the legacy installer. You can set up display and touch by adding a few lines to your boot/config.txt:

PSA: HyperPixel 4 (Square & Rectangular) on Raspberry Pi OS 2022-04-04

⚠️Note that touch rotation commands will not currently work with on the square variant, and that the current kernel drivers will only work with newer square boards (marked Hyperpixel XP).

Installing / Uninstalling (Legacy)

This repository contains several branches for different combinations of Pi and HyperPixel4 boards.

You should use our one-line installer to install HyperPixel4 Rectangular and Square:

curl -sSL https://get.pimoroni.com/hyperpixel4 | bash

When prompted, pick the combination of Pi and touchscreen that you're planning to use.

Note: A HyperPixel4 setup for Pi 3B+ or earlier will not readily work if you move it over to a Pi 4, you should run this installer again to update the drivers.

Manual Installation

Here's a list of active branches and which Pi/display combination they support:

  • pi3 - Pi 3B+ and earlier, HyperPixel4 Rectangular
  • pi4 - Pi 4 & Pi 400, HyperPixel4 Rectangular, use hyperpixel4-rotate to rotate once installed
  • square - Pi 3B+ and earlier, HyperPixel4 Square (for boards manufactured 2020 and earlier)
  • square-pi4 - Pi 4 & Pi 400, HyperPixel4 Square (for boards manufactured 2020 and earlier)
  • square-2021 - Pi 3B+ and earlier, HyperPixel4 Square (for boards manufactured 2021 and later)
  • square-pi4-2021 - Pi 4 & Pi 400, HyperPixel4 Square (for boards manufactured 2021 and later)

To clone a specific branch to your Pi, run:

git clone https://github.com/pimoroni/hyperpixel4 -b <branch name>

Then cd hyperpixel4 and run sudo ./install.sh to install it.

Rotation

Rotation on Pi 4

HyperPixel4 is a portait display, so on first boot it will start in portrait mode with the USB ports at the top.

On Pi 4 we can take advantage of the rotation available in Display Configuration, and provide you with a command for setting both display and touch rotation together.

To rotate HyperPixel4 on a Pi 4 use the hyperpixel4-rotate command.

Landscape mode, HDMI/power ports on the bottom:

hyperpixel4-rotate left

Landscape mode, HDMI/power ports on the top:

hyperpixel4-rotate right

Portrait mode, USB ports on the top:

hyperpixel4-rotate normal

Portrait mode, USB ports on the bottom:

hyperpixel4-rotate inverted

If you're running this command over SSH you should prefix it with DISPLAY=:0.0

180 Degree Rotation on Pi 3

Note: You must build the latest dtoverlay file to enable rotation support:

  1. Go into src
  2. run make to build a new hyperpixel4.dtbo with rotation support
  3. copy the overlay with sudo cp hyperpixel4.dtbo /boot/overlays/

To rotate your HyperPixel4 you must edit /boot/config.txt and change the following lines:

  1. Change dtoverlay=hyperpixel4 to dtoverlay=hyperpixel4:rotate
  2. Change display_rotate=3 to display_rotate=1

This will rotate both the display and the touchscreen input to match.

If you're using a non-touchscreen HyperPixel4 you need only change display_rotate.

Totally Manual Rotation

⚠️ for Xorg-based operating systems running on Pi 4 and Pi 400 ⚠️ must have dtoverlay=vc4-fkms-v3d in /boot/config.txt

Rotation on the fly

You can use xrandr and xinput to rotate the display and touchscreen in turn.

For HyperPixel Square, substitute the device name with "pointer:generic ft5x06 (11)".

Left

DISPLAY=:0.0 xrandr --output DSI-1 --rotate left
DISPLAY=:0.0 xinput set-prop "pointer:Goodix Capacitive TouchScreen" "libinput Calibration Matrix" 0 -1 1 1 0 0 0 0 1

Right

DISPLAY=:0.0 xrandr --output DSI-1 --rotate right
DISPLAY=:0.0 xinput set-prop "pointer:Goodix Capacitive TouchScreen" "libinput Calibration Matrix" 0 1 0 -1 0 1 0 0 1

Normal

DISPLAY=:0.0 xrandr --output DSI-1 --rotate normal
DISPLAY=:0.0 xinput set-prop "pointer:Goodix Capacitive TouchScreen" "libinput Calibration Matrix" 1 0 0 0 1 0 0 0 1

Inverted

DISPLAY=:0.0 xrandr --output DSI-1 --rotate inverted
DISPLAY=:0.0 xinput set-prop "pointer:Goodix Capacitive TouchScreen" "libinput Calibration Matrix" -1 0 1 0 -1 1 0 0 1

Persisting Rotation

Add the relevant settings from above into /usr/share/X11/xorg.conf.d/88-hyperpixel4.conf.

You will need the device name:

  • "Goodix Capacitive TouchScreen" for HyperPixel 4 Rectangular
  • "generic ft5x06 (11)" for HyperPixel 4 Square

And the 9 numbers from the "Calibration Matrix", eg: -1 0 1 0 -1 1 0 0 1

Plus the rotation direction for the monitor.

Section "InputClass"
	Identifier "libinput HyperPixel4 Rectangular"
	MatchProduct "Goodix Capacitive TouchScreen"
	Option "CalibrationMatrix" "0 -1 1 1 0 0 0 0 1"
EndSection

Section "Monitor"
	Identifier "DSI-1"
	Option "Rotate" "left"
EndSection

If you're using lightdm (the default window manager on Raspberry Pi OS) and it's calling /usr/share/dispsetup.sh you'll need to either disable that call in /etc/lightdm/lightdm.conf or change dispsetup.sh to just exit 0. Removing dispsetup.sh will break lightdm and boot you to a black screen of death.

  • ⚠️ Running "Screen Configuration" will re-create dispsetup.sh and override your Xorg settings
  • ⚠️ Removing dispsetup.sh from /etc/lightdm/lightdm.conf will prevent "Screen Configuration" settings for persisting.
  • You should probably use hyperpixel4-rotate unless you really know what you're doing!

Troubleshooting

Where possible we are collecting known FAQs under the notice label in our issue tracker.

Notice Issue Tracker

If your issue is not covered by one of these provided by our team and community then we ask you to provide some debugging information using the following oneliner:

curl -sSL https://raw.githubusercontent.com/pimoroni/hyperpixel4/master/hyperpixel4-debug.sh | bash

Then file a bug report.

hyperpixel4's People

Contributors

gadgetoid avatar helgibbons avatar ncguk avatar neozenith avatar sandyjmacdonald avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

hyperpixel4's Issues

Touchscreen fails to connect at boot (Pi 4)

My touchscreen fails to init 9 times out of 10 on boot. diff between a bad boot and a successful boot below. Anecdotally, it seems to work more reliably after the pi has been turned off for a while, but I only have 2 successes to go by. Heat issue maybe? This is on a pi4.

pi@raspberrypi:~ $ diff -Nurd <(grep -i good nowork.dmesg) <(grep -i good worked.dmesg)
--- /dev/fd/63	2019-09-15 20:24:02.790295364 -0400
+++ /dev/fd/62	2019-09-15 20:24:02.790295364 -0400
@@ -1,3 +1,2 @@
-[    5.002008] Goodix-TS 7-0014: i2c test failed attempt 1: -6
-[    5.042385] Goodix-TS 7-0014: i2c test failed attempt 2: -6
-[    5.081746] Goodix-TS 7-0014: I2C communication failure: -6
+[    4.721578] Goodix-TS 7-0014: ID 911, version: 1060
+[    4.747144] input: Goodix Capacitive TouchScreen as /devices/platform/i2c@0/i2c-7/7-0014/input/input0

Screen content rotated by 90 degrees and backwards

I did a fresh install of Raspian with the Hyperpixel display. The script for installing the drivers went through without any problems, but once I booted, all the the screen content was rotated by 90 degrees, the height of the screen was incorrect (lower 40% showed pixel noise), and all the pixels were backward. See the screenshot.
image
Before the upgrade the display was working fine with a version of the software I had installed in August 2018.
Hardware: Raspberry Pi 3 Model B
Raspbian version used: 2019-04-08-raspbian-stretch.zip

Not working with pi zero

First tried the single line install on a fresh raspbian didn't work so flash os and then clone the git and didn't work what happens is the backlight comes through the display but no picture is coming through and is just a lit blackscreen.

90 Degree Rotation?

Does hyperpixel4 support 90 degree touch rotation? hyperpixel 3.5 did seem to support 90 degree rotation with a small update to the python script.

One line installer not listed anywhere

As of this writing, the one line installer for Hyperpixel 4.0 is not mentioned on the product page – despite the sentence "We've put together a one-line-installer to configure your Pi properly for HyperPixel 4.0" – nor on the GitHub page. I took a guess based on the repo name and it seems to be curl https://get.pimoroni.com/hyperpixel4 | bash, but not everyone is going to work that out.

Combining the Hyper Pixel with a Pi DAC Pro?

I was wondering if it's possible to mount the Pi DAC Pro in-between a RPI and the HyperPixel display? It would create a very nice and compact streaming solution running e.g. Volumio.

Thanks

Could you please provide noob info ?

Is it possible to have a full updated README.md in order to be able to install and rotate the screen correctly with different raspi config ?

In my case I have spent one day on it and I can't have a correct portrait mode on rpi3b :(

White static/disturbance at bottom of Hyperpixel 4 Square

Hi. Just upgraded from a normal Hyperpixel 4 (Which had huge problems with touch being offset). Now i just installed the new display and have a case of white static at the lower part of the screen. Its like the lowest line on the screen flashes every like 7-10 seconds. I have changed the boot config settings such as HDMI boost, tried to rotate it etc but to no avail.

The drivers are the standard drivers installed through curl. Im also running the latest Raspbian on the pi3b+.

Any tips to this? So far all products i´ve bought from you guys have been faulty in some way and i really want to love these products. I would love to get any solution to this. The screen is fantastic but this white static line is driving me insane!

Is there a way to disable touch?

During operation, phantom-touch event happens, moving the cursor, some times this behavior happens frequently where it interferes with typing.

Hyperpixel4 on aarch64 (RPi3+)

I ran the install script, then compiled the hyperpixel4-init.c and hyperpixel4.dts files and placed them in the appropriate directories. The hyperpixel4-init.service seems to start, but the display remains blank.

Any ideas how to do this?

Touch doesn't work at the top

Hello,
my HyperPixel 4 display actually works quite well, except for the top about 7mm (with 180 ° screen rotation). At the top, the touch almost does not work. Is this a driver buy, do I have to calibrate the touch or a hardware defect?
If the Dektop menu is upper, then you can not really serve anything. Nothing happens with a display touch in the upper area.

Without the display rotation, the bottom does not work, ie the same place on the touch.

Screen not reacting on after going to sleep

I'm having issues (and this is the 3rd clean installation - buster full) when the screen goes to power saving or standby, it will not get back on again (maybe has something to do with the heat issue - no touch reaction).

cURL one-line installer hangs

Hello!

I've encountered a small hang in HyperPixel4's one-line curl installer: curl https://get.pimoroni.com/hyperpixel4 | bash. (Unrelated to the install.sh utility in this repository).

I couldn't find the script in a Pimoroni repository to pull against, so hopefully this issue/repo is close enough.

During the cleanup routine, rm -r /home/pi/Pimoroni/hyperpixel4 tries to remove the cloned
hyperpixel4 repository, but quietly waits on the following during cleanup:

rm: remove write-protected regular file 'Pimoroni/hyperpixel4/.git/objects/ab/c93c7c0142a460fbe3452900af1eeb910a2bc8'?

The culprit seems to be on line 1100: cd $installdir && rm -r $installdir/$gitclonedir &> /dev/null. The install finishes properly, but waits here forever, which might be the cause of confusion for some users.

Provide touchscreen calibration instructions.

I'm having an hard time calibrating the touchscreen with xinput_calibrator.
The touchscreen is really miscalibrated. When I touch the right part of the screen the cursor never gets further than 3/4 of the display width.

Xorg does not load the calibration settings I've put in /etc/X11/xorg.conf.d/99-calibration.conf

xinput list-props [hyperpixel's id] tells me that the Hyperpixel supports a libinput Calibration Matrix. I have also enabled xorg's 40-libinput.conf config file to load libinput but no luck yet.

Black Screen on Rpi4

Issue: Black screen after fresh install

How to reproduce:
pi@rpihack:~ $ sudo apt full-upgrade pi@rpihack:~ $ curl -sSL https://get.pimoroni.com/hyperpixel4 | bash

Raspberry informations:
`pi@rpihack:~ $ cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 10 (buster)"
NAME="Raspbian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"

pi@rpihack:~ $ cat /etc/rpi-issue
Raspberry Pi reference 2019-09-26
Generated using pi-gen, https://github.com/RPi-Distro/pi-gen, 80d486687ea77d31fc3fc13cf3a2f8b464e129be, stage4
dmesg:
[ 9.790258] bcm2835-v4l2: Broadcom 2835 MMAL video capture ver 0.0.2 loaded.
[ 9.882495] brcmfmac: F1 signature read @0x18000000=0x15264345
[ 9.890699] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43455-sdio for chip BCM4345/6
[ 9.891337] usbcore: registered new interface driver brcmfmac
[ 10.128940] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43455-sdio for chip BCM4345/6
[ 10.158239] Goodix-TS 7-0014: i2c test failed attempt 1: -6
[ 10.181323] brcmfmac: brcmf_c_preinit_dcmds: Firmware: BCM4345/6 wl0: May 2 2019 02:46:17 version 7.45.189 (r714228 CY) FWID 01-e1db26e2
[ 10.193818] Goodix-TS 7-0014: i2c test failed attempt 2: -6
[ 10.231959] Goodix-TS 7-0014: I2C communication failure: -6
`

`hyperpixel4-rotate` should probably set DISPLAY=:0.0 for use over SSH

I'm not entirely sure what the etiquette is in Linux for targeting a specific display when one is not set, but in the case of the Pi 4 I don't believe there's any harm in always assuming DISPLAY=:0.0, or setting this variable only when it's not otherwise set in th ecalling env. This would allow hyperpixel4-rotate to run over SSH without users having to worry about prepending a display variable.

Touchscreen does not work in the 1cm area to the right

Just got my hyperpixel 4 today for my raspberrypi 4 and had got it working. However I noticed that the touchscreen does not work about 1cm to the right after rotating to the left. Any ideas?

I am running a freshly installed Raspbian Buster with the latest updates.

PI4 branch Typo in install.sh

Hi,
the install. sh script contains a small error in Line 55:

"raspi_config nonint do_i2c 1" should be "raspi-config nonint do_i2c 1" instead (typo _ instead of -)

[hyperpixel4-rotate] - ImportError: No module named screenlayout

Hey Devs,

Firstly thank you for awesome work!

Need help debugging an issue.

I have followed steps outlined in https://github.com/pimoroni/hyperpixel4/tree/pi4

and the display is stuck in portrait, trying to get to landscape

running the following command over ssh: DISPLAY=:0.0 hyperpixel4-rotate left

Rotating display
xrandr: Failed to get size of gamma for output default
warning: output DSI-1 not found; ignoring
Traceback (most recent call last):
  File "<stdin>", line 3, in <module>
ImportError: No module named screenlayout
Setting matrix: 0 -1 1 1 0 0
unable to find device pointer:Goodix Capacitive TouchScreen
Saving touch settings to /etc/udev/rules.d/98-hyperpixel4-calibration.rules

Bug with portrait-mode touch and HDMI disconnected

I ran into this while testing a fresh HP4 setup.

The issue is that the HDMI output is set to 640x480 when disconnected and is overlaid on top of the HyperPixel4 output so they are effectively displaying the same thing.

However if HyperPixel4 is in PORTRAIT mode and HDMI is in LANDSCAPE mode the display area will actually be 640x800 pixels. This causes horizontal touch input on HyperPixel4 to be scaled incorrectly, since it's scaling for 640 pixels wide and not 480.

The fix to this, currently, is to rotate the HDMI display so that it aligns with HyperPixel4. This is all well and good in portrait mode, but if you then dynamically switch to Landscape you'll end up with a menu bar that covers half the screen (well, 480 pixels wide) because it's scaled to the size of the disconnected HDMI screen - now in portrait VS HP4s landscape - rather than HP4. If you get into this state and can't see the bottom of the Pi menu (because it's on the not connected HDMI screen and runs off the bottom of HP4) you should run Terminal and type sudo arandr to get the display configuration tool up, then rotate HDMI back to match the rotation of HP4.

How can I fix this? I need some way to detect if an HDMI display is connected, or perhap detect if it's in 640x480 node, and rotate it to match the orientation of HyperPixel4 (or rather, always be 90 degrees out). It doesn't actually matter if one is upside-down in relation to the other, but they need to line up to avoid weird touch or display bugs.

Compiling touchscreen driver for PINN

I already got the hyperpixel 3.2 and Hyperpixel 4 displays working with PINN,
I still haven't converted the touchscreen driver for 3.2 but I noticed the hyperpixel 4 used a more standard Goodix driver so I thought I'd try that.

I recompiled the overlay on Raspbian to allow 180 degree rotation. I copied this to PINN's overlays folder, but I'm not sure any dtparam rotation settings actually work as I have to add display_rotate=1|3
I added the Goodix driver to buildroot, along with i2c support and i2c GPIO bitbanging for the i2c-3 pins.

Now I have a working touchscreen mouse, BUT the scaling seems to be reversed. So instead of it thinking the display is 800x480, it thinks it is 480x800. In one direction it moves too slowly and doesn't cover the display, and in the other dimension it moves t0o quickly and shoots off the bottom of the screen. Any idea what I am missing to reverse the scaling, because it works ok in Raspbian?

GPIO Pinout

I'm looking to use this screen, as well as some other GPIO pins.

Is this possible? If so, do you have a pinout of how to wire it up manually.

Thanks

Support other distributions and aarch64

I have correctly set up the display on Void Linux armv7 for the RPI3 B+.

If run on aarch64 the display remains black.

Works fine on armv7 though when manually installing the overlay and configuring /boot/config.txt.
Also, I'm launching hyperpixel4-init in /etc/rc.local.

The current installation script is quite messy and only supports few linux distributions that include systemd, which is not really needed by the Hyperpixel 4.

A great improvement could be giving installation details for platforms other than Raspbian, some other users recently demanded this on your website.

bcm2835_init: gpio mmap failed: Cannot allocate memory

i hav a error ... what am I doing wrong? Message when trying to install the software on a brand new rpi4

error: bcm2835_init: gpio mmap failed: Cannot allocate memory, does anyone have an explanation for this?

Installation:
pi@raspberrypi:~ $ git clone https://github.com/pimoroni/hyperpixel4

Cloning into 'hyperpixel4'...
remote: Enumerating objects: 105, done.
remote: Counting objects: 100% (105/105), done.
remote: Compressing objects: 100% (83/83), done.
remote: Total 166 (delta 59), reused 50 (delta 21), pack-reused 61
Receiving objects: 100% (166/166), 462.97 KiB | 344.00 KiB/s, done.
Resolving deltas: 100% (82/82), done.

pi@raspberrypi:~ $ cd hyperpixel4
pi@raspberrypi:~/hyperpixel4 $ sudo ./install.sh

Notice: building hyperpixel4.dtbo
Created symlink /etc/systemd/system/multi-user.target.wants/hyperpixel4-init.service → /etc/systemd/system/hyperpixel4-init.service.
*** 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
Config: Added dtoverlay=hyperpixel4 to /boot/config.txt
Config: Added overscan_left=0 to /boot/config.txt
Config: Added overscan_right=0 to /boot/config.txt
Config: Added overscan_top=0 to /boot/config.txt
Config: Added overscan_bottom=0 to /boot/config.txt
Config: Added framebuffer_width=800 to /boot/config.txt
Config: Added framebuffer_height=480 to /boot/config.txt
Config: Added enable_dpi_lcd=1 to /boot/config.txt
Config: Added display_default_lcd=1 to /boot/config.txt
Config: Added dpi_group=2 to /boot/config.txt
Config: Added dpi_mode=87 to /boot/config.txt
Config: Added dpi_output_format=0x7f216 to /boot/config.txt
Config: Added display_rotate=3 to /boot/config.txt
Config: Added hdmi_timings=480 0 10 16 59 800 0 15 113 15 0 0 0 60 0 32000000 6 to /boot/config.txt

pi@raspberrypi:~/hyperpixel4 $ journalctl -xe

-- The job identifier is 789.
Sep 09 18:16:28 raspberrypi systemd[1]: Mounted Arbitrary Executable File Formats File System.
-- Subject: A start job for unit proc-sys-fs-binfmt_misc.mount has finished successfully
-- Defined-By: systemd
-- Support: https://www.debian.org/support
-- 
-- A start job for unit proc-sys-fs-binfmt_misc.mount has finished successfully.
-- 
-- The job identifier is 789.
Sep 09 18:16:35 raspberrypi sudo[1166]:       pi : TTY=pts/0 ; PWD=/home/pi ; USER=root ; COMMAND=/usr/bin/find / -iname *hyperdisplay*
Sep 09 18:16:35 raspberrypi sudo[1166]: pam_unix(sudo:session): session opened for user root by pi(uid=0)
Sep 09 18:16:48 raspberrypi sudo[1166]: pam_unix(sudo:session): session closed for user root
Sep 09 18:17:01 raspberrypi CRON[1178]: pam_unix(cron:session): session opened for user root by (uid=0)
Sep 09 18:17:01 raspberrypi CRON[1182]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Sep 09 18:17:01 raspberrypi CRON[1178]: pam_unix(cron:session): session closed for user root
Sep 09 18:17:40 raspberrypi sudo[1196]:       pi : TTY=pts/0 ; PWD=/home/pi ; USER=root ; COMMAND=/usr/bin/curl get.pimoroni.com
Sep 09 18:17:40 raspberrypi sudo[1196]: pam_unix(sudo:session): session opened for user root by pi(uid=0)
Sep 09 18:17:41 raspberrypi sudo[1196]: pam_unix(sudo:session): session closed for user root
Sep 09 18:19:19 raspberrypi sudo[1219]:       pi : TTY=pts/0 ; PWD=/home/pi/hyperpixel4 ; USER=root ; COMMAND=./install.sh
Sep 09 18:19:19 raspberrypi sudo[1219]: pam_unix(sudo:session): session opened for user root by pi(uid=0)
Sep 09 18:19:20 raspberrypi systemd[1]: Reloading.
Sep 09 18:19:20 raspberrypi systemd[1]: Reloading.
Sep 09 18:19:21 raspberrypi systemd[1]: Starting HyperPixel 4.0" LCD Display Initialization...

-- Subject: A start job for unit hyperpixel4-init.service has begun execution
-- Defined-By: systemd
-- Support: https://www.debian.org/support
-- 
-- A start job for unit hyperpixel4-init.service has begun execution.
-- 
-- The job identifier is 793.
**Sep 09 18:19:21 raspberrypi hyperpixel4-init[1259]: bcm2835_init: gpio mmap failed: Cannot allocate memory**
Sep 09 18:19:21 raspberrypi systemd[1]: hyperpixel4-init.service: Main process exited, code=exited, status=1/FAILURE
-- Subject: Unit process exited
-- Defined-By: systemd
-- Support: https://www.debian.org/support
-- 
-- An ExecStart= process belonging to unit hyperpixel4-init.service has exited.
-- 
-- The process' exit code is 'exited' and its exit status is 1.
Sep 09 18:19:21 raspberrypi systemd[1]: hyperpixel4-init.service: Failed with result 'exit-code'.
-- Subject: Unit failed
-- Defined-By: systemd
-- Support: https://www.debian.org/support
-- 
-- The unit hyperpixel4-init.service has entered the 'failed' state with result 'exit-code'.
Sep 09 18:19:21 raspberrypi systemd[1]: Failed to start HyperPixel 4.0" LCD Display Initialization.
-- Subject: A start job for unit hyperpixel4-init.service has failed
-- Defined-By: systemd
-- Support: https://www.debian.org/support
-- 
-- A start job for unit hyperpixel4-init.service has finished with a failure.
-- 
-- The job identifier is 793 and the job result is failed.
Sep 09 18:19:21 raspberrypi sudo[1219]: pam_unix(sudo:session): session closed for user root

No problem, I install manual

$ cd dist/
$ sudo cp hyperpixel4-init.service /usr/lib/systemd/system/
$ sudo cp /usr/bin/hyperpixel-init'
$ sudo chmod +x /usr/bin/hyperpixel-init
$ sudo systemctl enable hyperpixel4-init
$ sudo systemctl status hyperpixel4-init

Error: bcm2835_init: gpio mmap failed: Cannot allocate memory

● hyperpixel4-init.service - HyperPixel 4.0" LCD Display Initialization
   Loaded: loaded (/etc/systemd/system/hyperpixel4-init.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Mon 2019-09-09 18:19:21 BST; 14min ago
 Main PID: 1259 (code=exited, status=1/FAILURE)

Sep 09 18:19:21 raspberrypi systemd[1]: Starting HyperPixel 4.0" LCD Display Initialization...
Sep 09 18:19:21 raspberrypi hyperpixel4-init[1259]: bcm2835_init: gpio mmap failed: Cannot allocate memory
Sep 09 18:19:21 raspberrypi systemd[1]: hyperpixel4-init.service: Main process exited, code=exited, status=1/FAILURE
Sep 09 18:19:21 raspberrypi systemd[1]: hyperpixel4-init.service: Failed with result 'exit-code'.
Sep 09 18:19:21 raspberrypi systemd[1]: Failed to start HyperPixel 4.0" LCD Display Initialization.

pi@raspberrypi:~ $ cat /etc/os-release

PRETTY_NAME="Raspbian GNU/Linux 10 (buster)"
NAME="Raspbian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"

pi@raspberrypi:~ $ vcgencmd get_config int

arm_freq=1500
audio_pwm_mode=514
config_hdmi_boost=5
core_freq=500
core_freq_min=200
disable_commandline_tags=2
disable_l2cache=1
display_default_lcd=1
display_hdmi_rotate=-1
display_lcd_rotate=-1
display_rotate=3
dpi_group=2
dpi_mode=87
dpi_output_format=0x7f226
enable_dpi_lcd=1
enable_gic=1
force_eeprom_read=1
force_pwm_open=1
framebuffer_height=480
framebuffer_ignore_alpha=1
framebuffer_swap=1
framebuffer_width=800
gpu_freq=500
gpu_freq_min=500
init_uart_clock=0x2dc6c00
pause_burst_frames=1
program_serial_random=1
hdmi_force_cec_address:0=65535
hdmi_force_cec_address:1=65535
hdmi_force_hotplug:0=1
hdmi_group:0=2
hdmi_mode:0=9
hdmi_pixel_freq_limit:0=0x11e1a300
hdmi_pixel_freq_limit:1=0x11e1a300

pi@raspberrypi:~ $ sudo lshw

raspberrypi               
    description: Computer
    product: Raspberry Pi 4 Model B Rev 1.1
    serial: 100000008cc2ba7a
    width: 32 bits
  *-core
       description: Motherboard
       physical id: 0
       capabilities: raspberrypi_4-model-b brcm_bcm2838
     *-cpu:0
          description: CPU
          product: cpu
          physical id: 1
          bus info: cpu@0
          size: 1500MHz
          capacity: 1500MHz
          capabilities: cpufreq
     *-cpu:1 DISABLED
          description: CPU
          product: cpu
          physical id: 2
          bus info: cpu@1
          size: 1500MHz
          capacity: 1500MHz
          capabilities: cpufreq
     *-cpu:2 DISABLED
          description: CPU
          product: cpu
          physical id: 3
          bus info: cpu@2
          size: 1500MHz
          capacity: 1500MHz
          capabilities: cpufreq
     *-cpu:3 DISABLED
          description: CPU
          product: cpu
          physical id: 4
          bus info: cpu@3
          size: 1500MHz
          capacity: 1500MHz
          capabilities: cpufreq
     *-memory
          description: System memory
          physical id: 5
          size: 3854MiB
     *-pci
          description: PCI bridge
          product: Broadcom Corporation
          vendor: Broadcom Corporation
          physical id: 0
          bus info: pci@0000:00:00.0
          version: 10
          width: 32 bits
          clock: 33MHz
          capabilities: pci pm pciexpress normal_decode bus_master cap_list
          configuration: driver=pcieport
          resources: irq:53 memory:600000000-6000fffff
        *-usb
             description: USB controller
             product: VIA Technologies, Inc.
             vendor: VIA Technologies, Inc.
             physical id: 0
             bus info: pci@0000:01:00.0
             version: 01
             width: 64 bits
             clock: 33MHz
             capabilities: pm msi pciexpress xhci bus_master cap_list
             configuration: driver=xhci_hcd latency=0
             resources: irq:54 memory:600000000-600000fff
           *-usbhost:0
                product: xHCI Host Controller
                vendor: Linux 4.19.69-v7l+ xhci-hcd
                physical id: 0
                bus info: usb@1
                logical name: usb1
                version: 4.19
                capabilities: usb-2.00
                configuration: driver=hub slots=1 speed=480Mbit/s
              *-usb
                   description: USB hub
                   product: USB2.0 Hub
                   vendor: VIA Labs, Inc.
                   physical id: 1
                   bus info: usb@1:1
                   version: 4.20
                   capabilities: usb-2.10
                   configuration: driver=hub maxpower=100mA slots=4 speed=480Mbit/s
           *-usbhost:1
                product: xHCI Host Controller
                vendor: Linux 4.19.69-v7l+ xhci-hcd
                physical id: 1
                bus info: usb@2
                logical name: usb2
                version: 4.19
                capabilities: usb-3.00
                configuration: driver=hub slots=4 speed=5000Mbit/s
  *-usbhost
       product: DWC OTG Controller
       vendor: Linux 4.19.69-v7l+ dwc_otg_hcd
       physical id: 1
       bus info: usb@3
       logical name: usb3
       version: 4.19
       capabilities: usb-2.00
       configuration: driver=hub slots=1 speed=480Mbit/s
  *-network:0
       description: Wireless interface
       physical id: 2
       logical name: wlan0
       serial: dc:a6:32:18:70:35
       capabilities: ethernet physical wireless
       configuration: broadcast=yes driver=brcmfmac driverversion=7.45.154 firmware=01-4fbe0b04 ip=192.168.0.111 multicast=yes wireless=IEEE 802.11
  *-network:1
       description: Ethernet interface
       physical id: 3
       logical name: eth0
       serial: dc:a6:32:18:70:34
       size: 10Mbit/s
       capacity: 1Gbit/s
       capabilities: ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd 1000bt 1000bt-fd autonegotiation
       configuration: autonegotiation=on broadcast=yes driver=bcmgenet driverversion=v2.0 duplex=half link=no multicast=yes port=MII speed=10Mbit/s

pi@raspberrypi:~ $ gpio -v

gpio version: 2.50
Copyright (c) 2012-2018 Gordon Henderson
This is free software with ABSOLUTELY NO WARRANTY.
For details type: gpio -warranty

Raspberry Pi Details:
  Type: Unknown17, Revision: 01, Memory: 0MB, Maker: Sony 
  * Device tree is enabled.
  *--> Raspberry Pi 4 Model B Rev 1.1
  * This Raspberry Pi supports user-level GPIO access.

Hyperpixel Square inverted colours (BGR instead of RGB?)

IMG_0494
Colours inverted as per picture.

"I'm using the latest stock Raspbian with your install script and everything appeared to install fine. On reboot the screen works but as you can see that it looks odd (see image attachment). I've tried uninstalling and reinstalling the drivers but I get the same result each time." This is as of July 30th so should include the fix for wobbling.

XRANDR and XPDYINFO out different pixel sizes

I have an issue with a Hyperpixel. I try to run Wine on a pi and it works flawlessly on an external HDMI display. But on the hyperpixel, the window is too streched vertically and no matter what settings I use, I can't seem to resolve it. Then, i dumped xpdyinfo and it detects the screen with a pixelsize of 96x96. But xrandr finds it at 0x0. Is there another driver or some way to make the screen behave correctly?

Touch Screen has lost resolution and has image noise

Hi,
After installing the drivers the screen looked perfectly. Some days later, I have used it again and it doesn't show the image correctly. The image is noisy and blurry, it also seems to have lost resolution,.
Any ideas?
Thanks!

Pi4 and landscape in console (Raspbian Buster lite)

I have a pi4 and just want to use the Hyperpixel 4 for a portable device in console mode on a raspbian buster lite. After installation everything is working in portrait mode.

I tried to use hyperpixel4-rotate but the script isn't for console/framebuffer (it asks for xinput and xrandr which aren't installed).

I tried to change directly in config.txt with display_rotate=1 but it doesn't work
-either I keep "dpi_timings=480 0 10 16 59 800 0 15 113 15 0 0 0 60 0 32000000 6" and screen is locked in landscape: no cursor, no update when I type something.
-either I try to invert 480 and 800 in dpi_timings (I don't think it would work but it was worth a try) and display is strange: dark corners, display bugs, etc.

I think there should be correct dpi_timings in config.txt to get it to work, but I don't know which one.

I don't test touch in console as it is useless for me.

Please build the latest overlays?

I'm unfortunately stuck in a situation where I don't have immediate access to a Raspbian instance (using Resin.io).

I assume the only reason we're required to build to get rotation support is just a lack of time-on-hand... has anyone out there built it yet, so we can get a pull request and the latest overlay in the dist directory?

Thanks!

dtoverlay only handle three of four given parameters

Hi
I am testing HyperPixel in a Raspperry pi, and have had trouble with the rotated/inverted touch interface. I need to rotate and invert the touch interface. It seems that (according to the Readme) if the following line in /boot/config.txt was properly handled, my problems with touch would vanish:

dtoverlay=hyperpixel4,touchscreen-swapped-x-y,touchscreen-inverted-y,touchscreen-inverted-x

But, it seems that only the first 3 of the 4 parameters are handled. That last (here 'touchscreen-inverted-x') is ignored.

If the fourth parameter is ignored, will it be possible to update the code such that it is not ignored?

Have a nice day

  • Thomas

DSI and Hyperpixel4 Pi3B+

DSI and Hyperpixel4

I have a Hyperpixel 4" Touchscreen running fine on a Pi3B+.
I'm trying to setup a dual monitor with a 5" DSI touchscreen (from DFRobot)

But I can have either one or the other at the same time ( when enabling/disabling enable_dpi_lcd in /boot/config.txt ).

Is it even possible to achieve this configuration ?
The finality is to use this config on a pi4 ( I haven't received mine yet so I'm testing it on a Pi3B+ for now )

Here is my /boot/config.txt

pi@raspberrypi ~ % cat /boot/config.txt
[all]
# dtoverlay=vc4-fkms-v3d ## Can print to DSI screen wih fakeKMS
# dtoverlay=vc4-kms-v3d ## Unable to print to both screen with fullKMS

dtoverlay=hyperpixel4

dtparam=touchscreen-swapped-x-y
dtparam=touchscreen-inverted-x

overscan_left=0
overscan_right=0
overscan_top=0
overscan_bottom=0

framebuffer_width=800
framebuffer_height=480

# enable_dpi_lcd=1
# display_default_lcd=1

dpi_group=2
dpi_mode=87
dpi_output_format=0x7f216

display_rotate=3
dpi_timings=480 0 10 16 59 800 0 15 113 15 0 0 0 60 0 32000000 6
hdmi_timings=480 0 10 16 59 800 0 15 113 15 0 0 0 60 0 32000000 6

dtparam=audio=off
disable_overscan=1

enable_uart=off
start_x=1

max_framebuffers=2
framebuffer_priority=1

gpu_mem=112

Output of tvservice :

pi@raspberrypi ~ % tvservice -l                                       
2 attached device(s), display ID's are : 
Display Number 0, type Main LCD
Display Number 3, type Composite

Pi4 forgets I2C settings

Hi everyone,

I‘ve got a Pi4 with Hyperpixel 4.0.
Since the 2019-09-26 release of Raspbian the Display is actually working.
But wherever I touch the Display, the cursor moves only a little bit in the lower right corner of the desktop.

After using the command „sudo ln -s /dev/i2c-3 /dev/i2c-1“ and a reboot the touch works perfectly.
But as soon as I shutdown the Pi and start it again this setting seems to be lost and the touch behaves like before...

Thanks for any help ;)

Why is my display in portrait mode?

Hi, i have a Rapsberry Pi 4 and a Hyperpixel 4.0. I used the normal setup script and selected "1" - "Rectangular Hyperpixel and Pi 4". After reboot my display works but its in portrait mode. Whats wrong?

Possible to dim screen?

I am using this with an app that doesn't use X. It runs its own touch and screen handlers. However, the normal method for other screens of writing dimming isn't working. For now we are passing those lines of code, but I am wondering if there is anything non-standard relating to screen dimming.

For example at night I want the brightness to be 50% of normal. Where/how do I set this?

Analog audio output conflicts?

Hi Hyperpixel team,

I'm not able to get any audio output via the analog jack on my Raspberry Pi 4 (Raspian Buster with desktop) after installing the Hyperpixel 4.0 Touchscreen. I can choose "Analog" in the desktop volume settings (right click on the speaker) but the volume will be 0 and when I try to increase the volume it snaps back into "no selected source".

Could this be related to the backlight control issue mentioned in the Hyperpixel (1.0?) documentation?
If so is it possible to deactivate PWM and re-enable analog audio?

Tidy up support branches, add warning to install.sh

Some changes need to be made to reduce instances of Pi 4 / Buster / HyperPixel 4 users simply running "git clone .." and "./install.sh" on this repository and installing the wrong software.

One possible approach is to create a new empty default branch with detailed instructions and a copy of the HyperPixel4 one-line installer in place of ./install.sh.

Touchscreen not working on custom rpi image

Hi,

I have an Hyperpixel4 with touch capabilities, and a Pi 0 W running a custom image build from buildroot.

The display is working , but the touch not.

The github repository I have used is: https://github.com/pimoroni/hyperpixel4/tree/pi3

These are the steps I have followed:

  1. Make the .dts and put the .dtbo into the sdcard overlays directory
  2. Build the hyperpixel4-init.c to run on the pi 0 w (I do not need python on my image so I found a .c init file in an old repository that I can not find anymore, but it seems to have the same functions that the python versions)
  3. · modprobe i2c-dev
    · modprobe i2c-gpio
    · modprobe goodix
    · run the hyperpixel4-init service

This is the dmesg info:

[1.753110] i2c /dev entries driver
[1.797272] gpio-10 (i2c@0): enforced open drain please flag it properly in DT/ACPI DSDT/board file
[1.797382] gpio-11 (i2c@0): enforced open drain please flag it properly in DT/ACPI DSDT/board file
[1.798259] i2c-gpio i2c@0: using lines 10 (SDA) and 11 (SCL)
[1.859336] Goodix-TS 3-005d: ID 911, version: 1060
[1.880216] input: Goodix Capacitive TouchScreen as /devices/platform/i2c@0/i2c-3/3-005d/input/input0

This is the lsmod info:

ipv6
8021q
garp
stp
llc
brcmfmac
brcmutil
sha256_generic
cfg80211
rfkill
goodix
gpio_backlight
i2c_gpio
i2c_algo_bit
i2c_dev

  • The hyperpixel4-rotate is needed for having the touch working? Or only if I need to have the display rotated?

  • There is something else I have been missing?

Kind regards,

Rafa

Pi4

Any plans for updates to allow this to work with a RPi4?

Cannot install on rpi4

Hi All,

I get this error message when trying to install the software on a brand new rpi4.

jul 30 11:16:34 raspberrypi hyperpixel4-init[748]: bcm2835_init: gpio mmap failed: Cannot allocate memory
jul 30 11:16:34 raspberrypi systemd[1]: hyperpixel4-init.service: Main process exited, code=exited, status=1/FAILURE
jul 30 11:16:34 raspberrypi systemd[1]: hyperpixel4-init.service: Failed with result 'exit-code'.
jul 30 11:16:34 raspberrypi systemd[1]: Failed to start HyperPixel 4.0" LCD Display Initialization.

It has a fresh install of Raspbian Buster.
Thanks!

Screen on Raspberry Pi 4 is rotated incorrectly, y-axis is inverted

I just installed a Hyperpixel 4 on a Raspberry Pi 4 running a fresh install of Raspbian, and this is the result:

IMG_20190702_164004

I'm assuming this isn't the correct orientation, and was expecting landscape. Also the touchscreen's y-axis is inverted. For example, if I touch the Wastebasket icon in the top left, the cursor moves to the bottom left.

To fix this, I had to run hyperpixel4-rotate left and set my calibration matrix to 0 1 0 1 0 0.

Touchscreen not working

Hi,
Just installed from the one line install - displays perfectly, but has no touchscreen capability.
Any ideas?
Thanks

[How To] - Raspberry PI 4 -

[EDIT] screen works but i cannot run any display application ... 👎

Hello :)

Ok so after wasting 2 days on it, i got a good workflow!

!!!!Do not plug the screen yet!!!!

1.Install Raspbian Buster full

Nothing more to do here.
Doesn't enable i2c

2. Update Raspbian

sudo apt update && sudo apt upgrade -y

3. hyperpixel4 script

git clone https://github.com/pimoroni/hyperpixel4 -b pi4
cd hyperpixel4
sudo ./install

4. Power off

sudo halt

!!!!Plug the screen!!!!

Edit /boot/config.txt for Landcape Mode:

`[all]
#dtoverlay=vc4-fkms-v3d
start_x=1
gpu_mem=128

dtoverlay=hyperpixel4
gpio=0-25=a2
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

dtparam=touchscreen-swapped-x-y
dtparam=touchscreen-inverted-x
dtparam=touchscreen-inverted-y
`

Enjoy 👍

hyperpixel4 + rock64 ?

I would like to use the hyperpixel4 with something more powerful like the pine64 / rock64, but the install procedure obviously doesn't work. Did anyone look into this?

Portrait mode

Since the Hyperpixel 4 is a bit non-standard with it being natively portrait, is there any merit in the drivers, dt overlays, rotation scripts etc, faking its orientation to make it look natively in landscape?

Or would this mess up the desktop drivers (especially if they bypass theses drivers)?

Is it possible to disable backlight when shutdown?

When the Raspberry Pi is shutdown, but still connected to power, the backlight remains on. Is this behaviour configurable? Or should it be possible to toggle the backlight off by pulling the backlight GPIO high/low during the shutdown process?

Any documentation that we can refer to?

Rotation of display and touch is reset to normal after reboot

The rotation of the display set over SSH by:
DISPLAY=:0.0 hyperpixel4-rotate right
works like a charm. BUT after reboot, rotation is set back to normal again. Is this normal behavior? If so, how can i rotate the screen/touch permanently?

System
Rectangular Hyperpixel4-touch, and I've installed the driver via the install script.

Using Raspian Buster (sep 26th) on a RBPI4 rev:b03111.
uname -r produces: 4.19.75-v7l+

Also installed kivy, and dependencies, but not much else.

Extra debugging information
pi@rc00:~ $ dmesg | grep Goodix
[ 4.771178] Goodix-TS 7-0014: ID 911, version: 1060
[ 4.794259] input: Goodix Capacitive TouchScreen as /devices/platform/i2c@0/i2c-7/7-0014/input/input0

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.