🛠 Faire clignoter la LED bleue via le GPIO
Objectifs
Découvrir le GPIO de l'ODROID-C4 sous noyau mainline (Armbian current ou DietPi) en faisant clignoter la LED bleue « status » embarquée. Vous apprendrez à identifier les deux contrôleurs GPIO exposés (gpio et gpio_ao), à comprendre le rôle du trigger kernel heartbeat, et à piloter une ligne avec libgpiod v2 (syntaxe Debian Bookworm).
Matériel
- ODROID-C4 (2 ou 4 GB) avec alimentation 12 V/2 A sur jack DC 5,5/2,1 mm (le port USB OTG ne fournit pas le courant)
- Carte microSD avec Armbian « current » (kernel 6.6 mainline)
- Écran HDMI ou console série UART 115200 8N1
- Aucun composant externe : la LED status est soudée sur la carte (broche GPIOAO_11, active à l'état haut)
Code complet
#!/usr/bin/env bash
# blink-status.sh - clignoter la LED bleue (chip gpio_ao, ligne 11)
# 1) Vérifier la présence des deux chips GPIO
gpiodetect
# 2) Rendre la LED à l'espace utilisateur (désactive le trigger heartbeat)
echo none > /sys/class/leds/blue:status/trigger 2>/dev/null || true
# 3) Boucle de clignotement : 250 ms ON, 250 ms OFF
while true; do
gpioset --time=250ms gpio_ao 11=1
gpioset --time=250ms gpio_ao 11=0
done
Vérification attendue
gpiodetect doit lister deux chips : gpio (bancs GPIOA/GPIOH/GPIOX/BOOT) et gpio_ao (banc always-on). Après lancement du script, la LED bleue clignote environ deux fois par seconde. gpioget gpio_ao 11 renvoie 1 ou 0 selon l'instant. Arrêtez avec Ctrl+C : la LED reste dans son dernier état.
Erreurs fréquentes
- La LED refuse d'obéir car le trigger
heartbeatest toujours actif : écriveznonedans/sys/class/leds/blue:status/triggeravant de piloter la ligne. - Chercher à utiliser wiringPi (
gpio -g) comme sur Raspberry Pi : non garanti sur Armbian mainline, préférez libgpiod. - Confondre
gpioetgpio_ao: la LED status est surgpio_aoligne 11, pas sur le chipgpio. - Oublier sudo : l'accès aux lignes GPIO nécessite root ou une appartenance de groupe adaptée.
Autres tutoriels pour cette carte
Exemples de code pour cette carte
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash