Tutoriels
19
septembre
2024
Pilotage des LEDS et du bouton des Noah sous Linux

Pilotage des LEDS et du bouton poussoir de la façade des cartes mère Broachlink de la série Noah sous Linux

introduction

Les cartes mères Broachlink de la série Noah se voulant être le parfait remplacement des cartes mères PC Engines de la série APU,  il fallait avoir le même genre de pilote sous linux, pour effectuer les transitions logicielles entre la plateforme APU vers Noah. Ce qui a fait le succès des cartes mères PC Engines c'est le fait qu'il y a des pilotes linux pour piloter les LEDs et le bouton de façade.

Piloter des LEDs et un bouton poussoir au niveau du matériel n'est pas une chose aisé pour la plupart des développeurs d'applications de haut niveau. Par contre ouvrir un fichier pour écrire dedans et allummer ou éteindre une LED est accessible à tous et même aux adiministrateurs système par l'intermédiaire du shell ou de scripts. C'est ce qui avait été fait pour les APU.

Ayant constaté que ce manque était pénalisant pour nos clients des cartes mères Noah, nous avons décidé de programmer ce pilote. Ce pilote Linux permet aux développeurs utilisant les cartes mères Noah d'accéder à ce même niveau de facilité de pilotage des LEDs et du bouton de la façade que sur une APU de PC Engines.

le pilote linux

Ce pilote Linux est open source et est disponible sur le dépot github de Rack Matrix. Il vous faudra suivre les instructions pour compiler le pilote et l'installer. 

Description des composants

 Noah Front 1920x716

La photo ci-dessus montre l'emplacement des éléments pris en charge par le pilote.

Le pilote permet de manager les 3 LEDs situées à la gauche de la carte mère et le premier bouton poussoir à la droite de la carte mère.

pour savoir si le pilote est bien chargé, recherchez le message suivant avec dmesg si le pilote est installé de façon permanente, sinon il sera affiché lors du chargement du pilote avec la commande insmod bl_noah.ko .

loading driver

Une fois le pilote chargé et la bonne carte mère détectée, tous les périphériques (LED et bouton) se trouvent dans /dev/noah

dev folder

Pilotage des éléments

Pilotage des LEDs

Pour allumer/éteindre les LED, vous devez écrire la bonne valeur dans le fichier LED souhaité :

  • ON : écrire ON ou 1 dans /dev/noah/ledX
  • OFF : écrire OFF ou 0 dans /dev/noah/ledX

Remarque : remplacez le X par le numéro de la LED souhaité.

 

Utilisation depuis le shell

echo 1 > /dev/noah/led3
echo OFF > /dev/noah/led2

 

Utilisation depuis un code source d'une application

Pour allumer la LED3, ouvrez le fichier /dev/noah/led3 et écrire 1 ou ON dedans puis fermez le fichier

 

Lecture du statut des LEDs.

Le pilote permet de savoir si les LEDs sont allummées ou éteintes en lisant leur fichier dans /dev/ledX

  • 0 : La LED est eteinte
  • 1 : La LED est allummée

 

Statut d'une LED depuis le shell

cat /dev/noah/led3

 

Statut d'une LED depuis le code source d'une application

Ouvrir le fichier /dev/noah/ledX code> et lire 1 octet

 

Lecture de l'état du bouton poussoir

Pour obtenir des informations sur le bouton poussoir, vous devez lire sa valeur depuis le fichier /dev/noah/button :

  • 0 pour non poussé
  • 1 pour poussé

 

Lecture depuis le shell

Pour lire l’état du bouton à partir du shell, vous pouvez utiliser la commande suivante :

cat /dev/noah/button

Lecture depuis une application

Pour lire l'état du bouton depuis une application, vous devrez :

  1. Ouvrir le fichier /dev/noah/button
  2. Lire 1 octet depuis ce fichier
  3. fermer le fichier ou faire une autre lecture