La consommation du module Linky

Suite à quelques retours que j’ai eus sur la portée du montage Linky MySensors, j’aimerais apporter un complément d’informations sur les contraintes de consommation du module vis-à-vis de l’alimentation disponible sur le compteur Linky.

Le Linky a une sortie disponible depuis les bornes I1 & A avec les caractéristiques suivantes :

  • tension à vide : 13Vrms à 50kHz
  • tension en charge : 6Vrms à 50kHz
  • puissance disponible : 130mW

Avec les 130mW, nous avons donc sous 3.3 volts environ 39mA disponibles.

Le montage est décomposé en différents éléments avec les consommations suivantes :

  • Arduino Pro mini : 10mA
  • Régulateur LT1117 3.3v : 5mA
  • 2 leds : 5mA

Soit un total de 20mA en moyenne, il reste donc 39-20=19mA maximum pour alimenter la partie sans fil et dans notre cas le NRF24L01. Ce module en version classique (sans antenne et ampli) a une consommation entre 12 et 25mA suivant la puissance configurée et le débit utilisé. Un modèle SMA avec une antenne externe et amplificateur a une consommation qui oscille entre 25mA et 150mA.

Avec les 19mA restants, nous pouvons dire adieu au NRF24L01 en version SMA et aussi à la version classique avec une puissance d’émission importante. C’est pour cela que mon montage utilise un NRF classique avec une faible puissance…

Dans un cas concret, j’ai donc réalisé deux mesures avec le NRF24L01 modèle classique avec une puissance par défaut et ensuite avec une puissance max, mais avec une alimentation de labo afin de ne pas être limité sur l’intensité. Voici les courbes de consommation au démarrage du module Linky :

J’ai commencé une petite étude d’optimisation afin de gagner quelques mA; il est possible de faire les modifications/évolutions suivantes :

  • supprimer la led intégrée à l’arduino pro mini : gain 1mA
  • remplacer le régulateur LT1117 par un convertisseur DC-DC : gain 4mA
  • augmenter la valeur des résistances pour les deux LEDs : gain 2mA

Avec celles-ci, il serait possible d’augmenter la puissance de NRF24L01 via le #define MY_RF24_PA_LEVEL mais en aucun cas mettre en place une version SMD.

D’autres axes sont aussi possibles, par exemple :

  • remplacer le NRF24L01 par un module LORA longue portée – RFM95w : j’ai fait le test cette semaine sans succès, car il y a un pic de consommation > 40mA juste après le démarrage. Cette solution n’est pas viable avec l’alimentation actuelle.
  • alimenter le montage par une batterie externe : à étudier, car il y a des contraintes sur la durée de vie de la batterie, la fréquence de l’envoi des données vers la gateway et le temps de lecture des données TIC

Pour le module RF95w intégré à mon montage, voici la courbe de consommation au démarrage :

