Open Pixel Control (OPC)
Open Pixel Control (OPC) — Protocole pixel léger
Open Pixel Control (OPC) est un protocole minimal basé sur TCP/IP pour diffuser des données pixel vers des contrôleurs LED. Il a été conçu par Micah Scott pour le projet Fadecandy et est largement utilisé dans les environnements de codage créatif.

Spécifications techniques
| Paramètre | Valeur |
|---|---|
| Transport | TCP/IP (port 7890 par défaut) |
| Pixels max par message | 65 535 octets (~21 845 pixels RGB) |
| Canaux max | 256 |
| Types de commandes | Définir les couleurs de pixels, définir la correction de couleur, exclusif système |
| Encadrement | En-tête binaire simple + charge utile de données |
Format d’en-tête de protocole
| Octet | Champ | Description |
|---|---|---|
| 0 | Canal | Canal de sortie (0–255) |
| 1 | Commande | 0 = définir pixels, 1 = définir correction de couleur, 255 = exclusif système |
| 2-3 | Longueur | Nombre d’octets de données (gros-boutien, 16 bits) |
| 4+ | Données | Données de pixel (RGB 0–255 par canal) |
Un message de données pixel pour 3 LEDs (RGBRGBRGB) serait : [0, 0, 0, 9, R, G, B, R, G, B, R, G, B]
Comparaison avec d’autres protocoles
| Fonctionnalité | OPC | Art-Net | sACN (E1.31) |
|---|---|---|---|
| Transport | TCP | UDP | UDP |
| Pixels max par paquet | ~21 845 | 512 (RGB) / 680 (RGBW) | 512 (RGB) / 680 (RGBW) |
| Support univers/canal | 256 canaux | 32 768 univers | 63 999 univers |
| Vérification d’erreurs | Aucune (TCP s’en charge) | Aucune | CID + numéros de séquence |
| Complexité | Très faible | Modérée | Modérée |
| Latence | Faible (surcharge TCP) | Très faible | Très faible |
Outils utilisant OPC
| Outil | Usage |
|---|---|
| Fadecandy | Contrôleur LED USB avec serveur OPC |
| Processing | PixelBender, bibliothèque OPC pour sketches Java |
| openFrameworks | Module complémentaire ofxOPC pour le codage créatif C++ |
| Glediator | Logiciel de contrôle de matrice LED |
| PixelController | Contrôle de matrice LED basé sur le web |
| Client OPC Python | Bibliothèque Python légère pour le contrôle LED |
Cas d’usage
- Installations interactives — Faible latence, facile à intégrer avec Processing, openFrameworks, TouchDesigner
- Configurations Fadecandy — Le protocole natif pour les contrôleurs Fadecandy (8 sorties, 512 pixels chacune)
- Prototypage — Surcharge minimale, idéal pour des sketches LED rapides
- Installations petites à moyennes — Jusqu’à ~21K pixels par canal sans multiplexage