Sur le banc, l’appairage se passait sans problème. Sur le terrain, la liaison tombait toutes les deux ou trois heures, jamais à un moment utile, jamais de façon reproductible. Nous y avons passé trois semaines. Voici les quatre causes dans l’ordre où nous les avons trouvées — et la dernière n’était pas du tout la faute du module Bluetooth.

L’horloge de veille a dérivé

Un module Bluetooth dort entre les événements de connexion et se réveille sur une horloge 32 kHz. Si ce quartz dérive de quelques centaines de ppm, la radio se réveille en retard et rate sa fenêtre ; le pair attend, abandonne, et la liaison tombe. Cela paraît aléatoire, mais cela suit la température. Nous en avons trouvé un qui ne tombait en panne qu’au-dessus de 40 °C, ce qui explique exactement pourquoi le laboratoire ne l’a jamais vu. Mettez l’appareil en enceinte climatique avant de croire qu’une déconnexion est vraiment aléatoire.

Le rail s’affaisse à l’émission

Émettre, c’est un pic de courant : des dizaines de milliampères en quelques microsecondes. Si le LDO, la piste ou le découplage ne tiennent pas le rail, VDD chute et le module Bluetooth part en brown-out ou redémarre carrément. Le signe distinctif : les coupures se regroupent quand le trafic est le plus dense, ce que la plupart prennent à tort pour des interférences. Regardez le rail à l’oscilloscope pendant un burst TX, pas au repos. Nous avons réparé l’un de ces cas en déplaçant un condensateur de quatre millimètres.

Des paramètres de connexion sur lesquels personne ne s’est mis d’accord

L’hôte demande un intervalle de connexion que le module ne peut pas tenir, ou fixe un supervision timeout trop court pour une salle bruyante. Dans un laboratoire calme, tout va bien ; ajoutez quelques points d’accès Wi-Fi et un micro-ondes et vous manquerez assez d’événements consécutifs pour dépasser le timeout. Laissez le périphérique demander en premier, et cessez de coder en dur 7,5 ms sous prétexte qu’une fiche technique l’a un jour qualifié d’efficace. Une liaison qui survit dans une salle bondée vaut plus qu’une liaison rapide qui n’y survit pas.

L’antenne est enterrée dans le métal

Zone de dégagement ignorée, module posé au-dessus d’un plan de masse plein, ou boîtier à fenêtre métallisée. La portée s’effondre à un mètre et la liaison s’agite juste à cette limite. C’est évident sur un VNA et totalement invisible sur un banc à soixante centimètres du portable, et c’est pour ça que cela survit jusqu’en fin de projet.

Celui qui n’était pas le module

Nous avons couru après un « problème de module Bluetooth » pendant une semaine ; c’était en fait le MCU hôte qui maintenait le module en reset pendant un blocage du bus I2C. Le module Bluetooth était sain depuis le début. Aujourd’hui, nous lisons la raison de reset du module lui-même avant de croire la version de l’hôte sur ce qui s’est passé.

Comment nous le débogageons maintenant

Un sniffer sur les ondes, un oscilloscope sur le rail, une enceinte climatique pour tout ce qui est décrit comme aléatoire — et les diagnostics du module avant l’opinion de quiconque. La plupart des tickets « n’arrête pas de se déconnecter » finissent par être une affaire d’alimentation ou d’horloge, pas de RF. Heureusement, car ce sont les réparations bon marché.

Ce que je vous dirais en premier

Vérifiez le rail et l’horloge de veille avant de toucher à l’antenne ou à la pile protocolaire. Neuf fois sur dix, ce sont eux la solution bon marché, et l’antenne est la pièce chère vers laquelle tout le monde se précipite d’abord.