Check out my first novel, midnight's simulacra!

Waveshare AMOLED: Difference between revisions

From dankwiki
(Created page with "I am using a 5.5" Waveshare AMOLED capacitive screen in my workstation, together with a Raspberry Pi 3B. They are powered over USB from Molex, and receive data using IP-over-USB together with an internal USB3 header. It's a great little device at a good price point (about $130), though quite fragile. The [https://www.waveshare.com/wiki/5.5inch_HDMI_AMOLED Waveshare wiki page] for the device is a good place to start.")
 
 
(15 intermediate revisions by the same user not shown)
Line 1: Line 1:
I am using a 5.5" Waveshare AMOLED capacitive screen in [[Schwarzgerät_III|my workstation]], together with a [[Raspberry_Pi|Raspberry Pi 3B]]. They are powered over USB from Molex, and receive data using IP-over-USB together with an internal USB3 header. It's a great little device at a good price point (about $130), though quite fragile.
I am using a 5.5" Waveshare AMOLED capacitive screen in [[Schwarzgerät_III|my workstation]], together with a [[Raspberry_Pi|Raspberry Pi 3B]]. They are powered over USB from Molex, and receive data using IP-over-USB together with an internal USB3 header. It's a great little device at a good price point (about $130), though quite fragile.


The [https://www.waveshare.com/wiki/5.5inch_HDMI_AMOLED Waveshare wiki page] for the device is a good place to start.
The [https://www.waveshare.com/wiki/5.5inch_HDMI_AMOLED Waveshare wiki page] for the device is a good place to start. The screen takes anywhere from 250 to 650mA, using more power to display lighter, brighter pixels.
 
==Green LED==
When the device is powered up, a green LED will blink if it is not receiving an HDMI signal. The manual only mentions that this can happen due to power supply issues, but that is incorrect (power supply issues <i>can</i> cause this symptom, but it can also simply be due to missing/bad HDMI input).
 
==Raspbian==
Add to <tt>config.txt</tt>:
<pre>
max_framebuffer_height=1920
config_hdmi_boost=10
hdmi_group=2
hdmi_force_hotplug=1
hdmi_mode=87
hdmi_timings=1080 1 26 4 50 1920 1 8 2 6 0 0 0 60 0 135580000 3
</pre>
 
When using the [[Potato|Libre Potato]], the <tt>meson_dw_hdmi</tt> module must be blacklisted, or you'll get a black screen. This can probably be worked around, but I don't yet know how. Using the "fbdev" driver, you'll need a <tt>Rotate</tt> directive in <tt>xorg.conf</tt> to rotate the AML-S905X-CC Meson's Mali GPU (<tt>xrandr</tt> is not supported).
 
==Console rotation==
Write 1 to <tt>/sys/class/graphics/fbcon/rotate</tt>. To do it from the kernel, add <tt>fbcon=rotate:1</tt> to the kernel command line; in Raspbian, this is done by editing <tt>/boot/firmware/cmdline.txt</tt>. This has no effect on Xorg.
 
==Touch rotation==
We can do it through Xorg: add the appropriate <tt>CalibrationMatrix</tt> to the <tt>touchscreen</tt> libevent stanza. For instance, rotate 90 degrees clockwise with <tt>Option "CalibrationMatrix" "0 1 0 -1 0 1 0 0 1"</tt>. But this will only work for X.
 
If we want to handle all libinput consumers (particularly [[Wayland]]), it's better to make a [[udev]] rule that sets <tt>
ENV{LIBINPUT_CALIBRATION_MATRIX}="0 1 0 -1 0 1</tt>. You can test this by checking <tt>libinput list-devices | grep ^Calibration:</tt>.
 
==Assembling front pane==
[[File:Amoled-hookups.jpg|thumb|right|USB hookups in brace]]
* Insert AMOLED into brace by slowly pushing it down
* Insert micro-USB touch input bridge into AMOLED
* Mate Raspberry Pi to AMOLED via touch input bridge
* Insert HDMI bridge into AMOLED and Raspberry Pi
* Insert left-angled micro-USB cable into Raspberry Pi
* Insert right-angled micro-USB connector into AMOLED
* Insert straight micro-USB cable into connector
* Insert Ethernet cable into Raspberry Pi
* Mount with M2.5 screws
* GPIO pin 6 (ground) to LED long leg
* LED long leg to 330Ω resistor
* Resistor to GPIO pin 12
 
==Setup for [[Counterforce]]==
* We want automatic login to X. Potato uses [http://www.lxde.org/ LXDE] by default.
** <tt>$HOME/.config/lxsession/LXDE/autostart</tt> of the logged in user defines the Xsession.
** Be sure to launch <tt>xscreensaver -no-splash</tt> to avoid AMOLED burnin

Latest revision as of 09:50, 22 April 2024

I am using a 5.5" Waveshare AMOLED capacitive screen in my workstation, together with a Raspberry Pi 3B. They are powered over USB from Molex, and receive data using IP-over-USB together with an internal USB3 header. It's a great little device at a good price point (about $130), though quite fragile.

The Waveshare wiki page for the device is a good place to start. The screen takes anywhere from 250 to 650mA, using more power to display lighter, brighter pixels.

Green LED

When the device is powered up, a green LED will blink if it is not receiving an HDMI signal. The manual only mentions that this can happen due to power supply issues, but that is incorrect (power supply issues can cause this symptom, but it can also simply be due to missing/bad HDMI input).

Raspbian

Add to config.txt:

max_framebuffer_height=1920
config_hdmi_boost=10
hdmi_group=2
hdmi_force_hotplug=1
hdmi_mode=87
hdmi_timings=1080 1 26 4 50 1920 1 8 2 6 0 0 0 60 0 135580000 3

When using the Libre Potato, the meson_dw_hdmi module must be blacklisted, or you'll get a black screen. This can probably be worked around, but I don't yet know how. Using the "fbdev" driver, you'll need a Rotate directive in xorg.conf to rotate the AML-S905X-CC Meson's Mali GPU (xrandr is not supported).

Console rotation

Write 1 to /sys/class/graphics/fbcon/rotate. To do it from the kernel, add fbcon=rotate:1 to the kernel command line; in Raspbian, this is done by editing /boot/firmware/cmdline.txt. This has no effect on Xorg.

Touch rotation

We can do it through Xorg: add the appropriate CalibrationMatrix to the touchscreen libevent stanza. For instance, rotate 90 degrees clockwise with Option "CalibrationMatrix" "0 1 0 -1 0 1 0 0 1". But this will only work for X.

If we want to handle all libinput consumers (particularly Wayland), it's better to make a udev rule that sets ENV{LIBINPUT_CALIBRATION_MATRIX}="0 1 0 -1 0 1. You can test this by checking libinput list-devices | grep ^Calibration:.

Assembling front pane

USB hookups in brace
  • Insert AMOLED into brace by slowly pushing it down
  • Insert micro-USB touch input bridge into AMOLED
  • Mate Raspberry Pi to AMOLED via touch input bridge
  • Insert HDMI bridge into AMOLED and Raspberry Pi
  • Insert left-angled micro-USB cable into Raspberry Pi
  • Insert right-angled micro-USB connector into AMOLED
  • Insert straight micro-USB cable into connector
  • Insert Ethernet cable into Raspberry Pi
  • Mount with M2.5 screws
  • GPIO pin 6 (ground) to LED long leg
  • LED long leg to 330Ω resistor
  • Resistor to GPIO pin 12

Setup for Counterforce

  • We want automatic login to X. Potato uses LXDE by default.
    • $HOME/.config/lxsession/LXDE/autostart of the logged in user defines the Xsession.
    • Be sure to launch xscreensaver -no-splash to avoid AMOLED burnin