= Projet 2 - Lumière photo 200W

Et c'est reparti pour un tour avec un nouveau projet.

== contraintes

Ce projet doit inclure :

- Un MCU de notre choix (Sûrement un RP2040)
- Un moyen pour l'utilisateur d'interragir avec le système
- Un moyen pour l'utilisateur de voir ce qu'il se passe (Une IHM)
- Utiliser un ou plusieurs capteurs qui communiquent avec le MCU

Possibilités :

Avec ce nouveau projet on a aussi plus de possibilités. *Si le projet les justifient* on peut par exemple :

- Faire un PCB plus grand que 3x3
- Utiliser autre chose que du FR-4 (ex alu pour la temperature)
- Utiliser des composants un peu plus marrants
- Utiliser 4 couches au lieu de 2

(Possibilités à faire valider par les profs évidemment)

== Idée de projet :

Je suis photographe et un des équipements indispensables pour un photographe outre l'appareil et les objectifs, c'est de la lumière !

Les lumières sont un élément très important et absolument nécessaire pour tout travail de shooting photo avec des humains ou des produits.

En général pour la photographie pure on va sur des flashs. C'est une option assez abordable qui permet d'avoir une grande puissance pour chaque photo. Cependant je fais aussi de la vidéo et j'aimerais ne pas utiliser un flash pour avoir une idée de mon exposition tout le long.

En plus les flash demandent de se recharger et donc pour du focus stacking par exemple ca allonge énormément la durée d'une prise photo.

Bref il me faut une source de lumière continue.

En plus de ca j'aimerais que ma source de lumière continue soit portable. Je n'ai pas de studio et donc je dois régulièrement me déplacer et pour cela une lampe qui a besoin d'une prise secteur est très limitante.

Il se trouve que j'ai déja acheté des lights portables de 100W et je n'en était pas content. Elles avaient soit une batterie horrible et propriétaire, soit des problèmes de surchauffe soit simplement pas assez puissante ou trop chères.

Le but de ce projet est donc de faire une source de lumière continue portable et puissante avec des batteries interchangeables et bicolore.

(Une lampe vidéo bicolore permet de règler la température de la lumière (sa "chaleur") ce qui est crucial pour la vidéo et la photo.)

== Composants requis :

- Led ou Leds bicolores puissantes (Found)
- Driver de leds assez puissant pour driver la/les leds (Found)
- Micro controlleur (Found)
- Radiateur conséquent pour reffroidir la/les leds (Found)
- BMS pour le pack de batteries (Found)
- Un FET pour couper l'arri£vée de la batterie quand le BMS detecte un problème (Found)
- Optocoupleurs pour isoler le MCU (Found)
- Buck pour l'alimentation du MCU (Found)
- Buck pour alimenter les ventilateurs (Found)
- Capteurs de température pour monitorer la light (Found)
- Boutons et potentiomètres pour interragir avec la light (Found)
- JST divers pour les balance plug batterie et ventilo
- Ecran 
- Cellules 18650 pour faire l'alimentation ou pack de batteries 13S

Ca fait un paquet de composants sans compter les composants passifs à ajouter pour faire fonctionner toute l'histoire

== Composants possibles :

Il y a des features qui seraient juste incroyables à rajouter même si ca parait complexe avec le temps impartit

- Un controlleur USB power delivery pour permettre d'alimenter la light avec de la puissance
- La recharge du pack de batteries directement depuis le PCB (Avec une alimentation USB PD)
- Un ecran sympa qui permette une vraie IHM
- Un heatsink custom faits exprès pour la matrice de LEDS

== Choix des composants

=== LED 

Pour commencer je pense que le mieux c'est d'aller chercher des LEDS.

J'adorerais utiliser un seul module LED comme les marques de lights utilisent en général, mais je n'ai pas trouvé de module assez puissant sur mouser ou digikey qui soit aussi bicolore.

J'ai trouvé des modules plutôt puissants que l'ont peut utiliser en les additionnant en revanche.

Ce modèle est de loin le plus intéressant : CTM-22-4018-90-36-TWD6-F3-3

Mouser nbr: 896-CTM224189036TWD6

#image("assets/LED.png")

C'est un module LED bicolore qui peut envoyer jusqu'à 25W sur chaque channel donc 50W au total.

Si on en prend 4 ca fait une puissance max de 200W ce qui devrait être tout à fait digne comme light. 200W en général c'est le genre de lights qu'on trouve rarement en version portable. Cela est donc un projet plutôt fun.

En plus on peut très bien imaginer une version de 50W avec un seul module et beaucoup plus petit vu que on aurait besoin de beaucoup moins de puissance en refroidissement.

Si on en achète 10, le prix unitaire est de 9.12CHF. Donc 40Chf de LED

==== Specs

28mm/28mm Ou 56x56mm pour un array de 4

25W par channel
En utilisation pleine balle typique:

1.4 ampères à 36V

Maximum

1.7 ampères à 38.7V

Mais c'est la consommation totale. Cela veut dire que par channel c'est plutôt 700mA voire 850mA. Et ca c'est très important pour choisir notre driver de led ensuite.

=== Driver LED

Pour le driver on a plusieurs options. 

On a besoin d'au moins deux channels pour pouvoir contrôler la température de la LED. Ou alors deux petits drivers.

Il doit pouvoir gèrer 2 Ampères de courant à une tension élevée. (En général les drivers sont compatibles avec des entrées jusqu'à 60V). Ou alors 1 Ampère et on utilise deux drivers par led.

L'idéal serait un énorme driver qui s'occupe de tout. 2 Channels qui peuvent supporter 4 Ampères chacuns. Mais de ce que j'ai vu c'est beaucoup plus simple de trouver des petits drivers 1 channel 1 Ampères.

J'ai donc décidé de partir sur un chip qui s'occupe d'un channel d'une LED. C'est un chip peut onéreux qu'il faudra acheter 8X.

Ce chip c'est le : ZXLD1366

Mouser nbr : 522-ZXLD1366ET5TA

#image("assets/image-6.png")

C'est un petit chip très simple qui fait Buck et qui serait parfait pour notre utilisation

==== Specs

Entre 6 et 60V d'alimentation (Parfait car la Led demande un peu moins de 40V cela veut dire que on peut brancher un pack de batterie 13S et n'avoir besoin que de Buck)

Courant continu max recommandé : 1 Ampère (Au dessus des 850Ma demandés dans le pire des cas par la LED)

Température max : 125 degrés (Les Leds produisent beaucoup de chaleurs mais elles ne seront pas sur le même PCB)

Contrôle de l'intensité lumineuse : 0.3v à 2.5V (mais peut supporter 6V sans brûler immediatement) Ca permet de contrôler l'intensité lumineuse directement avec le DAC du RP2040

