BIL
- Débuté en 2020
- Version stable 2025
- Consommation 2.4W au repos
Introduction
BIL, “Boitier Interface LED”, est le premier projet que j’ai réalisé. Le principe est simple : pouvoir commander un ou plusieurs rubans LED RGB avec une application dédiée. Ce projet m’a permis l’acquisition méthodique de certaines compétences de programmation de microcontrôleur : le premier prototype, très simple, est basé sur Arduino IoT incluant déjà le module Wi-Fi alors qu’aujourd’hui la première version stable est équipée d’un PIC et d’un module Wi-Fi séparé, bien qu’issus du même fabricant. Le prototype BIL possède sa propre application mobile. Bientôt, suite à l’élargissement des fonctions de cette application, elle se dissocie du projet BIL et change de nom : Allotropy.



Le développement
Vue d’ensemble
Le boitier est composé de 2x PCBA : la PowerBoard embarquant la partie “puissance”, s’occupe de distribuer le +12V au ruban et de transformer le +12V en +3.3V. Ce +3.3V sert à la seconde carte, la CoreBoard qui s’occupe exclusivement du traitement et transit des data.
Le microcontrôleur sélectionné est un PIC24 (16bits) ; à côté on retrouve un module Wi-Fi ATWINC15xx et une EEPROM de chez Microchip. Ces éléments forment l’arbre principal de communication : l’EEPROM stocke les données que le PIC va transmettre via le module Wi-Fi à l’application.
Les rubans LED sont pilotés par un module PWM qui vient commander des MOSFET pour chaque couleur.
En accessoire, on retrouve un module d’extension I/O permettant de commander certaines LED qui indiquent différents états importants du boitier ou de récupérer certaines entrées secondaires. Un module dit “ui” est présent avec un écran OLED et un Bouton/LED, ce module permet un affichage des paramètres réseaux du boitier ainsi que des messages d’erreur pendant 30s à l’appui sur le bouton.
Alimentation
Le boitier est alimenté par une alimentation +12V, le courant dépendant de la longueur du ruban (7A pour 5m). Un interrupteur permet une commande hardware de la mise en marche. Derrière il y a un fusible de protection 5x20mm. Un régulateur de tension à découpage vient abaisser la tension en +3.3V pour alimenter la CoreBoard.
La commande
Le microcontrôleur, un PIC24FJ64GP202, communique avec l’application grâce à un ATWINC1510, un module Wi-Fi de chez Microchip. Ces deux C.I. communiquent en SPI. Lors de la réception de donnée de couleur, le PIC modifie les PWM, via le module dédié, qui commandent des transistors MOSFET qui commandent le ruban. Ce dernier est connecté via un connecteur Molex µFit 2×2. Tous les C.I. sont alimentés en +3.3V. Deux modules de commande de puissance permettent, pour l’un, d’éteindre physiquement le module Wi-Fi pour le redémarrer dans le cas ou le RESET ne fonctionne pas, pour l’autre d’éteindre l’afficheur OLED.
Le boitier a 3x variables d’états de prévues qui sont retranscrits à l’utilisateur par 3x LED :
- Un état Host ou AP qui détermine l’état du système. En Host, le boitier est connecté à un réseau Wi-Fi et peut recevoir des data d’application. Si aucun réseau Wi-Fi n’a pu être atteint, alors on passe en mode AP (Access Point) et le boitier émet son propre réseau Wi-Fi. C’est alors le téléphone de l’utilisateur qui doit s’y connecter avec pour objectif de reconfigurer correctement le BIL pour pouvoir retourner en mode Host. Une LED bicolore permet d’informer l’utilisateur d’un mode ou l’autre. Tu me suis ?
- Un état d’erreur si une erreur critique est survenue.
- Un état Locked : les premiers essais de la version stable devront déterminer si ce mode est pertinent ou non, car ce mode est ici pour verrouiller d’une certaine manière la mémoire d’un BIL afin de prévenir le cas où plusieurs applications chercheraient à modifier un même paramètre en même temps.
La communication entre l’application et le BIL se fait exclusivement en réseau local. Pas de WAN.
Une extinction logiciel étant possible, une LED blanche vient donner un témoin On/Off.
EEPROM
Une mémoire EEPROM I²C permet de stocker la configuration et les informations du BIL. Cette mémoire stocke aussi bien le nom d’hôte et la version que l’adresse IP et les informations du Wi-Fi.
Surveillance de la température
Un capteur de température est présent et permet de récupérer la température du boitier pour éviter la détérioration des composants. Si le boitier atteint une température assez élevée, entrainant une température en interne plus chaude, un ventilateur viendra renouveler l’air.
Réalisation
Les PCB ont été conçus sous Altium Designer. Les deux circuits imprimés sont des deux couches traditionnels, avec une finition ENiG RoHS. La PowerBoard possède une épaisseur de cuivre de 70µm afin d’assurer une bonne résistance face au courant important requis par des rubans LED longs. La CoreBoard a une épaisseur plus classique de 35µm.
Le boitier a été conçu sur mesure sous SolidWorks et imprimé en PLA grâce à mon imprimante FDM.
Le PCBA et le boitier sont fixés par des vis, M2 ou M2.5, à l’aide d’inserts filetés insérés à chaud dans les pièces 3D.

L’application
L’application BIL en elle-même n’existant plus, si tu veux tout savoir je t’invite à aller consulter la page du projet Allotropy.