Mysensors – Réglage du BOD

Après la description du montage à base de RFM95, je suis revenu sur le montage LinkyMySensors pour tester un autre axe d’amélioration sur la puissance d’émission. Il est possible de pousser au max la puissance du module NRF24L01 via la #define MY_RF24_PA_LEVEL mais sans certitude d’avoir un montage stable, sans reboot intempestif de l’arduino.

Le reboot est lié entre autres au paramétrage des fusibles internes du microcontrolleur et notamment le BOD qui défini la seuil de tension acceptable pour son fonctionnement. Au dessous de celui-ci un reboot est lancé..

Par défaut le seuil est à 2.7v sur un arduino pro mini. Il est possible de le modifier facilement mais demande un « reflashage » du bootloader via l’interface ISCP. Cf ce petit article décrivant la procédure à suivre : https://www.arduino.cc/en/Hacking/MiniBootloader

J’ai réalisé cette manipulation sur mon arduino avec un seuil à 1.7v ce qui permet d’avoir une variation possible de la tension plus importante au niveau de l’alimentation durant les phases de sollicitation du NRF24L01. Je peux maintenant pousser le PA_LEVEL au max sans inquiétude. 🙂

Un complément d’informations arrivera d’ici peu dans les pages LinkyMySensors

Nouveau module Linky

Le module Linky Mysensors fonctionne très bien pour les personnes ayant le compteur à proximité de la gateway Mysensors et permet d’avoir une remontée d’informations en quasi temps réel. Je me suis penché sur le problème des personnes ayant le compteur à l’extérieur sans avoir la possibilité d’avoir une alimentation complémentaire pour augmenter la portée du module (NRF avec un booster, ESP32 wifi, etc.). Ce nouveau module utilise toujours à arduino pro mini pour la collecte des infos TIC du compteur mais utilise maintenant un sous module LORA RFM95W afin d’augmenter significativement la portée avec la bande de fréquences 868Mhz. Ce dernier a besoin d’une alimentation qui dépasse la capacité de la sortie 130mW du Linky mais en deçà ce que demanderait un module WIFI. Pour cela le montage a une alimentation pilotée par l’arduino avec un super condensateur de 0,47 Farads. Cette méthodologie m’a contraint d’abandonner le protocole Mysensors afin de maitriser au maximum sa consommation et d’utiliser sur la librairie LORA avec une nouvelle gateway MQTT a base du module TTGO LORA32 Wifi.

Pour la portée, j’ai réalisé un premier test concluant entre mon compteur situé à l’intérieur de ma maison et l’extérieur de mon jardin (>20 mètres + murs porteurs) avec une petit antenne, celle de la photo.

L’arduino récupère en temps réel les données du compteur Linky et envoi les données de consommation vers la gateway de façon continue mais avec une gestion de « best effort » avec la réserve d’énergie disponible via le super condensateur. Afin de contrer ce délai assez important, entre 1 et 2 minutes, l’arduino calcul et met à disposition la consommation minimal et maximal pendant ce laps de temps. Je pense pourvoir diminuer sensiblement ce délai avec quelques optimisations de mon code.

La consommation du module Linky

Suite à quelques retours que j’ai eu 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 :

Nouvelle version Linky MySensors v1.1.4

Voilà une nouvelle version logicielle pour le module Linky en mode « standard » uniquement. Cette nouvelle version à une zone d’options disponibles pour affiner les réglages internes au NRF24L01 notamment le changement de canaux de communication et la puissance d’émission. Une autre modification apporte une optimisation pour la transmission de données afin de minimiser l’empreinte sur la bande passante. Cette version est disponible sur le Github.

Le module Linky est sa portée..

Un bref article pour donner quelques informations sur la portée du module Linky Mysensors. Comme tu le sais ce module utilise le NRF24L01 pour l’échange de données via le protocole Mysensors. Théoriquement il est possible de réaliser la transmission de données jusqu’à 100 mètres de distance. Mais dans la vraie vie c’est complètement différent et je vais essayer de te donner quelques pistes pour améliorer sa portée.