Il est disponible en package très compact et simple avec 5 pins (C'est un vrai bon point pour moi qui suis encore débutant en conception)

Prix unitaire : Pour 10 unités 1.35CHF ou à peu près 11Chf par PCB

Je suis sûr qu'il existe des chips moins onéreux qui peuvent faire la même chose, mais pour la V1 je suis sûr que ca ira très bien avec celui ci et sa simplicité est un vrai +

==== Composants accessoires 

Pour ce composant il nous faut une resistance de 0.24Ohm Entre VIN et Isense et elle doit être plutôt précise (1% de deviation max selon la datasheet)

On a calculé ca en sachant que chaque channel de LED ne devrait pas consommer plus de 0.850A. Dans la doc on a une valeur de 0.2V de voltage drop donc 0.850 = 0.2/RS donc RS = 0.235ohm

On peut aussi voir que la dissipation sur 0.2V est de P=I2R=0.85^2x0.24≈0.17 W

J'ai donc trouvé celle la :KDV12DR240ET mouser nbr: 588-KDV12DR240ET

Elle est de 0.240ohm avec 0.5% de précision et peut dissiper 0.5W donc on est large.

On a aussi besoin d'une shottkey. Ils proposent d'utiliser une B3100-13-F Mouser nbr: B3100-13-F qui est une diode qui supporte +100V et 3A.

On a aussi besoin d'une self de 150uH et surtout qui puisse gèrer le courant demandé. J'ai trouvé la DR127-151-R Mouser nbr: 704-DR127-151-R

Elle est capable de gèrer 3A mais des options plus petites coutent cher. Mais ca va être un challenge de tout faire tenir sur un PCB pas trop gros...

On a aussi besoin d'une capa de découplage proche de Vin de 10uF. En soit c'est un capa normal mais il doit gèrer potentiellement 55V en entrée donc on doit selectionner un capa un poil plus baleze que d'habitude.

J'ai trouvé celui la : 865060845002 Mouser nbr: 710-865060845002, il gère le 100V donc on devrait être tranquille.

Il est aussi mentionné qu'un capa entre les deux pads de la LED peut être intéressant, le capa est de 1uF et doit aussi gèrer une haute tension. Le 865081740001 Mouser nbr : 710-865081740001 gère du 80V

=== Refroidissement

La dissipation de la chaleur/energie que les leds produisent est un veritable problème.

Les LEDS ont une efficicence d'environs 20% ce qui veut dire que 80% de l'énergie part en chaleur. Donc pour 200W on aurait 180W de chaleur produite.

Pour dimensionner le refroidissement on va partir sur une base de 200W avec une température ambiante de 30 degrés. Cela devrait nous donner un refroidissement efficace.

Les leds ont été testées pour fonctionner à 100% jusqu'à 85 degrés. Cela veut dire qu'on a droit à une différence de température de 55 degrés.

La resistance thermique de nos LEDS est de 0.27 ce qui nous fait une montée de 13.5 degrés

On estime l'epoxy thermique qui va les fixer autour des 0.1 ce qui ajoutes 5 degrés.

Il nous reste donc 36 degrés avec lesquels jouer et 36.5 / 200 = 0.182...

Et 0.182 C'EST VRAIMENT PAS BEAUCOUP !! 

On peut déja oublier un heatsink passif. Pour référence un ventirad inclus avec l'achat d'un intel core i5 peut dissiper environs 65W et chat Gpt estime que sa RTH est de 0.8 à 1.2 AVEC UN VENTILATEUR !!

Et nous on doit trouver une solution compacte qui soit autour des 0.18...

Après un long moment de recherche, l'option d'un ventirad pour serveur parait la plus evidente et la plus logique niveau côut. En effet ils sont faits en grande quantité et sont faits pour gèrer des CPU qui peuvent envoyer plus de 200W de puissance.

J'ai jeté mon dévoulu sur un ventirad de threadripper le : `Arctic Freezer 4U-SP5` qui côute 60Chf sur digitec.

Je voulais prendre un ventirad noctua, mais même des ventirads faits pour des threadrippers ne sont parfois pas suffisants pour refroidir autout de puissance.

SINON autre option bien moins volumineuse serait ce produit https://www.conrad.ch/fr/p/dissipateur-en-profile-fischer-elektronik-la-6-150-al-10015838-0-3-k-w-l-x-l-x-h-150-x-75-x-62-mm-1-pc-s-166111.html

C'est une extrusion d'aluminium qui a un thermal rating de 0.3 K/W. C'est juste un peu trop mais si j'arrive à trouver une version un poil plus grande ca serait nikel, et sinon on peut simplement ajouter un ventilateur et cela ferait descendre la resistance thermique assez bas pour être utilisable. Cela veut aussi dire que comme la surface de contact est grande, on pourrait mettre le PCB et les LEDS dessus.

Mon choix s'est porté sur le Dynatron A51. C'est un refroidisseur en cuivre pur et qui est fait pour des processeurs de serveur. 

Il est disponible sur digitec pour environs 55CHF et il a un TDP de 205W. Si on y ajoute un ventilateur qui souffle dans l'axe des ailettes on arrive à une resistance thermique suffisante pour nos leds et il est très compact !!

C'est la meilleure option je pense.

Lien digitec : https://www.digitec.ch/fr/s1/product/dynatron-a51-refroidisseur-cpu-1u-pour-socket-sp6-passif-27-mm-ventirad-processeur-39319613

#image("assets/image-5.png")

=== MCU

Comme on a pas besoin de communication sans fil pour ce projet, le RP2040 est le MCU de choix !

Il est très peu cher (65 centimes à l'unité) et il est largement assez puissant pour tout ce qu'on pourrait lui demander 10X.

J'ai l'habitude de l'utiliser et j'en ai toujours été très content.

Mouser nbr : 358-SC091413

#image("assets/image-3.png")

ATTENTION !! Le RP2040 n'a pas de DAC et d'output analogique. Il faut donc soit prévoir un DAC soit utiliser un système RC en utilisant du PWM et un filtre passe bas avec un diviseur résistif et une capacité.

Chat GPT propose une installation de ce style : 

```
GPIO (PWM) ── R ──┬── Analog Out
                  |
                  C
                  |
                 GND
```

==== Composants accessoires

Pour que notre MCU fonctionne il a besoin de plusieurs composants comme de la flash et un quartz.

Pour la flash on va prendre IS25LP032D-JNLE-TR mouser nbr: 870-IS25LP032DJNLETR

Cela nous donnera 4MB de flash ce qui devrait être largement suffisant pour tout ce dont on a besoin.

Si on veut un jour avoir un ecran plus haute resolution, on peut toujours imaginer passer sur une flash plus grande ou avoir une NAND de 512MB ou carrement plusieurs GB si necessaire.

Pour le crystal, il est fortement recommandé d'utiliser celui la : ABM8-272-T3 mouser nbr: 815-ABM8-272-T3

C'est celui qui est utilisé pour les pico donc ca devrait être parfait ici.

=== BMS

Pour la batterie, je pense que le mieux est de partir sur une batterie 13S. Cela représente une tension nominale de 48V avec une tension max un peu en dessous de 55V et une tension min de 39V.

Pourquoi? Et bien par ce que notre LED va tourner dans les alentours de 36V, et que donc si on envoie minimum 39V cela veut dire qu'on peut utiliser un driver assez simple qui ne fait que Buck et qui a de la marge avec le voltage drop.

Cela simplifie pas mal tout le système (à part pour l'encombrement qui demande donc 13 cellules). Même à 200W cela veut dire que on n'aura jamais plus de 5 Ampères à nimporte quel endroit du circuit ce qui est gèrable sur un PCB classique. Et dans les faits l'alimentation de la batterie sera splitée en 8 immediattement donc on aura des pistes de 1A.

Pour ca il faut donc un BMS qui peut gèrer 13 cellules.

Le modèle que j'ai trouvé et qui a l'air pas mal est le BQ7694006DBT.

Mouser number : 595-BQ7694006DBT

#image("assets/image-7.png")

Il est fait pour gèrer jusqu'à 15S.

Clairement le mieux serait qu'il soit directement sur la batterie et pas sur le PCB car il ne pourra pas nous sauver de tout les problèmes. On pourrait aussi croire que ce chip nous permet de charger les batteries mais pas du tout, c'est plutôt un genre de douanier qui vérifie l'état de notre batterie en continu et qui est prêt à tout couper dès la moindre anomalie.

Cette partie est à discuter avec mon prof car je vois que au niveau de la sécurité c'est un peu plus compliqué que ce que j'ai l'habitude d'utiliser. Avec les drones c'est un peu YOLO, on a un chargeur en qui on fait confiance et ensuite le BMS en vol c'est nous.

=== FET

Pour protèger notre système, il faut un moyen de déconnecter la batterie du circuit.

Pour ca il nous faut un MOSFET fait pour la gestion de puissance et c'est des composants vachement plus gros que ce que j'aurais pensé. Un Mosfet de base a une resistance de plusieurs OHM et avec 200W qui passent à travers ca fait non seulement une perte significative mais en plus c'est beaucoup de chaleur créée dans un petit package.

On veut aussi un N channel MOSFET pour que le courant ne passe que quand on le veut. Cela veut dire que si le BMS pour une raison ou un autre se déconnecte, par sécurité on va couper le courant et pas laisser passer par défaut.

J'ai trouvé ce composant qui me semble parfait. le 637-DI035N10PT-AQ

Mouser nbr: 637-DI035N10PT-AQ

#image("assets/image-2.png")

Le BMS qu'on a choisi (BQ7694006DBT) a une sortie qui peut driver des FET à 10-12V ce qui est la tension nécessaire pour driver notre FET.

ATTENTION pour pouvoir driver ce FET avec la pin de notre BMS il faut mettre notre FET en configuration LOW SIDE (donc du côté - de la batterie) 

#image("assets/image.png")

Ci dessus, on a un exemple de cablage avec le BMS et un MCU.

Dans les faits notre BMS est une version un peu plus complexe mais le principe est le même.

#image("assets/image-1.png")

Mais après verfications, le RP2040 consomme un peu trop pour être alimenté par le LDO du BMS. Il y aura donc besoin d'un buck exprès pour lui.

=== FET (High side)

En fait il m'a été expliqué que au niveau électrique, couper le GND de certains composants avec des tensions plutôt hautes encore connectés avec des composants toujours sous tension c'est pas la meilleure idée.

Exemple, si on prend notre MCU alimenté par le BMS, on peut se retrouver dans une situation ou les drivers de leds envoient du 55V sur les GPIO et c'est bof.

Pour éviter ce problème, deux solutions : 

1. Isoler les deux circuits avec des diodes ou des optocoupleurs.
2. Mettre un PMOS du côté + de la batterie.

Comme je n'ai pas envie de mettre un Pmos high side il faut donc trouver des optocoupleurs pour les signaux entre le MCU et les drivers de LED ainsi que pour le signal du ventilo.

==== Specs

Ici je vais mettre les valeurs des absolute maximum ce qui ne devrait pas être représentatif du chip en utilisation mais c'est pour montrer à quel point il est overkill

- Tension max : 100V (on ne devrait jamais depasser les 55V avec notre pack 13S)
- Il peut dissiper 25W
- 13Mohm (P=I2⋅RDS(on)=52⋅0.013≈0.325W) on est LARGE pour nos 5 Ampères

C'est très clairement un chip très overkill mais il n'est pas très cher (64cts pour une pièce) et je n'ai pas trouvé moins balèze qui soit suffisant.

Note: IGBT 

=== Buck 3.3V

Le Rp2040 peut consommer jusqu'à 100mA ce qui est trop pour le LDO de notre BMS.

Il nous faut donc un Buck qui puisse fournir 3.3V à partir du potentiel 55V en entrée.

J'ai trouvé ce chip : RAA2118034GP3\#JA0

Mouser nbr : 968-RAA2118034GP3JA0

==== Specs

Tension acceptée en entrée : 80V
Courant : 300Ma (Le Rp2040 ne consomme pas plus de 0.1A en principe)
Il fonctionne jusqu'à 125c
Il n'a pas besoin d'être paramètré. C'est un chip qui a une sortie 3.3V fixe.

==== Composants annexes

On a besoin d'un capaciteur en entrée de minimum 4.7uF. Je pense donc partir la dessus.

Pour que l'enable soit toujours UP, on peut utiliser un diviseur resistif ou tout simplement le brancher directement sur VIN.

Pour le choix de l'inductance pour être parfaitement honnête je n'ai pas tout compris mais ils proposent un modèle :

74404054330
mouser nbr: 710-74404054330

Pour la shotkey on va utiliser le modèle proposé également 

BAS100CS_R1_00001
mouser nbr: 241-BAS100CSR100001

Pour les capa de sortie on peut utiliser deux capa de 22uF en paralèle.

=== Ventilateur

Pour refroidir le système j'ai pensé à un ventilateur noctua. C'est les mêmes prix que chez Mouser pour des ventilateurs classiques mais la on a un ventilo très silencieux et performant.

Je pense partir sur ce modèle :

https://www.digitec.ch/fr/s1/product/noctua-ventilateur-nf-p12-redux-1700-pwm-120-mm-1-x-ventilateur-pc-12826297

C'est 15CHF le ventilo ce que je pense correct

==== Specs

0-1700RPM contrôlable avec PWM
Opérations en 12V et 13.2V max
0.1A -> 1W de puissance demandée

Pinout:

#image("assets/image-8.png")

=== Buck Ventilos

En soit on pourrait très bien choisir de prendre un ventilateur 48V et ne pas avoir besoin de buck. Mais les ventilos 48V sur Mouser sont assez cher pour ce que c'est et plutôt bruyants.

Je pense que ca vaut le coup de faire le travail et prendre un Buck qui nous permette de brancher un ventilateur 12V classique.

J'ai trouvé ce modèle sur Digikey par ce que sur Mouser c'était impossible de trouver quelque chose à prix raisonnable

J'ai choisi le LM2576HVS-12-EV
Digikey nbr : 5272-LM2576HVS-12-EVTR-ND

==== Specs

Peut recevoir 57V de tension d'entrée (notre tension max ne dépassera jamais 55V)

Peut monter jusqu'à 3A (notre ventilo ne tire que 0.1A)

12V de tension de sortie

Donc on est large

==== Composants accessoires

Comme tous les bucks, il y a une liste de composants nécessaires à leur fonctionnement.

On ne donne que très peu d'info dans la datasheet. Ils parlent du modèle MBR360 mais il n'existe pas en version SMD. Je vais donc cherhcer une shotkey de 60V

Je vais prendre la SS26-M3/52T
Mouser nbr: 78-SS26-M352T

Car elle supporte 60V et 2A on devrait être tranquille avec ca

Pour les reste on a 

Cin de 100uF (75v) EMVY101ARA101MKE0S mouser nbr: 661-EMVY101ARA101MKE
Cout de 1000uF (25v) UUG1V102MNJ6MS mouser nbr: 647-UUG1V102MNJ6MS
L1 de 100uH le ventilo ne tire que 0.1A donc BWVS00404018101M00 mouser nbr: 603-BWVS404018101M00

=== Opto couplers

Comme on utilise un FET en low side (du côté GND de la batterie), on a le risque de griller des composants qui ne sont pas sur le même circuit au moment ou le GND est coupé.

Il faut donc isoler toute communication entre le BMS et le MCU.

On a isolé le bus I2C avec un composant qui fait exactement ce travail le ISO1540 qui coute super cher mais c'est la seule veritable option.

Pour isoler la ligne ALERT du BMS il va falloir utiliser un optocoupler très simple comme le PC817 mouser nbr: 852-PC817X1CSP9F

==== Specs

Pas très important car ils seront uniquement sur des lignes de signal PWM pour les drivers de LED ou d'activation des bucks.

La tension d'entrée peut dépasser les dixaines de volts. donc on est larges.

=== Thermomètres

On aimerait pouvoir monitorer la température des LEDS depuis le MCU pour pouvoir limiter la puissance voire tout couper pour protèger les LEDS.

Sachant que le MCU ne pourra pas couper le FET low side mais il peut eteindre les drivers de LEDS ou les limiter.

On veut des thermometres relativement précis qui puissent êtres montés en surface pour pouvoir les caser dans le radiateur sur le pcb et directement sur le PCB alu des LEDS.

Honnêtement pour les specs je n'avais absolument aucune idée de quoi prendre donc je me suis réfèré à ChatGPT qui m'a donné ces conseils:

Un thermostat NTC (qui réduit sa resistance avec la température)

10kOhm (100Kohm serait trop bruité et 1Kohm consommerait trop et chaufferait tout seul)

Une B value de 3950. La B value est la pente de changement de resistance.

Avec une valeur autour de 4000 cela veut dire que j'aurais 10kohm à 25 degrés, 3.6kohm à 50 degrés et 1kohm à 80 degrés.

Cela devrait permettre à l'ADC 12 bit du MCU de bien mesurer avec precision la température des thermostats

Pour la version SMD qui sera directement plaquée au PCB j'ai trouvé ce modèle :

Modèle : NTCS0402E3103FLT
Mouser nbr: 594-NTCS0402E3103FLT

Pour la version sous forme de bulbe j'ai trouvé ce modèle :

Modèle : NTCLE203E3103GB0
Mouser nbr : 594-NTCLE203E3103GB0

==== Specs

Ici les deux thermostats sont presque identiques. 10Kohm de resistance à 25 degrés 

3977 de B value pour la version en bulbe 3950 pour la version SMD et les deux sont à 10Kohm de base donc des valeurs très similaires.

Il faudra sûrement faire un peu de calibration au moment de la mise en place mais ca ne devrait pas être trop complexe.

Elles supportent les deux largement les 85 degrés maximaux des LEDS.

Les deux ont une erreur en dessous des 2% à 150 degrés ce qui devrait permettre d'avoir une température cohérente au degré près entre les différentes sondes.

Je pense que le plus smart serait d'avoir deux SMD sur le PCB proches des drivers de LEDS.

Je verrais bien un bulbe être sur un des PCB alu des leds et un sur le radiateur en cuivre.

=== Isolation I2C

Un problème avec la communication I2C entre le BMS et le MCU. Si le BMS decide de couper le GND du circuit on pourrait avoir un back feed de 55V sur les lignes de signal ce qui pourrait tout detruire.

Pour isoler un bus bidirectionel on ne peut pas juste utiliser un optocoupleur et donc on doit utiliser une methode un peu plus sophistiquée.

On peut trouver des chip qui font ce travail directement comme le ISO1540 mouser nbr: 595-ISO1540DR 

Il coute super cher mais honnètement je n'ai pas trouvé mieux.

=== IHM 

Pour l'interface homme machine, J'aimerais des inputs qui tournent pour la couleur de la LED et pour l'intensité lumineuse.

Pour la gestion de l'intensité lumineuse je pense que c'est smart de prendre un potentiomètre pour avoir un feeling smooth. 

Mais comme la température de la lumière est plutôt une suite de valeur distinctes, un encodeur serait peut-être plus intéressant.

Je ne pense pas avoir besoin d'une multitude de boutons car je n'aurai pas besoin de veritable menu. En effet, les deux seuls paramètres de la lampe seront contrôlables depuis les encodeurs/potentiomètres.

Je ne sais pas encore bien comment allumer ou éteindre le système, mais je pense que ce qui serait sympa c'est que si on met la lampe à 0% d'intensité, tout s'eteigne.

Pour l'encodeur j'ai trouvé ca :

modèle : 288X232R161B2
Mouser nbr : 774-288X232R161B2

Il est pas mal, il fait aussi bouton donc ca ajoute un input pour le même prix et il a des clics donc on peut cycler entre des valeurs arbitraires.

Il a une monture verticale donc il faut la même chose pour le potentiomètre

Pour le potentiomètre j'ai trouvé ca :

modèle : PDB12-H4151-104BF


Mais en fait il n'est pas dans l'orientation que je pensais donc il faut plutôt prendre ce modèle :


mouser nbr:

Il a une réponse linéraire ce qui est pas mal comparé à d'autres options un peu plus cheap. il peut se monter verticalement également

Pour tout ce qui est boutons d'interraction avec les composants comme le bootsel du RP2040 ou pour enable le boot mode du BMS on peut utiliser un petit bouton SMD comme celui ci : PTS636SKG25JSMTR LFS

Mouser number: 611-PTS636SKG25JSMTR



=== Ecran 

Pour l'écran j'ai trouvé un module qui ne coute pas trop cher et qui semble relativement simple à implémenter

Mfr nbr: NHD-1.69-160128B
Mouser nbr : 763-NHD-1.69160128B

On peut le configurer pour qu'il fonctionne en SPI ou en I2C ce qui permet de ne pas utiliser trop de GPIO

Le connecteur à trouver est un connecteur : "Recommended FFC Connector: 30pin 0.5mm pitch"

J'ai choisi celui la :

Mfr nbr: AYF533035
Mouser nbr: 769-AYF533035

Il permet de brancher l'écran dans un sens et dans l'autre ce qui est sympa.



=== USB C

Pour le port USB j'ai pris le seul port USB-C 6 USB2.0 pin sur Mouser:

217175-0001
Mouser nbr: 538-217175-0001

== Schematic

Pour commencer correctement ce schematic, je pense que le plus smart est de commencer par ajouter notre RP2040 et mettre en place de quoi le programmer depuis un port USB.

Je vais baser mon travail sur ce que je peux trouver sur ce pdf 

#link("https://pip-assets.raspberrypi.com/categories/814-rp2040/documents/RP-008279-DS-1-hardware-design-with-rp2040.pdf?disposition=inline")[Hardware design with RP2040]

La petite subtilité c'est que l'alimentation 5V de l'USB ne sera pas utilisée pour alimenter le MCU et qu'il faudra donc que la batterie soit branchée pour le programmer.

== Leds de debug

Il y aura 4 leds de debug sur notre board

Je vais utiliser ces leds 

Mouser nbr: 720-RATIVHFK3PM3Z555 

Avec on peut utiliser des resistances de 150ohm ca devrait être nikel avec 4ma par led on a à peu pres 16ma et c'est largement supportable par le rp2040.

=== JST

Pour la batterie 13S il nous faut un connecteur JST 14 pins.

J'ai trouvé ce connecteur : B14B-PH-K-S(LF)(SN) Mouser nbr: 

Dernière version de mon kicad :

#image("assets/Kicad.png")

=== Contraintes 

#image("assets/contraintes.png")

=== Erreurs ou faiblesses du design

==== Points à corriger absolument

+ Le design de contrôle PWM ventilateur qui est trop simpliste et à peine utilisable
+ Le rail 12V qui est inutilisable et qui force la carte entière en quasi court circuit si on ne le désactive pas
+ (peut-être) Revoir le placement d'un capa du buck 3.3V
+ Inversion des pins 5-7 de la flash (grossière erreur)
+ Mauvais choix de resistances pour le filtre PWM des drivers de leds (10k -> 1k)
+ Manque d'une pulldown de 4.7kR sur la pin ADJ des drivers de led pour ne pas laisser la pin flottante quand le MCU démarre
+ Le potentiometre est dans le mauvais sens...
+ Le BMS est inutilisable
+ Les trous pour les vis du radiateur ne sont pas parfaitement aux bons endroits

La pin regSRC est marqué comme câblée sur batt+ mais ne peux pas gèrer plus que 25V donc l'alimentation avec du 50V a tué le chip. En plus les pins VC14 et VC15 sont très confuse à câbler et le choix de les laisser flotter n'est pas le bon. en plus on est pas obligé d'avoir les pins + ET - sur le BMS, j'aurais juste pu mettre la pin -.

==== Points généraux

+ Potentiomètre et encodeur un peu proches
+ Footprint du RP2040 qui force un PCB très cher chez eurocircuit
+ Design avec 8 drivers pénible et qui prend beaucoup de place (un design avec seulement deux drivers un peu plus chers mais qui peuvent encaisser les 100W chacuns serait bien plus idéal et pourrait potentiellement amener un PCB plus petit ce qui rembourserait le surcôut des drivers eux mêmes)
+ Buck 12V un peu archaique plutôt gros et qui demande des capa énormes donc une place disproportionnée pour son utilité sur le circuit
+ Pas de charge possible avec mon BMS ce qui est très chiant
+ L'architecture 13S est très pénible pour pleins de raisons et son seul intérêt est de réduire les ampères demandées au niveau de l'input batterie

== V2




J'aimerais trouver d'autres drivers de LEDS. Le but c'est de pouvoir réduire le nombre de drivers avec des composants plus robustes qui peuvent gèrer plus de courant.

Cela permettrait de réduire la taille du PCB

Mfr nbr: ALT80800KLPATR
Mouser nbr: 250-ALT80800KLPATR

Ce driver est intéressant car on peut remplacer deux de mes anciens drivers avec un seul. Il n'est pas cher et je pense que on peut économiser beaucoup de place sur le PCB avec







































