
En el banco se emparejaba sin problemas. En el campo se caía cada dos o tres horas, nunca en un momento útil, nunca de forma reproducible. Pasamos tres semanas con ello. Estas son las cuatro causas en el orden en que las encontramos — y la última no era culpa del módulo Bluetooth en absoluto.
El reloj de reposo se desviaba
Un módulo Bluetooth duerme entre eventos de conexión y despierta con un reloj de 32 kHz. Si ese cristal se desvía unos cientos de ppm, la radio despierta tarde y pierde su ventana; el par espera, se rinde y el enlace cae. Parece aleatorio, pero sigue a la temperatura. Encontramos uno que solo fallaba por encima de 40 °C, que es exactamente por lo que el laboratorio nunca lo vio. Mete la unidad en una cámara térmica antes de creer que una desconexión es verdaderamente aleatoria.
El riel se hunde al transmitir
Transmitir es un pico de corriente: decenas de miliamperios en un par de microsegundos. Si el LDO, la pista o el desacoplo no pueden sostener el riel, VDD cae y el módulo Bluetooth entra en brown-out o se reinicia directamente. La señal es que las caídas se agrupan cuando el tráfico es más intenso, lo que la mayoría interpreta mal como interferencia. Mide el riel con el osciloscopio durante un burst de TX, no en reposo. Uno de estos lo arreglamos moviendo un condensador cuatro milímetros.
Parámetros de conexión en los que nadie se puso de acuerdo
El host pide un intervalo de conexión que el módulo no puede cumplir, o fija un supervision timeout demasiado corto para una sala ruidosa. En un laboratorio tranquilo todo va bien; añade unos cuantos puntos de acceso Wi-Fi y un microondas y perderás suficientes eventos consecutivos como para vencer el timeout. Deja que el periférico pida primero, y deja de fijar 7,5 ms a mano solo porque una hoja de datos lo llamó eficiente. Un enlace que sobrevive en una sala llena vale más que uno rápido que no sobrevive.
La antena está enterrada en metal
Zona de exclusión ignorada, el módulo colocado sobre un plano de masa sólido, o una carcasa con ventana metalizada. El alcance se desploma a un metro y el enlace se agita justo en el borde. Esto es evidente en un VNA y completamente invisible en un banco a sesenta centímetros del portátil, y por eso sobrevive hasta las últimas fases del proyecto.
El que no era el módulo
Perseguimos un «problema del módulo Bluetooth» durante una semana y resultó ser el MCU host manteniendo el módulo en reset durante un bloqueo del bus I2C. El módulo Bluetooth había estado sano todo el tiempo. Ahora leemos el motivo de reinicio del propio módulo antes de creernos la versión del host sobre lo ocurrido.
Cómo lo depuramos ahora
Un sniffer en el aire, un osciloscopio en el riel, una cámara térmica para todo lo que se describa como aleatorio, y los diagnósticos del propio módulo antes que la opinión de nadie. La mayoría de los tickets de «se sigue desconectando» acaban siendo alimentación o reloj, no RF — lo cual es una suerte, porque esas son las reparaciones baratas.
Lo que te diría primero
Revisa el riel y el reloj de reposo antes de tocar la antena o la pila de protocolos. Nueve de cada diez veces son la solución barata, y la antena es lo caro a lo que todos se lanzan primero.