Pour atteindre les 100 mètres il faut réunir plusieurs pré-requis :

  • Être en champ libre : pas de chance tu as sûrement des murs entre ce module et ta gateway. Le NRF24L01 utilise la bande de fréquence 2,4Ghz qui n’aime pas les murs et encore moins les murs en béton armé.
  • De pas être perturbé par un champ externe : je suppose que tu as du wifi chez toi et l’une des bandes utilisées est aussi le 2,4 Ghz. De plus le canal réglé par défaut sur MySensors est 76 correspondant à la bande en plein milieu du wifi.
  • D’utiliser un débit bas : pas de problème Mysensors est réglé par défaut à 250kps.
  • D’utiliser la pleine puissance du module : sur Mysensors le réglage par défaut est à HIGH ce qui n’est pas le niveau le plus élevé.

Comment améliorer la portée du module ?

Changer le NRF24L01+ SMD par un module avec amplificateur et antenne externe n’est pas une bonne option à cause de sa consommation vis à vis de la puissance limitée à 130mW sur l’alimentation du Linky.

Il est possible d’alimenter le module avec une alimentation extérieure mais ce n’est pas envisageable pour le compteur enfermé devant ta rue…

Il reste à mon avis trois possibilités (si tu as d’autres idées je suis preneur…) :

  • Modifier quelques paramètres de Mysensors liés au fonctionnement du NRF24L01. Une nouvelle version arrivera très prochainement dans le github. Utilisation d’un canal non couvert par le wifi et passage en mode MAX pour la puissance d’émission (à valider).
  • Utiliser une antenne de meilleure qualité sur la gateway. Pour ma part ma gateway utilise une NRF24L01 SMA avec une antenne extérieure 6db.
  • Mettre en place une antenne extérieure sur le NRF24L01 SMD à l’image de cet article. Je vais tester cette possibilité prochainement et je te ferai un retour avec une description complète pour réaliser la modification.

Mise à jour hardware Linky MySensors

Après quelques temps d’utilisation du module Linky, j’ai remarqué des petites instabilités de la communication NRF vers la gateway. Pour alimenter celui-ci je me suis appuyé sur le régulateur interne de la carte Arduino pro mini qui à l’usage n’est pas d’une grande efficacité/régularité. J’ai donc décidé d’ajouter un régulateur externe LT1117-3.3 et remplacer le NRF par un modèle SMD plus petit; adieu la fente sur le boîtier. La partie logicielle reste à 100% compatible avec ce modèle. Les articles sont en cours de mise à jour.

Linky MySensors, où suis-je ?

Voilà une petite map regroupant les Linky Mysensors installés, enfin j’espère.. 🙂 J’ai juste récupéré l’ensemble des villes des utilisateurs enregistrés sur le site. Pas d’inquiétude, il n’y a que la ville affichée sans plus d’information.

Nouvelle version logicielle Linky !

Hello, voici une nouvelle version du logiciel 1.1.0 pour le module Linky en mode « standard ». Elle est compatible avec les compteurs monophasés, triphasés ou producteurs !

Rendez-vous sur le page « Linky standard »

Nouveau montage: Compteur eau ESP – MQTT

Hello tous, après le module Linky Mysensors voici un autre capteur pour le relevé de la consommation d’eau utilisant une autre technologie couramment utilisée en domotique, le MQTT. Ce module utilise un ESP8266 qui permet d’héberger facilement un petit serveur web avec une connexion wifi. Le descriptif complet est par ici.

Montage du module MySensors Linky

J’ai trouvé un peu de temps pour mettre en ligne la description du montage de la première carte du module MySensors Linky. Le montage de la carte alimentation arrivera bientôt dès réception des pcb, mon stock est déjà parti. :).

12/01 : en attendant le pcb, je complète la description avec l’assemblage des deux cartes, la programmation et la mise en boîtier.

18/01 : maj avec la programmation et inclusion sous Jeedom