29 réflexions sur « La consommation du module Linky »

  1. Bonjour,

    Afin de gagner encore des mA, on peut aussi optimiser coté microcontrôleur, comme par exemple arrêter toute la partie convertisseur analogique numérique et les autres module non utilisé.

    • Oui c’est aussi une bonne idée mais est-il possible de faire cette désactivation permanente ? Au premier démarrage, il faut aussi avec une consommation réduite.

  2. Bonjour,
    l’utilisation d’un (super)condensateur ne serait pas imaginable ?
    Il se chargerait entre les différents démarrage de l’arduino pour fournir la puissance nécessaire au bon moment.

    • Oui c’est possible avec un supercondo. Le problème à regler est le premier démarrage du module avec le condo déchargé, comment avoir assez de puissance au démarrage pour alimenter l’arduino et charger le condo. Il faut trouver le moyen de réduire la conso de l’arduino et le NRF le temps que le conso soit pleinement chargé. Je suis en cours de tests sur une nouvelle version du module avec ce principe… 😉

  3. Bonjour,
    J’ai moi aussi des problèmes de connexion radio en NRF24L01 alors que le lora passerait d’après mes tests…
    Avec un super condo, si c’est le démarrage qui pose problème, est-ce qu’un branchement (pour charger le condo) puis un reset de l’arduino, permettrait de résoudre le problème ?
    Qu’est-ce que vous recommenderiez comme valeur de super condo ?
    Et sinon, autre idée -peut-être stupide..-: est-ce qu’une mini batterie (style mini li-ion) pourrait être chargée en amont du régulateur avec le 5-6v du linky malgré le très faible courant avec un module de type TP4056 ? ou à l’inverse une petite batterie nimh comme dans certaines petites lampes solaires avec un step-up pour remonter ensuite à 3.3V ? Si les temps d’émission lora sont suffisamment faibles par rapport au temps « passif », peut-êre que la faible puissance fournie par le linky permettrait tout de même de conserver la batterie chargée. En encombrement, ça fera sans doute comme un super condo, mais au mins la batterie pourrait être déjà chargé pour le démarrage du système.

    • @Eric, je suis en cours de tests avec un contrôle de la charge du super Condo au démarrage mais en désactivant l’alimentation du NRF… j’utilise un Condo de 1,5 Farad. Le precharge est assez longue, environ 15mn. Cela complique le code avec Mysensors pour contrôler l’alim du NRF et le reprise de communication. Le côté batterie j’ai abandonné à cause de risque de surcharge et des problèmes d’effets mémoire. Suivant mes tests il se peut que je réoriente mon projet avec des batteries 18650 sans circuits de charge ou alim extérieure (au choix)

      • En complément sur ton idée de charger la batterie avec un TP4056, théoriquement l’idée est bonne mais ce n’est pas possible car le courant de charge minimale programmable est de 140mA; bien au delà de la capacité des 130mW du Linky…
        Autre point personnel, je ne suis pas du tout chaud pour mettre un accu Lion en charge permanente.
        Pour finir, mes tests à ce jour avec le supercondo ne sont pas concluants. La charge se déroule bien mais ensuite cela fonctionne une fois sur deux dans la transmission des infos, c’est assez instable à cause de la variation de tension aux bornes du condo. La charge est trop longue vis à vis de la consommation.

        • mince… encore des espoirs déçus..
          et, juste une idée.. est-ce qu’on pourrait mettre la supercapa en amont du régulateur, si c’est un problème de stabilité de tension ?
          Ce que je ne comprends pas très bien, c’est que s’il manque « 20 ou 40mA » pour les pics de conso, mais qu’entre les émissions, on a 19mA de dispo, la recharge du condensateur ne devrait pas être si lente que ça, surtout si on parle d’une émission de max 1s toutes les minutes par ex. Mais je ne maîtrise pas le ssubtilités d elélectronique, malheureusement..
          Je me demandais aussi si on pourrait mettre le super condo directement en amont du montage (ie directement connecté au linky), mais là, je suppose que les 6V en charge vont griller les supercapa qui sont souvent en 5.5V, c’est ça ? (et san sparler du pic de tension au moment où on brancherait le montage.)

          La dernière remarque que j’ai, à propos du TP4056 ou d’un équivalent. Dans les petites lampes de jardin que j’ai (cellule solaire toute petite et mini batterie NiMH), l’intensité semble très faible et pourtant la batterie se recharge au soleil. J’avais même transformé certaintes lampes en capteurs d’humidité Mysensors (mais en NRF24L01). Donc est-ce qu’on pourrait trouver un montage qui accepterait les 40mA de l’alim linky ? (cf peut-être https://fr.aliexpress.com/item/4000095755765.html?spm=a2g0o.search0302.0.0.1d1c2ff2fzAQGv&algo_pvid=2a55a7d3-a7c5-45cd-9f96-5b307b6b8a65&algo_expid=2a55a7d3-a7c5-45cd-9f96-5b307b6b8a65-21&btsid=2100bde116084845224532182e0e51&ws_ab_test=searchweb0_0,searchweb201602_,searchweb201603_ qui semble atteindre 70mA max)
          On t’en donne des soucis… je comprendrais que tu me répondes « j’arrête là les investigations »..)

          • @Eric, mes premiers tests ne sont pas concluants mais je n’ai pas fini .. ;). Mon problème est je pense un souci logiciel que j’espère résoudre d’ici quelques jours; à suivre…

  4. Bonjour. Je découvre le topic et suis très intéressé. Est-il possible d’avoir 1peu plus de détails sur les mesures avec les supercapa? Je suis dans l’électronique (alimentation) et pourrais regarder ce qui pourrait aller.

    • Bonjour.
      Je ne sais pas trop comment se comporte la sortie si on la charge. Avec un LDO, 130mW sous 13V donne 10mA mais sous 3,3V> 39mA. Est-ce que la sortie teleinfo descend (écroule plutôt) son voltage RMS si le courant monte au delà de 10mA ?
      Pour avoir toute la puissance dispo, il faut passer sur de l’alimentation à découpage.
      Autre possibilité, pourquoi ne pas tout passer sur du 2,5V ? A priori les MCU peuvent (au détriment de la fréquence de CPU mais bon..) et le nRF semble OK aussi… Dans ce cas, il suffit de charger le supercondo, attendre avec le CPU que la tension soit ~suffisante (perso, s’il doit charger pendant 15mn ce n’est pas trop dérangeant pour un système qui doit fonctionner H24 / le MCU peut commencer à collecter les infos) puis lancer le lien RF.
      Et on peut aussi pousser en mettant un boost pour générer du 3,3V seulement quand la RF doit être lancé. Un envoi par seconde devrait suffire. Et si le condo n’est pas assez chargé, un envoi toutes les N sec.

      • La suite de mes tests avec le super condo n’est pas à la hauteur à ce que j’espérais. Cela fonctionne avec un node Mysensors simple juste avec une donnée à monitorer. Là il y a bien plus de données et la phase de présentation est assez longue surtout s’il y a des re-tentatives. Cela reste pour moi pas assez fiable pour couvrir la cas de la longue distance avec la puissance max. Le fait d’abaisser la tension est une piste pour gagner quelques mA mais la puissance d’émission diminue aussi.
        Il reste l’idée de l’accu et cela fonctionne mais j’ai un peu peur pour l’autonomie. Un test est en cours pour vérifier cela. Je vais en parallèle fait quand même faire un test avec un module TP4056 doté d’une protection de surcharge. A suivre…

        • Salut. Effectivement la distance nécessite une puissance max, et donc de la conso. Serait-il possible de faire un bilan de puissance approximatif par phase pendant le démarrage ?
          Il serait peut-être possible de supprimer pas mal de messages ou d’identification au démarrage pour qqun qui veut juste une conso « instantannée » et le cumul des KW utilisé.
          Il y aurait peut-être d’autres pistes car le MCU doit consommer beaucoup. Perso je suis passé sur les nouveaux ATTINY. Et j’ai essayé de baisser la conso au max, rien qu’en utilisant une horloge de CPU à 32KHz au lieu des 16~20MHz. Pour un envoir toutes les ~5sec, ca suffit je pense… Dans ce mode, le MCU consomme 3mA en 3.3V/10MHz contre 7,5µA en 32KHz. Serait-ce suffisant ? A essayer. En regardant le programme, le MCU continue à consommer pendant qu’il attend une nouvelle trame. On peut envisager de le mettre en mode sleep (l’UART restera actif pour réceptionner les info compteurs).
          Et il resterait une piste > mettre de côté les trames MySensor et faire juste une passerelle monodirectionnelle d’un NRF à un autre. Le récepteur pourrait régénérer une trame téléinfo pour que le raspberry croie qu’il est juste à côté du Linky. Et un même module pourrait faire soit l’émetteur, soit le récepteur en modifiant un jumper.

          • @Florian, en fait j’essaye de trouver une solution universelle avecMysensors et longue distance. Pour la longue distance il faut passer par des nrf24 avec ampli. Même en grappillant quelques Milliampères en baisant la fréquence du cpu, la puissance des 130mw ne suffit pas à alimenter le nrf ou le rfm95 durant la phase d’émission. Il faut trouver une réserve via un super Condo ou une batterie. Pour la batterie, j’ai fait un test concluant avec Mysensors mais il cela ne rentre pas dans le boîtier existant. C’est pas super grave. Avec un super Condo, mon test n’est pas concluant car la phase de présentation de Mysensors est assez énergivore sans en maîtriser la durée de communication (pb de perte de paquets, retry, etc.). Je vais faire un test en allégeant la partie logicielle car je pense que toutes les donnes tic ne sont pas toutes utiles. Et pourquoi pas abandonner Mysensors afin de maîtriser à 100% la communication vis à vis de la capacité disponible sur le supercondo.

  5. Après quelques tests, j’ai réussi à faire fonctionner le module avec un super condensateur mais sans passer par le bibliothèque MySensors sur une platine d’essai avec un Arduino pro mini, un condo de 2 Farads (celui que j’ai en stock, il est possible de réduire sa valeur) et un RFM95W. A la puissance max, le RFM consomme 220mA en pointe, avec le supercondo mon montage consomme en pointe 39mA. 🙂 Je pense qu’il y a encore un peu d’optimisation possible. Tout cela ne va pas rentrer dans le boitier existant, je vais faire ce même test avec un Attiny afin de gagner de la place…

    • Bonjour. Bonne nouvelle ! A titre d’info, a quelle tension est chargé le condo ? 3.3V ? Et quelle est la chute de tension sur le condo après une série de communication ? Peu-on estimer la durée de la transmission?
      En volume pur, il est certainement intéressant d’utiliser un condo à 2,5V et de booster la tension à 3.3V.
      1) le condo peut être déchargée beaucoup plus bas. Son utilisation est optimisée
      2) cela permet de baisser sa valeur et donc son volume
      3) et cela permet aussi de le charger plus rapidement (et donc de faire le premier envoi aussi plus rapidement)
      Mais pour les tests, moins d’intérêt.

      Il existe des boost pas trop difficile à souder pour ce genre d’application (MP3416 par exemple).

  6. Bonjour,

    Il existe 2 ERL avec le wifi, dans un environnement fermé/cloud privé hélas, avec D2L et Total Atome:
    https://community.jeedom.com/uploads/default/original/3X/e/8/e871e938dc85d3d1466bc8ea15b1d1ac18733ae6.jpeg
    https://community.jeedom.com/uploads/default/original/3X/5/4/5419c04b71c3a4a2da39782035aa090717e42d54.jpeg
    https://community.jeedom.com/uploads/default/original/3X/f/3/f370d32b55ee2529dfbb76d2301558de103184f2.jpeg

    Je ne suis pas assez bon pour déterminer autre chose des photos que 1.5F suffit pour tirer assez de jus pour faire du wifi 😉

    Donc j’ai hate de voir ce que vous arrivez à faire coté alimentation, car il y aurait 2 type de sorties qui pourrait intéresser du monde sans gateway MySensor:
    – Wifi vers un broker MQTT (mais gros défi coté optimisation conso, et également coté sécurité réseau si le module est à l’extérieur du logement…)
    – Zigbee avec au plus simple un CC2530 utilisé à la place du NRF24L01

    • Bonjour, Oui les deux ERL avec le wifi sont des solutions « Cloud » avec une remontée d’information toutes les 10 minutes de mémoire. Cette remontée donne la consommation du dernier relevé, il y a donc perte d’information pendant cette longue période. Il n’y a pas de gestion de mini et maxi sur la consommation.
      Actuellement, j’ai un proto qui fonctionne « presque » (petit problème de reboot de l’arduino que je n’arrive pas à comprendre à ce jour) mais basé avec RFM95W et un supercondo. Le module permet d’envoyer les infos de conso tous les 3 minutes avec min et max vers une gateway/MQTT. Il reste compatible en termes de dimensions avec le boitier existant. Malheureusement il est trop instable pour en décrire le montage complet.
      La solution zigbee qui demande aussi une gateway et comporte les mêmes problèmes avec le NRF24L01, si l’on veut de la puissance il faut mettre un module avec un boost+antenne. Ce ne rentre pas dans le petit boitier. Il est possible de mettre cela dans un boitier externe mais il reste toujours le problème de l’alimentation. Je n’ai pas été plus loin pour le zigbee.
      La solution wifi qui est standalone permet de s’affranchir de la gateway mais il y a toujours ce problème d’alimentation. J’ai bien une idée avec un supercondo mais dans un boitier externe mais je n’ai pas encore testé. Il y a aussi la solution avec une pile lithium à changer tous les x temps.

  7. Bonjour,

    Je ne connaissais pas cette période de 10min sur les produits commerciaux, pas top si c’est avéré.
    Bon, j’ai hate de voir l’avancé du proto.

    Coté Zigbee, j’ai parlé du CC2530 utilisé, comme souvent, avec un firmware de transmission, histoire d’être utilisé comme le NRF24L01, mais c’était en réalité de l’auto-censure afin de rester proche de ta partie logicielle.

    Le CC2530 contient son CPU et ses IO, et pourrait être utilisé directement depuis ta carte alimentation, sans arduino. Avec une conso de 30ma.
    Mais là, c’est plus franchement le même code, et sur un joujou moins connu que les arduino.

    • Bonjour, je pense qu’il est possible d’utiliser le CC2530 à la place du NRF24L01 sans arduino mais dans les deux cas nous avons un problème de portée. Mon montage à base de NRF24L01 fonctionne très bien dans la même optique que zigbee , c’est çà dire en réseau maillé en courte portée. Pour les personnes ayant le compteur à 100m de la leur maison le zigbee ne fera pas mieux que le NRF24L01. Il faut passer sur un modèle avec ampli intégré et là nous rencontrons le problème d’alimentation de de place disponible dans le boitier et mettre des répéteurs ou autres nodes pour constituer un réseau maillé; petite précision ces nodes ou répéteurs doivent être alimentés pas secteur.
      Mon proto actuel avec le supercondo n’est pas fiable et cela j’embête d’allonger la fréquence de mise à jour à l’image des modules du commerce. Pendant cette étude avec le supercondo j’ai aussi trouvé aussi des axes d’optimisation de la consommation via l’utilisation de régulateur faible conso et aussi sur l’optimisation de mon code. En surfant que le net j’ai trouvé une nouvelle version du NRF24L01 avec une antenne céramique. Je pense le tester et faire un retour dès que je peux.

      • Bonjour,

        Merci encore pour ta réponse. J’ignore le détail des portés ShockBurst/NRF24L01 ou Zigbee/CC2530, mais on peut imaginer que c’est du même ordre de grandeur pour une puissance/fréquence injecté identique.
        Peut-être que les 10ma économisés sur l’Arduino ferait un petit avantage… mais dans tous les cas certainement moins qu’une alimentation « rechargeable » permettant des envoies à + fortes puissance.
        En tout cas, après avoir écumé tous les projets OpenSouce sur le sujet du Linky, je trouve que ton projet en maillé et auto alimentation est particulièrement bien pensé, l’architecture offre pleins d’avantages.

        En ce qui me concerne, le coté auto-alimenté m’intéresse, pas tant sur une problématique de forte distance (à 3m…), mais simplement car dans une partie commune d’immeuble non perçable.
        Le NRF24L01 m’oblige juste a 1 gateway dédié, c’est pas la mort non plus… mais je me dis aussi qu’une déclinaisons Zigbee aurait un public + large et qu’à la limite, cela peut se tenter avec un CC2530+condo à la place du NRF24L01.
        Au même titre que tu as déjà plusieurs choix d’émetteur dans ton code si j’ai bien compris.

        Par contre, avant de me lancer là dessus avec un objectif de Pull-Request sur ton code, est-ce que tu envisages à terme une fusion de tes versions historique/standard (avec paramètre de compilation) afin de simplifier les choses?

        • sur la base de mysensors et du nrf24l01, je vais faire un test toujours en auto alimenté avec un supercondo. Le principe sera du best effort, l’envoi d’information se fera au rythme de la charge du condo.
          Si c’est concluant, une version logicielle sera compatible linky mode standard et historique. Pour l’instant je préfère me concentrer sur l’existant avant de tenter une aventure vers le zigbee avec le CC2530 que je ne connais pas.

          • Alors là c’est top comme concept avec le best effort en fonction de la charge d’un super-condo!

            Et à la limite, vu que j’ai un pitinfo sous le coude, cela ne m’empêche pas de jouer avec un proto basé sur une alim+Arduino+CC2530 (en mode émetteur) pour évaluer l’impact sur le code.
            Au pire, je n’arrive à rien, et j’ai perdu 4euro, et au mieux tu gagnes un pull request et un compatibilité zigbee. 😉

          • Pour information, le module fourni par direct energie (clé atome réalisée par esoftlink), propose bien une vision « live », mais qui est limité dans le temps, je pense que le condensateur est sollicité pendant le mode live, puis le mode live se coupe après quelques minutes ou c’est du faux live avec un envoi toutes les 10 secondes.
            Ils utilisent un STM32L – L451RC ( https://www.st.com/content/ccc/resource/sales_and_marketing/promotional_material/flyer/0a/4f/e9/dc/28/fd/49/9e/flstm32l4.pdf/files/flstm32l4.pdf/jcr:content/translations/en.flstm32l4.pdf)
            J’ai quelques photos si ca vous intéresse.

          • Merci pour ces infos, je veux bien les photos complémentaires. Pour l’instant je suis parti sur une liaison LORA avec une gateway mqtt. Le module est en fonction depuis deux semaines et je n’ai pas rencontrer de problème. En terme de portée, je n’ai pas eu de problème avec une distance de plus de 20 mètres et deux murs porteurs. Je pense mettre les plans sur le site d’ici peu.

  8. Bonjour,

    Merci encore pour ta réponse. J’ignore le détail des portés ShockBurst/NRF24L01 ou Zigbee/CC2530, mais on peut imaginer que c’est du même ordre de grandeur pour une puissance/fréquence injecté identique.
    Peut-être que les 10ma économisés sur l’Arduino ferait un petit avantage… mais dans tous les cas certainement moins qu’une alimentation « rechargeable » permettant des envoies à + fortes puissance.
    En tout cas, après avoir écumé tous les projets OpenSouce sur le sujet du Linky, je trouve que ton projet en maillé et auto alimentation est particulièrement bien pensé, l’architecture offre pleins d’avantages.

    En ce qui me concerne, le coté auto-alimenté m’intéresse, pas tant sur une problématique de forte distance (à 3m…), mais simplement car dans une partie commune d’immeuble non perçable.
    Le NRF24L01 m’oblige juste a 1 gateway dédié, c’est pas la mort non plus… mais je me dis aussi qu’une déclinaisons Zigbee aurait un public + large et qu’à la limite, cela peut se tenter avec un CC2530+condo à la place du NRF24L01.
    Au même titre que tu as déjà plusieurs choix d’émetteur dans ton code.

    Par contre, avant de me lancer là dessus avec un objectif de Pull-Request sur ton code, est-ce que tu envisages à terme une fusion de tes versions historique/standard (avec paramètre de compilation) afin de simplifier les choses?

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *