BLOC 6 voies

Discutions générales sur le DSPiy et tout ce qui s'y rattache
Avatar de l’utilisateur
alka
Administrateur du site
Messages : 3098
Enregistré le : mer. 15 juil. 2015 15:18
Localisation : 92
Contact :

Re: BLOC 6 voies

Messagepar alka » jeu. 3 oct. 2024 17:10

Espressif fournit aussi une méthode de calibration mais qui nécessite d'utiliser leur IDF et pas Arduino
https://docs.espressif.com/projects/esp ... eristics_t
Ce bloggeur a fait des expérimentations intéressantes en comparant analogReadMillivots() plusieurs moutures d'ESP32 : https://www.makerfabs.com/blog/post/cau ... akerfabs-2

Je n'arrive pas a comprendre comment fonctionne analogReadMillivots(). Au départ j'avais laissé de coté car je croyais que c'était juste obtenir la valeur adc et faire Uread = adc/4095*Vcc mais c'est différent.

Voilà les erreurs en % que j'obtiens avec analogReadMillivots() et le multimètre entre 500 et 2500mV . En orange c'est brut, en bleu après la correction (-30mV pour l'un et -47mV l'autre)
Je n'ai aucune idée du pourquoi une correction par ajout d'une constante donne un aussi bon résultat.

Image

Image

Avatar de l’utilisateur
thierryvalk
Administrateur du site
Messages : 3770
Enregistré le : jeu. 9 juil. 2015 20:08
Localisation : Belgique

Re: BLOC 6 voies

Messagepar thierryvalk » jeu. 3 oct. 2024 17:24

Au départ j'avais laissé de coté car je croyais que c'était juste obtenir la valeur adc et faire Uread = adc/4095*Vcc mais c'est différent.

Moi aussi.

Avatar de l’utilisateur
thierryvalk
Administrateur du site
Messages : 3770
Enregistré le : jeu. 9 juil. 2015 20:08
Localisation : Belgique

Re: BLOC 6 voies

Messagepar thierryvalk » ven. 4 oct. 2024 12:06

Ici tu devrais avoir le code pour les 2 solutions.
https://github.com/espressif/arduino-es ... adc.c#L236


analogRead() c'est du RAW.
analogReadMillivots() prend en compte des données de calibration en efuse.
Mais de ce que j'avais lu, tous les ESP ne sont pas forcément calibrés.
Cela devrait pouvoir être confirmé sur vos exemplaires en lisant le log_d lors d'une conversion.

Avatar de l’utilisateur
alka
Administrateur du site
Messages : 3098
Enregistré le : mer. 15 juil. 2015 15:18
Localisation : 92
Contact :

Re: BLOC 6 voies

Messagepar alka » ven. 4 oct. 2024 18:36

thierryvalk a écrit :Ici tu devrais avoir le code pour les 2 solutions.
https://github.com/espressif/arduino-es ... adc.c#L236
analogRead() c'est du RAW.
analogReadMillivots() prend en compte des données de calibration en efuse.
Mais de ce que j'avais lu, tous les ESP ne sont pas forcément calibrés.
Cela devrait pouvoir être confirmé sur vos exemplaires en lisant le log_d lors d'une conversion.

merci pour le lien. D'après la doc Espressif, les ESP32 fabriqués depuis janvier 2018 ont Vref dans eFuse. Pour nous ça devrait etre bon. En tout cas mes deux ESP32 l'ont. Pas encore vérifié avec le S3. J'ai publié plus haut dans le fil ici https://www.dspiy.be/forum/viewtopic.php?p=11339#p11339 le code pour lire Vref direct dans efuse depuis arduino.
En revanche la calibration a partir des "two points" dans eFuse si j'ai bien compris c'est seulement si l'utilisateur les a fournis. Il y a un utilitaire pour ça en python. L'utilisateur calibre manuellement et met les valeurs dans eFuse avec l'utilitaire pour que ensuite le convertisseur puisse en tenir compte. Sur mes exemplaires c'est vide dans eFuse. Et tant qu'a calibrer, ben j'ai fait mon propre système équivalent du genre a.x + b ;)

Avatar de l’utilisateur
alka
Administrateur du site
Messages : 3098
Enregistré le : mer. 15 juil. 2015 15:18
Localisation : 92
Contact :

Re: BLOC 6 voies

Messagepar alka » mer. 9 oct. 2024 10:25

.... suite de mes petites expériences :)

J'ai adapté le code pour afficher les mesures avec les deux méthodes : l'ancienne qui utilise l'ADC et la nouvelle qui utilise la lecture directe du voltage de la pin.
J'ai fait sur ESP32 et sur ESP32-S3. En vérifiant avec la sonde de T° du multimètre, les deux méthodes calibrées sont cohérentes avec la réalité à 1 ou 2° près :super:

J'affiche ce genre de lignes sur la page web pour voir en direct ce qui se passe sur les pins : (ce sont les moyennes glissantes sur 6 lectures espacées de 2 sec)

Code : Tout sélectionner

CTN mV (brut): 2001,0,0,1999,0,0
TEMPS VOLTAGE: 33°,0°,0°,33°,0°,0°
CTN ADC      : 2507,0,0,2511,0,0
TEMPS ADC    : 34°,0°,0°,34°,0°,0°


Comme dit dans les épisodes précédents, la "méthode ADC" assimile la conversion à une droite entre 0,5 et 2,5V, donc il faut 2 coeffs pour calibrer (une droite c'est y = a x + b). Celle avec mesure voltage n'a besoin que d'une valeur de calibration: un décalage p/r à la tension mesurée.
Les deux calibrations sont faciles a faire si l'ESP est libre mais casse-pied quand il est au fond de l'ampli.
Avec l'ESP32 il faut calibrer. Avec l'ESP32-S3 la lecture en voltage sans calibration est très correcte. Espressif a bien amélioré la partie analogique sur le S3.

Comme c'est la plus précise (et la plus facile a calibrer si on veut), je retiens dans le code la "méthode par voltage" comme référence pour faire les comparaisons avec les seuils de température et émettre les alertes.
Dans les settings modifiables par l’utilisateur, un champ a été ajouté pour saisir une valeur de correction à appliquer en millivolts pour calibrer la lecture en voltage. Par défaut 0.
Pour la méthode ADC, la calibration est dans le code. Par défaut, j'ai mis les coeffs d'un de mes ESP32. Ce n'est pas idéal mais mieux que rien.

Calibrer ou pas ? Sur mes exemplaires ESP32, la "méthode Voltage" est acceptable sans calibration (et c'est bien plus juste que la "méthode ADC" sans calibration! ).
Avec un ESP32-S3 sans aucune calibration, c'est tout bon de 20 à 90°.

Si on veut calibrer ? Pour trouver la bonne valeur pour son ESP32, on peut mesurer la tension réelle aux bornes d'une CTN avec un multimètre et comparer avec ce qui est affiché au même moment sur la page web 'details', ligne CTN mV (brut) . En répétant a plusieurs températures pour avoir plusieurs points, ça devrait permettre de trouver une valeur moyenne qui convient. Il faut tout de même se méfier des inerties et bien attendre que ce soit stabilisé.

Voilà la courbe T° selon Tension. Ca permet de voir l'impact d'une correction.
Image
Le code prévoit 3V3. Si ce n'est pas stable, on voit l'effet avec la courbe rouge.
Tout est dans des variables dans le code, c'est facile a modifier s'il le fallait.

Prêt pour une livraison v6.6 qui sauf surprise, devrait clore le projet.

Avatar de l’utilisateur
alka
Administrateur du site
Messages : 3098
Enregistré le : mer. 15 juil. 2015 15:18
Localisation : 92
Contact :

Re: BLOC 6 voies

Messagepar alka » mer. 9 oct. 2024 11:33

A la fin d'un projet, c'est toujours bien de faire le bilan :)
J'ai bcp appris. J'étais en terrain connu pour la plus grande partie des technos et la révision était utile. Évidemment pas pour la partie "entrées analogiques" que j'ai bien sous estimée !
Grâce à la suggestion de Thierry au début que je n'ai pas complètement suivie mais qui m'a fait réfléchir, j'ai organisé le code d'une manière que je trouve très appréciable : dans la boucle, d’abord gérer les entrées et créer les événements qui seront traités dans une deuxième partie. J'ai aussi mis en œuvre pour la première fois les websockets, avec une simplicité déconcertante.

Si c'était à refaire ?
Sachant que le cœur du projet c'est les entrées analogiques, je conseillerai plutôt de partir sur un ESP32-S3. D'abord les entrées analogiques sont bien améliorées et aussi le S3 a deux ADC de 10 canaux chacun au lieu de 2x8 pour l'ESP32. La carte ESP32 S3 devkit C qu'on voit un peu partout en expose 8.
Aussi, je conseillerai de commencer par passer du temps à tout calibrer dès le début, quand c'est facile à faire : CTNs et entrées ESP. On gagne tellement de temps ensuite.

Si ESP32 quand même:
- le Wrover est inutile car pas besoin de son surplus de mémoire, un Wroom ordinaire suffit.
- adapter Rs pour travailler dans la zone 0 - 2V et paramétrer l'ADC avec 6dB d'atténuation au lieu de 11dB car il est bien plus linéaire.

Et s'il faut faire des mesures de précision avec un ESP ? choisir S3, ne pas utiliser le 3V3 de l'ESP comme Vcc mais un régulateur externe plus stable, calibrer. Avec ça, on peut être très précis.

Avatar de l’utilisateur
alka
Administrateur du site
Messages : 3098
Enregistré le : mer. 15 juil. 2015 15:18
Localisation : 92
Contact :

Re: BLOC 6 voies

Messagepar alka » mer. 9 oct. 2024 11:38

j'oubliais : j'ai fait un doc qui rappelle les formules de calcul.
Fichiers joints
Mesure temperature CTN et ESP32 analog.pdf
(1.06 Mio) Téléchargé 847 fois

GoodNoize
Messages : 860
Enregistré le : mar. 27 nov. 2018 17:18
Localisation : Jura

Re: BLOC 6 voies

Messagepar GoodNoize » mer. 9 oct. 2024 13:13

olalaaaaa le boulot de fou 8| 8|

Merci pour toute ces explications, le travail, la doc..
C'est la grande classe !

On revois la méthode de calibration avec plusieurs point de lecture en millivolt aux bornes de la CTN, en comparaison avec la lecture de l'ADC ESP32.
Cette valeur est affichée dans la page web.
On applique une correction moyenne des delta mesurés.
>Avec cette méthode on tiens compte de la variation du 3V3 : g(Uc)

pour le reste :
>On part du principe que l'ADC est linéaire dans la zone qui nous interesse : f(ADC)
>Les non linéarités de la CTN sont corrigées via la formule de correction (générique)


J'ai compris ?

Il faut tout de même se méfier des inerties et bien attendre que ce soit stabilisé.

ça c'est bien pénible en effet

Avatar de l’utilisateur
alka
Administrateur du site
Messages : 3098
Enregistré le : mer. 15 juil. 2015 15:18
Localisation : 92
Contact :

Re: BLOC 6 voies

Messagepar alka » mer. 9 oct. 2024 16:31

GoodNoize a écrit :On revois la méthode de calibration avec plusieurs point de lecture en millivolt aux bornes de la CTN, en comparaison avec la lecture de l'ADC ESP32.
Cette valeur est affichée dans la page web.
On applique une correction moyenne des delta mesurés.
>Avec cette méthode on tiens compte de la variation du 3V3 : g(Uc) cette valeur dans les settings permet de corriger la tension lue sur la pin par l'ESP32, càd la fonction f() dans le doc. On ne peut pas vraiment corriger des variations de Vcc car le 3V3 varie en permanence quand l'ESP32 est sollicité. g() sera toujours un peu faux. Une solution possible envisagée plus haut avec Thierry serait de lire en permanence le Vcc en entrant dans une pin analogique mais il n'y en a plus de libre. A moins de changer le hardware, il faut vivre avec cette erreur de g() mais elle n'est pas énorme au final (cf courbe bleue et rouge simulée avec 3V2 et 3V3). On parle de 1 à 2°. Si sur ta carte, Vcc n'est jamais à 3V3 mais en permanence à une autre valeur, c'est possible de modifier dans le code la variable Vcc dans getTempFromVoltage(int voltage). Ca permettra de gommer une partie de l'erreur.

pour le reste :
>On part du principe que l'ADC est linéaire dans la zone qui nous interesse : f(ADC) oui. c'est vrai pour l'ESP32 de 0,2 à 2,5V pour les deux méthodes.
>Les non linéarités de la CTN sont corrigées via la formule de correction (générique) oui on a vu que la CTN suit plutôt bien la formule théorique de la résistance p/r à la température. Confirmé par les données datasheet et par tes quelques mesures de fin juin. Il y a forcément de petites différences, mais ce n'est pas une source d'erreur significative.


J'ai compris ? yep :)
la première chose a voir c'est de constater si, sans aucune correction, la méthode de calcul utilisée maintenant dans le firmware v6.6 correspond mieux à la réalité qu'avant. C'est le cas chez moi sur mes ESP32, mais il faudrait confirmer que c'est bien aussi le cas chez toi. Ca devrait être suffisamment proche pour ne pas nécessite davantage de travail. Si tu n'es pas satisfait de la précision obtenue, tu peux te lancer dans les mesures au multimètre pour trouver quelle correction appliquer.

GoodNoize
Messages : 860
Enregistré le : mar. 27 nov. 2018 17:18
Localisation : Jura

Re: BLOC 6 voies

Messagepar GoodNoize » mer. 9 oct. 2024 18:04

Alors j'ai du bon et du moins bon.

Déja la mise a jour OTA c'est vraiment du bonheur. :)

Ensuite, les températures affichées sont trop élevées.. 33 au lieux de 26.
J'ai appliqué la correction max de -200 mV pour avoir quelque chose qui colle ampli A FROID.
Pour bien faire il faudrait peut-être à peine plus.

Ce qui me dérange c'est que la tension mesurée et la tension affichée (CTN mV brut ) n'est pas si lointaine que ça. quelque mV d'écart.

Doit bien y avoir une constante quelque part de mauvaise...
En remesurant j'ai Vcc = 3V1 au lieu de 3V3.
Je vois que ça..

Perso ça me va laaaaargement ! j'ai un petit degré qui se promène entre mon multimetre et l'ampli.

Je fais chauffer et reviens pour vous dire comment ça se comporte :)

Avatar de l’utilisateur
alka
Administrateur du site
Messages : 3098
Enregistré le : mer. 15 juil. 2015 15:18
Localisation : 92
Contact :

Re: BLOC 6 voies

Messagepar alka » mer. 9 oct. 2024 20:01

j'ai simulé ce que donne 3V1 au lieu de 3V3 et la différence est + importante dans les basses températures.
Voyons plutôt ce que ça donne avec une température réelle autour de 50°

Image


Que te dis la page détails pour 'ADC Vref' (dans le premier paragraphe) et pour les lectures ADC/voltage (les 4 lignes 'CTN mV (brut):' à
'TEMPS ADC:')

GoodNoize
Messages : 860
Enregistré le : mar. 27 nov. 2018 17:18
Localisation : Jura

Re: BLOC 6 voies

Messagepar GoodNoize » jeu. 10 oct. 2024 06:14

Sorry plus de courant dans le village depuis hier soir, et rien ce matin.
ça résous pas mal de problèmes :hehe:

Avatar de l’utilisateur
alka
Administrateur du site
Messages : 3098
Enregistré le : mer. 15 juil. 2015 15:18
Localisation : 92
Contact :

Re: BLOC 6 voies

Messagepar alka » jeu. 10 oct. 2024 09:57

captain Kirk est passé par le jura !

j'ai repensé à autre chose : les sondes. On n'a que quelques points de mesure réels sur une seule CTN. Là aussi, le comportement en température ambiante s’éloigne un peu de la courbe théorique calculée.
Manifestement, a basse température, à tous les étages, les valeurs calculées ont une plus grande marge d'erreur.

Image

GoodNoize
Messages : 860
Enregistré le : mar. 27 nov. 2018 17:18
Localisation : Jura

Re: BLOC 6 voies

Messagepar GoodNoize » lun. 14 oct. 2024 14:02

Prochaine étape c'est donc de vérifier l'erreur dans la plage utile :)

GoodNoize
Messages : 860
Enregistré le : mar. 27 nov. 2018 17:18
Localisation : Jura

Re: BLOC 6 voies

Messagepar GoodNoize » lun. 2 déc. 2024 20:51

Hello, petit retour

j'ai donc calibré le pgm dnas la plage utile avec mon multimètre il y a un petit moment maintenant.
Utilisateur comblé
ça marche tellement bien que ça se fait oublier :)




Par contre mon DSPiy me fais toujours des trucs étranges :/
Quelques beugs avec la platine vinyle : affichage, bouton qui répondent plus. Mais rare

Par contre en se moment j'ai l'impression qu'il "décroche"
=> Source numérique, appli 2X3 + FIR global 10k

Symptômes :
- au bout d'un moment => plus de son
- Plus qu'un seul vu mètre sur l'écran qui bougeotte timidement (un seul canal qui bouge)
- j'éteint et rallume avec le bouton (STBY) => ça repart
- Un soir ça ma gonflé j'ai laissé tourné quand même, et au bout de bien 10/15min le son est revenu.
- il y a des soir ou ça peut tourner des heures sans aucuns soucis
- ça devient de plus en plus récurant et c'est quand même pénible.

On dirait que le traitement FIR ou que l'entrée numérique ne décode plus le signal source.


C'est le même DSPiy que j'avais dans mon ancien boitier, avec la même alim et j'ai jamais eu de soucis.
Ce qui change niveau câblage :
- les rca châssis sont métalliques et connectés avec le boitier.
- un seul fils 0V signal entre un RCA et le DSPiy

GoodNoize
Messages : 860
Enregistré le : mar. 27 nov. 2018 17:18
Localisation : Jura

Re: BLOC 6 voies

Messagepar GoodNoize » mar. 3 déc. 2024 09:05

Au cas ou, ci-joint ma config DS_Studio

Accueil.JPG

XOVer.JPG

GLB EQ.JPG

Config.JPG

Avatar de l’utilisateur
alka
Administrateur du site
Messages : 3098
Enregistré le : mer. 15 juil. 2015 15:18
Localisation : 92
Contact :

Re: BLOC 6 voies

Messagepar alka » mar. 3 déc. 2024 13:36

GoodNoize a écrit :ça marche tellement bien que ça se fait oublier :)
c'est le but :)

Pour le reste je peux pas vraiment aider au diagnostic. L'appli FIR 2x3 fonctionne bien chez pas mal de gens, j'aurai tendance à creuser d'autres pistes d'abord.

GoodNoize
Messages : 860
Enregistré le : mar. 27 nov. 2018 17:18
Localisation : Jura

Re: BLOC 6 voies

Messagepar GoodNoize » mer. 4 déc. 2024 14:06

Voila en gros à quoi ça ressemble :
Câblage.JPG

https://www.dspiy.be/forum/download/fil ... &mode=view
https://www.dspiy.be/forum/viewtopic.ph ... &start=360
Faut que je refasse un photo du dernier câblage. La LED du BP doit être sur LED4 du EMU




On a donc la tôle arrière qui est au 0V signal à cause des RCA métal
La tôle de fond au 0V alim + terre
La façe avant flottante ( a moins que ça passe par le BP en métal)

A noter que je n'ai plus de soucis d'écran => Il devait toucher la tôle avant

Comme m'a dis Thierry plus tôt, en l'état, les RCA sont à la terre via les câblesqui vont à l'ampli
Si je relie la face arrière et la tôle de fond par un fil, pour que tout le monde soit à la terre =>> ça fait BZZZZZ dans les enceintes.


Mes pistes :
-Vérifier les 0V BP et 0V LED 4
- Changer les RCA pour des isolés (sans refaire la tôle de fond découpé laser )
- Mettre des cornières alu pour que tout le boitier soit bien interconnecté et ne forme qu'un
- Rien faire et vivre avec
- pas envie


Retourner vers « DSPiy général »

Qui est en ligne

Utilisateurs parcourant ce forum : Bing [Bot] et 8 invités