Skyduino:~#
Articles
projet, test, tutoriel

[Résumé] Comment cramer une led WS2812B

Bonjour tout le monde !

Après une semaine de recherches, de mesures et de tests, j’ai enfin pu établir une liste relativement exhaustive des choses à ne surtout pas faire, ou au contraire à faire obligatoirement quand on utilise des leds WS2812 ou WS2812B.

Avec du recul, je commence à comprendre pourquoi mon projet de ruban de leds RGB a fini en carnage électronique.

Je vous propose donc de voir ensemble la liste des bonnes pratiques liées à l’utilisation de leds WS2812B.
L’idée générale de cet article est de vous éviter tout un tas de mauvaise surprise que j’aurai souhaité ne jamais avoir.

Préparez-vous, la liste est longue 😉

Design électronique

Premièrement, l’alimentation des leds doit être de 5v. Pas 4.6v, ni 5.3v, mais 5v précisément.
En dessous de 5v les leds auront un comportement totalement aléatoire et au-dessus ça fera de la fumée.

Deuxièmement, un condensateur de découplage de 100nF doit être placé juste à côté de chaque led.
Les pistes entre les condensateurs et les leds doivent être les plus courtes possible, moins d’un centimètre dans l’idéal.
Si les pistes sont trop longues, les leds ne donneront pas de signe de vie, ou afficheront une couleur aléatoire.

Vous aimez les condensateurs ? Si oui ça tombe bien !
En plus d’un condensateur de découplage à côté de chaque led, il faut prévoir un gros condensateur de lissage sur l’alimentation.
Quand je dis gros, j’entends très gros, entre 470µF et 1mF.
Ce condensateur a pour mission de lisser le pic de courant lors du branchement des leds à l’alimentation.
Prévoir un condensateur de bonne qualité et avec une tension de travail d’au moins 15v. Le pic de courant est de l’ordre de plusieurs ampères. Ces petites leds consomment ~60mA chacune.

Pour finir il faut prévoir une résistance de 300 ohms en série avec la ligne DATA de la première led.
Il semblerait que l’entrée de données DATA des leds WS2812 ne demande qu’a cramer.

Design hardware

On serait tenté de faire un plan de masse et d’alimentation de chaque côté de la led pour avoir un maximum de dissipation thermique. Tout en ayant une bonne surface de cuivre pour supporter le courant qui va passer dans le circuit.

Pas de bol, le contrôleur intégré dans les leds WS2812B est placé physiquement sur la broche VSS (masse).
Par conséquent, s’il y a un plan de masse qui couvre la broche VSS il faudra beaucoup plus de chaleur pour la soudure à cet endroit.
Vous voyez venir le truc foireux ?

C’est le second effet Kisscool d’un dissipateur thermique, ça dissipe la chaleur, mais du coup pour souder un pad sur un dissipateur il faut encore plus de chaleur.
Je parlerai tout à l’heure des températures maximums de soudure et de fonctionnement, vous verrez à quel point c’est vicieux.

Conclusion : ne pas faire de plan de masse ou d’alimentation, juste prévoir des pistes un peu larges pour faire office de dissipateur thermique rudimentaire. Une piste de 50mils (1.27mm) semble être un bon compromis.
Si besoin, prévoir deux grosses pistes d’alimentation un peu plus loin sur le PCB pour acheminer la tension d’alimentation.

Achat, transport et stockage

Si vous pensiez avoir échappé aux problèmes après avoir fini votre schéma/typon vous allez être déçu.
Eh oui, en fait les choses peuvent mal tourner avant même d’avoir reçu les leds …
C’est ce qui s’est passé dans mon cas.

Les leds WS2812B sont sensibles à la moisissure et à l’humidité.
Elles doivent impérativement être stockées dans des sachets anti-humidité avant usage.
Et histoire de rendre les choses encore plus compliquées, elles ne doivent pas être stockées à plus de 30°C avec un taux d’humidité maximum de 60%.

Pour résumer, si vous contiez garder vos leds en vrac dans une boite à composants CMS c’est mort.
Et exit le stockage devant une fenêtre ou devant une sortie de ventilateur, sinon les leds finiront cuites façon légumes vapeur.

Mais même en stockant les leds dans un sachet adéquat ce n’est pas encore gagné …
Si les leds sont stockées plus de trois mois dans un sachet adéquat, ou si les leds sont gardées plus d’une semaine dans un sachet ouvert, il faudra les passer au four pour les déshumidifier.
Prévoir donc un petit tour au four pendant 12h à 60°C, ou 2h à 120°C.

Et ce n’est pas fini !
Après 24h à l’air libre, il y a un risque de craquèlement du vernis transparent sur le dessus des leds.
Or, si le vernis craque, les fissures couperont net les petits fils d’or qui relient les trois diodes de couleur à l’intérieur de la led avec le contrôleur intégré.

Encore mieux, même dans des conditions idéales de stockage il faut prévoir environ 5% de perte lors du soudage.
Oui 5%, ça me parait énorme, mais d’après tous les forums que j’ai pu trouvé c’est bien le cas.
Personnellement, j’ai eu 4.5% de perte lors de la soudure de mes cartes, on est donc bien dans les environs de 5%.

Conclusion : bien choisir son fournisseur et prévoir au moins 5% de marge.
Dans le doute, prévoir aussi un petit tour au four pour déshumidification si la durée de stockage côté fournisseur n’est pas connue.

Remarque : le sachet de transport/stockage doit être antistatique et anti-humidité.
Les leds WS2812B sont très sensibles aux décharges d’électricités statiques.

Soudure – au four de recuisons

Les leds résistent jusqu’à une température de 260°C.
Jusque là rien de bien étonnant, c’est la température maximum standard pour une led CMS.

Alors oui … mais non en fait, le fabricant conseille une température maximum de 240°C
Pour 260°C c’est dans une limite de temps de 10 secondes maximum.
Et idéalement pour la soudure c’est 220°C, mais que pour 60 secondes maximum.

En gros les leds ne résistent que jusqu’à 220°C, et encore, pour 60 secondes max, mais 260°C ça fait plus joli sur le datasheet donc voilà.

Quizz – Que ce passe-t-il si on chauffe trop ?
Si on chauffe vraiment trop (>260°C), le plastique des leds fonds et on se retrouve avec un joli cookie en plastique.
Si on chauffe trop longtemps (>60s @220°C ou >10s @260°C), le vernis transparent sur le dessus de la led risque de craqueler, tuant la led à coup sûr.

Dans tous les cas, il ne faut pas effectuer plus de deux passages au four de recuisons, sinon le risque de tuer les leds augmente exponentiellement.

Conclusion : prévoir une soudure avec un point de liquéfaction dans les environs de 220°C et respecter au degré et à la seconde prés le profil de recuisons ci-dessous :

reflow_graph_ws2812b

Soudure (ou retouche) – au fer à souder

Imaginons que vous n’avez pas de four de recuisons, ou que vous avez une petite retouche à faire sur une des leds.
Je vous préviens de suite, ce n’est même pas la peine d’essayer.

Le fer à souder doit être réglé à une température maximum de 300°C.
Lors de la soudure, il ne faut pas toucher le plastique autour de la led sous peine de le faire fondre.

La soudure/retouche doit être faite d’un seul coup.
Le fabricant ne garantit pas la survie de la led si la pointe du fer est mise en contact avec les broches de la led plus d’une fois.
Étant donné qu’une led WS2812B comporte 4 broches, cela rend toute soudure à la main impossible.

Mais ce n’est pas le plus drôle.
L’unique point de soudure doit être réalisé en moins … de 3 secondes.
Au-dessus de 3 secondes à 300°C, le contrôleur intégré risque d’être endommagé définitivement.

Conclusion : oubliez le fer à souder, même pour faire une retouche, vous risquez d’empirer les choses.

Remarque : souder un composant à la main (avec un fer à souder) sur la carte à proximité d’une led est très risqué.
Dans mon cas j’ai manifestement signé l’arrêt de mort de plusieurs leds à court terme en soudant les condensateurs de découplage à la main de l’autre côté de mes cartes.

Alimentation et mise sous tension

Même si à ce stade rien n’a encore cramé vous n’êtes pas sorti d’affaire.
En effet, plusieurs points importants doivent être respectés si on ne veut pas cramer une led.

Premièrement, tout ce qui rentre en contact avec les leds doit être antistatique (« ESD safe »).
Que ce soit le sachet lors du stockage, le fer à souder / four de recuisons, le plan de travail, etc.

Deuxièmement, tout câblage ou manipulation des leds doit se faire hors tension.
Dans le cas contraire le risque de cramer l’entrée DATA de la première led d’un ruban est très élevé.
Après tests, j’ai remarqué qu’il suffisait de retirer VCC tout en gardant DATA à « 1 » pour cramer une led.
Il manque manifestement une diode de protection sur DATA à l’intérieur du contrôleur intégré.

Conclusion : pas de câblage sous tension et pas de tests en post-assemblage avec un montage de type « pogo-bed » (ou alors prévoir un bouton pour couper proprement l’alimentation entre deux cartes à tester).

Pour finir, il est impératif de ne PAS brancher les leds à une alimentation d’atelier tant que celle-ci n’est pas stabilisée. Même une alimentation de grande qualité met quelques secondes avant de se stabiliser.
Si lors de la mise sous tension un pic de tension se crée, cela peut détruire instantanément tout un ruban de leds.
PS Cet avertissement vaut pour tout montage alimenter au moyen d’une alimentation d’atelier 😉

Documents intéressants

Le pseudo-datasheet des leds WS2812B :
https://dl.dropboxusercontent.com/u/53604363/ws2812b/WS2812B_preliminary.pdf
(je n’appelle pas ça un « vrai » datasheet vu le nombre de pages, mais le fabricant ne donne rien d’autre …)

Les consignes de soudure / montage d’un grand constructeur de ruban de leds WS2812B :
https://dl.dropboxusercontent.com/u/53604363/ws2812b/WS2811RGB_WS2812_manual.pdf

À présent si vous manipulez des leds WS2812B vous devriez pouvoir éviter un bon paquet de mauvaises surprises 😉

Mes quelques recherches et tests confirment mes premières impressions : ces leds sont vraiment pratiques et vraiment pas chères … mais aussi vraiment chiantes et sensibles.
En plus le manque total de documentation constructeur n’aide pas.

Concernant mon projet de light-painting HD j’ai décidé de le continuer. C’est un trop beau projet pour être abandonné. Je vais par contre laisser tomber les rubans de leds fait maison pour des rubans de leds tout près.
C’est tout de suite beaucoup moins DIY et un peu plus « lego », mais au moins je sais que ça marchera au final.

Advertisements

Discussion

