Coder Social home page Coder Social logo

pimoroni / hyperpixel Goto Github PK

View Code? Open in Web Editor NEW
95.0 21.0 28.0 6.73 MB

Setup for the Pimoroni Hyper Pixel 800x480 pixel multi-touch display

Home Page: https://shop.pimoroni.com/products/hyperpixel

License: MIT License

Shell 38.46% Python 49.47% C 12.07%

hyperpixel's Introduction

HyperPixel

A high-resolution, high-speed 3.5" TFT display for your Raspberry Pi.

⚠ This 3.5" version of Hyperpixel is now discontinued - check out Hyperpixel 4!

Installing

Note: The installer linked below will not work on Pi 4. Please use the pi4 branch here - https://github.com/pimoroni/hyperpixel/tree/pi4 .

In all cases, you will need to use the legacy/Buster flavour of Raspberry Pi OS (find it under 'Raspberry Pi OS (other)' in Raspberry Pi Imager). Bullseye and subsequent versions of Pi OS are not supported.

Full install (recommended):

We've created an easy installation script that will install all pre-requisites and get your HyperPixel up and running with minimal efforts. To run it, fire up Terminal which you'll find in Menu -> Accessories -> Terminal on your Raspberry Pi desktop, as illustrated below:

Finding the terminal

In the new terminal window type the command exactly as it appears below (check for typos) and follow the on-screen instructions:

curl https://get.pimoroni.com/hyperpixel | bash

Alternatively, clone this repository and run:

./setup.sh

reboot. That's all! Enjoy!

Disabling Power Save

Some scenarios don't play well with the display blanking or going to sleep after 5-10 minutes of inactivity. This is usually what every Linux distro bakes in, and, in most cases, is a perfectly acceptable default. However if you want to prevent HyperPixel from going to sleep add these lines to their respective configuration files:

To prevent console blanking (framebuffer/text console), edit /etc/kbd/config and amend these settings:

BLANK_TIME=0
BLANK_DPMS=off
POWERDOWN_TIME=0

If you're on Raspbian Stretch (Debian 9.3), that config file doesn't exist. Instead, append consoleblank=0 to the boot command in /boot/cmdline.txt and reboot.

To prevent X11 sessions from making your HyperPixel sleepy (DPMS power saving), add this line to /etc/xdg/lxsession/LXDE-pi/autostart:

xset -display ":0" dpms force on

More on DPMS in the wiki.

Uninstalling

You will need to manually comment-out the # HyperPixel LCD Settings lines in your /boot/config.txt. See Manual Setup below for details on which these are.

You should also stop the init and touchscreen scripts:

sudo systemctl disable hyperpixel-init
sudo systemctl disable hyperpixel-touch

Important note

HyperPixel uses DPI mode 6, which means you can't use (hardware) I2C or SPI at the same time (the setup.sh script will disable those interfaces for you, but make sure not to reenable them by accident).

In addition, DAC type of products communicating with the Pi over I2S are also incompatible, as they use the same pins. It is possible to use the on-board audio chip alongside HyperPixel however, provided you force route the audio signal over HDMI, or are happy losing refined control over the backlight (PWM).

Manual Setup

LCD Display

Make sure you have the OpenGL video driver disabled. You must use the "Legacy (Non GL)" driver which you can select in the "Advanced Options" section of raspi-config.

First you'll need to grab the files from requirements/boot and place them in the relevant locations in /boot on your Pi.

You can do this either on your Pi, or by inserting your SD card into a host computer.

Then, add the following to the bottom of your /boot/config.txt

# HyperPixel LCD Settings
dtoverlay=hyperpixel
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=0x6f016
display_rotate=2
hdmi_timings=800 0 50 20 50 480 1 3 2 3 0 0 0 60 0 32000000 6

# Use a basic GPIO backlight driver with on/off support
dtoverlay=hyperpixel-gpio-backlight

You should reboot for the config.txt changes to take effect.

Finally in all cases you must place requirements/usr/bin/hyperpixel-init into /usr/bin/ and run it with hyperpixel-init to initialize the LCD. You might want to set this up to run on startup using the supplied systemd script: requirements/usr/lib/systemd/system/hyperpixel-init.service which should live in /lib/systemd/system/.

To enable the systemd script run sudo systemctl daemon-reload followed by sudo systemctl enable hyperpixel-init.service.

Touch Screen

We need to ensure the evdev module is installed for Python. The easiest is to grab our pre-compiled deb file:

sudo dpkg -i ./dependencies/python-evdev_0.6.4-1_armhf.deb

alternatively, you can install it from source like so:

sudo apt-get install python-dev
sudo pip install evdev

Make sure you add uinput to /etc/modules.

Also copy the following:

sudo cp ./requirements/usr/bin/hyperpixel-init /usr/bin/
sudo cp ./requirements/usr/bin/hyperpixel-touch /usr/bin/
sudo cp ./requirements/usr/lib/systemd/system/hyperpixel-init.service /usr/lib/systemd/system/
sudo cp ./requirements/usr/lib/systemd/system/hyperpixel-touch.service /usr/lib/systemd/system/

Make sure the relevant files are executable:

sudo chmod +x /usr/bin/hyperpixel-init
sudo chmod +x /usr/bin/hyperpixel-touch

And ensure the services run on startup:

sudo systemctl enable hyperpixel-init
sudo systemctl enable hyperpixel-touch

After a reboot, you should have a working 800x480 display with touchscreen support up and running!

hyperpixel's People

Contributors

ali1234 avatar amm0nite avatar gadgetoid avatar hankhank10 avatar helgibbons avatar roguem avatar snobu 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

Watchers

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

hyperpixel's Issues

superfine stripes across display

hello,

dont get me wrong, this display is amazing for raspberry. but i dont know if my problems is just as designed or a problem.

the screen has almost non visible super light stripes horizontally. its only recogniceable, if u know it or in camera preview its more visible.

is this normal?

Hyperpixel (original one) on rpi 2 v1.2 bullseye

Hi

I dug out my RPi 2 v1.2 with the Hyperpixel, it had a Jessie installation, armhf as there was no arm64 at that time

i updated it to bullseye-arm64 (!) (new sd card) and checked out this repo
did not work, dependecies are missing
so i switched to the rpi4 branch
same errors, lots of armhf complaints

pi@raspberrypi:~/hyperpixel $ sudo ./setup.sh
Installing dependencies...
(Reading database ... 37817 files and directories currently installed.)
Preparing to unpack .../python-evdev_0.6.4-1_armhf.deb ...
Unpacking python-evdev:armhf (0.6.4-1) over (0.6.4-1) ...
dpkg: dependency problems prevent configuration of python-evdev:armhf:
python-evdev:armhf depends on libc6 (>= 2.4).
python-evdev:armhf depends on python (>= 2.7).
python-evdev:armhf depends on python (<< 2.8).

dpkg: error processing package python-evdev:armhf (--install):
dependency problems - leaving unconfigured
Errors were encountered while processing:
python-evdev:armhf
python-rpi.gpio is required
Updating apt indexes...
.....................Installing python-rpi.gpio...
E: Package 'python-rpi.gpio' has no installation candidate
Apt failed to install python-rpi.gpio!
Falling back on pypi...
python-smbus is required
Installing python-smbus...
E: Package 'python-smbus' has no installation candidate
Apt failed to install python-smbus!
Falling back on pypi...

Installing Requirements...

Building & installing hyperpixel.dtbo

Building & installing hyperpixel-gpio-backlight.dtbo

Installing init script...

All done!

Some changes made to your system require
your computer to reboot to take effect.

Would you like to reboot now? [y/N] y

but wonder, it showed the starting text console and some raspberries....

...for a few seconds, then everything dimmed away, while showing some vertical lines. then they are gone too
i would not call it noise as other issues have called it

i attached a keyboard to check if it is just a screensaver, but it is not.

running hyperpixel-init manuelle just flashes the scren for a moment, but the text does not return.

disabling the power safe options does not change the behavior

Loading kernel module fails at boot

Issue

On RetroPie 4.2 (latest as of writing), loading the kernel module (second line of the /boot/config.txt file here) fails if the distribution is not Raspbian. Whilst this isn't the most important issue, it would be nice to be able to use this display on other distributions

Error that occurs

After running the installation script, the screen presents:

(four Raspberry Pi logos)

Initializing Hyper Pixel...
Done, resuming boot...
e2fsck 1.42.12 (29-Aug-2014)
Root partition retropie missing.

BusyBox v1.22.1 (Raspbian 1:1.22.0-9+deb8u1) built-in shell (ash)
Enter 'help' for a list of built-in commands.

/bin/sh: can't access tty: job control turned off
/ # _

Temporary Solution until Resolved

Creating a new file at /etc/init.d/, such as /etc/init.d/hyperpixel-init.sh, and putting:

#!/bin/bash
./usr/bin/hyperpixel-init

Obviously, there are error and startup checks that could be implemented here, but this is the quickest fix I came across this morning after receiving the display.
I have not tested touchscreen support for the display on other distributions as of yet.

Why it is so delicate>

The screen is so delicate, I do not understand why? there are many screens out their but none are as delicate as this. I would like to suggest Pimoroni to consider this issue, as Raspberry PI is a development board, and it means that, it will be used a bit roughly. and taking the hat on and off will be frequent. I bought the hat last week and now it has started having dead pixels and the touch screen also do not work, always go to the bottom of the screen

other OS support

Can you provide support to use this awesome display on Kali Linux on Pi?
Thank you!!

Hyperpixel (not 4) not working on RPi4 8GB

fresh install of raspian and i get the following errors.
am i doing something wrong?

pi@raspberrypi:/opt/hyperpixel $ curl https://get.pimoroni.com/hyperpixel | bash
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 35038  100 35038    0     0  79995      0 --:--:-- --:--:-- --:--:-- 79995

This script will install everything needed to use
HyperPixel

Always be careful when running scripts and commands copied
from the internet. Ensure they are from a trusted source.

This script should -- only be run on a Raspberry Pi with RPi OS --
other systems and SBCs are not supported and may explode!

If you want to see what this script does before running it,
you should run: 'curl https://get.pimoroni.com/hyperpixel'


This installer is for the OLD HyperPixel 3.5"
It is not compatible with HyperPixel 4 Rectangular or Weirdly Square.

Do you wish to continue? [y/N] y

Checking environment...
Updating apt indexes...
.....................

Checking hardware requirements...

Checking for dependencies...

Cloning Github repo locally...
Cloning into 'hyperpixel'...
remote: Enumerating objects: 29, done.
remote: Counting objects: 100% (29/29), done.
remote: Compressing objects: 100% (26/26), done.
remote: Total 29 (delta 0), reused 22 (delta 0), pack-reused 0
Receiving objects: 100% (29/29), 1.92 MiB | 869.00 KiB/s, done.

Finalising Install...

Installing dependencies...
python-rpi.gpio is required
Updating apt indexes...
.....................Installing python-rpi.gpio...
E: Package 'python-rpi.gpio' has no installation candidate
Apt failed to install python-rpi.gpio!
Falling back on pypi...
python-smbus is required
Installing python-smbus...
E: Package 'python-smbus' has no installation candidate
Apt failed to install python-smbus!
Falling back on pypi...

Installing Requirements...

Installing init script...

All done!

Some changes made to your system require
your computer to reboot to take effect.

Would you like to reboot now? [y/N] N

Some changes made to your system require
your computer to reboot to take effect.

Would you like to reboot now? [y/N] N

TL;DR
Apt failed to install python-rpi.gpio!
and
Apt failed to install python-smbus!

are the only things throwing errors (that i know of)

Touch not working on Pi 3B+ with Buster

Having just updated my Pi 3B+ to the latest Buster build the touch screen has stopped working. It was fine before.
I have tried reinstalling the drivers but touch still doesn't work.

` hyperpixel-touch.service - Hyperpixel LCD Touch Screen Driver Daemon
Loaded: loaded (/usr/lib/systemd/system/hyperpixel-touch.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Fri 2020-10-02 15:53:07 BST; 6s ago
Process: 1167 ExecStart=/usr/bin/hyperpixel-touch (code=exited, status=0/SUCCESS)
Main PID: 1179 (code=exited, status=1/FAILURE)

Oct 02 15:53:07 raspberrypi systemd[1]: hyperpixel-touch.service: Service RestartSec=100ms expired, sche
Oct 02 15:53:07 raspberrypi systemd[1]: hyperpixel-touch.service: Scheduled restart job, restart counter
Oct 02 15:53:07 raspberrypi systemd[1]: Stopped Hyperpixel LCD Touch Screen Driver Daemon.
Oct 02 15:53:07 raspberrypi systemd[1]: hyperpixel-touch.service: Start request repeated too quickly.
Oct 02 15:53:07 raspberrypi systemd[1]: hyperpixel-touch.service: Failed with result 'exit-code'.
Oct 02 15:53:07 raspberrypi systemd[1]: Failed to start Hyperpixel LCD Touch Screen Driver Daemon.`

Timeframe for 4K support

To whom it may concern. Just wondering if you have a road map of if 4K support is on the cards?
If so, roughly when?

Thanks.

Does Manual Install Actually Work?

I'm attempting to get hyperpixel working on Raspberry Pi with only the config.txt and overlays.

According to the readme I should only need to:

  • Enable Legacy GL driver
  • Copy/Paste config.txt variables
  • Ensure overlays are present

I don't need to hotplug the display... but doing the above led to a dark display with no response.

Larger console font

Is there a way to embiggen the (framebuffer) console font?

/etc/defaults/console-setup:

FONTFACE="Terminus"
FONTSIZE="32x16"

32 is max supported by Linux for the console.. so i guess i need to lower the HyperPixel resolution. How would i do that? Can i scale to something like 640x200, is there a scaler built into the display?

I just need very large fonts for a demo, i would never ruin the super high res in normal conditions as it looks sharp as a knife. I can't run X, although that would make it easy.

Maybe a different framebuffer terminal could pull this off?

Absence of /dev/i2c-3 causes hyperpixel-touch to fail

On a completely fresh Raspbian install, with the first action on the node being to run the single line installer. I was observing hyperpixel-touch bombing out when it hit:

bus = smbus.SMBus(3)

I noticed that /dev/i2c-3 was missing which would explain the bus initialisation step above failing so I ran raspi-config enabled i2c then immediately disabled it. Running hyperpixel-touch now worked and I was able to use the display as expected.

Enable easy switch between hyperpixel and HDMI

It would be very useful if there was an easy way to disable the display (i.e. enable HDMI again) and enable (when done using HDMI) like a script so you do not have to uninstall every time you need to change display. Would that be easy to do?

Thanks

Hyperpixel Kernel driver !

Hey @Gadgetoid - I now have a working kernel driver for the Hyperpixel 3.2 touchscreen. I also combined it with the hyperpixel-init utility, so now you just need to include the overlay and kernel driver to get it functional. This means I can finally get the touchscreen aspect of the HP3.2 functional in PINN, instead of just the screen display.

So far, I have only used it as a built-in driver for buildroot. It did compile as a module in buildroot but I haven't compiled it with the right kernel to test with Raspbian. I don't expect any problems with that though.

The DT overlay allows for all the same inversions and swappings as the hyperpixel4 - I just need to simplify them to the 4 rotate_n parameters instead.

My next step is to combine the initialisation code of the Hyperpixel4 with the rotation-supported goodix driver, so that also just has a single driver.

Are you interested in either of these?

Shutdown button

Hello,
I've successfully installed the Hyperpixel 4 screen, thanks a lot for your work !

But I've a little question, is it possible to use a GPIO pin to wire button that start a safe shutdown script ? or all the pins are used by the screen ?
If not, how do you do to safe shutdown the Pi with a button and hyperpixel ?

Regards,
Sgrunt

Does not work on current Buster Pi4 1GB

To check out the Pi4, current Buster (feb 2020) and Hyperpixel 3.5 I did the following:

0 Checked on a Raspberry Pi 3, current Buster, instructions followed and works fine, so hardware is OK

1 imaged a SD with current Buster (feb 2020)
2 booted on a Pi 4 1 GB
3 did the usual raspi-config things and update/upgrade
4 checked out the system, works as expected
5 curl https://get.pimoroni.com/hyperpixel | bash
6. rebooted , installed Hyperpixel

Result is rubbish, reverse image on HDMI, Hyperpixel dead

Maybe the curl https://get.pimoroni.com/hyperpixel | bash gets the old hyperpixel install and the the Pi 4? Looks like it.

So back to 0,

1 imaged a SD with current Buster (feb 2020)
2 booted on a Pi 4 1 GB
3 did the usual raspi-config things and update/upgrade
4 checked out the system, works as expected
5 downloaded the Hyperpixel Pi 4 git repository
6. rebooted , installed Hyperpixel with ./setup.h

Result is Hyperpixel noise banner, HDMI shows normal screen

So install fails with the curl or setup ,and instructions clearly wrong.

Feature request: controllable backlight intensity

After reading through the product page and the sources here multiple times I'm still not sure if the HyperPixel hardware supports controlling the backlight intensity, albeit the product page somehow hints at this.

Anyway, if the HW is capable, please allow control of the backlight intensity.

At the moment, the backlight in /sys/class/backlight/rpi_backlight/brightness can only be set to 0(off) and 1 (on), as also indicated by /sys/class/backlight/rpi_backlight/max_brightness.

Using Hyperpixel with LED output / Button input

Looking at the pinout the hyperpixel understandably uses all the pins so there are no free pins to run a button or LED. I've looked at a GPIO port expander, which also would have the same issues.

So I'm thinking is there a way to directly connect the hyperpixel RPi to a second RPi directly over Ethernet to a second RPi just to control its GPIO and connect the buttons / LEDs to the second one.

Any thoughts on how I can get around this?

redirecting console to /dev/fb0 ?

Is there a way to redirect console to dev/fb0 ? most LCDs are on /dev/fb1 and there is program, to mirror the fb0 to fb1... mostly I'm curious how could I mirror remote ssh connection to the hyperpixel...

Multitouch support

I see that the support in multitouch is partial (script hyperpixel-touch).
The software given read only 2 touch points (and sometimes is buggy).
Is it possible to read touch list indefinitely? (I know that this screen can read more than 2)
Regards
Jacopo

What is the current compatibility of the Hyperpixel?

I still have a Jessie running with the hyperpixel, but I am meeting more and more incompatiblity with what i can run ( or compile),
I'd like to know what the compatiblity is.
The current state should be pinned on top of the list of issues!

I am confused about the issues about touch not working on bullseye and buster.
For me it never worked on buster and bullseye at all!
I have seen the hint about reverting to a specific kernel version of rpi.
Does this fix more than touch?

I do not want to manuelly have to test each debian release after another.
A conclusive list like this would be really nice, so please comment what should be here

WORK-IN-PROGRESS - UPDATED

  • Jessie working, but end-of-life
  • Stretch working, end-of-life
  • Buster working, end-of-life, see comment regarding touch
  • Bullseye non-working

bcm2835_init: gpio mmap failed: Cannot allocate memory

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

Linux raspberrypi 4.19.69-v7l+ #1261 SMP Tue Sep 3 20:25:01 BST 2019 armv7l GNU/Linux
VL805 FW version: 000137ab
Raspberry Pi 4 Model B Rev 1.1pi


pi@raspberrypi:~ $ sudo systemctl status hyperpixel4-init
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 08:12:22 BST; 3min 27s ago
 Main PID: 301 (code=exited, status=1/FAILURE)

Sep 09 08:12:22 raspberrypi systemd[1]: Starting HyperPixel 4.0" LCD Display Initialization...
Sep 09 08:12:22 raspberrypi hyperpixel4-init[301]: bcm2835_init: gpio mmap failed: Cannot allocate memory
Sep 09 08:12:22 raspberrypi systemd[1]: hyperpixel4-init.service: Main process exited, code=exited, status=1/FAILURE
Sep 09 08:12:22 raspberrypi systemd[1]: hyperpixel4-init.service: Failed with result 'exit-code'.
Sep 09 08:12:22 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:~ $ cat /boot/config.txt

# 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=9

# Uncomment some or all of these to enable the optional hardware interfaces
dtparam=i2c_arm=off
dtparam=spi=off

# Enable audio (loads snd_bcm2835)
dtparam=audio=on

# enable raspicam
#start_x=1
gpu_mem=128

[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

# HyperPixel LCD Settings
dtoverlay=hyperpixel
enable_dpi_lcd=1
dpi_group=2
dpi_mode=87
dpi_output_format=0x6f016
hdmi_timings=800 0 50 20 50 480 1 3 2 3 0 0 0 60 0 32000000 6

# Use a basic GPIO backlight driver with on/off support
dtoverlay=hyperpixel-gpio-backlight

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.

bullseye convert hyperpixel-touch script to python3

python2-pip gone and that sort of problem, so convert it to python3?

simply change the shebang to python3

basically you use some odd old python2 function file(), converting to python open() works ok except for the se file which fails on the os.dup(). cant find the old python documentation on the file() function it is that old...

any ideas

Model 3B+ with raspbian stretch doesn’t work

The display turns on white, flashes black and stays white afterwards. Turned on GL legacy (and tried every other mode, too), but I can’t get it to work. Are there any limitations I missed?

Dual screen setup question

Hi,
I was thinking to have a setup like:

  • a raspicam
  • hyperpixel to be used as a secondary display (always on, using a framebuffer to push data to it)
  • a tv attached to HDMI as the main screen

Do you think this is possible?
Thanks

Install script assumes Python is already installed

I don't use the standard Raspbian full image, but instead a custom debootstrapped minimal image. As such, I don't already have Python installed. The install script should either fail if python2.7 isn't installed or instead automatically install it.

Multitouch Kernel driver

I decided to try and create a C based kernel driver for the Hyperpixel touchscreen interface.
It's quite tricky to detect the touches, isn't it?

  1. How to avoid ghosting when reading the ADC values directly? I see the hyperpixel_viewer exhibits this behaviour. Now I understand why you use the 0x40 registers to get the detected co-ords. I think the ADC values are just used for touch confirmation in this driver, I think?
  2. The 2 detected touchpoints seem to be reported in order of their distance from the origin(?), rather than order of touching, so some additional tracking ID support is required.
  3. Because of (2), I think the button up/down events can get confused.
  4. Evtest seems to lose (or not report) some event messages if they are not required (e.g. some MT_SLOT events seem to go missing, even though the driver outputs them, redundant ones are removed?)

To get >2 touches, it seems necessary to use the raw ADC values, but ghosting seems to be a real issue.
Unless you have any more knowledge on how to avoid this, I will probably go down the route of just porting this python driver for 2 touches, but try to improve the tracking of the touches.

Hyperpixel 3.5 not working properly on Pi4

Hi,

I try to use my Hyperpixel 3.5 Display (I need to use this smaller version to fit for a project) on a Pi4 with Raspbian Buster (latest version and updates). It is only working from time to time.

I installed it by using the setup.sh of the branch for pi4 as mentioned in the description. The service for touch is not starting.

pi@RPi-IT:~ $ systemctl status hyperpixel-touch.service hyperpixel-touch.service - Hyperpixel LCD Touch Screen Driver Daemon Loaded: loaded (/usr/lib/systemd/system/hyperpixel-touch.service; enabled; vendor preset: enabled) Active: failed (Result: exit-code) since Tue 2020-02-25 16:17:06 GMT; 5min ago Process: 370 ExecStart=/usr/bin/hyperpixel-touch (code=exited, status=0/SUCCESS) Main PID: 382 (code=exited, status=1/FAILURE)

Feb 25 16:17:06 RPi-IT systemd[1]: hyperpixel-touch.service: Service RestartSec=100ms expired, scheduling restart. Feb 25 16:17:06 RPi-IT systemd[1]: hyperpixel-touch.service: Scheduled restart job, restart counter is at 5. Feb 25 16:17:06 RPi-IT systemd[1]: Stopped Hyperpixel LCD Touch Screen Driver Daemon. Feb 25 16:17:06 RPi-IT systemd[1]: hyperpixel-touch.service: Start request repeated too quickly. Feb 25 16:17:06 RPi-IT systemd[1]: hyperpixel-touch.service: Failed with result 'exit-code'. Feb 25 16:17:06 RPi-IT systemd[1]: Failed to start Hyperpixel LCD Touch Screen Driver Daemon.

From time to time the display is working without issues. But about 99% of the time it is not and just shows a pixelish bar at the bottom. No changes were made when it starts/stops working, just doing reboots.

Can anybody help me here? It would be great if I can use it on my pi4. It is working great on my pi3 btw.

Thanks
Marius

Raspberry Pi zero W display just flicker

Hello,
I just installed 2017-09-07-raspbian-stretch-lite on rPi Zero W + hyperpixel, run the script and after reboot the screen is semi working, just flickers displaying the console and then disappearing its very strange... I have tried 2 displays now and both doing the same... I'm using original USB power adapter from rPi

Any idea what it can be ?

Display switches to lowest brightness on boot with no way to change it back

I just set up my HyperPixel, but it's currently in an unusable state.

While booting, the brightness is at an acceptable level, but once the console output reaches the login mask, the display switches to max brightness for about 2 frames, then switches back to minimum brightness and stays there. I tried messing with /sys/class/backlight/rpi_backlight/max_brightness, but it seems the only acceptable values for that are zero for off and one for on.

Is there anything I can do to fix the backlight?

I'm using the HyperPixel with a Raspberry Pi 2B with a fairly recent install of Raspbian Lite.

Prevent HyperPixel from going to sleep

I've tried everything but seems that after 10-15 minutes no matter what i do with xset or what parameters i pass to Xorg, the HyperPixel goes to sleep and only wakes up if i manually call:

xset s activate

What i've tried:

Xorg -dpms -nocursor 2>&1 > /dev/null &
xset s noblank
xset s 0
xset s off
xset -dpms

Is there a flag i can set in config.txt to prevent power saving from happening? Is it expected behavior?
I really mean power saving not blanking because the LCD back light goes off as well.

Other than this, the HyperPixel is probably the best thing ever built for the Pi. Period.

Windows IoT Support...

Hello everybody,

Is this display module compatible with Windows IoT OS?
Has anyone been testing and experimenting this before on IoT? if so, what kind of solution did you do for this?

– Berk

HyperPixel OS Compatibility (NOT compatible with Bullseye/device-tree)

HyperPixel was developed for a very different Raspbian than the Raspberry Pi OS which now powers Pi's.

Screens have shifted from being a Pi-specific hack in config.txt which causes the VideoCore chip to barf out DPI signals which we could shore up with Python scripts and other such (very very wrong in retrospect) nonsense, to a much more stringent Linux device-tree configuration.

As such we can't support HyperPixel on Bullseye. The conflicting pin assignments make it - if not impossible - extremely contrived.

Support on Buster is possible via a Python tweak found here: #54

For the curious there is some discussion about the complexity of the move from old-style to new-style drivers here: https://forums.raspberrypi.com/viewtopic.php?t=324640

How to install hyperpixel on Kali linux?

I would like to understand if this display is compatible with Kali linux.
I have tried everything I have found on the internet, but none have worked.

I tried to use the command "curl https://get.pimoroni.com/hyperpixel | bash", but it tells me that the hardware is not compatible.
I tried to use the indications present in a previous "problem", but in the terminal I am told that some packages are unknown and if I restart Rasperry, the screen remains black and kali no longer works.
I tried to do the manual installation, respecting each step (what is written in the "code" section), but the screen remains black.

[Solved] Screen blank using setup.sh from this repo

  • Latest Raspbian Stretch
  • Pi Zero W
  • apt-get Updated, Upgraded, firmware updated

The Curl command responds with We can't connect to the Internet, check your network!" which is weird because the curl is using the internet to get the script.

Cloning this repo gets further but on reboot the screen flashes then goes blank.

hyperpixel-init flashes the screen then goes blank

The backlight is on

Solved

Mitigating color banding on gradients

Using a non-touch Hyperpixel 4 (rectangular) on a RPi 4 and for the most part it works fine. However, on color gradients I get some quite annoying banding. I know it's caused by the fact that the Hyperpixel is only 18bit, but I'm curious if there are any known ways to mitigate this.

Not sure if this matters or not, but my issue is with Chromium, displaying a custom web page I created (as a display for Roon).

Lowering the backlight intensity is one thing on my list, as is adjusting the gamma (although this doesn't seem possible).

I'd love any ideas / pointers on this.

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.