Sonoff (Itead) est une « marque » ou « gamme » ultra connue dans le monde de la domotique. Il existe sous plusieurs formes mais son concept le plus courant est toujours le même. Il permet de piloter 1 ou plusieurs relais en passant par la radio WiFi. Sonoff a pour habitude d’utiliser principalement toujours la même architecture WiFi, à savoir, les modules de chez Espressif. Que ce soit les ESP8266 ou ESP8285, Sonoff a une super réputation de rapport qualité / prix.
Dans cet article, je ne vais pas vous expliquer comment utiliser ou hacker les Sonoff, je pense qu’il y a assez d’articles sur le sujet. Je vais simplement partager mon expérience sur un produit et vous expliquer comment j’ai résolu mon problème de portée radio.
Votre note :
Le contexte
J’ai pas mal joué avec les Sonoff (un peu comme tout le monde d’ailleurs) et lorsque j’ai acheté une piscine, je me suis dis que ces produits pouvaient être une bonne solution pour piloter la pompe de filtration, l’éclairage et mesurer la température de l’eau.
J’ai donc acheter le Sonoff 4CH R2. Alors au départ, ce n’était pas celui-ci que je souhaitais mais plutôt la version PRO permettant d’avoir des relais indépendants. En effet, j’aurai préféré pouvoir piloter autre chose que du 220v (par exemple, regrouper les électrovannes du jardin). De plus la version PRO permet d’avoir une source d’alimentation basse tension.
Bref, peu importe, cet appareil fait l’affaire. Après montage et mise en route de la piscine, j’ai installé le Sonoff, fait les branchements et mis à jour l’appareil pour intégrer le firmware ESPEasy.
Tout aller bien, jusqu’à ce que je décide de fermer / cacher la partie moteur de la piscine. A partir de ce moment, les remontées d’informations et le pilotage de la piscine ont été problématiques. La qualité radio s’est énormément dégradée et ne me permettait plus d’avoir un système satisfaisant.
J’ai donc décidé de revoir ma copie.
Etude de la partie radio du Sonoff 4CH R2
Après avoir démonté le boitier et sorti la carte électronique voici a quoi ressemble la partie WiFi du matériel :
En rouge : on retrouve l’ESP8285 qui est le microcontrôleur du Sonoff. Il gère le pilotage des relais et toute la partie Wifi. C’est en quelque sorte le cerveau du Sonoff.
En bleu : C’est la partie adaptation d’antenne. Son but étant de se rapprocher des 50 Ohms afin que l’antenne puisse osciller correctement. (je vulgarise, c’est bien plus complexe). Bon vu, le circuit d’adaptation, il n’y a pas grand chose à dire. Un condensateur en série (dont je n’ai pas relevé la valeur). Apparemment, il y a des emplacements pour des inductances en parallèle mais elle ne sont pas montées.
En rose : l’antenne PCB
Malheureusement, je ne suis plus équipé de matériel me permettant d’évaluer la partie radio. J’ai juste récupéré le RSSI du Sonoff à partir de l’interface web de ESPEasy.
On note -86 dB.
Face à cette architecture, la solution serait d’abandonner l’antenne PCB pour une antenne externe permettant 2 choses :
- Sortir l’antenne du boitier
- Gagner en gain (pas de magie non plus, on ne peut pas créer de puissance avec une simple antenne, en réalité on la rend plus unidirectionnelle)
Modification de l’antenne
Pour passer de l’antenne PCB à une antenne externe, normalement, les constructeurs prévoient une empreinte d’un connecteur UFL. Cela permet de passer facilement d’une antenne interne à externe mais aussi, lors du développement, d’utiliser le connecteur pour adapter le circuit radio. (par exemple ici)
Malheureusement, sur cette carte, ce n’est pas le cas. Cependant, on peut toujours s’arranger pour trouver un moyen de le faire.
La première des choses est de prendre un connecteur UFL – SMA (généralement vendu avec l’antenne externe) et on découpe le connecteur UFL. On sépare le blindage du fil signal et on étame chacune des parties.
Il faudra relier le blindage à la masse de la carte et le signal sur la partie antenne.
Pour ce faire, il existe plusieurs solutions.
- Partant du principe que l’antenne et son connecteur achetés sont à 50 Ohms et que la sortie radio de l’ESP8285 est à 50 Ohms, l’idéal serait de connecter le signal au plus près du module radio. L’inconvénient de cette solution est qu’il faut couper la piste du signal et faire des prouesses en soudure. En effet, on ne peux pas laisser la branche de signal sur le PCB sous peine de dégrader et impacter la qualité du signal.
- On utilise les pastilles L2 (voir ci-dessus) pour connecter GND et le Signal. On évite dans ce cas là de faire de la soudure de précision. On est quand même obligé de couper la branche juste après le composant. On considère que la branche entre le micro et L2 est négligeable.
- On dessoude le condensateur de liaison C27 (voir ci-dessus) et on soude le signal sur la première pastille (en venant de la droite. Proche micro). On évite de faire de la soudure de précision et on n’a pas besoin de couper de branche. On considère bien entendu que la branche entre le micro et C27 est négligeable.
Sans outil, c’est difficile de voir qu’elle solution est plus adaptée mais pour éviter de dégrader le matériel, j’ai choisi la dernière solution. Je me dis que si ce n’est pas acceptable (et comme il n’y a pas de dégradation), j’envisagerai les autres.
Voici à quoi cela ressemble après soudure. Ce n’est pas l’idéal mais j’espère que cela fera l’affaire. (On le voit peut-être pas trop bien mais le signal du câble ne touche pas les autres plots).
Ensuite, il suffit de brancher l’antenne externe et refaire les tests.
Le signal est meilleur (-80 dB), on gagne 6 dB. Sachant qu’on double la distance tous les 6 dB, je pense que c’est plutôt pas mal et que cette solution me convient. Alors ce n’est pas évident avec cette valeur pour savoir si c’est réellement mieux car par exemple, nous n’avons pas d’informations sur le bruit. Il est possible que ma modification engendre du bruit et qu’au final, ce changement n’apporte pas que de bonnes choses mais impossible de savoir réellement.
Bref, je valide et je bloque l’installation à la colle chaude pour que mécaniquement, le fil ne casse pas.
Je remonte tout et je fais un trou dans le boitier du Sonoff pour faire sortir l’antenne.
Voilà, il ne reste plus qu’à tout remettre à sa place et refaire les branchements pour la piscine.
Conclusion
La modification m’a permis d’améliorer la qualité de communication entre le Sonoff et ma borne WiFi. Être en limite de portée sur ce type de matériel peut mettre la pagaille dans sa domotique et souvent plutôt que de rajouter un répéteur (qui du coup, augmente les possibilités de pannes), une simple modification à moindre coût peut changer la donne. Il n’y a pas grand chose de compliqué mais il faut comprendre comment le faire.
Ce qui m’a un peu contrarié, c’est de ne pas être équipé pour bien mettre en évidence la qualité du signal. J’y suis allé un peu à l’aveugle et procédé par petit pas et pragmatisme.
Du coup, j’ai cherché des solutions et des outils me permettant, à l’avenir, d’avoir plus de billes pour évaluer un signal radio. J’ai alors pensé aux nombreux outils SDR (HackRF, LimeSDR, etc …) et j’ai commandé un LimeSDR mini. Bien entendu, j’ai regardé quelques tutoriels pour me donner l’eau à la bouche et ça semble être bien poussé comme outil. A voir si je retrouve mes petits et si j’arrive à m’en servir correctement.
Dans tous les cas je vous tiendrez au courant.
A bientôt !
Bonjour
Est ce possible de faire une extension d antenne sur un capteur de porte xiaomi ?
Donc en zigbee, actuellement l antenne est sur le circuit électronique. Le but étant de gagner en émission radio.
Merci d avance
Cordialement