Esta pagina se ve mejor con JavaScript habilitado

NUNU: Quansheng UV-K5(8)/UV-K6

 ·  🎃 kr0m

NUNU es un firmware realmente atractivo para nuestro querido Quansheng K5(8)/K6 ya que incorpora un gran número de opciones muy interesantes, en este tutorial aprenderemos a flashearlo y a utilizar todas sus funcionalidades.

El firmware NUNU se basa en EGZUMER pero con algunas modificaciones adicionales aplicadas en la compilación:

  • ENABLE_SPECTRUM_CHANNEL_SCAN: En el analizador de espectro ahora se pueden escanear canales guardados, no se limita a un rango de frecuencias.
  • NUNU Protocol: Envío de mensajes a través de la red MESH.
  • ENABLE_ENCRYPTION: Cifrado de los mensajes mediante ChaCha20.
  • Fixed AM AGC: Mejoras en la calidad de recepción en modo AM.
  • RxOff: Permite aplicar un offset(0-150Mhz) en caso de utilizar un upconverter.
  • ENABLE_SPECTRUM_COPY_VFO: Permite copiar la frecuencia pico del analizador de espectro junto con los parámetros ajustados, al modo VFO(al salir del analizador).
  • ENABLE_SPECTRUM_SHOW_CHANNEL_NAME: El ID y nombre del canal son mostrados en el analizador de espectro.
  • ENABLE_ADJUSTABLE_RX_GAIN_SETTINGS: Permite copiar del analizador de espectro los parámetros de ganancia ajustados, al modo VFO(al salir del analizador). Estos serán conservados hasta que se reinicie el walkie o hasta que se pase a modo AM.
  • VOXSen: Sensibilidad mejorada del VOX.
  • VoxDel: Delay de silencio en el que el VOX dejará de escuchar, útil para APRS.
  • SqTone: Tono de cola configurable cuando utilizamos tonos CTCSS.

Pero también se han eliminado o reducido varias funcionalidades debido a la limitada capacidad del walkie:

  • FM broadcast radio: Micro Size
  • UNBLOCK ALL: No permite desbloquear cualquier frecuencia ya que fuera de los rangos de radioafición la potencia de emisión que obtendríamos sería penosa.
  • DTMF: No hay llamadas DTMF, tan solo nos permite enviar tonos DTMF y decodificarlos en pantalla.

Si eres nuevo en el mundo de la radioafición te recomiendo este artículo anterior donde se explican los fundamentos.


El artículo se compone de las siguientes secciones:


Reflasheo:

Antes de empezar debemos instalar Mono en Wine-Linux y acto seguido realizar una copia de seguridad de los ficheros de configuración y calibración tal como se indica en este artículo anterior.

También es recomendable guardar la configuración actual de la radio, esto resultará útil mas adelante para cargar los canales en el nuevo firmware. Guardamos por partida doble, en formato CHIRP y en CSV ya que si dá problemas cargando, en CSV podremos editar el fichero editando o eliminando los campos conflictivos.
Para realizar el backup tan solo debemos seguir los siguientes pasos en CHIRP :

  • Radio -> Download from radio
  • File -> Save As ...
  • File -> Export to CSV ...

Ahora ya podemos proceder con el reflasheo siguiendo los pasos indicados en este artículo anterior , obviamente seleccionando el fichero de firmware correspondiente a NUNU.


Analizador de espectro:

El analizador de espectro de NUNU es muy similar al de EGZUMER pero NUNU permite tres modos de operación. Si accedemos desde modo VFO entraremos en el modo escaner de frecuencias, si accedemos desde el modo MR al modo escaner de canales y si lo hacemos desde el modo ScnRng al modo ScnRng.

Modo escaner de frecuencias:

Para hacer mas fácil su comprensión voy a mostrar los datos en una tabla donde cada fila representa una línea de información del display, además cada parámetro irá acompañado de una imagen del ejemplo anterior:

Primera columna del display Display Segunda columna del display Display Tercera columna del display Display
Zoom en el eje Y: Valor máximo/actual.
3(VFO/MR)/9(Call)
Batería
Número de canales a escanear: Cuantos canales(del ancho de banda indicado) debe monitorizar desde la frecuencia inicial.
4(FC)
Frecuencia en la que se ha detectado la señal de mayor intensidad en ese rango de frecuencias. Tipo de modulación.
0(FM)
Ancho de banda de cada canal.
1(Band)/7(VOX)
Ancho de banda con el que se analiza cada canal, según la emisión de la señal puede ser mejor uno u otro ancho de banda.
6(H/M/L)
Línea Squelch.
*(Scan)/F(#)
Línea Squelch. Línea Squelch.
Espectro: El triangulito de abajo muestra la frecuencia de mayor intensidad, también mostrada numéricamente en la parte de arriba. Espectro. Espectro.
Frecuencia inicial.
5(NOAA)
Frecuencia final.

Si presionamos 5(NOAA) en este modo, podremos introducir la frecuencia manualmente, debemos presionar * para poner . y finalmente M(A) para aceptar.

NOTA: Si se supera el squelch solo muestra en tiempo real el estado de esa frecuencia(145.500 en la captura), el resto deja de monitorizarlas en tiempo real.

  • En el ejemplo podemos ver que está monitorizando 32 canales, de 25kHz: 32*25=800kHz.
  • La frecuencia inicial es 145.00000, por lo tanto la final es 145.00000+800=145.80000kHz.
  • Si presionamos las fechas Arriba(B)/Abajo(C) nos desplazariamos por el espectro (N canales*AB)/2 kHz -> 32 canales de 25kHz: (32*25=800kHz)/2, que son 400kHz, es decir si presionamos flecha Arriba(B), la frecuencia inicial sería: 145.40000 y la final: 145.40000+800=146.20000kHz.
  • El zoom en el eje Y está ajustado en -50 y los canales están siendo analizados utilizando 12.5kHz.

Debemos tener en cuenta que en la documentación oficial nos muestran una captura de pantalla que no corresponde realmente con la mostrada por el firmware, debe de ser una captura antigua en la que si que salía cuanto se desplazaría el analizador de espectro en caso de presionar las flechas:

Mostrando el desplazamiento(versión antigua) Sin mostrarlo(versión actual)

Modo escaner de canales:

Para hacer mas fácil su comprensión voy a mostrar los datos en una tabla donde cada fila representa una línea de información del display, además cada parámetro irá acompañado de una imagen del ejemplo anterior:

Primera columna del display Display Segunda columna del display Display Tercera columna del display Display
Zoom en el eje Y: Valor máximo/actual.
3(VFO/MR)/9(Call)
ID y nombre del canal donde se ha detectado la señal de mayor intensidad. Batería
Número de canales que está escaneando: Esto dependerá de la ScanList en la que estemos(línea de abajo). Frecuencia en la que se ha detectado la señal de mayor intensidad en ese grupo de canales. Tipo de modulación.
0(FM)
ScanList en la que escanear canales.
4(FC)
Ancho de banda con el que se analiza cada canal, según la emisión de la señal puede ser mejor uno u otro ancho de banda.
6(H/M/L)
Línea Squelch.
*(Scan)/F(#)
Línea Squelch. Línea Squelch.
Espectro: El triangulito de abajo muestra la frecuencia de mayor intensidad, también mostrada mediante el ID, nombre de canal y numéricamente en la parte de arriba. Espectro. Espectro.
Canal inicial. Esto dependerá de la ScanList en la que estemos. Canal final. Esto dependerá de la ScanList en la que estemos.

En este modo si detecta algún canal que supere el squelch, este no pintará el espectro entero, si no hasta un poco mas que el primer canal que supere dicho squelch, no tengo claro de si se trata de un bug o un issue:

Squelch superado Squelch no superado

Modo ScnRng:
El modo ScnRng nos permite definir el rango de frecuencias a escanear en el analizador de espectro, tan solo debemos acceder al modo ScnRng (mantener presionado 5) y luego presionar F+5.

Este modo opera de forma exactamente igual al Modo escaner de frecuencias, pero si el rango a escanear es excesivamente grande el analizador se volverá muy lento. Por ejemplo si modificamos el squelch este se aplicará inmediatamente pero solo se detectarán canales que superen dicho squelch cuando el barrido de frecuencias llegue a ese punto(esto puede ser al rato).

Bajo este modo tenemos el mismo problema que con Modo escaner de canales, cuando supera el squelch falta parte del gráfico.

Squelch superado Squelch no superado

Monitorización detallada:

Para acceder a la monitorización detallada debemos presionar M(A), en el ejemplo podemos ver una señal de nivel 5 equivalente a -128dBm que llega a superar el nivel del Squelch por muy poco.

En este menú también podemos realizar algunos ajustes:

Botón Función
Flecha arriba(B) Incrementa la frecuencia en la que nos encontramos.
Flecha arriba(C) Decrementa la frecuencia en la que nos encontramos.
3(VFO/MR)/9(Call) Zoom en el eje Y: Valor máximo/actual. Aunque en esta visualización no sirve de nada.
5(NOAA) Permite introducir la frecuencia manualmente, debemos presionar * para poner . y finalmente M(A) para aceptar.
6(H/M/L) Ancho de banda con el que se analiza cada canal, según la emisión de la señal puede ser mejor uno u otro ancho de banda.
*(Scan)/F(#) Ajuste Squelch.
0(FM) Cambia el tipo de modulación.
SideKey1 Abre el Squelch.
SideKey2 Habilita/Deshabilita la retroiluminación.
Exit(D) Volver a la vista normal del analizador de espectro.

Para acceder a los diferentes parámetros mostrados abajo debemos presionar M(A) y movernos haciendo uso de las flechas Arriba(B)/Abajo(C):

Parámetro Función
LNAs Low Noise Amplifier(Short): Amplifica la señal introduciendo el mínimo ruido posible, explicación de los valores mas abajo(LNA: Low Noise Amplifier).
LNA Low Noise Amplifier: Amplifica la señal introduciendo el mínimo ruido posible, explicación de los valores mas abajo(LNA: Low Noise Amplifier).
PGA Programmable Gain Amplifier: Amplifica la señal una vez amplificada por el LNA, pasada por el MIXER y filtrada, explicación de los valores mas abajo(IF: Image rejection architecture).
MIX Quadrature mixer: Convierte directamente la señal de RF en señal de FI.

NOTA: A diferencia de EGZUMER , NUNU permite alterar el valor del MIXER pero no del filtro IF(Filtro dentro del conjunto Filter+VGA+ADC del dibujo de abajo), mientras que EGZUMER permitía modificar el IF pero no el MIXER.

A continuación se muestra el esquema general del procesamiento de las señales entrantes y cada uno de los elementos que NUNU permite ajustar(LNA/MIXER/PGA).

Esquema señal de entrada:
Podemos ver en el datasheet del chip de radio BK4819.pdf que la señal entra por la antena, pasa por el LNA donde es amplificada, pasa por el MIXER, entra al IF, donde pasa por un filtro, se vuelve a amplificar haciendo uso del VGA(PGA) y finalmente es digitalizada.

Tengamos en cuenta que el datasheet llama IF al conjunto Filtro+VGA(PGA)+ADC, mientras que en el firmware NUNU(VGA = PGA).

En el dibujo he pintado en rojo como llama NUNU y EGZUMER cada parte.

NUNU EGZUMER

LNA: Low Noise Amplifier
Las señales débiles deben ser amplificadas pero introduciendo el mínimo ruido posible, debemos tener en cuenta que al amplificar una señal, amplificamos la señal, el ruido que ya traía la señal recibida mas el ruido introducido por la propia circuitería de amplificación.

La amplificación se controla mediante el registro del módulo RF: REG_10<9:8>/<7:5> BK4819V3Registers_List

  • LNA Gain Short es un campo de 2 bits, por lo tanto disponemos de 4 valores posibles:
Valor binario Valor decimal Amplificación
00 0 -19 dB
01 1 -16 dB
10 2 -11 dB
11 3 0 dB
  • LNA Gain es un campo de 3 bits, por lo tanto disponemos de 8 valores posibles:
Valor binario Valor decimal Amplificación
000 0 -24 dB
001 1 -19 dB
010 2 -14 dB
011 3 -9 dB
100 4 -6 dB
101 5 -4 dB
110 6 -2 dB
111 7 0 dB

El valor total es la suma de LNA Gain Short+LNA Gain, por ejemplo si configuramos:

  • LNA Gain Short: 0 -> 00 -> -19 dB
  • LNA Gain: 2 -> 010 -> -14 dB

La amplificación final será de: -19-14 = -33dB

MIXER: Quadrature mixer
El MIXER se controla mediante el registro del módulo RF: REG_10<4:3> BK4819V3Registers_List

  • MIXER Gain es un valor de 2 bits, por lo tanto disponemos de 4 valores posibles:
Valor binario Ganancia
00 -8 dB
01 -6 dB
10 -3 dB
11 0 dB

PGA: Programmable Gain Amplifier
Se trata de un amplificador de señal programable, es decir, puede ser configurado con distintos valores, la amplificación se controla mediante el registro del módulo RF: REG_10<2:0> BK4819V3Registers_List

  • PGA es un valor de 3 bits, por lo tanto disponemos de 8 valores posibles:
Valor binario Valor decimal Amplificación
000 0 -33 dB
001 1 -27 dB
010 2 -21 dB
011 3 -15 dB
100 4 -9 dB
101 5 -6 dB
110 6 -3 dB
111 7 0 dB

Funciones adicionales:
Además de las funciones mostradas arriba en cada modo de operación, hay algunas comunes a los tres modos:

Botón Función
SideKey1 Excluye la frec/canal actual del escaneo, de este modo pasaremos a la siguiente señal mas potente. En modo Modo analizador de espectro el máximo número de frecuencias blacklisteadas es 200. Veremos un BL en la parte inferior de la pantalla:
SideKey2 Atenuación de frec/canal, útil cuando la señal en una frec/canal es muy potente y molesta en el escaneo, teniendo que blacklistear el canal o subir el squelch. Solo funciona cuando la ScanList activa tiene <= 128 canales o cuando el número de canales analizados en Modo escaner de frecuencias, no supera los 128 canales. Se puede atenuar varias veces la misma frec/canal.
De este modo podemos atenuar la señal para que sea mas pequeña y no moleste. Veremos un ATT en la parte inferior de la pantalla.
F+2(A/B)/P.prolong 2(A/B) Aplica una normalización a las barras del espectro, de este modo la pantalla se auto-ajusta mejorando la visualización. Solo funciona cuando la ScanList activa tiene <= 128 canales o cuando el número de canales analizados en Modo escaner de frecuencias, no supera los 128 canales. Veremos un N(XX) en el número de canales:
M(A) Cambia a la monitorización detallada.
Up(B)/Down(C) Resetea la blacklist y la normalización. Además en modo Modo escaner de frecuencias avanza (N canales*AB)/2 kHz.
PTT Saldremos del analizador de espectro o de la ventana de Monitorización detallada pero copiando los parámetros al modo VFO/MR.
Si pasamos de modo VFO/MR al analizador de espectro, también copiaremos todos los parámetros.

NOTA: Si el analizador de espectro se congela o la recepción AM está muy distorsionada, podemos desconectar la antena y bajar los parámetros LNA.


Scan frequency range function:

Este firmware nos permite escanear un rango de frecuencias sin tener que ir cambiando de banda, tan solo debemos utilizar la primera fila del display para indicar el principio a escanear, la segunda fila para indicar el final. Mantendremos presionado 5(NOAA) para acceder a la funcionalidad y mantener presionado *(Scan) para iniciar el escaneo.

Si presionamos EXIT(D) el escaneo para y retorna a la frecuencia inicial en cambio si presionamos PTT/M(A) se quedará en la última frecuencia donde detectó señal. Up(B)/Down(C) cambian el sentido del escaneo.

Si hemos entrado en el modo Scan frequency range pero queremos salir, podemos hacerlo de dos modos distintos, manteniendo presionado 5(NOAA) o manteniendo presionado Exit(D)

También es posible introducir en una fila un canal memorizado y en la otra fila una frecuencia, realizando el escaneo entre las dos filas. Además recordemos que podemos utilizar Scan frequency range desde el analizador de espectro.


Calibración de la batería

Para poder realizar la configuración debemos acceder al menú extendido.

SideKey1 + PTT + Power On
Opción ID-Menú Función
BatCal 60 Permite definir el voltage actual de la batería para reajustar el valor mostrado en pantalla.
BatTyp 61 Existen dos tipos de baterias, según el modelo la curva de descarga varía, sabiendo que tipo de batería tiene es posible calcular el porcentage de forma mas precisa.
1600mAh: Versión de 1600mAh.
2200mAh: Versión de 2200mAh.

El calibrado se puede hacer de dos formas distintas:

Manualmente: Cargar al 100% la batería e ir ajustando el valor BatCal(60) hasta que muestre un 100% en pantalla. Multímetor: Utilizar un multímetro para ver la carga real.

Como podemos ver al retornar al menú principal el valor varía, parece ser un bug del firmware, volviendo a entrar en la opción y reaplicando el valor hace que ya lo muestre desde fuera también.


Funciones

Para acceder a las opciones debemos presionar el botón M(A) y navegar mediante las flechas, también podemos acceder a las opciones de forma rápida si sabemos su ID, por ejemplo si sabemos que la opción VOX es la 43 podemos presionar M(A)+43.

En la siguiente tabla están todas las funciones que soporta NUNU, remarcado en negrita si se trata de una funcionalidad adicional respecto al stock firmware y subrayado si es una funcionalidad adicional respecto a EGZUMER.

Opción ID-Menú Función
Step 1 Cuantos kHz avanzará o retrocederá cuando escaneemos o cambiemos manualmente la frecuencia.
Bandw 2 Ancho de banda a utilizar, suele ser Wide: 25kHz /Narrow: 12.5kHz pero NUNU nos permiter afinar mas, tan solo debemos tener en cuenta que:
Mayor ancho de banda: Poco alcance, mejor calidad de sonido.
Menor ancho de banda: Mayor alcance, peor calidad de sonido.
5 / 6.25 / 8.33 / 12.5 / 25 kHz
TxPwr 3 Potencia de emisión, si es alta puede afectar a los canales adyacentes:
LOW: 1w
MID: 3w
HIGH: 5w
RxDCS 4 Código digital de recepción: Si estamos en una frecuencia pero no sabemos el código de emisión que nuestro compañero está utilizando, podemos presionar la tecla F+*(Scan) y el walkie comenzará a escanear los códigos DCS hasta que averigue el código correcto de forma automática.
RxCTCS 5 Subtono analógico de recepción: Si estamos en una frecuencia pero no sabemos el tono de emisión que nuestro compañero está utilizando, podemos presionar la tecla F+*(Scan) y el walkie comenzará a escanear los tonos CTCS hasta que averigue el tono correcto de forma automática.
TxDCS 6 Código digital de emisión .
TxCTCS 7 Subtono analógico de emisión .
TxODir 8 Aplica el offset en positivo(+) o negativo(-), utilizado en repetidores .
TxOffs 9 Offset a aplicar en la emisión al emplear repetidores.
RxOffs 10 Hay dispositivos que pueden ser conectados a la antena del walkie y de este modo poder recibir señal en frecuencias que el walkie por sí solo no podría, simplemente lo que hacen es shiftear la señal entrante de la antena a una frecuencia en la que el walkie si que es capaz de escuchar. Esta opción aplica un offset positivo, de este modo el display de la radio nos mostrará la frecuencia de recepción del upconverter simulando que la señal es recibida por el walkie directamente en esa frecuencia, además deshabilita la emisión en dicha frecuencia ya que los upconverters solo sirven para recibir.
Como ejemplo pongamos que nuestra radio es capaz de escuchar en los 100Mhz y el upconverter en los 300Mhz, deberíamos de configurar la radio a la escucha en modo VFO en la frecuencia 100Mhz y un RxOffs de 200Mhz(100+200=300).
También puede servir como Rit, explicado en el artículo sobre IJV.
Scramb 11 Encrypted Communication: Permite de 1-10 tipos de scrambling.
BusyCL 12 Busy Channel Lock: Si el canal está ocupado, no deja transmitir.
Compnd 13 Compander (Compressor/Expander), permite que una señal con un amplio rango dinámico como el micrófono pueda ser transmitida por un canal con un rango menor como lo es la antena del walkie, el resultado final es una mejor calidad de audio ya que reduce los niveles de ruido y diafonía , debe estar habilitado en ambos walkies:
TX: Habilita el compander solo en la transmisión de señal.
RX: Habilita el compander solo en la recepción de señal.
TX/RX: Habilita el compander tanto en la transmisión como en la recepción de señal.
OFF: Deshabilita el uso del compander.
Demodu 14 Cambia la técnica de modulación :
FM: Por defecto.
AM: Solo recepción.
USB: Solo recepción.
RxAGC 15 Rx Automatic Gain Control: Ajusta automáticamente la ganancia de recepción para que las señales lleguen con un nivel estable, evitando que suenen demasiado fuertes o demasiado débiles. Funciona en todos los tipos de modulación.
OFF: Deshabilitado, ganancia al máximo, útil para señales débiles.
SLOW: Se aplicará la ganancia lentamente, funciona bien en la mayoría de los casos especialmente para emisoras de radio broadcast HF-AM.
FAST: Se aplicará la ganancia rápidamente, adecuado para comunicaciones de voz cortas como en la aviación.
ScAdd1 16 Estando en modo canal . Nos permite añadir el canal a la ScanList1 desde el propi walkie.
ScAdd2 17 Estando en modo canal . Nos permite añadir el canal a la ScanList2 desde el propi walkie.
ChSave 18 Guardar canal.
ChDele 19 Eliminar canal.
ChName 20 Permite editar el nombre del canal desde el propio walkie.
ScnRev 21 Opciones escaneo:
CARRIER: Al detectar una señal no avanza en el escaneo mientras la señal siga activa.
STOP: Al detectar una señal para 5 segundos el escaneo y continúa.
TIMEOUT: Al detectar una señal para el escaneo.
F1Shrt 22 Configuración del botón SKey1 desde el propio walkie:
FLASH LIGHT: Enciende la linterna.
POWER: Cambia la potencia de emisión de la señal.
MONITOR: Abre el squelch(53).
SCAN: Inicia el escaneo.
VOX: Habilita el VOXSen(43).
FM RADIO: Accedemos a la radio FM.
LOCK KEYPAD: Bloquea el teclado.
SWITCH VFO: Cambia del canal A al canal B.
VFO/MR: Cambia de modo .
SWITCH DEMODUL: Cambia el tipo de modulación.
SWITCH BANDWID: Cambia el ancho de banda.
SPECTRUM: Accedemos al analizador de espectro.
NONE: Deshabilita el botón.
F1Long 23 Misma funcionalidad que F1Shrt pero para pulsación prolongada del botón.
F2Shrt 24 Configuración del botón SKey2 desde el propio walkie.
F2Long 25 Misma funcionalidad que F2Shrt pero para pulsación prolongada del botón.
MLong 26 Misma funcionalidad que F1Shrt pero para el botón M(A) con pulsación prolongada.
KeyLck 27 Autobloqueo del teclado.
TxTOut 28 Límite máximo de emisión, incluso con el PTT presionado, la emisión se cortará llegados a los Xs, útil para ahorrar batería, evitar que el walkie se caliente en exceso o que se encienda en la mochila y vaya enviando audio.
BatSav 29 Relación tiempo activo/inactivo, permite ahorrar batería, pero si se es demasiado agresivo habrá señales que entrarán pero el walkie no será consciente ya que estaba en uno de los slots de inactividad, provocando la pérdida de los primeros segundos de una comunicación entrante, cuando se habilite el modo PowerSave veremos un PS en la parte izquierda superior del display:
Las opiones son: Off / 50% / 67% / 75% / 80%
Mic 30 Sensibilidad del micrófono.
ChDisp 31 Modo en el que se nos presentará la información de un canal memorizado, en pantalla:
NAME: Mostrará el nombre del canal.
NAME + FREQ: Mostrará el nombre y la frecuencia del canal.
FREQ: Mostrará la frecuencia del canal.
CHANNEL NUMBER: Mostrará el número del canal.
POnMsg 32 Power On Message: Mensaje de bienvenida al arrancar:
FULL: Muestra toda la pantalla en negro, útil para detectar píxeles muertos.
MESSAGE: Mensaje configurado desde CHIRP .
VOLTAGE: Voltage y carga de la batería.
NONE: No muestra nada, directamente aparece la pantalla de los canales A/B.
BatTxt 33 Como debe mostrarse la carga de la batería:
NONE: Solo aparecerá rellenada con las típicas barritas.
VOLTAGE: Aparece el voltage al lado de la batería.
PERCENT: Aparece el porcentage al lado de la batería.
BatLt 34 Nivel de retroiluminación de la pantalla:
OFF: Siempre mantiene la retroiluminación al valor indicado en BLMin(35).
ON: Siempre mantiene la retroiluminación al valor indicado en BLMax(36).
5/10/20s 1/2/4m: Aplicará BLMax(36) mientras estemos utilizándolo y BLMin(35) pasado X tiempo de inactividad.
BLMin 35 Mínimo brillo de la pantalla.
BLMax 36 Máximo brillo de la pantalla.
BltTRX 37 Activación de la retroiluminación de la pantalla en caso de recepción o emisión de señal:
OFF: No activará la retroiluminación.
TX: Activará la retroiluminación solo en la transmisión.
RX: Activará la retroiluminación solo en la recepción.
TX/RX: Activará la retroiluminación tanto en la transmisión como en la recepción.
Beep 38 Habilita/Deshabilita el pitidito en cada pulsación del teclado.
Roger 39 Envía un sonido al soltar el PTT para avisar al otro extremo de que hemos terminado de hablar, es para evitar tener que decir el típico “cambio”:
OFF: No envía sonido alguno.
ROGER: Pitido.
MDC: Sonido parecido a una rana.
SqTone 40 Squelch Tail Elimination: Si se habilita, el walkie al final de la emisión añade un tono inaudible que el receptor detectará y evitará que se escuche el molesto ruido de soltar el PTT. En NUNU este tono es configurable a un valor específico.
1 Call 41 Asignamos el canal al que queremos cambiar al presionar 9(Call) , es lo que antiguamente se llamaba “llamada rápida” en los teléfonos móviles.
D Live 42 Muestra los códigos DTMF recibidos en pantalla.
VOXSen 43 Umbral de volumen a partir del cual el VOX escuchará audio para enviarlo.
VOXDel 44 Delay de silencio en el que el VOX dejará de escuchar, en incrementos de 128ms. 0 significa sin delay, útil para APRS. Pero para voz debemos configurar un delay mínimo para que en las pausas de las frases no deje de transmitir.
BatVol 45 Muestra el voltage y el porcentaje de carga restante en la batería.
RxMode 46 Modo de recepción de los canales:
MAIN ONLY: Solo escucha y transmite en el canal principal.
DUAL RX RESPOND: Escucha en los dos canales simultáneamente, si llega señal por el canal secundario podremos responder por este en los siguientes 4s. El canal secundario será marcado con el símbolo > y en la parte superior de la pantalla aparecerá >< durante esos 4s.
CROSS BAND: Escucha en el canal secundario y transmite por el primario.
MAIN TX DUAL RX: Escucha en los dos canales simultáneamente, pero siempre se transmite por el canal primario.
Passwd 47 Pedirá un PIN de 4 dígitos en el arranque, esto también evita que los datos de la radio sean leídos desde el cable Kenwood-K1, protegiendo el password de cifrado de los mensajes de texto. Si introducimos el PIN incorrectamente 3 veces, el walkie ejecutará un factory reset eliminando todos los canales y parámetros de configuración almacenados. Para deshabilitarlo en vez de introducir un PIN en esta opción, debemos presionar Up(B)/Down(C)
EncKey 48 Mostrará el hash de la key de cifrado de los mensajes, resulta útil para saber si dos walkies van a poder comunicarse ya que el hash debería de coindicir. Presionando M(A) podemos cambiar la key.
MsgEnc 49 Habilita y deshabilita el encriptado de los mensajes de texto.
MsgRx 50 Habilita la recepción de mensajes, con esta opción deshabilitada solo podremos enviar mensajes, no recibirlos.
MsgAck 51 Esta opción depende exclusivamente del receptor, si se habilita enviará un ACK por cada mensaje recibido, haciendo posible que el emisor sepa si se ha entregado el mensaje. Cualquier walkie con NUNU puede responder, así que sabremos que alguien lo ha recibido, pero no que walkie lo ha recibido.
MsgMod 52 Modulación utilizada para el envío de mensajes. Según las condiciones debemos utilizar una u otra:
FSK 450 - for bad conditions.
FSK 700 - for medium conditions.
AFSK 1.2K - for good conditions.
Sql 53 Umbral a partir del cual se detecta señal entrante, 0 significa abierto, entra todo el ruido, debemos tener en cuenta que un Sql bajo consumirá mas batería al estar escuchando siempre, no solo cuando hay una señal real.

Si entramos en el menú extendido podremos ver los parámetros de configuración extra, para ello arrancamos presionando:

SideKey1 + PTT + Power On
Opción ID-Menú Función
F Lock 54 Asigna las bandas permitidas para transmisión y recepción.
Tx 200 55 Habilita la transmisión en 200MHz F4.
Tx 350 56 Habilita la transmisión en 350MHz F5.
Tx 500 57 Habilita la transmisión en 500MHz F7.
350 En 58 Habilita la recepción en 350MHz F5.
ScraEN 59 Permite la posibilidad de habilitar el scrambling Scramb(11), si este parámetro se deshabilita desde el menú extendido, el parámetro aprecerá disponuble en el menú normal pero no aplicará ninguna distorsión.
BatCal 60 Permite definir el voltage actual de la batería para reajustar el valor mostrado en pantalla.
BatTyp 61 Existen dos tipos de baterias , según el modelo la curva de descarga varía, sabiendo que tipo de batería tiene es posible calcular el porcentage de forma mas precisa.
1600mAh: Versión de 1600mAh.
2200mAh: Versión de 2200mAh.
Reset 62 Opciones de reseteo:
VFO: Resetea los parámetros de configuración.
ALL: Resetea los parámetros de configuración y los canales memorizados.

Botones y funciones

Botón Funcionalidad
Rosca Encendido y control de volumen.
M(A) Menú principal de configuración. Configurable desde el pc o el walkie: Pulsación prolongada MLong(26).
Up(B)/Down(C) Nos permite desplazarnos por el menú y cambiar parámetros.
Exit(D) Salir del menú.
PTT Push To Talk. Si presionamos las teclas, enviaremos los código DTMF de estas.
SideKey1 Configurable desde el pc o el walkie: Breve pulsación(F1Shrt(22)) / Pulsación prolongada(F1Long(23)).
SideKey2 Configurable desde el pc o el walkie: Breve pulsación(F2Shrt(24)) / Pulsación prolongada(F2Long(25)).
PTT+SideKey2 Emite un tono de 1750Hz, necesario para acceder a algunos repetidores.
Conector SP/MIC Conector speaker/micrófono(Kenwood-K1) y pc.
USB-C Puerto de carga USB-C, solo utilizarlo en caso de emergencia.
*(Scan) Permite enviar códigos DTMF(recordemos que en NUNU las llamadas DTMF han sido eliminadas ), con SideKey1 podemos borrar.
0(FM) Marca la frecuencia en modo VFO o el número del canal en modo canal .
F(#) Activa el modo función.

Todos los botones del teclado tienen una función especial que se activa mediante la combinación de la tecla F(#) + Key o presionando unos segundos la Key marcada con dicha función:

Función Funcionalidad
F+0(FM)/P.prolong 0(FM) Activa la radio FM. Como podemos leer en la documentación oficial , la parte de la radio broadcast ha sido reescrita por completo implementando una versión muy, muy reducida sin posibilidad de guardar canales.
Up(B)/Down(C): Permite movernos entre emisoras de radio comercial.
F+1(Band)/P.prolong 1(Band), modo VFO Cambia entre las bandas disponibles.
F+1(Band)/P.prolong 1(Band), modo MR Copia la frecuencia y los parámetros del canal al modo VFO.
F+2(A/B)/P.prolong 2(A/B) Alterna entre una línea del display u otra.
F+3(VFO/MR)/P.prolong 3(VFO/MR) Alterna entre modo VFO o canales memorizados .
F+4(FC)/P.prolong 4(FC) Pasa a modo detección de frecuencia y código/subtono , podemos presionar *(Scan) en caso de haber detectado una incorrecta.
F+5(NOAA) Accedemos al analizador de espectro .
P.prolong 5(NOAA), modo VFO Escaneamos un rango de frecuencias .
P.prolong 5(NOAA), modo MR Alterna el canal entre listas de escaneo.
F+6(H/M/L)/P.prolong 6(H/M/L) Cambia la potencia de la señal de emisión TxPwr(3).
F+7(VOX)/P.prolong 7(VOX) Activa el VOX(43).
F+8(R)/P.prolong 8(R) Activa el modo reverso .
F+9(Call)/P.prolong 9(Call) Cambia al canal configurado en la opción del menú 1 CALL(41).
F+*(Scan) Averigua el código/subtono cuando estemos en una frecuencia o canal.
P.Simple *(Scan) Permite introducir DTMFs. Presionando SideKey1 podremos borrar.
P.prolong *(Scan), modo VFO Inicia un escaneo en la frecuencia actual. Si presionamos EXIT(D) el escaneo para y retorna a la frecuencia original en cambio si presionamos PTT/M(A) se quedará en la última frecuencia donde detectó señal. Up(B)/Down(C) cambian el sentido del escaneo.
P.prolong *(Scan), modo MR Inicia un escaneo en las scanlists que tengamos habilitadas, si volvemos a presionar P.prolong *(Scan) cambia de ScanList. Si presionamos EXIT(D) el escaneo para y retorna al canal original en cambio si presionamos PTT/M(A) se quedará en el último canal donde detectó señal. Up(B)/Down(C) cambian el sentido del escaneo.
P.prolong F(#) Bloquea el teclado.
F+M(A) Accedemos al messenger.

Desbloquear frecuencias

NUNU , no permite desbloquear cualquier frecuencia ya que fuera de los rangos de radioafición la potencia de emisión que obtendríamos sería penosa.

Además la radio puede acabar dañada si lo hacemos, el propio NUNU nos protege:

This (Hidden-menu) option is completely removed, to make radio more safe by default

Lo que si que nos permite es cierta configuración en las bandas soportadas por el walkie:

FM:            F1 50∽76 MHz
FM:            F2 108∽135.9975 MHz
FM:            F3 136∽173.9975 MHz
FM:            F4 174∽349.9975 MHz
FM:            F5 350∽399.9975 MHz
FM:            F6 400∽469.9975 MHz
FM:            F7 470∽599.9975 MHz
FM:            F7+ XXXXX-XXXXX MHz
AM:            F2 108∽135.9975 MHz

Para poder realizar la configuración debemos acceder al menú extendido, desde este podremos acceder a las distintas opciones :

SideKey1 + PTT + Power On

Debemos tener en cuenta algunos aspectos:

  • Por defecto podemos escuchar en todas las bandas, la única excepción es la F5 que se controla mediante la opción 350 En.
  • El resto de opciones controlan la transmisión en las distintas bandas.
  • F Lock habilita rangos habituales según región geográfica.
  • La opción especial DEFAULT de F Lock habilita rangos adicionales sobre 137-174, 400-470 mediante las opciones Tx 200, Tx 350, Tx 500.
  • Tx XXX habilita bandas adicionales a las indicadas mediante F Lock pero solo si hemos seleccionado DEFAULT.
F Lock(54) - Asigna las bandas permitidas para transmisión.
    DEFAULT + (137-174, 400-470) - Permite la transmisión en F3 y F6 con la posibilidad de ampliar mediante Tx 200, Tx 350, Tx 500.
    FCC HAM (144-148, 420-450)
    CE HAM (144-146, 430-440)
    GB HAM (144-148, 430-440)
    (137-174, 400-430)
    (137-174, 400-438)
    DISABLE ALL - Deshabilita la transmisión en todas las frecuencias.

Tx 200 - Habilita la transmisión en 200MHz F4.
Tx 350 - Habilita la transmisión en 350MHz F5.
Tx 500 - Habilita la transmisión en 500MHz F7.

350 En - Habilita la recepción en 350MHz F5.

En mi caso voy a habilitar tan solo las típicas frecuencias de radioaficionado, las opciones de configuración correspondientes son:

F Lock(54): DEFAULT + (137-174, 400-470)
Tx 200 - OFF
Tx 350 - OFF
Tx 500 - OFF
350 En - ON

Como se puede apreciar con esta configuración podemos escuchar en todas las bandas pero solo emitir en las de radioaficionado:

Tened en cuenta que a pesar de desbloquear las frecuencias estas siempre serán FM, nunca podremos emitir en AM o USB.


Frequency scanner

Este firmware tiene una función muy interesante llamada Frequency Copy (FC), esta nos permitirá determinar la frecuencia y el tono/código que esté utilizando otro walkie, tan solo debemos activar dicha función: F+4(FC)/P.prolong 4(FC) y esperar a que el otro walkie emita señal. Podemos presionar *(Scan) en caso de haber detectado una frecuencia incorrecta.

Esto resulta muy útil cuando estamos trabajando con gente inexperta en el mundo de la radio y no saben ni que parámetros tienen configurados.

Otra funcionalidad relacionada con el FC es el Tone/Code scanner, si sabemos en que frecuencia está emitiendo la contraparte pero desconocemos su tono/código podemos presionar: F+*(Scan) y automáticamente detectará el tono/código .

También podemos detectar el código/tono desde RxDCS(4), RxCTCS(5) del menú de funciones , ambas detectan tanto el DCS como el CTCS. Para activar la detección debemos presionar *(Scan) dentro de la propia función.

Frequency scanner: F+4(FC)/P.prolong 4(FC) Tone/Code scanner: F+*(Scan) Tone/Code scanner: RxDCS(4)/RxCTCS(5)+*(Scan)

Es posible detectar el SqTone(40) automáticamente, pero esta funcionalidad está completamente rota. Cuando utilizamos Frequency scanner y Tone/Code scanner en vez de detectar el SqTone(40) lo que hace es aplicar un RxCTCS(5) y un TxCTCS(7). Mientras que si utilizamos Tone/Code scanner desde RxDCS(4) directamente no detecta nada y desde RxCTCS(5) solo configurará el RxCTCS(5).

Frequency scanner: F+4(FC)/P.prolong 4(FC) Tone/Code scanner: F+*(Scan) Tone/Code scanner: RxDCS(4)/RxCTCS(5)+*(Scan)

Además hay ocasiones en las que no detecta tono alguno, incluso en la documentación comentan que la detección del SqTone(40) está muy limitada:

Tail tones below 65Hz are not reliably detected by the CTCSS scanner - likely by the design of the chip and to be fair these are not standard CTCSS tones. they work perfectly when used as SqTone or TxCTCSS/RxCTCSS though

Scrambling

Se pueden “cifrar” las conversaciones mediante scrambling Scramb(11), no es mas que un código con el que cifrar la señal, el walkie que no lo tenga configurado escuchará una versión distorsionada del audio.

Podemos ver su efecto en este video:

Debemos recordar que al menos en España cifrar cualquier comunicación es ilegal, así que debemos tener mucho cuidado con esta opción, si queremos curarnos en salud y asegurarnos de que nunca quede activada por error, podemos acceder al menú extendido y deshabilitar la posibilidad de activación mediante:

SideKey1 + PTT + Power On
ScraEn: OFF

Como podemos ver la opción Scramb(11) seguirá apareciendo en el menú pero al activarla no hará nada, podemos ver que no aparecen las letras SCR a la derecha debajo de la frecuencia:


Remote kill

Es posible deshabilitar un walkie enviándole una secuencia de tonos DTMF(Kill code), es lo que llaman remote kill, si mas adelante se localiza el walkie perdido es posible rehabilitarlo mediante otra secuencia de tonos DTMF(Revive code), pero en NUNU nada de esto funciona, seguramente debido a esto :

DTMF will not be supported due to limited space.
Send DTMF-tones from keyboard are supported.

Para que esto funcione es preciso que el canal activo tenga habilitada la opción DTMF Decode(D Decd), solo configurable desde CHIRP :

Podemos ver a la izquierda la configuración del walkie de la izquierda en el video. Y a la derecha la configuración del walkie de la derecha en el video.

Walkie de la izquierda Walkie de la derecha

Para matar el walkie 666 debemos llamar al: ANI ID * Kill code, en este caso 666 * 66066
Para revivirlo: ANI ID * Revive code, en este caso 666 * 66166

Como podemos ver ni el Kill code ni el Revive code parecen hacer nada, simplemente lo interpreta como la recepción de códigos DTMF, si habilitamos la opción D Live(42) podremos verlos:

La opción DTMF kill lock directamente no tendrá efecto alguno sobre el walkie:


CHIRP:

Instalamos CHIRP:

python3 -m venv chirp
cd chirp
pip install wxPython
pip install https://trac.chirp.danplanet.com/chirp_next/next-20240224/chirp-20240224-py3-none-any.whl

CHIRP es un software que deja bastante que desear, hace un tiempo se incorporó el soporte para NUNU de forma nativa:

release v1.0.1 Feb 17, 2024
This driver is now added to the official CHIRP release. This will probably be the last release in this repository.

Pero luego se rompió, teniendo que volver a cargar el módulo desde el modo Developer:

Due to recent CHIRP update many custom firmwares (including this one) are not supported and require a custom uvk5-chirp-driver.

Así que nos bajamos dicho módulo :

wget https://raw.githubusercontent.com/kamilsss655/uvk5-chirp-driver/refs/heads/main/uvk5_egzumer.py

Habilitamos el modo desarrollador:

Help -> Developer mode

Tras reiniciar ya podemos cargar el driver:

File -> Load Module...

NOTA: CHIRP es un software bastante penoso, por ejemplo si seleccionamos un valor de un desplegable pero no quitamos el foco del parámetro, este NO estará aplicado, es decir si subimos la configuración a la radio, este no se habrá aplicado.

Extra fields:
El primer paso antes de configurar nada es habiltiar los Extra fields ya que así seremos capaces de visualizar todos los parámetros de configuración de NUNU.

View -> Show extra fields

Conectar con la radio:

Radio -> Download from radio...
Model: UV-K5(egzummer)

Lista de canales:
Nos mostrará los canales, a mi criterio la interfaz deja mucho que desear ya que es muy complicado entender que es cada campo, hubiese sido mucho mas simple mapear una columna por cada opción del menú del walkie como hace CPS . A pesar de su poca intuitividad intentaré explicar que hace cada parámetro .

Hay algunas opciones como el Mode, que en CHIRP solo permite las opciones: FM, NFM, AM, NAM, USB mientras que en el walkie muchas mas Bandw(2) y Demodu(14).

En cambio el parámetro PTTID y DTMF Decode solo pueden cambiarse desde CHIRP aunque estas opciones no sirvan de nada ya que el soporte DTMF en NUNU es muy limitado debido a esto .

En la captura podemos ver la lista de canales con los parámetros asociados del menú del walkie en rojo:

La opción DTCS Polarity especifica la polaridad del tono/código de salida/entrada, los tonos solo permiten polaridad positiva(N) mientras que los códigos digitales permiten polaridad positiva(N) y negativa(R):

Valor. Polaridad salida. Polaridad entrada.
NN Positiva Positiva
NR Positiva Negativa
RN Negativa Positiva
RR Negativa Negativa

La opción Tone Mode, puede adoptar uno de los siguientes valores:

Valor. Código/Tono salida. Código/Tono entrada.
None No se asigna tono/código No se asigna tono/código
Tone Tono: Columna Tone No se asigna tono/código
TSQL Tono: Columna ToneSquelch Tono: Columna ToneSquelch
DTCS Código: Columna DTCS Código: Columna DTCS
Cross Configuración mixta. Configuración mixta.

Según la opción elegida, nos rellenará con un valor predefinido el campo asociado a dicha elección.

Si elegimos Cross, nos aparecerá una serie de ventanas donde podremos realizar configuraciones mixtas, es decir no tener solo códigos ni solo tonos, si no poder elegir para la entrada si utilizaremos códigos o tonos y de igual manera para la salida. Este campo depende de otra columna: Cross Mode.

La columna Cross Mode quedará configurada según hayamos elegido si utilizar códigos o tonos, el primer campo indica la emisión y el segundo la recepción:

Según los valores elegidos en las ventanas que aparecen al seleccionar Tone Mode: Cross, tendremos:

Valor. Código/Tono salida. Código/Tono entrada.
Tone -> Tone Tono: Columna Tone Tono: Columna ToneSquelch
Tone -> DTCS Tono: Columna Tone Código: Columna RX_DTCS
DTCS -> Tone Código: Columna DTCS Tono: Columna ToneSquelch
-> Tone No se asigna tono/código Tono: Columna ToneSquelch
-> DTCS No se asigna tono/código Código: Columna RX_DTCS
DTCS -> Código: Columna DTCS No se asigna tono/código
DTCS -> DTCS Código: Columna DTCS Código: Columna RX_DTCS

NOTA: Por alguna razón falta la opción Tone -> , cosas del CHIRP, supongo que con el tiempo arreglarán este tipo de fallos, recordemos que el soporte para Quansheng todavía es experimental.

Lista de bandas:
De igual manera como hacíamos con CPS , desde CHIRP también es posible definir el inicio y fin de cada banda.

Para modificar los parámetros debemos bajar abajo del todo en la lista de canales:

Modificando estos parámetros alteraremos los límites de frecuencias al escanear en una banda y los parámetros por defecto en las bandas como los tonos/códigos , el ancho de banda, la potencia de emisión y demás parámetros, por supuesto siempre podremos modificar dichos parámetros al vuelo desde el menú del walkie.

Settings:
En las pestaña Settings podemos encontrar el resto de la configuración, debemos tener en cuenta que el driver es una modificación de EGZUMER y no se ha ajustado del todo a NUNU, mostrando algunas secciones que no aplicarán.

Basic Settings: Como podemos ver NUNU ha tenido el detalle de indicar a que parámetro del walkie corresponde cada opción.

Advanced Settings:

Programmable keys: Configuración de los SideKeys.

DTMF Settings: Ninguno de estos parámetros(a excepción de los explicados) tiene sentido en NUNU debido a esto .

DTMF Contacts: Configuración de los contactos DTMF, no aplicable en NUNU.

Scan Lists: Desde esta sección tan solo podremos asignar la default scanlist, habilitar/deshabiltiar la prioridad de escaneo y configurar los dos canales prioritarios de cada lista, estos son canales que se escanearán con mayor frecuencia que los no prioritarios, esto resulta útil para escanear un gran número de canales pero sin pasar por alto la recepción de un canal prioritario mientras el walkie estaba ocupado escaneando los no prioritarios. Para editar las listas lo haremos desde la pestaña Memories, habiendo habilitado previamente los extra fields: View -> Show extra fields

Unlock Settings: Nos permite desbloquear la emisión en frecuencias fuera del rango de radioaficionado y habilitar/deshabilitar el poder utilizar scrambling , del mismo modo que hacíamos desde el menú extendido cuando calibrabamos la batería.

FM Radio: No aplicable en NUNU ya que las funciones de radio broadcast han sido considerablemente reducidas.

Driver information: Muestra la versión de firmware.

Calibration: Permite ajustar los parámetros de calibración. Como se indica en la web del driver de NUNU , CHIRP guarda los parámetros de calibración de la radio en los ficheros que genera al guardar, por lo tanto si alguien nos pasa su fichero de CHIRP y esta opción está habilitada, estaremos cargando su calibración. Si habilitamos esta opción solo estaremos subiendo a la radio la calibración, no el resto de parámetros como memorias y demás.

Recordemos que la mejor manera de backupupear o cargar nuestra calibración es mediante k5prog-win. , no mediante ficheros de CHIRP.

Además debemos tener en cuenta que en NUNU existen parámetros que se utilizan de forma distinta al stock firmware o simplemente no se utilizan .

Calibration-Squelch: Permite ajustar los parámetros de cada nivel de squelch(53). CHIRP solo permite dos configuraciones, una para las tres primeras bandas y otra para las cuatro siguientes. Estos valores son leídos y multiplicados por dos por el firmware.

Bands: 1-3 Bands: 4-7

Calibration-RSSI levels: Podemos definir los umbrales de calidad de la señal entrante para mostrar X o Y barritas, solo permite dos configuraciones, una para las dos primeras bandas y otra para las cinco siguientes. Solo se utiliza si el firmware fué compilado con la opción ENABLE_RSSI_BAR=0.

Calibration-TX power: Permite definir la potencia con la que emitir en cada banda. Si se compila el firmware con la opción ENABLE_REDUCE_LOW_MID_TX_POWER habilitada el valor de la potencia media se divide entre 3 y el de potencia baja por 5.

Se pueden observar los valores Lower/Center/Upper, esto es debido a que las bandas se dividen en regiones de XMHz, según la región de la banda en la que estemos operando, se aplicará una potencia u otra. Por ejemplo si estamos en la banda F1, con el walkie configurado en potencia Low, mientras permanezcamos en la región baja emitiremos a: Band 1 -> Low -> Lower, pero con la misma configuración en la región alta de la banda F1, sería: Band 1 -> Low -> Upper.

Calibration-Battery: En la documentación de NUNU , no se comenta nada al respecto, pero imaginao que solo se utiliza el nivel 3 como hacía EGZUMER. Este valor puede ser configurado mediante el procedimiento de calibración de batería.

Calibration-VOX: Permite definir los umbrales de activación del VOX en cada uno de los niveles.

Calibration-Microphone sensitivity: No se utiliza.

Calibration-Other: Configuración de la frecuencia del cristal y la ganancia del volumen y el DAC.

Según el datasheet del chip de radio , el walkie viene con un cristal de 26MHz y existe un condensador variable que se emplea para la calibración de la frecuencia del cristal:

Cvar is an adjustable capacitor for frequency calibration.

Yo imagino que un cristal de 26MHz se considera de frecuencia baja y por este motivo Xtal frequency low recibe un valor de 1 por defecto, no creo que haya que tocar este parámetro a no ser que realicemos modificaciones hardware en el walkie.


Messenger:

Una de las caracterísiticas mas destacables de NUNU es su capacidad de enviar mensajes de texto cifrados entre terminales. Podemos encontrar todas las funciones relacionadas con el messenger en las opciones del menú:

  • EncKey(48): Mostrará el hash de la key de cifrado de los mensajes, resulta útil para saber si dos walkies van a poder comunicarse ya que el hash debería de coindicir. Presionando M(A) podemos cambiar la key.
  • MsgEnc(49): Habilita y deshabilita el encriptado de los mensajes de texto.
  • MsgRx(50): Habilita la recepción de mensajes, con esta opción deshabilitada solo podremos enviar mensajes, no recibirlos.
  • MsgAck(51): Esta opción depende exclusivamente del receptor, si se habilita enviará un ACK por cada mensaje recibido, haciendo posible que el emisor sepa si se ha entregado el mensaje. Cualquier walkie con NUNU puede responder, así que sabremos que alguien lo ha recibido, pero no que walkie lo ha recibido.
  • MsgMod(52): Modulación utilizada para el envío de mensajes. Según las condiciones debemos utilizar una u otra: FSK 450 - for bad conditions, FSK 700 - for medium conditions, AFSK 1.2K - for good conditions.

Debemos pensar en el messenger como un grupo de chat al que puede acceder todo el mundo, pero los mensajes cifrados solo podrán ser leídos por los que tengan la key correcta, los mensajes sin cifrar los leerá todo el mundo.

Para acceder al messenger debemos presionar F+M(A), donde veremos la interfaz de mensajería(la B marcada en rojo indica el modo: mayúsculas/minúsculas/númerico). Utilizando los botones como hacíamos en los años 90 podremos escribir el mensaje deseado.

Como podemos ver hay algunas teclas con funciones específicas:

Tecla Función
1(Band) Signos de puntuación.
*(Scan) Cambia el modo(mayúsculas, minúsculas, númerico).
0(Fm) Espacio.
F(#) Borra.
Up(B) Recuper el último mensaje enviado para su edición.

El estado de los mensajes se codifica mediante un símbolito de la siguiente manera:

> Mensaje enviado, acuse de recibo(ACK) no recibido.
+ Mensaje enviado, acuse de recibo(ACK) recibido.

< Mensaje recibido

El cifrado de los mensajes se basa en ChaCha20, podemos ver mas detalles en la web de NUNU :

  • La derivación de la key se compone de 256 bits, generados a partir de la combinación de 4 hashses de 64 bits del password. Cada hash es generado con un grano de sal diferente de 64 bits. La key es almacenada en RAM y permanece allí hasta que la radio se apague.
  • El password reside en la EEPROM por lo tanto cargando la misma configuración en varios walkies comportará la misma key, algo deseable si estamos configurando varios equipos.
  • Puede evitarse la lectura del password vía puerto serie(Kenwood-K1) asignando un PIN en el boot del walkie Passwd(47), de este modo no se podrá leer la EEPROM sin el PIN.
  • NUNU genera un hash del password para poder comparar de forma rápida entre dos radios si comparten el mismo password de cifrado y de este modo saber si podrán comunicarse.

En el siguiente video podemos ver el funcionamiento del messenger, al recibir un mensaje escucharemos una señal acústica y aparecerá una notificación en pantalla. El walkie de la izquierda se ha habilitado el acuse de recibo mientras que en el de la derecha no:

La lógica del cifrado sigue el siguiente razonamiento:

  • Si llega cifrado y EncKey(48) no coincide, veremos un galimatías de carácteres.
  • Si llega cifrado se descifrará aplicando la EncKey(48).
  • Si llega en claro(emisor: MsgEnc(49): Off) directamente se mostrará en pantalla sin utilizar la EncKey(48).

Podemos apreciar dicho comportamiento en los siguientes videos:

Mensaje cifrado: EncKey(48) incorrecta Mensaje cifrado: EncKey(48) correcta Mensaje en claro: EncKey(48) incorrecta

Incluso con mas walkies implicados sigue funcionando sin problemas:


MESH Network:

NUNU es capaz de ir un paso mas allá formando una red MESH de nodos que reenviarán mensajes entre ellos, el único requisito es que tendremos que cargar la versión BETA de NUNU o pagar el patreon para obtener la versión>=21.0 .

Notas de la versión BETA:

Here is an exclusive early beta release with the NUNU Protocol, that implements message hopping based on the Meshtastic principles.
Hopping is enabled as long as you have MsgAck enabled.
Use MsgMod AFSK 1.2K for this release.
Hop count will be shown next to received message.
This release also stores 10 messages in total, in 2 pages that can be scrolled with FN1 and FN2 buttons.

Pero básicamente lo que debemos saber es:

  • El acceso al medio es comprobado por los nodos antes de intentar transmitir( CSMA/CA : Carrier-Sense Multiple Access with Collision Avoidance), si el canal está en uso el nodo esperará un tiempo aleatorio(dentro de un rango: Contention Window) para reintentarlo.
  • Se comprueba el CRC de los mensajes para evitar reenviar basura por la red.
  • No se puede solo enviar mensajes, en modo MESH todos los nodos formarán parte de la red y reenviarán mensajes.
  • Aunque no se tenga la EncKey(48) correcta los nodos pueden reenviar mensajes, pero no podrán leer el contenido.
  • El tamaño máximo del payload es de 30 bytes.
  • El TTL máximo es de 7.

El estado de los mensajes se codifica mediante un símbolito igual como antes pero además veremos el número de saltos justo después:

  • Si aparece un espacio indica que el mensaje se originó en ese walkie, no podemos saber cuantos nodos han participado.
  • Si aparece un numerito indica el número de nodos que han participado, aparece tanto en nodos intermedios como el walkie final.

La recepción del ACK solo indica que alguien ha recibido el mensaje y lo está restransmitiendo, no que llegue al destino.

Según sea el walkie el que envía el mensaje, un nodo repetidor o el walkie que recibe veremos la información codificada de la siguiente manera.

Walkie que envía:

> Mensaje enviado, acuse de recibo(ACK) no recibido.
+ Mensaje enviado, acuse de recibo(ACK) recibido.

Nodo que reenvía:

<HopCount Mensaje recibido y reenviado.
+HopCount Mensaje recibido, reenviado y acuse de recibo(ACK) del reenvío, recibido.

Walkie final:

<HopCount Mensaje recibido.

En mis prubeas los walkies se encontraban en 3 posiciones distintas:

  • Home - Puig: 4.7Km
  • Puig- Portell de Catí: 23.36km
  • Home- Portell de Catí: 25.52Km
Cacti Puig Home

Como podemos ver parece que el ACK solo funciona con el último par de walkies en comunicación, el origen no recibió el ACK del intermedio ni del final(origen pierde la capacidad de confirmar la recepción de mensajes por parte de algún nodo intermedio), solo el intermedio recibió el ACK del final.

Y el HopCount tampoco parece ir muy fino, el walkie origen no muestra nada como ya se ha comentado mas arriba, el walkie intermedio lo muestra correctamente pero el final solo muestra 2.

A continuación podemos ver un video del walkie intermedio reenviando un mensaje, primero recibe el mensaje y lo reenvia, luego recibe el ACK del walkie final: