🛠 Faire clignoter une LED via le GPIO avec libgpiod
Objectifs
Découvrir le connecteur 40 broches de l'Orange Pi 3B (Rockchip RK3566) et faire clignoter une LED avec libgpiod, l'API moderne de Linux basée sur les périphériques caractères — sans passer par l'ancien mécanisme sysfs gpio export.
Matériel
- Orange Pi 3B sous Armbian (Debian/Ubuntu), alimentée en 5 V / 3 A via USB-C
- 1 LED + résistance 330 Ω, câbles Dupont femelle-mâle
- Écran ou session SSH
Code complet
sudo apt install gpiod
gpiodetect # gpiochip0 = gpio0 ... gpiochip4 = gpio4 (RK3566)
gpioinfo gpiochip1
# Banques Rockchip exposées par libgpiod : PA=0-31, PB=32-63, PC=64-95, PD=96-127
# Exemple : gpio1_b3 = 32+3 = 35 sur gpiochip1 (vérifier une broche libre sur le plan officiel 40 broches)
sudo gpioset -c gpio1 --time=1 35=1 # niveau haut pendant 1 s
# Clignotage 10 fois
for i in $(seq 1 10); do sudo gpioset -c gpio1 --time=0.2 35=1; sleep 0.3; done
# Récupérer la LED heartbeat système (gpio0_C0 = ligne 64) si elle gêne :
echo none | sudo tee /sys/class/leds/green\:heartbeat/trigger
Vérification attendue
gpiodetect affiche gpiochip0 à gpiochip4. La LED s'allume environ 1 seconde avec gpioset --time=1, puis clignote 10 fois dans la boucle. La LED heartbeat verte de la carte (gpio0_C0, définie dans le device tree mainline) clignote sous Linux ; c'est normal.
Erreurs fréquentes
- Utiliser d'anciens numéros GPIO sysfs hérités de tutoriels Raspberry Pi : sous Armbian/Rockchip, les broches sont les banques gpio0…gpio4 exposées par libgpiod, pas les numéros BCM.
- Se tromper de gpiochip : gpio1_b3 est la ligne 35 de gpiochip1, pas de gpiochip0.
- Inverser la LED (anode/cathode) ou oublier la résistance 330 Ω.
- Alimenter la carte trop faiblement : >
Autres tutoriels pour cette carte
- Lire un bouton poussoir et afficher l'état dans la console
- Premier script Python : bouton + LED avec python3-libgpiod
- Variation d'intensité d'une LED avec un signal PWM
- Interroger un capteur I2C sur les broches 3/5 du connecteur
- Configurer Ethernet gigabit et Wi-Fi puis se connecter en SSH
- Booter sur un SSD NVMe et récupérer une carte bloquée (MaskROM)
Exemples de code pour cette carte
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash