Comment allumer/eteindre un écran LCD SPI dans un script python

j’ai lu bcp de posts dans des forums. Aucun ne fonctionne.

os.system(‹ wlr-randr --output HDM1-name --off ›) fonctionne avec un ecran HDMI mais pas un LCD en mode SPI

Bonjour,

avant d’intégrer la commande dans Python, est-ce que la commande wlr-randr fonctionne en ligne de commande, puis est-ce qu’elle fonctionne dans un script bash ?

A+

merci de votre reponse.
si le RspPI3B est connecté à un ecran HDMI, cela fonctionne en mode command ou dans python via os.system :

wlr-randr

il renvoie HDMI-1,…, etc et si je fais

wlr-randr --output HDMI-1 --off

il éteint bien l’écran. De même

wlr-randr --output HDMI-1 --on

rallume correctement l’écran.

Maintenant avec un écran LCD MSP321 ILI9488 (lib V. KAPUSTIN), si je fais (tout ce qui suit en mode commande)

wlr-randr

il renvoie

SPI-1 "(null) (null) (SPI-1)"
  Physical size: 73x49 mm
  Enabled: yes
  Modes:
    480x320 px, 0.007000 Hz (preferred, current)
  Position: 0,0
  Transform: normal
  Scale: 1.000000

ensuite je fais :

wlr-randr --output SPI-1 --off

il ne renvoie rien. A nouveau

wlr-randr

il renvoie

SPI-1 "(null) (null) (SPI-1)"
  Physical size: 73x49 mm
  Enabled: no
  Modes:
    480x320 px, 0.007000 Hz (preferred)
NOOP-1 "Headless output 2"
  Enabled: yes
  Modes:
    1920x1080 px (current)
  Position: 0,0
  Transform: normal
  Scale: 1.000000

et encore

wlr-randr --output NOOP-1 --off

l’écran s’éteint correctement. En revanche, si je fais ensuite :

wlr-randr --output NOOP-1 --on

l’écran se rallume, mais il est totalement corrompu.

Bonjour,

Après recherches sur le net, il apparait que la commande wlr-randr est relativement peu documentée.

1 - Vu dans la doc officielle ceci https://www.raspberrypi.com/documentation/computers/configuration.html

Note To use Wayland on Raspberry Pi models prior to Raspberry Pi 4 running a version of Raspberry Pi OS earlier than Bookworm, add wayland=on to /boot/firmware/cmdline.txt.

2 - Essayer de créer des scripts bash pour forcer des variables d’environement

Script spi_off.bash

#!/bin/bash
export WAYLAND_DISPLAY=wayland-1
export XDG_RUNTIME_DIR=/run/user/1000
/usr/bin/wlr-randr --output SPI-1 --off

Script spi_on.bash

#!/bin/bash
export WAYLAND_DISPLAY=wayland-1
export XDG_RUNTIME_DIR=/run/user/1000
/usr/bin/wlr-randr --output SPI-1 --on

Mettre en mode executable les scripts et les lancer en ligne de commande.

Je sais pas trop si ça change qq chose ! A essayer

A+

renvoie :

failed to connect to display

je précise que je travaille en SSH

Bonjour,

Probablement que wayland-1 ne soit pas la bonne valeur ? Vite fait, là je n’arrive pas à trouver comment on trouve sa valeur souvent c’est waland-0 .

Oui à priori le fait d’être en ssh demande de charger les bonnes variables, pour faire fonctionner les commandes wlr-randr.

A+