El valor RSSI es el que nos dice la intensidad de nuestro enlace de radio, vital para no alejarnos demasiado o colocarnos tras un obstáculo y perder los mandos. Es calculado por el receptor montado en nuestro aeromodelo, es decir, es un valor del que en principio no disponemos en tierra.

Algunos receptores tienen una salida RSSI que podemos conectar a nuestra controladora de vuelo, que es quien nos trasmitirá a tierra dicho valor a través del OSD, o tomará decisiones al respecto.

Otros, los más, devuelven ese valor a la emisora, pero en este caso necesitamos que ambos tengan telemetría y una comunicación bidireccional.

En este artículo vamos a ver las posibilidades de comunicación RSSI entre una radio FrSky y una controladora Pixhawk para que, además de por telemetría, dispongamos de ese valor en nuestro OSD.

Qué es el valor RSSI

El indicador RSSI (Received Signal Strength Indicator) sirve para hacernos una idea de la fuerza que tiene el enlace radio con nuestro aeromodelo.

Se mide en decibelios-miliwatio (dBm o dBmW) y tiene un rango de 0dBm a -80dBm. La escala está en función de una potencia base de 1mW. A título de referencia los valores se corresponden con estas intensidades de señal:

RSSI Intensidad Observaciones
0dBm 1mW Señal ideal.
-40dBm a -60dBm de 100nW a 1nW Señal normal
-70dBm 100pW Señal baja
-80dBm 10pW Señal mínima

Como esta escala en un poco confusa, muchos fabricantes optan por indicar el RSSI mediante un porcentaje que iría del 0% (<-80dBm) al 100% (0dBm). Este es el caso de FrSky.

Qué es una señal PWM

Una señal PWM (Pulse With Modulation) es una señal digital que se modula para simular una señal analógica. Como señal digital que es tiene dos voltajes (para cero y uno) con los que realiza «pulsos» a cierta frecuencia. Esos pulsos, repetidos con una cierta frecuencia (0-1-0-1-0-1) dan un valor medio de voltaje (entre el cero y el uno) que es el valor analógico que queremos transmitir.

Como una imagen vale más que mil palabras, en esta de la wikipedia se observa este «truco»:

En azul la señal PWM, en rojo la señal analógica construida desde aquella.

La transmisión PWM tiene muchas ventajas frente a la forma analógica pura, entre otras cierta inmunidad al ruido. La señal PWM fue utilizada en radiocontrol tiempo atrás junto a otros tipos de modulación analógica. Hoy se ha sustituido con protocolos que transmiten datos exclusivamente digitales (por ejemplo SBUS) y que precisan de mejores y más potentes equipos, pero con menos cableado.

Es importante resaltar que si una entrada espera leer una señal analógica pura (una onda) y recibe una especie repiqueteo PWM, el resultado puede ser muy distinto al esperado. Lo veremos más adelante.

Señal RSSI directa desde un receptor FrSky: PWM o Voltaje

Muchos receptores FrSky tienen una salida de tres pines etiquetada como RSSI. Pero no todos funcionan igual, hay que leer bien las especificaciones para saber qué tipo de señal se utiliza para enviar ese dato.

RSSI por voltaje

Los receptores L9R (2.4 GHz) y R9 Slim (900 Mhz) tienen salida RSSI analógica, con voltajes que mapean la intensidad RSSI en una onda analógica que va de 0v a 3.3v

Esta señal analógica puede ser leída por el pin 103 de la Pixhawk y volver a mapear la intensidad de la señal a un valor RSSI en porcentaje.

El pin 103 está al lado del pin «RC» donde va la señal SBUS de nuestra radio.

Los parámetros que controlan la señal RSSI de Pixhawk son:

Tenemos que establecer RSSI_ANA_PIN a 103, RSSI_PIN_HIGH y RSSI_PIN_LOW a los voltajes referidos (0 y 3.3) y RSSI_TYPE a 1 (analog pin). Dependiendo del valor de esta variable, el resto de variables no serán tenidas en cuenta.

No hay muy buenas opiniones de este sistema. Aunque funciona, la lectura de un valor RSSI que previamente se ha convertido a un voltaje (con más o menos acierto) no es una ciencia exacta.

Pero si no disponemos de telemetría, este voltaje es todo un tesoro que además debería ser perfectamente leído por nuestra Pixhawk.

RSSI por señal PWM

El receptor X8R (2.4 GHz), al contrario que sus compañeros de marca, tiene una salida RSSI en PWM. Mejor, en teoría, puesto que modulamos una señal digital, pero menos compatible.

En Pixhawk no he encontrado manera de leer esta señal. Si la enchufas directamente al 103 tendrás un incesante baile de intensidades RSSI que sólo se aproximarán por casualidad al valor real, siendo más plausible el hecho de que resulten una media loca que hace el sensor de voltaje de la Pixhawk del petardeo de señales PWM.

En teoria esta señal se puede convertir en analógica con un low pass filter (filtro paso bajo), es decir, un mini circuito formado (en ese orden) por una resistencia y un condensador. Si bien no será una gran «traducción»… Y recordemos que el numerito del RSSI ya ha pasado por dos traducciones.

Low pass filter casero

En la propia página de Ardupilot recomiendan una resistencia de 4.7k y un condensador de 10uF. Ese montaje lo he reproducido y el resultado es claramente decepcionante, con RSSI puntualmente correcta en picos, pero con súbitas e irreales caídas próximas a cero.

No soy el único. En internet podemos ver opiniones que no dejan en buen lugar la lectura de los valores RSSI que ofrecen los receptores FrSky por señal PWM:

The output from the X8R is not analog, but advertised as PWM, so not directly compatible. If it were pure PWM, then it should be possible to convert the output to an analog signal to make it compatible, but from what I have read, the PWM output is not a regular PWM output on that RSSI port, so I didn’t find a way to use it directly.

Si tienes un receptor con salida RSSI PWM y sin telemetría, no tienes una solución ideal. Por eso el receptor X8R tiene telemetría. Lo veremos más adelante.

Low pass filter. Filtro de paso bajo.

Pero ya que estamos vamos a ver lo que es un low pass filter.

Filtro paso bajo. Luis Llamas.

Un filtro de paso bajo es un circuito formado por una resistencia y un condensador en serie, que filtra las frecuencias altas y deja pasar las bajas. Tenemos una buena descripción en la web de Luis Llamas.

El principio básico del filtrado radica en el condensador, que se carga hasta el voltaje que lo alimenta. Al caer dicho voltaje, es el propio condensador el que lo suministra al circuito, suavizando la caída. Se podría decir que la combinación de una resistencia y un condensador, devuelven una media del repiqueteo constante de voltajes máximos y mínimos de una señal PWM. Se ve muy bien en la siguiente imagen.

Conversión de una señal PWM (en azul) en otra analógica (en rojo) mediante un filtro de paso bajo. Luis Llamas.

Conversión de una señal PWM (en azul) en otra analógica (en rojo) mediante un filtro de paso bajo. Luis Llamas.

La resistencia en serie puesta delante ralentiza la carga del condensador, modificando su respuesta. Si la pusieramos después tendríamos un filtro de paso alto que filtraría las frecuencias contrarias.

La elección de la resistencia y la capacidad adecuada del condensador, son vitales para que el filtro funcione. Estas magnitudes dependerán de la frecuencia de la señal PWM.

RSSI por canal de la radio

Si disponemos de un canal libre en nuestra radio y además disponemos de telemetría, podemos enviar a nuestra Pixhawk el valor RSSI en un canal.

Dicho valor es calculado en nuestro receptor y enviado a nuestra emisora por telemetría. Una vez en nuestra radio, se muestra en pantalla, se canta y/o se incorpora en la programación para ejecutar acciones o advertencias al piloto.

Pero también se puede coger el valor, codificarlo adecuadamente, e incorporarlo a un canal que será re-transmitido de nuevo a nuestro aeromodelo junto al resto de canales. Es aquí donde nuestra Pixhawk se entera de ese valor. Un viajecito interesante del RSSI, pero funcional.

Configurar Pixhawk

Bueno, ¿Y cómo se configura la Pixhawk para decirle que le mandaremos el valor RSSI por un canal? Volvamos a nuestras opciones RSSI:

Ahora tenemos que establecer RSSI_TYPE=2, RSSI_CHAN_HIGH=2000, RSSI_CHAN_LOW=1000 (estos son los valores más normales) y RSSI_CHANNEL=6 (o al canal elegido). El resto de opciones no se tienen en cuenta.

He experimentado en arduplane un problema, y es que los parámetros RSSI están ocultos hasta que seleccionas un RSSI_TYPE, lo guardas y reinicias la placa. Tras volver a conectar, aparecen todos.

Configurar OpenTX

Para configurar nuestra radio FrSky abrimos Companion en el PC y procedemos de manera habitual. No estaría de más leer el artículo donde hablo del algoritmo de OpenTX para programar nuestros canales.

Inputs. Añadimos la source RSSI desde los valores de telemetría. Importante: debemos poner un scale de 100 porque parece que por defecto el valor arrojado por telemetría está en el rango de [0,1].

No se puede partir directamente de Mixes porque no tiene acceso a la telemetría.

Mixes. La salida del canal obligatoriamente debe estar en el rango [-100, +100] y nuestro rango ahora mismo será de [0, 100]. Si le metemos un weight de 200% y un offset de -100 estamos multiplacando x 2 el anterior rango y lo estaremos desplazando -100 (restar -100), por lo que lo estaremos dejando en el [-100, +100].

Atención: Opentx no muestra correctamente el valor del offset y lo pone como porcentaje cuando realmente es un valor absoluto.

Output. Aquí sólo verificar que el centro de la señal sea 1500. Ya lo habíamos configurado en Pixhawk: de 1000 a 2000. Centro 1500 (RSSI 50%). Sencillo.

Pestaña configuración telemetría. Verificar que efectivamente las unidades de telemetría son porcentuales y no absolutas (dBm). No cambia nada (son porcentaje y punto) pero a la hora de imprimirlas pondrá «%» y si la emisora las canta, la señorita dirá «por ciento».

Configurar MinimOSD

El OSD MinimOSD recibe la información RSSI desde dos posibles sitios:

  1. Del canal 8. Si configuramos ese canal para pasar el RSSI a la controladora. No lo he probado.
  2. Configurando el OSD para que simplemente lo lea de la telemetría que le pasa Pixhawk. Obviamente es necesario que la PX lo conozca. Es el que yo uso.