Présentation
TICESP est une interface matérielle permettant de connecter la sortie TIC (Télé-Information Client) des compteurs électroniques Enedis Linky à un module ESP-01, et de transmettre ainsi en temps réel par WiFi toutes les informations fournies par le compteur. Le montage est autoalimenté par le compteur (via la sortie TIC).
Il s’agit d’une variante élaborée à partir du circuit proposé pour TIC2UART.
(Pour le décodage des trames TIC, voir tic2json).
Note: This project is documented in French because to the best of my knowledge, the TIC protocol on which this project is based is only found in electric meters in France. Should evidence to the contrary arise, I will happily translate this page to English :)
Licence
- Creative Commons BY-NC-SA (“NC” pour Non-Commercial).
Avertissement
Les informations et méthodes ici décrites sont fournies “telles-quelles” SANS GARANTIE D’AUCUNE SORTE, IMPLICITE OU EXPLICITE. L’utilisation des concepts, examples et informations se fait à vos risques et périls. Il peut y avoir des erreurs ou des imprécisions qui pourrait endommager vos appareils. Procédez avec prudence, et bien qu’il soit très improbable que des accidents surviennent en suivant les avis ou procédures décrites dans ce document, l’auteur n’endosse aucune responsabilité pour tout dommage prétendument causé en ce faisant.
Blah, blah et encore blah.
Objectifs
Les objectifs principaux de ce projet sont :
Le montage doit être sûr, simple et fiableLe montage doit pouvoir gérer toutes les versions existantes de bus TIC (compteurs historiques et Linky)Le montage doit être économique (en pièces et en énergie consommée)- LE MACHIN DOIT FONCTIONNER
STOP !! De quoi qu’on parle donc ?
On s’attaque à un problème sur lequel les plus grands savants de France et de Navarre – je veux bien sûr parler des Génies® sans bouillir du Club National des Résolveurs de Sudoku – se sont faits les dents. Le but du jeu ? Alimenter un micro-contrôleur ESP pour envoyer les infos de la TIC via WiFi en temps réel et en s’alimentant directement sur le compteur (pour LoRa, Zigbee et compagnie, tout existe déjà).
Note: Quand je dis “envoyer les infos de la TIC”, je veux dire toutes les infos, c’est à dire toutes les trames, en temps réel (donc environ 1 par seconde), et pas juste une toute les X minutes.
D’autant que je profite d’une après-midi maussade d’un mois d’août 2023 plutôt automnal pour plier le sujet, n’ayant rien trouvé de convaincant en ligne (à part évidemment la contribution remarquable et très remarquée des princes du Centre Nocturne de Réhabilitation Sociale, qui m’a provoqué une perforation du fondement dont j’ai encore du mal à me remettre et qui motive la présente publication et son ton fantasque).
Donc attention les yeux, il va s’agir d’envoyer du gros bois et vite. Germaine cramponne-toi à ta permanente, ça va décoiffer sec.
C’est quoi le sujet ?
Enedis, dans sa générosité royale, met gratuitement à disposition du client lambda la puissance colossale de 130mW – oui, vous avez bien lu, 1/8è de Watt, on est à l’échelle des fourmis – via l’interface TIC du compteur Linky.
La chose est précisée dans la documentation technique qui décrit de façon très succinte les caractéristiques de cette alimentation:
Niveaux | |
---|---|
Puissance fournie | 130 MW minimum |
Tension | 6 Vrms ± 10% à 50 kHz (12 V pic au maximum tenant compte d’éventuelles déformations du signal) |
Protection | La sortie doit être protégée contre les courts-circuits. La tenue à la tension secteur (230 V 50 Hz) est exigée (en cas de branchement intempestif de l’Installation client) |
Les points importants sont: la puissance, carrément anémique (on est en milli, pas en mega, il semble que chez Enedis ont ait aussi des problèmes avec les préfixes SI), tout le sujet du problème quand on sait qu’un ESP8266 (par exemple) biberonne allègrement 500mW en pointe; la fréquence à 50kHz, ce qui présente quelques inconvénients mais également un avantage, on y reviendra; et enfin la petite mention “12 V pic au maximum tenant compte d’éventuelles déformations du signal”, qui doit mettre la puce à l’oreille des Génies® sus-mentionnés, s’ils en ont (des oreilles, pour les puces je sais pas).
On peut en effet s’attendre à trouver éventuellement un signal potentiellement bien dégueulasse pardon je veux dire “à forte composantes harmoniques” (un signal
qui pique quoi), et pas forcément une belle sinusoïde. Une petite recherche Gogole™ plus tard (on va pas non plus se faire chier à
sortir l’oscillo pour si peu, hein, le temps nous est compté l’après-midi et la vie sont courtes), la chose semble se confirmer:
Voyez plutôt. Miam. On en mangerait.
On note au passage qu’on frise les 40VCC à vide, en ligne avec les (+/-?) “12V pic au maximum“ précédemment annoncés. Il s’agira de s’en souvenir pour la suite.
Caractérisation
Pas question de perdre du temps, commençons par le commencement. Au Conciliabule des Neurasthéniques Réunis Sommairement, on voit qu’on commence plutôt par définir une solution (basée sur rien et dont on ne sait pas avant de la tester si elle fonctionne – indice: uniquement le 30 février les années bissextiles) avant de s’interroger sur les contraintes.
Comme on a bien compris que cette voie de garage a déjà été explorée, on va tenter un truc un peu différent. C’est à dire qu’on va faire exactement le contraire, en somme.
Le besoin
Soit un ESP8266 (modèle choisit arbitrairement pour son ubiquité et son très faible coût, en sachant que les évolutions plus récentes – ESP32C2 par exemple – consomment de moins en moins et que donc si on y arrive avec un ESP8266 on pourra utiliser à peu près ce qu’on veut, fermons la parenthèse) sur lequel tourne mon petit soft maison, esptic2udp.
Voyons combien c’est-il qu’il consomme, le bougre, avec le programme brut de fonderie à peine optimisé (la fonctionnalité Modem Sleep de l’ESP8266 est activée, point).
Première mesure, à la grosse, avec de l’équipement de pointe dont je conçois facilement qu’il soit hors de portée du budget du Centre Névralgique des Recherches Stériles, un multimètre USB Drok, environ 2-3€ sur Aliexpress.
On constate à la lecture rapide de l’engin qu’on tourne autour d’une dizaine de mA consommés en moyenne, et après l’avoir laissé branché 1/4h pour moyenner la mesure et son erreur on lit 23mWh cumulés, soit sur 1h 92mWh (attention, gros calcul: multiplication par 4); une information intéressante à mettre en rapport avec la puissance continue disponible au Linky: 130mW; soit sur 1h 130mWh (je ramène tout sur 1h: j’ai peur d’en perdre en route si je raisonne sur 15mn.)
Note: Toujours pour nos amis les Génies®, s’ils nous lisent: si je dispose de 130mW en continu, alors sur 1h je peut consommer 130mWh – on aborde de la physique fondamentale, je sais c’est chaud: puissance * temps = travail (ou encore énergie). Tiens d’ailleurs, 92mWh, sous 3.3V, ça fait dans les 28mAh. Donc sur 1h, 28mA de moyenne. Mathématiques de pointe.
Bref, assez spontanément dans mon petit cerveau au bord du nervous breakdown, le moment Eureka se produit: Bon sang mais c’est bien sûr ! C’est un problème de baignoire ! m’écriai-je en me frappant violemment l’occiput avec mon éminence thénar dextre.
Un problème de baignoire
Malgré la réforme de l’éducation et ses ravages, il me semble que les problèmes de baignoires ça se voit encore quelque part dans un programme de collège. Sait-on si les Génies® de la Confrérie des Neurones à la Recherche d’un Signal ont passé le BEPC ? La question est ouverte. En attendant la réponse, sous la forme d’un problème d’appareil sanitaire servant à se baigner, on peut présenter les choses comme ceci:
- Soit une baignoire, un robinet qui la remplit, et une pompe qui la vide.
- Le robinet qui remplit la baignoire débite 130 mL/h en continu,
- La pompe qui vide la baignoire pompe 93 mL/h en moyenne,
(J’ai pas changé le préfixe des unités pour faciliter la reconnaissance des termes du problème, je suis sympa hein ?)
Question: est-ce que ma pompe se retrouve à sec et désamorce ? (Indice: on ne se préoccupera pas de savoir si les voisins sont inondés quand la baignoire déborde et on négligera les pertes éventuelles au niveau de la vidange).
Le suspense est insoutenable mais avec un peu d’intuition, on sent qu’une réponse est possible. Lancez-vous, ou appelez un ami pour demander le 50/50.
Pour aller plus loin, vers l’infini et au-delà
Maintenant qu’on a pigé que “ouais, ça devrait le faire en moyenne”, on comprend que le sujet, c’est de s’assurer que la baignoire est assez grande pour que quand la pompe double ou triple brutalement son débit pendant une courte durée, la baignoire ne se retrouve pas à sec.
Mais avant d’en arriver là, tâchons justement de voir quel est le débit maximal de la pompe et combien de temps au pire ce débit est maintenu. Pour cela, on va utiliser un autre outil ultra sophistiqué et totalement hors de portée du commun des Génies® immortels, le fabuleux, le fantastique Nordic PPK2 (une petite tuerie en vente dans toutes les bonnes épiceries pour un peu moins de 90€ en général – c’est un budget oui Madame mais ça les vaut largement).
Pour ce test (comme pour le précédent), j’utilise un clone de Wemos D1 Mini que j’alimente évidemment cette fois directement sur le pin 3V3. (Vous allez me dire, “Pourqui un D1 Mini ?” -> parce que j’ai que ça sous la main au moment des essais :P). Cette carte comporte un peu d’électronique en rab qui va forcément dégrader les performances énergétiques mesurées, mais je m’en fous. Pourquoi me demanderez-vous ? Parce que j’estime que si je calibre pour ces performances dégradées et que ça tourne, alors ça tournera d’autant mieux dans le cas “normal”. CQFD. (et aussi parce que je suis feignant et que j’ai pas la journée devant moi).
Bref, en images devant vos yeux ébahis:
Consommation au démarrage:
NB: Le boot du CPU c’est le pic au début, il ne dure qu’1ms. Le reste représente la mise en route du WiFi et la requête DHCP au réseau. À noter, dans le code test, la mise en application du Modem Sleep n’est effective qu’après cette séquence.
Consommation au repos, wifi actif mais sans réception TIC / émission des données (Modem Sleep actif):
Consommation au repos, wifi actif, réception TIC active dans l’intervalle entre 2 émissions des données (attention la fenêtre d’observation représente 512ms):
Et enfin, consommation sur 1s pendant l’émission de deux trames sur le WiFi:
Qu’est-ce qu’on retient d’important:
- Le démarrage est l’étape la plus consommatrice: 50mC sur 1s et une pointe à 210mA,
- Le repos connecté se fait à une consommation moyenne de 15mA environ (15mC/s), avec des pointes à 80mA pendant 2ms (104µC) toutes les 200ms,
- La réception des infos TIC sans transmission fait grimper la moyenne à 20mA (et 20mC/s) (toujours avec les pics à 80mA),
- La transmission wifi bouffe environ 4mC sur 55ms avec une pointe à 190mA. Sur une fenêtre d’1s avec une seule transmission, on est à 22,7mC consommés.
J’ajoute pour terminer que si on se passe de la connexion wifi, on peut descendre à environ 2mA de moyenne en activant le Light Sleep, c’est à dire autour de 2mC chaque seconde. Malheureusement j’ai découvert que sur ESP8266, ça s’accompagne au réveil d’une explosion des pics de courant lors de la transmission WiFi (600mA au lieu de 200 – problème de calibration ? je n’ai pas creusé), du coup on se passera de cette possibilité sur cette plateforme.
Une fois qu’on a dit tout ça, quelques éléments importants:
Le courant maximal ne nous intéresse principalement que pour dimensionner le circuit d’alimentation, qui doit donc être capable de délivrer au minimum 250mA crête (Espressif recommande 500mA) à 3.3V.
Je répète, restons dans la baignoire, le courant maximal n’est pas (directement) le sujet principal: on va plutôt raisonner en charge.
Il faut donc que nous disposions à tout instant d’une charge en réserve suffisante pour faire face à la demande dynamique de l’ESP.
Quelques bases
Alors là je sais qu’on touche des notions de physique nucléaire ou presque, donc comme on n’est pas encore au niveau des empereurs de la science du Centre (aéré) des Novices Roucoulant Stridemment, je rappelle quelques formules utiles:
- Une charge est parfois le produit d’un courant par une durée: Q = I * t.
On peut aussi rappeler que le rapport d’une charge sur une durée est congruent à celui d’une puissance sur une tension: 1C/s = 1W/V. (Transitivement: P=U*I et I=Q/t, donc etc. Suivez un peu, merde). Ça servira plus tard.
Comme on est sur un problème de baignoire, et qu’un condensateur n’est jamais rien d’autre qu’une petite baignoire à électrons, rappelons également que:
- Une capacité est de temps en temps le ratio d’une charge par une tension: C = Q / V.
Et là normalement vous me voyez venir de loin avec mes gros sabots en bois de peuplier vieillis en futs de chêne. Le sujet ça va être la taille du condensateur, et savoir si on peut le remplir comme il faut. C’est toujours une question de taille, voyez-vous.
Trouver la source
Mais avant d’aller encore plus loin dans l’hyperespace, je dois mentionner ici une source inestimable d’information sur les caractéristiques de l’alimentation TIC du Linky, sans laquelle j’aurais facilement perdu 1h de plus:
(Je précise qu’archive.org nous indique que cette page est disponible depuis au moins janvier 2019, soit plus de 2 ans avant les premières élucubrations du gang des Cerveaux Notoirement Réduits au Silence, lesquels n’ont pas pris la peine d’essayer d’en faire autant, Génies® qu’ils sont. La caractérisation d’un système, c’est bon pour la plèbe.)
Les éléments essentiels à retenir de cette source sont:
- Une impédance de source de l’ordre de 70 ohms (on peut le lire sur la courbe mais le résultat de la régression linéaire
– ou plus simplement du produits en croix de 2 points bien choisi – nous est gentiment fourni dans le texte).
Dans le jargon on appelle ça une source de tension
de merdesévèrement contrainte qui commence à ressembler à une source de courant. - Une coupure nette lorsque l’intensité appelée approche 50mA: la chute de tension n’est plus linéaire au delà.
Je ne tire pas de conclusion hâtive des valeurs absolues présentées dans cet excellent article: d’une part elles peuvent varier d’un compteur à l’autre, d’autre part les appareils de mesure utilisés ne sont peut-être pas hyper précis (surtout sur un signal plus ou moins carré à 50kHz, True RMS Voltcraft mon amour). Mais ça donne déjà un ordre d’idée.
Définition des contraintes
Attention Mamie, sors ton parapluie.
À ce stade de la réflexion intense, le cerveau au bord de l’ébulition et l’anévrisme au bord de la rupture après 20mn de brainstorming et de recherche sur Internet, il est temps de sortir mon plus beau BIC™ et la première vieille enveloppe qui passe.
Partons donc du principe que ça passe (on sent que ça passe, si, si) et vérifions rapidement ce que ça donnerait. On doit redresser la tension alternative TIC, et la réguler à 3.3V. Le tout en tolérant les importantes variations de puissance. Et vu qu’on part de pratiquement rien (130mW garantis, bigre !), il ne va pas s’agir de gaspiller des électrons.
Premier crobar des éléments:
On fait simple, l’heure tourne et celle de l’apéro approche.
Camp de Redressement
Je pars du principe que le lecteur (et les Génies® du Complexe Nébuleux à Radiations Sympathiques) dispose de quelques bases sur les principes du redressement double alternance d’une tension… alternative.
B1 est donc un pont redresseur (pont de Graetz pour les intimes). Premier écueil: on va avoir des pertes. La plus importante part est liée à la chute de tension aux bornes de chaque diode qui compose le pont (deux diodes sont dans le circuit à chaque alternance): multiplié par l’intensité qui traverse ledit pont, elle représente une puissance perdue. Le courant, on en a besoin, le plus possible, il faut donc minimiser cette chute de tension.
Comme l’a bien vu l’auteur de l’article MORBRET cité plus haut, spontanément vu la faiblesse du courant à tirer, et fréquence du signal prise en compte, on va privilégier des diodes Schottky (plus rapides et surtout dont la chute est plus faible) pour cet élément. Je ne vais pas m’épancher sur les raisons qui justifient ce choix, disons pour couper court que là comme ça, c’est le bon, et que ces raisons vont un peu au delà du “j’essaye pour voir si ça marche” propre aux Génies® dont je ne suis pas.
Donc B1, pont de diode Schottky, capable d’encaisser au moins 20VCC histoire d’avoir un peu de marge (NB: on ne sera jamais à vide donc on ne verra jamais la tension maximale “à vide”, cf schéma final).
Laissons C de côté pour l’instant (il faut bien faire durer le suspense), et regardons du côté de V1, le régulateur qui va nous permettre d’assurer la régulation de la tension sur les 3.3V nécessaires au bon fonctionnement de l’ESP.
Précisons tout de suite que les datasheets des modules ESP8266 sont assez laconiques sur les caractéristiques de l’alimentation. On sait qu’il faut être entre 2.5V et 3.6V, nominal 3.3V. Pas d’info sur la qualité de ces 3.3V, notamment en termes de niveau de bruit. Du coup on va se sentir assez libre, surtout que l’application concernée n’utilise pas les fonctions analogiques (ADC) du micro-contrôleur.
Et donc là, contrairement à ce que propose le camarade mentionné plus haut (et les Génies®), je ne vais pas choisir un régulateur linéaire, qu’il soit LDO ou pas ne change rien, car si je lui colle par exemple 5V en entrée et qu’il me sort 3.3V en sortie, la différence est encore une fois perdue sous forme de chaleur. (c’est le principe même du régulateur linéaire). Donc le rendement ne pourrait pas dépasser les 66% ici. Ce qui veut dire qu’on aurait dans cet exemple au mieux 66% de nos 130mW, soit 85mW. Totalement inacceptable. D’autant que plus l’écart entre la tension d’entrée et celle de sortie augmente, plus le rendement baisse.
On va donc choisir un régulateur à découpage, qui peut allègrement atteindre les 80/90% de rendement sur une large plage de tension d’entrée si on s’y prend correctement.
Donc V1, un régulateur abaisseur à découpage acceptant disons de 4 à 25 VDC en entrée, histoire d’avoir de la marge, toujours vu l’immondice qu’on va probablement sortir de notre redresseur B1. (Et non, on ne va pas utiliser un transfo pour abaisser la tension alternative fournie par le Linky car on sait déjà qu’elle peut tomber très – trop – bas. Je ne rappelle pas non plus le calcul VAC => VDC redressé).
Là on est à T+22’ depuis le début du projet, il est temps de passer la seconde.
Retour à la piscine
Reste C. Le lecteur qui suit ces lignes intuite-t-il que le nerf de la guerre, c’est la baignoire, c’est à dire C ?
Dans notre schéma, C a deux fonctions principales (qui sont les deux faces de la même pièce, soit dit en passant):
- Lisser la tension redressée
- Assurer une réserve de charge pour faire face aux appels de courant du circuit, comme vu plus haut (lorsque la pompe a des hoquets et tape sa pointe à 200 sur l’autoroute – ne faites pas ça chez vous).
Revenons à notre alimentation. Si notre source de tension n’était pas contrainte et si notre circuit avait une consommation (load) régulière, de 20mA, le calcul de C serait très simple: on partirait de la tension redressée minimum à cette intensité (disons 6V), de la tension minimum assurant le fonctionnement du régulateur (4V), ce qui par soustraction nous donne l’ondulation (ripple) maximum tolérable (2V), et on pourrait alors appliquer la formule magique (simplifiée), connue seulement des gourous illuminés (mais peut-être pas des Génies®):
Vripple = Iload / (f * C).
D’où C = Iload / (f * Vripple), et je remplace les termes de mon équation qui me donne C = 100nF (attention, il y a un piège).
C’est là que les 50kHz d’entrée – 100kHz après redressement (ze piège) – nous aident car plus la fréquence est élevée et plus la capacité nécessaire est petite. À 50Hz on serait à 100µF. Avec un bémol que je précise tout de suite: les condensateurs voient généralement leur capacité réelle diminuer avec la fréquence. Pensons-y tout à l’heure.
Ça c’était le côté pile, reste le côté face: comment assurer une réserve suffisante pour faire face quand l’ESP écrase le champignon, puisque notre source de tension ne suivra pas ?
Il y a plusieurs façons de présenter le problème dans son aspect dynamique, en voici une qui en vaut une autre:
Commençons par traiter le sujet du démarrage (on sait que le démarrage constitue la plus grosse difficulté). Comme il faut bien partir de quelque part, raisonnons toujours sur le cas le plus défavorable qu’on vient de décrire: nous avons une ondulation maximum tolérable de 2V. Nous avons vu tout à l’heure que C = Q / V. Nous savons que lors du démarrage, nous avons besoin de 50mC pendant 1s. Nous savons également qu’à 6V, notre alimentation nous fournit 130mW/6V = 22mC/s (on raisonne en régime moyen, sur les valeurs typiques indiquées par Enedis).
On s’occupera du sujet du remplissage de la baignoire tout à l’heure, pour l’instant on voit qu’il faut donc pouvoir fournir la différence soit 28mC. Il vient donc: C = 0.028/2 = 14mF.
Et la fatalement vous me dites: “c’est la merde, une capa de 14mF c’est énorme, va falloir utiliser un condensateur géant, limite une supercap qu’on peut pas brancher sur une tension non-régulée, faut tout revoir, loose totale, allez on se casse”.
Et ben non. Le démarrage, c’est du one-shot. Comme je disais, on peut choisir à quel moment il se produit. Ce qui veut dire qu’on peut s’arranger pour être dans un cas plus favorable au niveau de notre source d’alimentation.
Reprenons. Enedis nous dit: “6VRMS +/- 10%.” Si c’était une sinusoïde pure, après redressement et en prenant en compte la perte au niveau du pont, on serait à environ 8VDC (et dans les 120mW). Si on regarde les courbes de MORBRET, on voit qu’on peut même tutoyer les 15-16V lorsque l’intensité demandée diminue, ce qui n’étonne pas forcément vu la gueule du signal à vide, cf supra. Or, au fur et à mesure qu’un condensateur se charge, l’intensité qu’il consomme pour se charger diminue, pour tendre en asymptote vers zéro.
Conclusion, au fur et à mesure de la charge du condensateur, on peut attendre une tension à ses bornes comprise entre 8 et 16V. Ce qui veut dire qu’on a potentiellement 4 à 12V de battement avant d’atteindre les 4V auquel notre régulateur coupera la lumière. ET DONC 28mC avec un delta de 4 à 12V ça nous donne une capacité comprise entre 7mF et 2,3mF, soit une moyenne à 4,7mF (je raisonne sur la moyenne, tant pis pour le cas le plus défavorable, je prétends qu’il n’existe pas. De toute façon vous allez voir plus loin qu’il n’existe effectivement pas. Hop, c’est dit).
Et là normalement, on voit la lumière. 4,7mF, ce n’est jamais que 4700µF (une valeur standard en plus), et ça c’est tout à fait gérable dans des dimensions raisonnables de condensateur électrolytique classique.
Il est (dé)gros(si) mon réservoir
Pour passer l’obstacle du démarrage de notre ESP8266 (dont je rappelle qu’on ne s’est pas encore penché sur la partie logicielle, qui nous permettrait pourtant bien des choses: souvenez-vous, la séquence de boot dont on parle en ce moment n’est pas du tout optimisée pour réduire la conso, ce qui rendrait le problème pratiquement trivial), il nous faut grosso modo une capacité réservoir de 4700µF, et le temps nécessaire pour charger cette capacité avec notre petite alimentation digne d’une luciole asmathique.
Sur ce point, justement, un petit calcul simple: la résistance interne très élevée de ladite alimentation (70Ω comme on l’a vu) nous permet de définir assez simplement cette durée: le couple RC forme une constante de temps telle que τ = RC.
Soit ici: τ = 330ms environ.
Un condensateur est considéré comme totalement chargé au bout de 5τ, donc ici environ 1,7s. (je m’efforce de mettre des références de base au cas où les Génies® nous liraient, mais j’ai des doutes sur ce point, voir plus bas).
Je reviendrai sur les ajustements nécessaires à prendre en compte en fonction des tolérances des composants et la non-linéarité de l’alimentation plus tard, pour l’instant on avance sur le sujet avec des chiffres simples. Le point à retenir c’est que si je prends C de l’ordre de 4700µF, et que j’attends disons au moins 2s avant de démarrer le tracteur, normalement ça passe. CQFD.
Et j’en entends déjà gueuler dans le fond pour me dire “mais t’es malade, avec 4700µF dans le museau le courant d’appel va être AYNAURME, le pont redresseur va entrer en fusion et le soleil risque de s’éteindre, il va falloir ajouter un filtre en entrée pour limiter la casse”. Et ben non.
D’abord on a vu (du moins pour ceux qui s’y seraient risqués) que les Génies® n’ont pas hésité à coller 1 Farad sur leur montage sans que des chatons ne trépassent; et qu’ensuite la raison pour laquelle ça n’a pas entraîné la vaporisation instantanée de leur compteur c’est que l’impédance de sortie assez lamentable de l’alimentation TIC va nous rendre l’immense service de jouer le rôle de limiteur, ce qui fait qu’on a pas à s’en préoccuper.
Par ailleurs on sait maintenant que tous les autres cas d’usage (attente passive, réception trame TIC, émission WiFi) représentent des consommations qui ne dépassent jamais 23mC/s, ce qui veut dire qu’on est pratiquement dans les clous dans le pire des pires des cas de notre petite alimentation gnomique (22mC/s) et qu’on peut même trouver du rab pour re-remplir la baignoire régulièrement (c’est important).
Pour y rester (dans les clous), on va ruser encore un poil et compter un peu sur le fait que les 130mW annoncés constituent un minimum et qu’on peut grater un poil plus, et sur le fait que les mesures sont faites sur une carte qui consomme plus que nécessaire.
Donc il nous faut un moyen de retarder l’allumage de l’ESP, et s’arranger pour qu’il ne démarre que quand la baignoire est bien remplie. Comme on est complètement déglingos, on va s’en assurer de deux façon différentes: d’une part par un délai sur le démarrage du régulateur (je spoile un peu la suite là), et d’autre part par un délai sur le démarrage de l’ESP une fois alimenté. Ceinture-bretelles.
En effet ça tombe bien, on peut contrôler l’allumage de l’ESP-01 via 2 pins: RESET
et EN
(a.k.a CH_PD
, a.k.a. “CHip Power Down”). En électronique, un retard ça se fait facilement avec un couple RC, comme on vient de le voir.
Pour terminer, Enedis nous demande d’être robuste face à l’application du 230V à l’entrée du montage, au cas où Jeanjean se toucherait un peu les fils. On va tâcher d’y penser.
Retour sur mon enveloppe, on ajuste le crobar:
Et donc là, à T+25’ après le début du projet, je dirais qu’on a bien dégrossi le truc. On a validé le concept, il est temps de passer à l’implémentation.
Gaston, fais péter le saucisson.
Sélection des composants
Là je vous prends vraiment par la main lecteurs chéris, et avant de dévoiler le schéma final, on va passer rapidement par l’étape de la sélection des composants (une étape généralement longue et fastidieuse, je vous la fais en accéléré).
Ajoutons quelques contraintes de base (c’est mon côté maso):
- On veut supporter les deux variants des modules ESP-01 et ESP-01S sans aucune modification (pas question d’annuler notre belle garantie chinoise, hein !)(*)
- On veut un PCB le plus petit possible – c’est moins cher et on aimerait bien qu’il tienne dans l’emplacement du Linky prévu à cet effet (mais comme je n’ai pas réussi à trouver les dimensions de ce volume et que j’ai la flemme de prendre les mesures je ne vais pas non plus me prendre la tête: je vais faire le plus petit possible et basta) – à quelques exceptions près on va donc privilégier les composants de surface, mais en conservant la possibilité d’un assemblage manuel au fer à souder, donc:
- Pas de QFN, BGA & co;
- Pas de composants plus petit que du 0603;
- On veut que ça reste économique, donc on va éviter les composants hors de prix;
- On sait qu’on va passer par JLCPCB pour la fabrication (ils déchirent), donc on va essayer de trouver le maximum de composants de surface disponibles en stock chez eux, et si possible en Basic Part pour lesquels il n’y a pas de surcoût;
- L’heure tourne donc pas question d’y passer plus d’une à la recherche des composants.
(*) Bon pour le modèle ESP-01, il faudra sans doute quand même virer les DELs (qu’on ne peut pas contrôler nous-même), surtout la DEL “power”, allumée en permanence. Mais il n’y aura aucun ajout de composant ou de changement des connexions nécessaire.
Pour B1 on va prendre un pont intégré, format MBS, pratique, très courant, existe en Schottky dans les paramètres qui nous conviennent: MB12S, LMB12S, SBS24 etc, tout ça ça passe.
Pour C on va siouxier un poil, on va utiliser au moins 2 condensateurs en parallèle pour plusieurs raisons, notamment:
- Qui dit capas en parallèle dit aussi ESR en parallèle et donc plus basse (point important pour la suite) et ondulation du courant (ripple) plus faible pour chaque condensateur (et donc échauffement moindre et durée de vie prolongée);
- Qui dit capacité plus faible par condensateur dit taille plus petite (même si au final on en met 2: le volume total occupé est disposé autrement).
- Qui dit somme de condensateurs avec une précision moyenne (+/- 20% typiquement) dit plus grandes chances que la somme des capacités soit plus proche de la valeur cherchée (moyenne des variations…).
Pour V1 il va falloir se casser un peu le train à éplucher les catalogues des suspects habituels, en sachant qu’on veut un module d’encombrement (très) réduit, nous permettant si possible de contrôler son démarrage, disposant d’un soft start “assez long” et nécessitant le moins de composants fonctionnels possible.
C’est la partie la plus longue, je vous passe les détails j’ai choisi un produit de chez TI, le LMR50410XDBVR (version PFM puisqu’on veut maximiser l’efficacité à très faible charge), qui a le bon goût d’être en stock chez JLCPCB et d’avoir 2 références substituables si besoin: le LMR54410 et le TPS560430X, qui n’ont pas été retenus car plus chers et surtout parce qu’ils utilisent une fréquence plus élevée, ce qui complique potentiellement un peu la conception (au delà du MHz je sors un peu de ma zone de confort). À ce sujet je précise que j’ai volontairement évité les convertisseurs qui tournent à 50kHz pour m’épargner d’éventuels soucis de résonance parasite sur le circuit TIC. Ah et pourquoi 1A pour une application à 250mA max ? Parce que surdimensionner (quand c’est raisonnablement possible) améliore significativement la durée de vie des composants.
Enfin pour la protection en entrée, si on l’implémente ça sera à base de fusible + TVS, en sachant que qui dit fusible dit encore des pertes et qu’au bout d’un moment les perdants n’ont plus envie de jouer, donc “on verra”, si vous me suivez.
T+1h30, sortons l’Aigle de son nid, j’ai soif.
Schéma

Hop, T+2h. Passons plus sérieusement aux choses pas très sérieuses.
Explication (nécessairement rapide, vu que toute la démarche technique est déjà distillée):
Alimentation
En haut du schéma, notre circuit d’alimentation, celui-la qu’on vient de décrire ci-avant:
- Entrée à gauche par connection aux bornes I1 et A du Linky,
- F2 et D1 (bi-diode TVS) pour la protection contre l’application du 230V, D1 bien dimensionnée par rapport à la tension d’entrée max attendue et aux condensateurs utilisés,
- B1 pour redressement double alternance,
- C1/C2/C4/C5 pour la baignoire et le filtrage Radio France International(*),
- R6/R7 pour fixer la tension régulée à 3.31V (un poil au dessus de 3.30, pour avoir des valeurs de résistances standard tout en restant dans les clous pour l’ESP)(*)
- L1/C8 pour le filtre du régulateur(*)
- C7 pour le boostrap du régulateur(*)
- Et D3/R3/R5 pour une petite subtilité que je précise derechef(*)
(*) se référer à la documentation technique du régulateur pour le détail des valeurs choisies. NB: pour L1/C8, on n’oubliera pas qu’on cherche une régulation qui réagisse bien aux variations brutales de consommation. 10-15µH c’est bien.
Pour la petite subtilité: le régulateur choisi (pas par hasard) nous offre la possibilité de fixer son point de démarrage (UVLO). Comme on l’a vu précédemment, c’est un sujet plutôt important. Par défaut, le convertisseur démarre à 1,36V, ce qui est très bas et représente une tension à laquelle la baignoire (les condensateurs) est à peine humide. On va donc chercher à retarder le plus possible ce démarrage, tout en sachant qu’il fixe également le point d’arrêt, avec un hysteresis de 0,13V multiplié par le ratio du diviseur R3/R5. Le couple choisit nous donne:
- démarrage à 12,4V
- extinction à 11,1V
On sait qu’on peut monter haut en tension avant l’allumage car tant que le régulateur n’a pas démarré, la consommation du circuit est de l’ordre d´une dizaine de micro ampères: quasiment “à vide”, où le Linky se lâche en tension (calembour), et donc on peut fixer pratiquement arbitrairement le niveau de remplissage de la baignoire. (Vous voyez, comme je l’avais dit, le cas défavorable n’existe pas !) On choisit 12V de façon empirique pour se garder un peu de marge par rapport aux variations d’un compteur à l’autre, tout en sachant qu’Enedis nous a bien suggéré qu’on pouvait s’attendre à les atteindre.
Mais là vous me dites: “t’as fondu un boulon, le montage va s’arrêter dès que la tension d’entrée passe sous 11V, ce qui va arriver dès qu’on tire un peu de jus”.
ET NON !
D’abord, au démarrage le régulateur applique un soft start d’environ 2ms, ce qui permet de charger C8 en douceur et sans faire un trou dans la baignore.
Ensuite D3 amène le signal de mise en route de l’ESP (que je détaille plus bas), un beau 3V qui s’active au moment où l’ESP démarre (après la charge de C8, voir ci dessous, ce qui nous arrange bien) et reste à 3V tant que IC1 est alimenté, c’est à dire tant que le régulateur ne décroche pas de lui-même à la tension d’entrée minimum (3,45V).
Autrement dit, avec une simple diode et un poil de créativité, nous avons un montage avec un hysteresis de 9V (c’est à dire 9V exploitables pour décharger le condensateur, retenez ça): mise en route à 12,4V (proche de la tension maximum attendue), coupure à 3,45V. Elle est pas belle la vie ? (NB: tout ça en plus en restant dans les clous des paramètres du régulateur, puisque la tension sur l’entrée EN ne dépassera jamais VIN + 0,3V).
À ce point de bascule (12,4V), la baignoire est pratiquement pleine (par rapport à la tension maxi théoriquement disponible) et représente une charge disponible de 9V * 4400µF ≈ 40mC qui couvre a priori le besoin qu’on a défini, avec une certaine marge pour prendre en compte le rendement du régulateur, la variabilité des composants, l’éventuel derating lié à la fréquence ou à la température ambiante, et les phases de la lune.
Note: 9V et pas 12,4V car comme je l’ai rappelé juste au dessus, en dessous de 3,45V le régulateur coupe, donc toute charge restituée par les condensateurs en dessous de cette tension n’est pas exploitable. Nous avons donc un delta de tension maximum de 12,4 - 3,45 = 8,95V, arrondi à 9V car c’est plus joli. C’est l’équivalent du Vripple maximum, pour ceux qui suivent.
Bref, ceci nous donne l’essentiel du mou dont on a besoin pour passer l’épreuve du démarrage. Le reste du mou (s’il en fallait encore) va nous être fourni par plusieurs éléments, précisés en temps utile.
TIC2ESP
Pour la deuxième partie du schéma, on retrouve essentiellement une reproduction de mon circuit TIC2UART, avec deux modifications.
Je ne vais pas reprendre l’explication de ce montage qui est disponible par ailleurs, je vais simplement préciser les deux différences en question:
- La sortie s’interface directement avec un header compatible avec les modules ESP-01 et ESP-01S (la différence entre les deux modules au niveau des pins
RST
etCHIP_EN
est prise en compte) - L’activation paramétrable de TIC2UART (via 2 portes 7414) est partiellement remplacée par:
- Une activation par un signal actif à l’état bas contrôlé par le module ESP via
GPIO0
, - La génération d’un signal
CHIP_EN
déclenchant la mise en route du module ESP après une durée déterminée, compatible avec les modules 01 et 01S
- Une activation par un signal actif à l’état bas contrôlé par le module ESP via
Concernant le point 1, cette modification s’explique par:
- Le choix du
GPIO0
plutôt que leGPIO2
car la DEL du module ESP-01S est raccordée auGPIO2
, et serait donc allumée en permanence si on l’utilisait pour cet usage. Par ailleurs on se garde ainsi la possibilité de contrôler ladite DEL à notre convenance (mais oui Monsieur, on pourait même se payer le luxe de claquer des électrons pour faire de la lumière !), - Le fait que le
GPIO0
est un strapping pin de l’ESP et qu’il est pourvu d’un pull-up, fournissant un signal à l’état haut à la mise sous tension.
Concernant le point 2, on répond à la problématique suivante:
Comment retarder le démarrage du module ESP pour que notre baignoire se remette de la mise en route du régulateur (et de la charge de C8) et se remplisse encore d’avantage; tout en trouvant une solution compatible à la fois avec le module 01 et le module 01S.
Pour comprendre, il faut savoir que le module 01S rajoute des résistances de pull-up sur les pins RST
et CHIP_EN
(un circuit RC complet sur RST
en réalité),
ce qui veut dire que l’application d’un simple circuit RC est relativement inopérante puisqu’on est contraint par la valeur (relativement faible) de R sur l’ESP-01S, à savoir 12kΩ selon la datasheet.
Par ailleurs, cette même datasheet nous précise également que le rise time maximum autorisé sur ces pins est de 2ms,
ce qui nous empêche de connecter directement un circuit retard plus long sur ce pin.
Dans le schéma retenu, le délai RC formé par R8 et C9, qui représente environ τ=1s, est appliqué à une porte 7414 (IC1A), et inversée à nouveau par une autre (IC1B) afin d’obtenir un signal actif haut capable de piloter CHIP_EN
sans effet de la résistance pull-up qui peut s’y trouver, et tout en étant compatible avec le cas où celle-ci n’existerait pas et en respectant les contraintes de rise time.
R9 quant à elle est là pour assurer la compatibilité avec le module ESP-01 qui ne comporte aucun pull-up.
Une pierre, deux cailloux, etc.
Petit nota bene: vous allez peut-être me demander “1s, c’est la constante de temps τ du couple R8/C9 mais pourquoi est-ce le délai au bout duquel le module ESP est activé ?“ Voyons ensemble: Pour que le module ESP s’active, il faut que la sortie de IC1B passe à l’état haut. Pour qu’elle passe à l’état haut, il faut que celle d’IC1A passe à l’état bas. Pour qu’elle passe à l’état bas, il faut que la tension à l’entrée du trigger de Schmitt IC1A soit supérieure à la tension de seuil montante. Vous me suivez ?
La doc du 74LV14 retenu nous indique que cette tension vaut typiquement environ 1,78V (moyenne des données fournies pour 3,0V et 3,6V), c’est à dire 60% de 3,3V. Or… 60% c’est pratiquement exactement la tension aux bornes d’un condensateur après qu’il ait été chargé pendant τ (on considère que c’est 63%). Et voilà, tout se recoupe.
Maintenant remarquons également que 1s, ça représente environ 3τ pour la charge de notre condensateur baignoire, qui s’ajoutent au délai déjà introduit par R3/R5 et le soft-start interne du régulateur, tout ça pour nous amener donc gentiment et sans trop d’effort à démarrer le module ESP alors que notre baignoire est archi pleine. Yay ! ✌️
Globalement là, on a tout dit.
Hep ! T’aurais pas oublié un truc ?
Ah non, j’entends les esprits chagrins me susurrer “mais, euh, t’aurais pas un peu oublié la consommation propre de ton montage TIC2UART dans tes calculs fumeux ?”. C’est une remarque (im)pertinente. La réponse est simple: cette consommation est totalement dominée par celle de la sortie l’optocoupleur, et on va voir qu’elle est carrément négligeable:
En effet, C6, condensateur de découplage, est négligeable. R8/C9 ne consomme que pendant la charge de C9, dont l’essentiel survient avant le démarrage du module ESP et s’arrête de toute façon une fois C9 chargé. La consommation au niveau de R2 est de l’ordre d’une centaine de micro Ampères, ne reste donc effectivement que R4.
Même en considérant le cas le plus défavorable, c’est à dire une chute de tension nulle au bornes de l’optocoupleur et une tension maximale en sortie de IC1D, on aurait donc 3,3V aux bornes de R4, ce qui représente… 700µA. Mazette.
Rassurés ?
Pendant ce temps après avoir dit tout ça on est toujours à T+2h, il est temps de mettre le PCB en forme.
PCB

Alors là j’ai dû prendre encore un peu de temps pour une activité qui n’est pas à la portée du premier quidam venu: lire. (Les Génies® savent-ils lire ? Le doute m’habite.)
En effet, je n’ai pas d’expérience particulière dans la conception d’un circuit d’alimentation à découpage (celui-ci doit être le 3è que je ponds, et celui qui utilise la fréquence la plus élevée des 3). Fort heureusement, les fabricants (ici TI) ont pensé aux pauvres pékins comme moi, et les datasheets sont une mine d’informations sur les principes à respecter pour garantir un bon fonctionnement. Dans le cas présent, il faut lire attentivement les pages 23 et suivantes.
Une fois qu’on a fait ça, on a l’explication sur le layout que j’ai retenu pour le bloc d’alim, en bas à droite du PCB, en espérant que je me sois pas trompé (mais vu que le montage fonctionne – SPOIL ALERT!! – a priori on doit pas être mal). Les gros condensateurs baignoires sont suffisamment espacés pour garantir une bonne ventilation et réduire autant que possible leur échauffement (important pour leur durée de vie), tout en permettant le cas échéant de prendre la taille au dessus (12,5mm de diamètre) si besoin. La trace qui les connecte à l’entrée du régulateur est la plus large possible, pour limiter son impédance au minimum.
Pour le reste, rien que de très classique, avec la volonté de:
- Minimiser la taille du PCB, comme on l’a dit (on est à 30x45mm au final);
- S’accorder la possibilité de raccorder le montage en direct sur le Linky, ce qui requiert pour les pins A/I1/I2:
- Le bon espacement (5mm),
- Le bon ordre,
- Le bon placement (en bordure de carte).
- Minimiser également le volume occupé par le montage (d’où le choix de connecter le module ESP en dos de carte, sans entraver significativement le fonctionnement du WiFi),
- Minimiser les interférences, même si comme la doc Linky ne précise pas là non plus les seuils tolérables, et que le signal fourni est déjà bien crade, je ne me suis pas vraiment soucié de ça (d’où l’absence par exemple de filtre en π en entrée).
Donc hop, un plan de masse (interrompu sous L1, pour éviter le couplage magnétique, et sous l’entrée, pour éviter le couplage du 50kHz et pour la robustesse au 230V), petit routage à la main pour les signaux, simple, propre et clair, et roulez jeunesse.
Pour les composants non montés par JLCPCB (tous les traversants mais aussi D1, B1 et L1), je me suis assuré d’avoir la place de glisser la panne de mon fer à souder, pour pouvoir finir le montage sans galérer.
Bref, là comme je suis un maniaque j’y ai passé un peu de temps, entre la lecture sus-mentionnée et le peaufinage de mon routage au fur et à mesure que je réduisais l’encombrement, disons 2h.
Conclusion: fin du projet à T+4h. Tout ça sans le moindre sponsoring. Diantre !
Bébert, sort le blanc et les verres.
Donc voila, pendant ce temps, au Comité Nimbus des Raconteurs de Sornettes, un truc comme ça fait l’objet de non pas
un,
ni deux,
mais de trois,
non QUATRE !(*) projets, dont apparemment une soutenance de stage de fin d’études, sans oublier un premier déli(t/re) avec un circuit testé et validé non pas sur un Linky mais sur… un générateur de signaux 🤦♂️
Sic transit gloria mundi. Abyssus abyssum invocat.
(*) update alors que je termine la rédaction de ce billet et retourne Googler mes sources, je tombe sur une suite indigente, encore pire que la précédente, puisque quoi de mieux que 2 régulateurs pour améliorer le rendement d’une alim, si ce n’est… TROIS régulateurs ? Après, comme disait Lino dans les Tontons…
Post Scriptum: oui pour TIC2UART j’ai repris un montage pré-exisant que c’est moi qui l’ai fait. Certes. Nettement plus simple de conception que celui-ci. Silence pesant. Vous pensez qu’il m’a fallu combien de temps pour le mettre au point ? 🤡
Logiciel
Reste un dernier point, pas le plus négligeable mais quand même: après le dur, le soft. (Je n’ai pas regardé ce qu’ont fait les Génies®: j’ai eu peur d’y laisser un œil ou deux, et peut-être la raison aussi.)
Ça va être rapide: utilisation de esptic2udp, dont le code a été très légèrement modifié pour améliorer les performances énergétiques (déjà pas trop mauvaises puisqu’on envoie les données par UDP, ce qui réduit nettement le temps passé en activité sur le réseau):
- Activation du Modem Sleep, un effort surhumain de 1 ligne de code;
- Ajout d’un simple délai après la négo DHCP, avant de lancer les Shadoks et de commencer à pomper la TIC, histoire de refaire le plein (1 ligne).
Modifications qui constituent la suite et fin du “mou” éventuellement nécessaire pour être tranquille pour barboter.
2 lignes de codes, un café l’addition René, il est l’heure de regarder le tiercé. Santé !
J’aurais aussi pu arranger mes routines de connexion au réseau pour que le Modem Sleep soit actif plus tôt, voire même utiliser une IP fixe pour éviter la douloureuse requête DHCP. Notons enfin que si vraiment on était raide, une dernière astuce consiste à réduire la puissance maximum des transmissions du WiFi, par exemple à 10dBm au lieu de 20, ce qui réduit de moitié la puissance consommé par le modem (si on n’est pas trop loin du point d’accès).
Bien sûr à la base je n’écris pas de sketches (je n’ai aucun talent comique) et donc je n’ai pas à gérer un SDK moisi qui produit par défaut du code qui transforme le CPU en poêle à frire juste pour faire clignoter une DEL, soit dit en passant l’air de rien.
Ah oui, tant qu’on y est le même code tourne aussi sur tous les variants d’ESP32 (le DFS est supporté), ce qui peut s’avérer pratique pour migrer vers un ESP32C2 par exemple.
Post Scriptum: oui pour l’implémentation logicielle je réutilise du travail déjà fait (les Génies® aussi, soit dit en passant); mais rassurez-vous: il ne m’a pas non plus fallu des semaines pour le pondre.
Mise en pratique
Comme je suis un dingo et que j’ai confiance dans mes calculs, je n’ai même pas testé un prototype sur une platine à trous, j’ai directement balancé ma commande chez JLCPCB. Résultat, montage reçu et fini d’assembler 10j plus tard, testé avec un module ESP-01S:
Devinez quoi, je branche et ça marche ! (testé sur un Linky, en mode TIC Standard avec abonnement Tempo).
Point de détail, j’ai mesuré 14,5V tension terminale en sortie de B1 en l’absence de la carte ESP, et environ 9-10V de moyenne carte branchée et en fonctionnement, ce qui valide les hypothèses précédentes et suggère qu’on a encore un peu de marge.
Cerise sur le gateau, le montage tient dans l’emplacement prévu pour sur mon Linky. J’aurais voulu le faire exprès que j’y serais pas arrivé !
Sur la rev2 du montage (présentée sur cette page), pour fignoler après essai de cette rev1 j’ai ajusté 2 bricoles sur le routage et le placement des composants ainsi que l’empreinte de B1 qui n’était pas parfaite pour le LMB12S que j’ai utilisé. Je suis maniaque.
Notes de bas de page
Tout d’abord j’ai un peu négligé la variabilité des composants et le facteur température (même si pour le plus important – les gros condensateurs – on a vu qu’en fait ces éléments étaient relativement pris en compte): le but pour ici n’est pas de faire un produit fini 100% valable dans toutes les conditions d’utilisation, mais de “prouver le concept”, à moindre coût. On peut raffiner, à partir des éléments présentés ici le sujet me semble déjà bien défriché.
On pourrait améliorer encore les performances du machin par bien des moyens:
Si on accepte d’utiliser des composants QFN ou BGA par exemple, certains régulateurs peuvent grimper à 95% d’efficacité même aux charges les plus faibles. Si on ne souhaite pas travailler d’avantage la partie logicielle pour améliorer son profil énergétique notamment au démarrage, en occupant un peu plus de volume on pourrait envisager des condensateurs un peu plus gros (par ex 3300µF) pour passer l’étape du démarrage (la plus délicate) avec une marge vraiment confortable par rapport à la variabilité des composants notamment.
Sur la partie logicielle, esptic2udp est une implémentation assez brutale qui récupère les infos via les primitives VFS comme fopen()
.1G
En accédant nativement à l’UART, voire d’ailleurs en implémentant une version bit-banged de l’UART sur le coprocesseur ULP des ESP32, on pourrait passer l’essentiel du temps en Light Sleep (ce qui n’est pas possible actuellement) et ne consommer donc pratiquement plus rien.
Autre option encore plus simple: on pourrait également décider d’envoyer les trames 2 par 2 (toutes les 2s environ donc), ce qui nuirait légèrement au “temps réel” mais nous permettrait de gratter encore de l’énergie.
Exercices de style pour un autre jour: le machin marche quand on le branche (et est autodémerdant en cas de coupure de courant), on transmet toutes les trames TIC en temps réel, et donc on a rempli le contrat.
J’ajoute pour terminer que je pratique également les relations (professionnelles, cela va de soi) tarifées, et je serais le cas échéant ravi de mettre mes modestes compétences au service de “sponsors” intéressés :)