20 réflexions sur “[Résumé] Comment cramer une led WS2812B

  1. tout ceci me semble mériter un bon (╯°□°)╯︵ ┻━┻

    Publié par f4grx | 9 juin 2014, 12 h 11 min
  2. Je suis content de voir que qu’ après un « carnage électronique », ton projet n’ est pas abandonné !

    Publié par EKYN0X | 9 juin 2014, 19 h 08 min
  3. Les ws2812S (celles des neopixels) sont vachement plus résistantes: même après soudure d’un connecteur (sur une matrice) très proche d’une LED, j’ai eu aucun problème. Elle ont aussi passé pas mal de temps dans une pièce humide, je les ai maltraitées avec une alim ATX modifiée (c’est mon alim DIY, 35A sous 5v, avec un petit pic de tension à l’allumage), je n’ai mis aucune protection sur les lignes DATA, et elles marchent encore nickel ! (même en pleine luminosité pendant 1h, avec un refresh toutes les 10 sec.) Par contre, elles ont 6 broches (faudra refaire les PCB …), et je connais pas le prix des WS2812B, mais les WS2812S sont à 4.5€ les 10 (chez Adafruit, livrées dans la bonne protection et tout).
    Bonne chance pour la suite du projet !

    Publié par 0gex | 9 juin 2014, 21 h 14 min
  4. Hello,
    Avec tous les déboires que tu as eu lors de la réalisation des cartes, tu n’as pas de craintes par rapport à la durée de vie des leds qui auront survécues à la soudure ?

    Publié par JP | 10 juin 2014, 9 h 18 min
  5. J’ai souder des WS2812 environ une quarantaine en comptant les pertes ^^ avec des tres grosses pistes a vcc et gnd a certain endroit de mon pcb. Mis a part quelques led HS (3 4 environs) le reste marche tres bien ^^ souder a la main avec un fer 15W. Voila mon petit retour d’experience ^^

    Publié par Clement | 11 juin 2014, 4 h 24 min
  6. Bonjour,

    J’ai également soudé des WS2812B à la main sur un PCB fait maison. Sans perte et sans précaution particulière. Fer Weller thermostaté 50W. Le PCB est dans un tiroir, à poil et je l’ai passé à plusieurs copains sans précaution particulière pour essai. Voir ici : http://modelleisenbahn.triskell.org/spip.php?article70

    Pour mon projet j’ai utilisé des rubans. Pas de pb particulier. Je n’ai pour l’instant pas de résistance sur l’entrée DIN. Son rôle est d’éviter la réflexion du signal si le fil est long. On peut ajouter une résistance de 10kΩ entre DIN et la masse pour éviter que des trucs passent sur DIN quand le micro n’a pas encore programmé le port en sortie. Par contre je mets toujours les LED sous tension avant l’Arduino.

    Publié par jlb | 17 juin 2014, 16 h 20 min
  7. Salut Skywodd,
    Pour faciliter les soudires CMS il existe des pâtes basse température :
    http://fr.farnell.com/edsyn/cr11/solder-paste-cms-no-clean-10g/dp/2131462
    T° fusion = 138°C 😉

    Publié par battooo | 2 juillet 2014, 21 h 20 min
  8. Bonjour,

    J’ai récemment acheté chez DFRobot un ruban 60 LED RGB avec ces LED et, pas de soucis majeur.
    L’alime est une alime de PC très bas de gamme de récupe (passée pour HS).
    Je met l’alime sous tension, l’Arduino, étant alimentée sur le 5V SB, s’allume et, c’est l’Arduino qui pilote l’alime.
    La broche DATA est directement connectée à l’Arduino.
    En prime, le tout est piloté par une télécommande 🙂
    Par contre, la chute de tension est énorme dans le ruban ….. obligé de connecter la sortie du bandeau avec l’entrée
    sinon bah j’ai un dégradé de couleur si je met les 3 couleurs (blanc).

    Si j’ai bien compris, le mieux serais de placer une résistance en série de 300Ohm environ sur la ligne DATA ?

    Les 60mA c’est la LED avec les 3 couleurs simultanées ou uniquement une couleur ?
    Sur le sachet j’avais 15W/m donc 45W sous 5V => 9A…..

    Merci de ces infos 🙂

    Cordialement,
    Le réparateur de PC

    Publié par lereparateurdepc | 3 septembre 2014, 20 h 28 min
    • >> Si j’ai bien compris, le mieux serais de placer une résistance en série de 300Ohm environ sur la ligne DATA ?

      Oui, sinon le premier pixel ne va pas durer longtemps.

      >> Les 60mA c’est la LED avec les 3 couleurs simultanées ou uniquement une couleur ?

      60mA par led avec couleur blanche (donc 3 leds RVB allumé à pleine puissance)

      Attention à la stabilité de l’alimentation, moi par exemple j’ai une alimentation régulé 5V 45A (elle sert pas seulement au ruban de leds, d’où la puissance énorme).

      Publié par Skywodd | 3 septembre 2014, 21 h 02 min
  9. Bonjour,

    Mon expérience est quelque peut différente, j’avais acheté mi 2013 2 rouleaux de 1000 WS2812S, étant pris par le temps j’ai réapprovisionné fin 2013 des modules prémontés sur CI WS2812B (prix sensiblement équivalent).
    C’était une bonne idée pour le délai mais j’ai été très déçu: 10% des modules ne fonctionnaient pas d’origine, et j’ai eu des pannes à répétitions sur ces modules. Il semblerait que les « premier » WS2812B avait des « problèmes », mais comme il n’y a pas de marquage sauf si on achète des rouleaux de 1000 composant nus, il est totalement impossible de savoir de quand ils datent donc si ce sont des mauvais ou des corrigés…
    De plus les modules sont très petits (http://i01.i.aliimg.com/wsphoto/v1/1535861475_1/1000x-LED-With-Heatsink-WS2812B-10mm-3mm-5050-SMD-RGB-WS2811-IC-Built-in-DC5V.jpg_350x350.jpg) et il est impossible de souder des fils de plus de 0,24² ce qui est tout juste suffisant pour une ligne de 20 pixels.

    Cette année j’ai un petit peu plus de temps et j’ai utilisé mes WS2812S, après quelques problèmes de température de refusion, j’ai utilisé une pâte à souder (138° de température de fusion) qu’il faut passer au four 210° pour que ça soude correctement. J’ai fait 500 pixels, et j’en ai eu un qui ne fonctionnait pas (on est pas dans les mêmes ordresde grandeur!!!).
    Il est vrai que je n’ai pas utilisé le schéma « constructeur » mais remplacé la résistance pour l’alim de 150 ohms par une 1k ohms et ajouté une résistance de 27 ohms sur l’entrée et la sortie data.

    j’ai commencé à monter mes guirlandes de 4 m avec 27 pixel espacé de 15cm en fils de 0.5² , une alimentation 5A dédiée à 2 guirlandes (il ne faut pas utiliser un grosse alim centralisé s’il y a de grandes distances, les chutes de tension sont trop importantes).

    Pour le moment tout marche parfaitement, je verrais le résultat après les fêtes…

    Sur les distances supérieures à 5 m entre sortie TTL du contrôleur (j’utilise un Arduino: Teensy 3.1 avec buffer HCT), je fais une conversion en RS422, pour celle supérieure à 20 cm et moins de 5m j’ajoute une résistance de 100 ohms au 2 extrémitées de la ligne data, c’est ce qui me donne le meilleur résultat.

    Publié par gef77100 | 22 novembre 2014, 23 h 09 min
    • re,

      Sur ma guirlande cité plus haut :
      Pour la chute de tension, je suis obligé de reboucler l’alim 5V sur le côté sortie sinon
      dès que je met la couleur blanche, j’ai un joli arc-en-ciel 🙂 ;de plus, les conducteurs
      utilisés par le fabriquant ainsi que les connecteurs sont mal dimensionnés; il chauffe énormément
      avec la couleur blanche ……

      Autre question, j’ai envisagé un relais pour couper électriquement la guirlande en cas de défaut de l’alim ou du 5V
      mais j’aimerais savoir si ça ne pose pas de problème si je ne coupe que le +5V ? Si je coupe 5V et masse
      je risque de griller ma ligne DATA ?

      @gef77100 « pour celle supérieure à 20 cm et moins de 5m j’ajoute une résistance de 100 ohms au 2 extrémitées de la ligne data »
      -> En série sur la ligne data ou entre le 5V ou masse et le DATA ?
      Si c’est en série, j’ai mis, sur les conseils cités plus haut, une résistance de 330 Ohm en série avec ma carte Arduino. La sortie DATA n’est pas utilisée et reste libre.

      Merci à vous

      Cordialement,
      Le réparateur de PC

      Publié par lereparateurdepc | 23 novembre 2014, 8 h 37 min
      • J’ai essayé le rebouclage d’alim, mais ça pose pas mal de problème: en fait la tension d’alim chute de pixel en pixel, et si on reboucle à partir du milieu la tension remonte et là ça se passe souvent mal. la solution si c’est possible c’est de couper la bande de chaîner le data via un buffer HCT genre 74HCT245 pour remettre le data à niveau et de faire une nouvelle alimentation. Il faut faire attention à la chute de tension par le câble d’alim, si toutes les câbles d’alim sont de la même longueur on peut monter la tension d’alim pour compenser. Pour les WS2812S la tension peut dépasser les 5V sans problème elle est donné pour 7V, perso je n’ai pas dépassé 5,5V.

        Pour les résistances sur la ligne data, je préfère 100 ohms à chaque extrémités qu’une seule de 330, à l’oscilloscope c’est qui donne le meilleur résultat. Mais ça ne va pas au-delà de 5m, et encore il ne faut pas utiliser de câble torsadé, du cable standard d’alim 3×0.75² ça va bien.

        Pour la coupure d’alimentation, j’ai (à l’expérience) fait un peut plus compliqué sur mon testeur pour permettre des débranchements et rebranchements rapides:
        j’utilise un module Arduino 4 relais: un par fil masse, Data-Out, Data-In, +5V
        au repos la ligne Data -In (de la bande ou du pixel) est relié par le relais à la masse du pixel via 10K ohms
        pour le démarrage je connecte la masse, puis le Data-In (du pixel) puis le Data-Out du pixel et enfin l’alim +5V
        pour l’arrêt je coupe le +5V , le Data-Out du pixel, le Data-In du pixel, et enfin la masse.
        j’ai mis 2 secondes entre chaque étapes et ceci après avoir envoyé une trame d’extinction.

        Si c’est pour protéger en cas de problème d’alim, je pense que compte tenu de du temps de décharge des capas tu peux avec le circuit de surveillance de l’alim enclencher cette séquence avant de couper l’alimentation elle même.

        Publié par gef77100 | 23 novembre 2014, 9 h 11 min

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

Skyduino devient Carnet du Maker

Le site Carnet du Maker remplace désormais le blog Skyduino pour tout ce qui touche à l'Arduino, l'informatique et au DIY.