Cartes LED externes
LedManager n'est pas marié au Raspberry Pi Pico. Son principe : il décide quoi afficher, jamais comment — les GPIO, canaux USB, SDK constructeurs et API réseau vivent dans le sender de chaque carte.
APIExpose
→ LedManager.exe
→ commandes génériques (SLOT 1 RED, ALL WHITE…)
→ sender adapté à votre carte
→ SDK / USB / série / HTTP / UDP
Deux méthodes d'intégration
Si votre programme LED accepte déjà des commandes texte simples, modifiez seulement [CommandTemplates] dans LedManager.ini :
[CommandTemplates]
SetSlot=slot {slot} {color}
All=all {color}
Clear=clear
Rare, mais très propre quand le programme cible parle déjà un langage proche.
Pour les cartes USB/SDK/API, on écrit un petit exécutable qui lit les commandes sur son entrée standard et les traduit pour le matériel :
[CommandSender:P1]
Name=External LED Board P1
Executable=ExternalLedSender.exe
Arguments=daemon --ini "ExternalLedSender.ini" --sender P1
UseStdIn=true
Le sender reçoit SLOT 1 RED, consulte son mapping (RGB:1,2,3) et applique les valeurs à la carte.
Votre sender peut être n'importe quel programme
Executable= et Arguments= sont libres : un exe compilé, un script Python (Executable=python.exe), Node, ou même PowerShell si vous y tenez. Seule règle : lire les commandes ligne par ligne sur l'entrée standard. Préférez toutefois un exécutable compilé — les antivirus surveillent de près les scripts PowerShell qui tournent en continu (heuristiques « ClickFix »), c'est d'ailleurs pourquoi le sender Pico officiel utilise un accès série natif.
Cartes cibles réalistes
Ces intégrations ne sont pas fournies clé en main : ce sont des cibles réalistes pour un sender adapté.
| Carte | Points forts | Intégration type |
|---|---|---|
| Ultimarc PacLED64 | 64 canaux, luminosité par canal | sender → SDK Ultimarc |
| Ultimarc PAC-Drive | Simple ON/OFF : START, coin lamps | sender → SDK Ultimarc |
| Ultimarc I-PAC Ultimate I/O | Entrées + sorties LED combinées | sender → SDK Ultimarc |
| LED-Wiz | 32 sorties PWM, classique des bornes | sender → API LED-Wiz |
| WLED / ESP32 | Rubans, matrices, effets adressables | sender → HTTP JSON |
| Arduino / Teensy / Pico série custom | Le plus proche de l'architecture actuelle | sender série minimal |
WLED : pour l'ambiance, pas pour les boutons
WLED excelle pour STRIP, MATRIX, topper et éclairage cabinet. Pour des boutons arcade individuels à latence très basse, préférez une liaison série directe.
Le contrat minimum d'un sender
Votre sender doit comprendre (ou ignorer proprement en le journalisant) :
SLOT 1 RED
SET START ORANGE
BATCH SLOT 1 RED;SLOT 2 BLUE;SLOT 3 BLACK
ALL WHITE
CLEAR
FLASH 6 YELLOW 80
MATRIXSCORE MATRIX1 12345 GREEN
MATRIXTEXT MATRIX1 WHITE READY
Et son fichier de mapping décrit le matériel :
[Slots]
1=RGB:1,2,3
2=RGB:4,5,6
[Outputs]
START=LED:25
[Addressable]
MATRIX1=MATRIX:16x16:60-315
Règle de conception : si une logique dépend du matériel, elle va dans le sender. La table des couleurs (RED=255,0,0…) vit dans le sender de la carte, jamais dans LedManager.ini — chaque carte interprète les intensités à sa façon.
Checklist d'intégration
- Identifier le mode de pilotage : série, USB SDK, HID, HTTP, UDP.
- Créer le sender et son INI de mapping.
- Brancher le sender dans
LedManager.ini. - Tester dans l'ordre :
SLOT 1 RED→SLOT 1 BLACK→BATCH→START/SELECT→ALL WHITE→CLEAR. - Tester les lampes MAME si la carte pilote des lampes.
- Mesurer la latence ; ajouter du batch/dedup côté sender si besoin.