lunes, 31 de agosto de 2020

El PicoFM de LU7DID

Cuando empecé en radio, hace mucho tiempo ya, el "novicio" tenía usualmente pocas alternativas para hacerse de sus primeros equipos para, también usualmente, empezar en la banda de 3.5 MHz (80 metros) en AM. Siempre podía adquirir un equipo comercial, la mayoría de nosotros soñaba despierto con los equipos Swan, Collins, Hallicrafters o Yaesu por entonces.  Pero esa era una opción mas bien lejana para la mayoría, como si estuviera en la Luna para mi al menos. La siguiente alternativa era comprar un equipo de segunda mano que algún aficionado que no lo necesitara mas ofreciera. Y finalmente podía construirse uno mismo los equipos, lo que era mucho mas común en aquel entonces que ahora. Los equipos de entonces, usualmente eran construidos con válvulas, eran por lo tanto relativamente simples. 
Los diseños mas comunes tenían 5 o 6 etapas en transmisión, a veces menos y a veces mas, en amplios chasis de 1/4 de metro cuadrado, con amplios espacios para hacer conexiones, robustos, fáciles de seguir y de reparar. Predominaban los circuitos de modulación a grilla pantalla, de algo menor calidad pero sensiblemente mas económicos que aquellos modulados en placa pues éstos requieren un transformador de modulación bastante costoso y difícil de conseguir. Los receptores a válvula eran por otra parte mas complejos, pero siempre se podía armar uno modificando una radio común de onda corta o usar un (relativamente simple) conversor cuya salida en banda de AM Broadcasting nos permitiera sintonizar las bandas de aficionados, al respecto había una gama amplia de conversores desde el legendario "Tramur" hasta los muy simples distribuidos por Daxon por medio de sus "mementos". Los repuestos en su gran mayoría se podían adquirir en casas de TV, excepto quizás las válvulas mas potentes de las etapas de salida que había que ir al "centro" a casa Galli u otras. En mi caso era muy chico y el camino que pude seguir fue que mi papá me comprara un equipo usado, cosa que aún el día de hoy creo fue de infinita sabiduría.
Pero a partir de alli las refacciones y mejoras corrían por mi cuenta como si hubiera construido el equipo. Muchas de las reparaciones iniciales la hizo quien fuera mi mentor en radio Don Ernesto Stellini (LU5EZ, SK) a quien he mencionado muchas veces y ese apoyo fue crucial en que pudiera lanzarme como aficionado. No soy adepto a los futuros contrafácticos pero es dificil especular que hubiera sido en mi vida de no haber empezado por la radio.
Pero aún así dependía de repuestos baratos porque el presupuesto disponible no era demasiado grande, por fortuna mis equipos usaban incluso para las válvulas de salida repuestos de TV blanco y negro a válvula de la época, el TV de casa tenía a tendencia a que su válvula 6DQ6 fallara con mucha frecuencia, el hecho que esa fuera la válvula de salida de mi transmisor era solo pura casualidad sin causalidad alguna como es posible imaginarse.
Todo esto viene a cuento, o introducción si se quiere, que por entonces la mayoría de los aficionados construía o metía mano con mayor o menor tino en sus propios equipos, conocía el circuito que tenía y podía con mayor o menor destreza armarse sus siguientes equipos o accesorios. Por ejemplo, el primer circuito que construí en mi vida fue un "aro de Hertz" con el que sintonizaba la salida de mi transmisor, circuito simple que me costó mis primeras quemaduras con el soldador. Como sea, con el tiempo esa relación del aficionado con sus equipos fue cambiando progresivamente; algunos dicen que para peor y otros para mejor. Por un lado los modos "simples" fueron dejando de lado, el AM fue desechado excepto segmentos muy pequeños de las bandas de 80 y 40 metros. El uso se SSB se difundió pero allí los equipos no eran tan simples de construir ni de ajustar. Por fortuna al mismo tiempo los diseños de estado sólido empezaron a acercar las bandas de VHF y UHF al aficionado común; previamente esas bandas eran para experimentadores muy "experimentados", necesitaban componentes especiales que no se conseguían y había muy poca actividad por lo que uno nunca estaba seguro si no comunicaba porque no  había nadie o porque el equipo no emitía. Rebobinado rápido al presente hoy es rutinario que un radioaficionado empiece comprando un equipo chico de FM para la banda de VHF y UHF; son equipos de exquisita miniaturización, robustos y muy sofisticados en sus funciones; muy pocos, poquísimos, arman sus equipos para operar en bandas de HF. Personalmente creo que sin armar desde cero un equipo para HF, lo que tiene su complejidad para proveer al mismo de funciones comparables con los modelos comerciales, es posible reconvertir con costos y conocimientos técnicos modestos equipos SSB de uso comercial para bandas de aficionado mediante kit de DDS y ajustes menores. Y por supuesto siempre están los kits para usos específicos como el D4D de crkits o alguno de los muchos kits disponibles tal como los ofrecidos por qrpguys o el legendario OCX de qrp-labs.
Quizás mas aficionados tienen a su alcance empezar en radio comprando un equipo de VHF/UHF a pesar de no tener formación técnica, quizás es mas difícil que permanezcan mucho tiempo activos basado en el interés en la experimentación. En éste blog he compartido muchos proyectos de equipos simples, incluso equipos simples pero muy sofisticados para las bandas de HF. Pero creo que hay recursos técnicos para poner en manos de experimentadores también las bandas de VHF/UHF. Hay módulos como el Dorji DRA818V/U que implementan un transceiver completo de VHF o UHF (depende de que módulo se elija) en un módulo de poco menos de 1" cuadrada. Es un proyecto interesante para un novicio porque la dificultad de integración es muy baja, a pesar que los módulos integrados sean muy complejos, básicamente se necesita utilizar un módulo transceiver, alguna forma simple de amplificar el audio, alguna forma de enviar comandos por el puerto serie del módulo para configurarlo y comandarlo y algún nivel de filtrado pasabajos a la salida. A cambio de eso se obtiene un transceptor, usualmente a construir como walkie-talkie aunque no fue eso lo que hice, de 1W de potencia capaz de operar tanto en simplex como por repetidora, con y sin tonos.
La hoja de datos del módulo da los comandos para programarlo, básicamente son secuencias de inicialización como si fuera un modem (secuencias AT) que establecen frecuencia, tonos, filtros, ancho de banda de canales y otros parámetros de funcionamiento. Una vez establecidos no es necesario emitir comandos para operar un comunicado normal, basta poner en bajo o en alto ciertas lineas de comandos para que el módulo emita o reciba. Pero es bueno poder cambiar el volumen, el nivel de squelch, la frecuencia y los sub-tonos a usar (o no) en un canal, y salvo que se opere en una frecuencia fija, lo que también puede tener su atractivo en incontables proyectos, es necesario algo que emita los comandos mediante el puerto serie. Y ese algo es usualmente un controlador o un microprocesador. El controlador es realmente simple, se puede hacer fácilmente con un controlador PIC, incluso uno sencillo, siempre que se acepte tener funcionalidades muy básicas. El enfoque mas común que se observa en proyectos en la red es hacerlo con una placa Arduino, incluso una bien simple como una Arduino mini o una Arduino nano o un ArduinoUno bastará (link). En mi caso, y como hago en otros proyectos, preferí utilizar una placa Raspberry Pi Zero W. Es mucho mas que lo necesario para programar el módulo transceiver, incluyendo un nivel de configuración y definición comparable al de cualquier transceiver comercial. Pero todos mis proyectos son con esa plataforma y también permite mayor flexibilidad de experimentación. El resultado puede verse en las fotos, un pequeño gabinete abierto hecho en la impresora 3D, la placa del módulo SV1AFN que utilicé para éste prototipo la que tenía desde hace algún tiempo por lo que la aproveché podría reemplazarse con cierta facilidad por un amplificador integrado y un filtro pasabajos (¡que no importa lo que diga la hoja de datos del módulo, es necesario!). Completan el proyecto un display LCD tipo I2C y un rotary encoder. El resultado lo puse en GitHub bajo el nombre de proyecto picoFM, en el mismo figura tanto el circuito como el software como otro material complementario del proyecto. Por cierto, el mismo no requiere habilidades constructivas ni equipo de pruebas especial, pero si una moderada capacidad de conectar módulos e interactuar con una placa Raspberry para cargar su imagen de sistema operativo Raspbian. Ayuda tener otro equipo de V/UHF para usar en las pruebas para no depender de otra estación para los reportajes.
Las pruebas en el aire fueron satisfactorias, aún en baja potencia podía utilizarlo en simplex y sobre repetidora (LU3DY, 147.12+600 con sub-tono). Supongo que para llevar en la mochila es mas cómodo un handy, pero comunicar con un equipo que uno acaba de construir siempre tiene un sabor especial,  por mas que sea un poquito mas grande y aunque no genere una difusa iluminación de los filamentos de válvulas como hace muchos años. Un chico de 12 años probablemente saldría corriendo confundido ante la posibilidad de armar un equipo de HF moderno, o quizás no, pero estoy casi seguro que si tuviera inclinaciones técnicas encontraría este tipo de proyecto muy atractivo, quizás con muy poca guía de un mentor o de un Radio Club. 
Para los mas experimentados, quienes quizás no tengan interés en tener "otro" equipo de V/UHF,  el proyecto no solo tiene porque ser la base de un transceptor, puede dar pie a todo tipo de experimentación con estaciones automáticas, digipeaters, repetidores EchoLink, seguidores APRS, globos y toda suerte de proyecto donde se requiera emitir y recibir usando poco espacio, poca energía y poco peso.

miércoles, 26 de agosto de 2020

Escuchando susurros en LU7DID. decode_FT8


Pocos modos han tomado tan por sorpresa y en forma tan vehemente la actividad radial como el coloquialmente denominado "FT8", acrónimo artístico de un nombre mas extenso "Franke-Taylor 8 Frequency Shift Keying". Desde el punto de vista de teoría de comunicaciones el FSK no es novedad, tampoco los modos de modulación de tipo n-FSK (n tonos). ¿Cual es la novedad entonces?. La novedad consisten no tanto en la modulación en si misma como en el protocolo para usarla. ¿Que se emite? ¿En que orden? ¿A que velocidad? ¿Con que diseño de modulación en términos de separación y simbolos? Todo eso hay que definirlo por mas que los "1" y "0" terminen codificandose con un método de modulación FSK, en el gran esquema de las cosas eso último es "facil". Medios de modulación abundan en manos de los aficionados, hay esquemas que llevan décadas de presentados y atraen a nadie. Incluso esquemas muy promisorios, que en papel lucen muy potentes, y tienen poco uso. ¿Que es lo que produce lo uno o lo otro?.
Solo puedo esbozar una opinión, luego de observar algunos hechos, que seguramente será incompleta y que puede o no tener aceptación. Para mi es un combo que incluye excelencia técnica, con facilidad de uso, con resultados prácticos, con infraestructura, con coyuntura de propagación y con suerte.
Empecemos por la excelencia técnica. Como apunté antes el uso de FSK como medio de modulación es tan viejo como la radio misma, aunque solo con el vuelco desde comunicaciones de tipo analógicos a digitales en, digamos, los últimos 30 años se hizo masivo. Prácticamente todas las transmisiones digitales se hacen con alguna variante de FSK (o su prima hermana PSK), nuestro mundo tal como lo conocemos hoy "late" al compás de una música usando PSK. O sea que no hay novedad técnica en su uso. Ahora bien, la comunicación usando modulación PSK se deteriora con la relación señal-ruido algo mas graciosamente que los esquemas basados en modulación de amplitud (SSB, DSB, etc) pero finalmente requieren que la señal esté "por arriba" del piso de ruido para un ancho de banda dado, al final el ruido siempre gana la batalla inyectando desorden y caos en la armonía inteligente de la información que está siendo transmitida. Eso se soluciona, tradicionalmente, aceptando que ocasionalmente algo de la información será destruida por el ruido y generando los mensajes con algo de redundancia, de acuerdo a los parámetros de diseño puede ser para saber si todo un "pedazo" de la información está corrupto y hay que desecharlo pidiendo al otro extremo que lo envíe de vuelta o, en casos mas sofisticados, pudiendo incluso corregir algunos "bits" de información destruida por los mismos bits enviados en forma redundante (algoritmos de corrección). Pero al final, si la relación señal a ruido se deteriora lo suficiente, muy pocos pedazos de información pasan o no alcanzan los bits de corrección para arreglarlo, o las dos cosas. El ruido siempre gana al final del día. Estrategias para abordar esta cuestión hay muchas. La mas obvia e inmediata es aumentar la potencia lo que tiene limites prácticos puestos por la tecnología, la legislación e incluso la preferencia de los operadores. La segunda estrategia es, dado que el ruido es "blanco" y a mas ancho de banda mas energía tiene, reducir el ancho de banda de la señal. Una señal de AM tiene el doble de ancho de banda que una de SSB, a igual información. SSB siguen siendo casi 3 KHz de ancho de banda muy ineficientemente poblados por la voz humana. El modo de voz digital (Digital Voice DV) codifica digitalmente la voz en forma mucho mas eficiente en ocupar aproximadamente 1 KHz, mucho mejor aunque el modo no termina de prender, quizás no tuvo tiempo para despegar o quizás hay varios "codecs" la pieza de software que digitaliza que no son completamente compatibles y ninguno se hizo dominante. Una forma de bajar el ancho de banda, y según lo que pronostica la teoría de la información, es bajar la velocidad a la que se la transmite. La voz hablada transmite información a una tasa de muchas decenas de "bits-por-segundo" equivalentes, podemos aceptar hacerlo a menos y tendremos modos digitales como RTTY (45.5 bauds) o PSK31 (31 bps) que son mas resistentes al ruido, pero mas lentos. Nada parecía superar a la reina de los modos, la telegrafía. Con un ancho de banda teórico de algunas decenas de Hz y práctica de 100 Hz o menos permite comunicaciones relativamente lentas (25 a 30 ppm) pero que requieren menos potencia o que a igual potencia son mas resilientes en malas condiciones. Como telegrafista de cierta experiencia puedo sin dar muchos flancos a la crítica afirmar que las supuestas ventajas del CW devienen solo de su equilibrio entre velocidad (ancho de banda) e información transmitida, todo el resto es cháchara. El CW es bueno porque es lindo, es agradable y es rendidor; no hay que buscarle muchas mas explicaciones técnico-culturales, en general rebuscadas y erroneas. El CW fue desde siempre la frontera minima para poder comunicar en un circuito dado en condiciones dadas, y por cierto que muchas veces la única posible para una potencia dada. No es casual que quienes lo utilizan en condiciones de emergencia, baja potencia o precariedad de antenas lo consideren insustituible; todo estrictamente verdad, nada realmente mágico. ¿Que podemos hacer en realidad en CW? Los comunicados en CW son usualmente muy cortos, sobre todo en condiciones de concurso, DX o pileup. Dejemos de lado el martilleo que a puro gusto hay veces que hacemos con buenas condiciones de propagación a puro deleite "hablando" de distintos temas en las particulares abreviaturas que se usan en CW. Tomemos el caso de un concurso, estamos hablando de entre 4 y 6 contactos por minuto donde se intercambia la señal distintiva y el nivel de señal, quizás con un saludo final como al pasar (mas para cerrar el contacto y habilitar al siguiente que de amables). Esa es la comunicación máxima que damos por válida. Tomemos un caso menos extremo, un contacto normal pero rápido... ¿cuanto tarda? ... ¿un minuto? .. ¿dos?. O sea que aceptamos como contactos válidos aquellos en los que intercambiamos muy poca información y aceptamos invertir un minuto o dos para hacer un contacto. Si juntamos ambas cosas necesitamos menos velocidad de transmisión de información que en el CW. Y eso ya vimos que permite menos ancho de banda, y al tener menos ancho de banda permite o usar menos potencia para igual relación señal-ruido o tener mas margen de relación señal-ruido con igual potencia. Un modo mas eficiente en resumen. Y eso, exactamente eso, es lo que hacen los "modos digitales de baja señal", familia de modos de modulación que incluyen al WSPR o al FT8 entre muchos otros. En ellos el esquema es repetitivo. Un mensaje muy estructurado y conocido de antemano en su formato, se codifica con un algoritmo matemático que asegure redundancia de bits y corrección de errores. El mismo, una vez codificado, se envía "lentamente" por un canal usando modulación FSK. Para agregar menos incertidumbre se agrega un marco de sincronización de tiempo muy estricto, del orden de 1 segundo o menos, que ayuda a que mediante artilugios matemáticas pueda incluso mejorarse las chances de decodificar una señal del otro extremo. ¿Cuando mas lentamente? Bueno, WSPR se toma dos minutos por cambio. Un QSO compuesto de llamada, respuesta, señales, señales, adiós y adiós (5 a 6 cambios) puede durar 12 minutos, demasiado. Por eso el WSPR se usa como monitor de señales, uno escucha la señal al cabo de 2 minutos o no la escucha, si la escucha la reporta y si no la escucha no. FT8 usa un esquema similar, pero menos robusto, lo que permite que cada cambio dure solo 15 segundos. Entonces un contacto entero durará un minuto y fracción, similar a lo que dura un contacto similar en CW sin el frénesi de un pileup o un concurso. El llamado, la respuesta, el intercambio de señales y el adiós está codificado, no es cualquier mensaje, hay pocos datos variables (licencia, ubicación y nivel de señal) pero todo el resto está pre-definido y es rígido. Hay otros modos de comunicación, como JS8CALL, que usan el protocolo de FT8 pero para transmitir cualquier mensaje; siguen siendo muy robustos al ruido, mas que CW incluso, pero menos que FT8. ¿Que significa en números todo ésto? Una señal de SSB se acepta que debe estar para una buena legibilidad una unidad S por encima del ruido en un momento dado, es decir +6 dB. Para hacer las comparaciones entre modos uno sabe que puede reducir el ancho de banda a medida que usa modos que necesitan menos, pero para tener una comparación uniforme se utiliza como referencia la relación señal-ruido con la que el modo puede operar tomando un ancho de banda correspondiente a un canal de fonía. En tal sentido los modos digitales como RTTY o PSK31 puede operar entre 0 dB y -5 dB; CW en teoría unos -5 dB (lo que hizo ilusionar a muchos que el PSK31 podía reemplazar al CW solo que sin aprender Morse. Sin embargo el CW a oido permite al entrar a jugar la formidable combinación oido-cerebro operando como filtro el operar a -10 dB, incluso mas. FT8 puede operar a -20 dB y WSPR a -30 dB. La diferencia son abismales casi 26 dB con fonía y 10 dB con CW. Puedo hacer con 1W en FT8 lo que hago con 10W en CW y casi 500W en fonía, es abismal. Es una forma novedosa de apelar a tecnología que se conoce desde hace mucho, usada muy creativamente y con el auxilio de matemáticas muy avanzadas disponibles en abundancia con los computadores modernos.
Abordemos uno de los aspectos mas espinosos, quizás, y es la facilidad de uso. Es obvio que tecnológicamente FT8 es muy sofisticado, pero la complejidad está encapsulada en el programa que lo implementa y completamente invisible al operador. El operador configura unos pocos parámetros en su programa, define en que banda trabajar y rápidamente se le pueblan las ventanas de un montón de estaciones llamando CQ o teniendo contactos con otras. Un doble-click en cualquiera de las que llaman y el QSO puede completarse automáticamente, sin otra interacción. Suena a cazar patos, con dinamita y con los pobres patos atados a una estaca en la tierra. Demasiado facil, ¿no?. Y eso es cierto visto desde ese punto de vista. "¡Eso no es radio!" reclaman muchos. "¡Es demasiado facil, no implica ningún esfuerzo!" confirman otros. Todo eso es cierto, claro, solo que captura una parte del contexto. También es facil prender un amplificador de 1 KW y comunicar con el vecino de la otra cuadra, con el cual realmente no tenemos mucho para actualizarnos porque comunicamos ayer, y el esfuerzo no es mucho mayor, Solo que es un click en FT8 y varios clicks (en el PTT) en banda lateral. Podría estirar la metáfora indefinidamente sobre lo que es "facil" o lo que es "dificil" en radio. Ciertamente es radio, si usa RF y sale por una antena tengo que tener licencia, equipos y antenas; y cualquiera que los haya puesto en funcionamiento sabe que no se consiguen solos. Después en función el mérito, el esfuerzo y el estudio se comunicará en condiciones muy precarias o muy fáciles, depende de como se divierta mas el operador. Efectivamente con un click en FT8 inicio la secuencia del contacto, y el mismo es trivial si al corresponsal lo recibo a -5 dB, algo de esfuerzo si lo recibo a -10 dB, bastante esfuerzo a -15 dB y me tengo que pelar el alma para contactarlo a -20 dB. Supuesto que sea el único que quiera hacerlo, porque si hay muchos otros va a ser incluso mas dificil (pileup). Y recordemos que toda la actividad mundial de FT8 ocurre en solo 2 KHz de cada banda, es un guiso de gente..... Entonces, dá la casualidad, que las estaciones interesantes (los DX) muy a menudo entran a -20 dB y dan mucho mas trabajo que un "click-click", realmente hay que estudiar la propagación, levantarse temprano, encontrar banda y ventanita de algunos minutos para el contacto, insistir, buscar el hueco entre llamados de la competencia y finalmente, hacer el contacto. El esfuerzo, luego de haber hecho muchos QSO, no es significativamente mas facil que hacer contactos de pileup en CW con manipulador automático o teclado. Es mas facil de usar, pero solo marginalmente y en determinados contextos. En otros no es muy diferente.
Resultados prácticos y coyuntura de propagación van muy de la mano. Estamos en el mínimo del ciclo de manchas solares, por momentos parecía otro mínimo de Maunder (ausencia total de manchas solares) y eso hace que las bandas altas estén muertas la mayor parte del tiempo, excepto quizás a nivel regional. Bandas intermedias como 30,20 y 17 metros tienen aperturas pero mas breves y con mas ruido. Las bandas bajas, 40 metros para arriba, tienen su época de gloria. El ruido baja, la absorción en capas atmosféricas menores (layer D fundamentalmente) se reduce y las distancias se incrementan. Pero las aperturas son por el camino obscuro, en altas horas de la noche y breves. Históricamente los minimos solares representaron un mínimo de actividad de radioaficionados, por lo menos en bandas de HF y no tanto en bandas como VHF o UHF que no son afectadas excepto en raras ocasiones por los mínimos. Y siempre se pudo pilotear los mínimos con potencia hasta cierto punto. Pero usar FT8 es como tener un amplificador de 500 W con un dipolo, o una antena direccional con 100W en fonía. Y entonces cuando las condiciones están "cerradas" aún así se puede comunicar. Entonces muchas estaciones que antes no tenían chances de tener actividad ahora la tienen, incluso actividades de DX, incluso por tiempos prolongados. No es casualidad que mas del 90% del tráfico reportado por los sitios automáticos (clusters, RBN, pskreporter por ejemplo) sean correspondientes a FT8.
Y eso nos lleva a uno de los aspectos restantes, la infraestructura. ¿Que se necesita para hacer FT8? Podríamos decir que una estación normal, mas una antena normal, mas una computadora normal. Nada que ya no esté en la mayoría de las estaciones. No se necesita, en la enorme mayoría de las estaciones nada mas que lo que ya tienen, en realidad pueden hacer "mas" con lo que ya tienen, y ese es un gran atractivo. Pero al mismo tiempo se puede hacer mas en condiciones mas precarias. Si tengo un equipo QRP, con el que alimento una antena long wire a baja altura en condiciones precarias (portátiles por gusto o de emergencia por necesidad), incluso con limitaciones de energía; podría en esas condiciones tener una expectativa de contactar como si tuviera una estación de -10 dB de desventaja, es decir como una estación convencional de 500 mW. Cualquiera que haya jugado con QRPp sabe que con esas potencias se puede contactar, y muchas veces buenos contactos, sobre todo con una buena antena. Y en FT8 equivalen quizás a 50W en fonía sobre una buena antena, por lo que realmente rinde, rinde mucho aún en condiciones muy precarias. Otros proyectos reportados en éste blog muestran el enorme potencial técnico y de uso de contar con solo 100 mW de potencia (¡!) en modos digitales de baja potencia. La "poca" infraestructura necesaria es un enorme atractivo.
Lo que nos lleva al último punto, suerte. ¿Que tiene que ver la suerte con un modo de comunicación, de radioaficionados encima?. Mucho, creo. Tuvimos suerte que un premio Nobel de fìsica fuera radioaficionado (Joe Taylor), que fuera además un radio astrónomo y que se entrenara por años en entender la dinámica de las señales del espacio intergaláctico profundo para estudiar fenómenos desconocidos, descubriendo el fenómeno Pulsar en el camino. Y que se cruzó con otro genio, Steve Franke (K9AN), especialista en protocolos de comunicaciones, para que juntos alumbraran el programa WSJT-X en un espeso uso de la matemática de alto vuelo necesaria para implementar diferentes modos de baja señal (incluso, varios no mencionados en ésta entrada). Si un aficionado tuviera que aprender esa matemática para hacer FT-8 su popularidad sería órdenes de magnitud menor; nada es secreto, cualquier buen ingeniero con su formación completa y un postgrado en procesamiento digital de señales no tendría dificultad en entenderlo e implementarlo, esa sería la audiencia, supuesto que le interese además ser radioaficionado. Suerte. He esbozado éstos conceptos, mi opinión en definitiva, parcialmente en varios ámbitos cuando algunos atacan el modo, y por transitiva a mi juicio tontamente adjetivando a quienes lo usan. Con mucha frecuencia observo que lo hacen telegrafistas, no se si será algún tema de índole gremial o que, pero siendo telegrafista yo mismo me siento capacitado para exponer argumentos sin que facilmente se pueda argumentar que mi "odio" hacia el CW es lo que realmente me impulsa.

decode_FT8

Pero ¿a que viene toda ésta introducción? ¿donde aparece algo llamado "decode_FT8" en ella?
Este programa es un experimento, uno exitoso debo agregar, de desplegar una prueba de concepto.
Usando la plataforma "PixiePi" o "OrangeThunder" pude mostrar en sendas entradas anteriores como distintos experimentos me llevaron a construir un hardware original para modos digitales de baja señal, WSPR y FT8 entre ellos. Pero en ambos casos usaba el programa WSJT-X. Lucia un poco mas dificil que cazar patos atados con dinamita, pero quizás solo un poco. Asi que me pregunté que debería hacer para extender el microcódigo que ya había escrito para implementar los transceptores (en su costado embebido) para que, además, pudiera recibir y transmitir en FT8 sin usar el programa WSJT-X. Eso es una buena prueba (para mi mismo, y por diversión, por cierto) que no solo usaba el modo, sino que lo entendía en forma profunda. Escribir la parte transmisora es trivial, realmente, hace años que uso mi baliza WSPR con esa tecnología, la que no difiere mucho de transmitir en FT8, solo detalles en como de codifica el mensaje y como se controla su longitud. También la máquina de estados finitos para implementarlo es un poco mas complejo en FT8 al tener varios "cambios" comparado con WSPR el cual solo emite. Pero no se puede hacer algo híbrido entre mi programa transmitiendo y WSJT-X recibiendo, porque el programa está diseñado para no poder ser ejecutado automáticamente (una decisión editorial de Steve y Joe para que no se construyan, facilmente al menos, robots con el ). El programa que recibe debe poder controlar también la recepción.
Obviamente la descripción matemática que hay en el sitio del WSJT-X es un sobrevuelo, y la que hay en la documentación también. Es necesario ir a al código para entender la matemática involucrada. Y el código para sorpresa de nadie considerando que fue escrito por un astrónomo está codificado en ... Fortran 90. Ese lenguaje fue uno de los primeros que se usó en computadoras, lenguaje por excelencia en los primeros tiempos de la computación científica y usando el cual se desarrollaron cientos de millones de lineas de código con algoritmos, funciones, fórmulas y procedimientos matemáticos de todo tipo. Desde entonces, y por los últimos 50 años, quienquiera aborde un problema técnico espeso en términos matemáticos es muy probable que enfrente escribir un volumen muy considerable de lineas de código desde cero o use librerías existentes escritas en ... Fortran 90 alguno de sus antecesores tan atrás como Fortran IV o tan recientes como Fortran 2008. Las mismas se usan hoy con y desde cualquier lenguaje, termina siendo inmaterial desde que lenguaje se llama a una función, en sus entrañas mismas se ejecuta en muy veloz código de máquina compilado cuyo archivo fuente reside en alguna parte en ... Fortran IV. Estamos hablando de un lenguaje inventado 20 años antes que el primer experimento usando lenguaje C.... 50 años atrás....
Pero mas alla de las fórmulas matemáticas no hay razón para escribir el resto del programa en Fortran 90, pero si para entenderlo. ¿Como hago para saber Fortran 90?. Bueno, historia larga, pero su versión corta es que fue el primer lenguaje que aprendí cuando empecé a estudiar Ingeniería a mediados de la década del 70, y fue mi sustento como programador durante varios años en una empresa que usaba una computadora que se programaba con el. Uno no se olvida de ciertas cosas, ciertamente no del primer programa en el que alguna vez programó. Asi que, si, pude seguir las rutinas en Fortran 90 del WSJT-X con cierto nostálgico deleite. Una vez entendido era solo cuestión de ver como encaptular las librerías de Fortran 90 involucradas o traducirlas a C. No hacía falta, Karlis Goba (YL3JG) ya lo hizo en su paquete ft8_lib. Alli están todas las manipulaciones necesarias para decodificar FT8. Solo hay que tomar la señal de audio, procesarla digitalmente con algún filtrado, llamar las funciones en el orden necesario, definir los límites y sensibilidades del sistema, manejar los errores y decodificar las señales. Suena simple. No lo es.
Pero luego de un considerable masajeo, en particular en manejar las condiciones de error y las sensibilidades del sistema, finalmente empezaron a aparecer los "frames" decodificados de FT8. El receptor (transceptor en realidad) implementado de ésta forma permite hacer contactos en FT8 completamente sin WSJT-X. Sin embargo, es claro que su "sensibilidad" es menor que la de WSJT-X, escucha menos estaciones, en particular no escucha las mas débiles (¡!). ¿Porque? Rápidamente empezó a ser claro porque. El algoritmo revisa toda la banda pasante (2 KHz) buscando señales "candidatas", las que pueden ser señales reales de una estación emitiendo en FT8 o espurias de distinto tipo o picos de ruido simplemente. Integrando durante los 15 segundos que dura el frame FT8 la persistencia de señales permite ir segregando las que son candidatas a ser válidas o ser ruido, y a su vez que tan sólidas son en términos de su nivel sobre el ruido. Ese análisis se cuenta con solo un par de segundos para hacerlo, desde que termina el ciclo de emisión de todas las señales y que comienza el próximo, en un par de segundos hay que revisar una veintena de señales candidatas (o más) a lo largo de casi 15 segundos de emisión. Para asegurar algo esas señales se enlistan ordenadas de "mas probable a menos probable" usando un indicador de calidad que se deriva del procesamiento digital de las señales para hacer ese ordenamiento. Para las señales candidatas resta todavía hacer la demodulación del frame, tarea matemáticamente intensa por su parte. Como resultado, cuanta mas potencia de procesamiento se dispone mas chances hay de procesar señales mas profundo en la lista. Y las señales cuanto mas débiles mas profundas en la lista se encuentran. Por lo tanto, potencia de procesamiento implica sensibilidad de radio. Relación impensada para la mayoría, pero muy familiar para los radio astrónomos.
En términos prácticos resulta un calce perfecto, disponer de mas potencia de procesamiento implica escuchar señales mas débiles. Pero con 100 mW de potencia es limitada la posible clientela de posibles candidatos que nos puedan escuchar, estaremos por nuestra parte lejos del tope en sus listas de decodificación. Por lo tanto hay un equilibrio muy bueno entre lo que el algoritmo escucha y lo que el transceptor puede comunicar con solo 100 mW.
Con orgullo agrego a mis comentarios favorables al FT8 "soy un telegrafista y he escrito mis propios programas para FT8", nadie puede argumentar sólidamente que rechazo el CW ni que me atrae lo facil del FT8.

martes, 25 de agosto de 2020

El OrangeThunder de LU7DID

En el pasaje de apuntes y notas a éste blog no siempre sigo el orden cronológico del proyecto, ni lo hago inmediatamente. Soy consciente que si no resguardo cierta información es probable que en un futuro cercano haya perdido suficientes detalles sobre el proyecto como para que me sea difícil retomarlo, supuesto que necesite hacerlo, y muy a menudo ese es el caso. De hecho ese es el propósito original y el (para mi) mas importante de éste blog. Pero al mismo tiempo documentar no es lo primero que uno está tentado de hacer, sobre todo cuando no llegó a algún punto de parada lógica donde haya algo concreto que documentar en lugar de ideas sueltas que no parecen conducir a ninguna parte. Los proyectos toman vida propia, en algunos casos se trata de una idea neta y clara que uno persigue hasta alcanzarla o convencerse que no es el momento de hacerlo. En otros casos es un proceso de aprendizaje que se vá ramificando en formas insospechadas porque lo que se aprende muestra posibilidades que no se conocían y que terminan siendo mas deseables que lo que se perseguía en el punto de partida. Eso es lo que pasó con el proyecto Orange Thunder (Trueno Naranja en inglés), proyecto cuyo nombre se remonta a un auto legendario del Turismo Carretera en Argentina y que siendo niño fue mi portal a la curiosidad por la tecnología. El proyecto en realidad empezó con la idea de construir un transceiver especializado en modos digitales de baja señal y mayoritariamente basado en técnicas de Radio Definida por Software (Software Defined Radio o SDR), tema en el que profesional, académica y personalmente he estado muy involucrado en los últimos 20 años. La plataforma Raspberry Pi es ideal para ese uso, es relativamente accesible, muy poderosa en su capacidad de cómputo, montada sobre una distribución Linux propia lo que debido a mi familiaridad con Linux desde hace mucho tiempo, el acceso a recursos de desarrollo y su flexibilidad prácticamente ilimitados es una plataforma ideal. Un primer planteo estuvo dado por dos proyectos anteriores, que en rigor fueron preliminares de éste. El que denominé "Transceptor de señales débiles, bit a bit" (link) donde en varias entradas sucesivas fui mostrando apuntes para construir las diferentes partes de un transceptor. Un segundo proyecto relacionado fue la baliza WSPR que puse en funcionamiento en 20 metros hace mas de dos años (link), proyecto que dio lugar a muchas entradas posteriores tanto relacionada con ella misma como con sus usos en actividades de estudio de propagación y planeamiento de concursos. Es claro que de alguna manera éste proyecto es parte de un hilo de proyectos en el que llevo ya varios años. El proceso de formación de un proyecto va medrando cambiando su dirección en formas que son muy erráticas, temas que no están conectados entre si de repente lo están y partes de un todo terminan tomando vida propia separándose en proyectos independientes que quizás se vuelvan a juntar en otra oportunidad. Es claro que para crear un transceptor hay varios módulos funcionales o sub-sistemas que deben operar en forma satisfactoria. La generación de señal es claramente dominada por la librería librpitx de Evariste (F5OEO), la cual con muchas horas de estudio he logrado comprender en un grado de detalle que me permite modificarla cuando necesito. Evariste me ha honrado con la autorización para que haga merges sin su inspección con modificaciones que crea convenientes directamente sobre el branch master de GitHub que la contiene, ¡guau!. Con esa librería es posiblemente generar cualquier patrón de modulación en el espectro de RF desde unos pocos cientos de KHz hasta el rango superior de UHF (superior a 1.5 GHz). Por otro lado para el receptor tiene todos los números de la rifa el dongle RTL-SDR, he probado muchos otros, en particular varios tuners de TDA pero a la larga o corta la solución mas efectiva es éste a pesar que su precio es un poco mas elevado.
El trabajo con el proyecto PixiePi (objeto de una entrada reciente) me permitió sortear un obstáculo de mas de un año de antigüedad, como procesar las señales en tiempos que no generaran retardos incompatibles con los modos digitales de baja señal, los cuales son extremadamente sensibles a la sincronización temporal entre transmisor y receptor. De ese proyecto terminé con una librería propia y reusable con un kit de herramientas de procesamiento digital de señales (DSP) para generar filtros, diezmadores, interpoladores, filtros de rotación de cuadratura y otros.
Por otra parte el proyecto de la baliza WSPR me familiarizó con una placa provista por TAPR que actúa como "sombrero" (hat) o "escudo" (shield) de una Raspberry Pi y tomando la salida del GPIO4 realiza el filtrado de la misma y su amplificación hasta un nivel de unos 20 dBm (100 mW), la salida de RF tal como es generada por la librería librpitx es una forma de onda cuadrada, muy rica en armónicos a la cual no se le puede extraer mucho mas que 10 mW, que expone demasiado la placa a problemas de estáticos en la antena y que requiere mucho filtrado; todos problemas solucionados con éste shield.  Todo integrado termina en un ecosistema OrangeThunder  y puede encontrarse todo el ecosistema relacionado en GitHub (link) que incluye un conjunto de programas, el hardware necesario, como se integran los distintos módulos e incluso un diseño 3D para el gabinete. un conjunto de programas. El principal programa comparte en realidad una cantidad de código con el ya mencionado Pi4D. Ese programa  se denomina Orange Thunder for Digital (OT4D) y es capaz de tomar una modulación de señal digital, reproducirla y recorrer el camino inverso. Para lograrlo se utiliza ecosistema de varias placas integradas entre si, una interfaz de sonido gestionada mediante la librería ALSA, una placa Raspberry Pi 3B con la que se genera la señal modulada en RF con una salida de 10 dBm y en recepción se realiza la demodulación, una placa TAPR que aporta en transmisión filtrado y amplificación a 20 dBm y un dongle RTL-SDR como downconverter y unidad de conversión analógica-digital. 
Vale la pena describir como funciona el sistema en su conjunto. En recepción la señal de antena es alimentada por un relay de conmutación a la entrada de antena del dongle RTL-SDR; convenientemente programado en parámetros de muestreo y frecuencia el mismo produce una señal en cuadratura a 1.2 MSamples/seg (o sea mas de un millón de pares de valores). Para éste proceso se usa una librería, la mejor librería para gestionar el dongle es la denominada rtlsdr Osmocom (link), uno de cuyos programas es denominado rtl_fm y es capaz de sintonizar múltiples modulaciones en cualquier frecuencia dentro del rango admisible por el dongle. Para ajustar sus funciones a éste proyecto modifico el programa de manera de controlar en forma externa la frecuencia de operación (sin tener que parar y arrancar el programa) y agregar otras funciones tal como lectura de nivel de señal. Se menciona a menudo que el dongle RTL-SDR funciona por encima de 30 MHz y que para operarlo por debajo requiere un módulo down-converter. Eso es parcialmente cierto. En el rango de HF, por debajo de 30 MHz en todo caso el dongle requiere usar el llamado modo 2 (conversión directa) por lo que en realidad entrega dos señales espejadas a ambos lados del oscilador local, como en cualquier receptor de conversión directa. Pero a mas de un millón de muestras el teorema de Nyquist-Shannon nos indica que el ancho de banda será de unos 600 KHz a cada lado, por lo que es razonablemente fácil discriminar las señales, mas fácil en todo caso que lo que es hacerlo cuando las señales están mucho mas juntas como en el caso de un receptor de conversión directa en el rango de audio. En todo caso colocando la frecuencia a la que se ubica el oscilador local (o LO por Local Oscillator) del dongle ligeramente fuera de banda, nos podemos concentrar que se tomará por arriba de la misma con cierta facilidad. La separación permitirá además el filtrado en forma mas sencilla. En realidad de toda esa banda sintonizada originalmente  mediante filtrado y diezmado se retiene solo un par de KHz alrededor de la frecuencia de sintonía. Una vez que se reduce el ancho de banda carece de sentido seguir procesando millones de muestras por segundo y hay que pasar a solo algunas miles con lo que el resto del tratamiento de la señal es menos demandantes. Entonces la señal es procesada primero por rtl_fm, el resultado por un procesador especial y finalmente el resultado, ya una señal de audio a esa altura, puesta a disposición de los programas mediante el programa aplay, el cual es parte de ALSA. 
La señal de audio puede ser mandada a un par de parlantes o alimentada a otro programa mediante un "virtual cable" provisto por ALSA, snd_aloop en éste caso cumple ese role. Con la configuración apropiada WSJT-X recibe la señal de audio como si estuviera conectado a la salida de un transceptor convencional y puede hacer su propia magia a partir de alli. El transceptor en si no participa en la demodulación de la señal, cualquiera sea ésta, lo hace el programa respectivo. Uno puede ver la señal en la banda pasante, puede manejar el transceptor mediante comandos CAT, lo puede encender o apagar con el test de PTT y todo lo que haría con un transceptor, solo que no hay transceptor. Solo hay software.
Para la transmisión se hace algo similar pero a la inversa. El programa que genera la señal digital, nuevamente WSJT-X por caso, genera la banda base de, digamos FT8, como una señal de audio la cual se hace disponible mediante un "virtual cable" para el programa arecord de ALSA. Su salida es procesada digitalmente por una librería del proyecto que implementa algoritmos de procesamiento digital de señales con muy baja huella de procesamiento con los que se generan señales en cuadratura I/Q para USB, las que son alimentadas a funciones del programa librpitx (una versión modificada del programa sendiq del paquete rpitx en realidad), el cual genera la señal de RF en la frecuencia indicada. La señal de RF es emitida en realidad por el puerto GPIO4 como una onda cuadrada de unos 3.3V pep capaz de entregar unos 10 mW sobre una carga de 50 Ohms. Para que esa señal sea usable, y legal, es amplificada y filtrada extensivamente por una placa TAPR. Esa última limita la banda de operación, en éste prototipo a 20m, pero hay modelos para otras bandas. No es difícil hacer shields para bandas diferentes, no es mucho mas que un amplificador simple a FET y un filtro pasabajos mas o menos agudo. 
¿Que se obtiene con eso? Un transceptor de 100 mW capaz de operar en los distintos modos digitales. ¿Para que sirve en, por ejemplo, FT8? Bueno, depende, con la antena correcta y la propagación correcta para comunicar con cualquier parte del mundo en realidad. 
Mi baliza WSPR/FT8 tiene registros de todos los continentes. Lo usual son reportes locales o regionales (5000 Km o menos), pero con frecuencia se reciben reportes continentales (USA, Canadá) o globales. Nada impide agregar una etapa de amplificación mas para tener una salida de 1W con lo lo que las perspectivas mejoran aún mas.
La antena se conmuta con un relay, el cual es controlado por un pin del GPIO, el cual es activado por el programa cuando pasa de recepción a transmisión. Y eso puede ocurrir por un comando de CAT, por utilizar el sistemas VOX o por un PTT físico (el cual es sensado por el programa).
En la práctica el comportamiento en el aire superó las expectativas, el transceptor digital tiene buena performance de recepción y permite hacer contactos locales prácticamente sin restricciones (con 100 mW). Los contactos regionales dependen, como es de esperar, de una combinación de buenas condiciones, con cierta pericia operativa y con ausencia de otras señales de interferencia; pero ciertamente ocurren y con mas frecuencia que lo que se podría suponer. Se deberían esperar señales reportadas -10 dB respecto a lo reportado con la estación "convencional" de 1W, y realmente la relación se mantiene, por lo que en general podré trabajar estaciones a las que escuche a -10 dB o superior, nada imposible con condiciones promedio.
El proyecto fue complejo (y divertido) de desarrollar, aunque no es complejo de reproducir una vez que se cuenta con los esquemas y el software (incluso hasta la cajita para imprimir en 3D). La experimentación adicional que se puede hacer, tanto en el lado del software como del hardware puede derivar en múltiples direcciones. Con el procesamiento adecuado y pocas modificaciones es posible emitir en SSB (la Raspberry Pi tiene cierta capacidad de modular en amplitud el voltage de los pin GPIO), y por supuesto todos los otros modos digitales.
¿Si me dio gusto terminar el proyecto?..... ¿Quien dijo que el proyecto terminó?


sábado, 22 de agosto de 2020

El Pi4D de LU7DID

Una derivación interesante del proyecto PixiePi por la experimentación que me permitió hacer fue el desarrollo de software que denominé Pi4D (Pi para Digitales). En modo recepción el proyecto no tiene nada especial, el transceptor Pixie (y por lo tanto el PixiePi) opera como un receptor de conversión directa, por lo tanto el audio resultante se alimenta a la placa de sonido de (otra) PC corriendo WSJT-X y se recibe, sorprendentemente bien para lo que es la placa Pixie en cuanto a complejidad. Para transmitir es otra historia. WSJT-X genera los distintos modos de baja señal como una banda base de audio, el cual alimentado a un transceptor de SSB convencional (usualmente en USB) permite emitir en el modo digital que sea (WSPR, FT8, etc).  Pero sucede que el PixiePi no es un transceptor de SSB, lo es de (originalmente) de CW. En principio el que tenga un amplificador clase C no es un problema, las señales digitales de baja señal son variantes de PSK que no transmiten información en la amplitud. Los problemas a vencer sin embargo son dos, como procesar las señales en banda de audio para modular con ellas la generación de RF y como lograrlo dentro de los límites de potencia de procesamiento de una placa RaspberryPi Zero (que es relativamente pequeña). Primero intenté procesando en base a la librería CSDR que usé con anterioridad para implementar ideas y prototipos de un transceiver digital para señales débiles ("Transceptor para señales débiles bit a bit"). Mal que me pese ese fue un callejón sin salida, la potencia de procesamiento de un Zero no es suficiente, el principal problema es que produce un retardo de aproximadamente dos segundos en la señal y eso es suficiente para que FT8 funcione mal o no funcione. Analizando donde se consumía el tiempo observé que era en el procesamiento de CSDR, y que su estructura de funcionamiento mediante el "pipe" entre distintas instancias del programa para distintas funciones introduce mucho procesamiento adicional ("overhead") moviendo datos. Asi que tomé mano de una serie de librería de datos que desarrollé hace tiempo basadas en el código de Taka Inoue (JI3GAB) originalmente en Java las que modificadas y adaptadas utilicé desde hace tiempo en otros proyectos, en mi versión éstas son librerías escritas en C, muy pequeñas y eficientes capaces de implementar diferentes filtros FIR, diezmador, interpolador y filtro Hilbert; como bonus implementé el análisis de la energía en la banda base de la cual se pueden derivar los eventos necesarios para un control por VOX. Es decir, los componentes necesarios para procesar cualquier señal con técnicas DSP. Implementé con ellos los pasos necesarios para generar un par de señales I/Q desde la banda base entregada por WSJT-X, por medio de las muestras entregadas por el paquete ALSA, para finalmente utilizar los modos de modulación proporcionados por la librería librpitx. Con ese procesamiento el transceptor PixiePi se podía usar como cualquier otro transceptor para emitir WSPR o FT8, y especialmente con ese último tuve resultados sorprendentes. El PTT del transceptor puede ser hecho tanto por control VOX (con la librería DSP) o mediante un PTT lógico por medio de un comando CAT implementado emulando el soporte de comandos del Yaesu FT817. Dado que el transceiver en si ya estaba despulgado y en funcionamiento todo el desarrollo fue mayormente de software, mostrando que de alguna manera había sido una buena decisión el salto a una plataforma mas potente, éste proyecto no hubiera sido posible en una plataforma Arduino. Al mismo tiempo muestra que pese a tener que cuidar la optimización del software la relación precio-performance de un Raspberry Pi Zero lo hace ideal para experimentar, no es una placa cara y su capacidad permite tener acceso a librerías de funcionamiento y desarrollo muy potentes, por no decir que se utiliza como generador de señales de RF (síntesis directa) y procesador de señales. Proyecto interesante y relativamente fácil de duplicar.

viernes, 21 de agosto de 2020

El PixiePi de LU7DID

 En entradas anteriores de éste blog he referido al proyecto en curso al que denominé "PixiePi" (contracción de Pixie y Raspberry Pi), del que he dado algunos avances de proyecto en éste blog (link). Siempre me fascinó el diseño llamado Pixie (que significá duendecito en inglés, para los cinéfilos también es el nombre de la compañerita alada de Peter Pan). Muchas entradas de mi blog anterior en LU7HZ también refirieron a variantes de éste diseño, tanto propias como ajenas. El principio de funcionamiento es sorprendentemente simple, un oscilador a cristal al que sigue un amplificador de RF, el amplificador en recepción se lo priva de corriente por lo que se comporta como un detector, la señal detectada se amplifica en audio con un integrado LM386. Al manipular la salida es capaz de aumentar la corriente manejada y se transforma en un emisor de telegrafía de potencia QRP, de acuerdo al diseño puede ir desde algunos centenares del milliwatts hasta un par de watts según el diseño.
El diseño es tanto elogiado por su simplicidad como denostado por sus limitaciones, que son muchas. En la práctica uno lo construye, hace un contacto de prueba (normalmente acordado previamente con algún amigo) para ver como anda, recibe un reporte sorprendente para la simplicidad y luego solo lo usa en ocasiones especiales (demostraciones, cursos y contactos muy esporádicos) porque casi todas las referencias a las dificultades en su uso son correctas. Gil (F4WBY) hace un review en su canal bastante ajustado a lo que refiero antes (link).  Por eso, y desde hace algún tiempo fui desarrollando un prototipo mediante el cual mediante el uso de la librería librpitx construí un programa para la placa Raspberry capaz de proveer una serie de funciones propias de un transceiver de gama mucho mas alta. Entre otras funciones están no solo capacidad de sintonía en toda una banda sino también VFO dual, operación dual, RIT, offset variable, Keyer directo o íambico, distintos modos de potencia y varios modos de operación. Todas esas funciones no cambian que no importa que sofisticado sea la generación de señales, no deja de estar seguido de un amplificador simple de RF y un filtro pasabajos relativamente ancho. Las funciones son relativamente simples, no hay procesamiento de señales ni demodulación involucrada, solo generar señales en una frecuencia fija (que se va cambiando según el modo de operación). El diseño empezó con una placa Arduino Nano controlando un DDS basado en el AD9850 y posteriormente el muy versátil Si5351. Llegué con el proyecto a terminar un "frankentipo" funcional que me permitiera desarrollar el microcódigo y con el que incluso llegué a hacer algunos (pocos) contactos. El desarrollo de sistemas embebidos es muy divertido porque el hardware no hace nada sin el software, pero el software no se puede desarrollar sin el hardware, asi que se establece un progreso "iterativo". El proyecto, sin embargo, empezó a mostrar algunas limitaciones. Mover un DDS con una placa Arduino y agregar algunas pocas funciones por decirlo de alguna forma "sobra". Es un excelente modo, por ejemplo, de convertir viejos BLU de bandas comerciales a bandas de aficionado. Programar un DDS, variar su frecuencia, incluso agregar unos pocos "chiches" como VFO múltiple, split y hasta un manipulador es muy facil. Pero mi proyecto era un poco mas ambicioso, incluía poder hacer una una baliza en varios modos, PSK31, RTTY, modos digitales como WSPR o FT8, e incluso algunas funciones de procesamiento digital de señales. Y esas funciones por un lado quedan cortas en un procesador relativamente chico y lento como el ATMega328 en la, relativamente pequeña también memoria de trabajo, la que rápidamente se mostró demasiado pequeña para el tipo de proyecto que tenía en mente. La arquitectura además requiere o hacer un programa que tenga todas las funciones o reprogramar el Arduino "flasheandolo" con cada microcódigo especializado que se necesite. Luego de darle muchas vueltas al problema con soluciones parciales terminé tomando una ruta un tanto drástica. Desde hace ya algún tiempo muchos de mis experimentos y desarrollos los vengo haciendo en la plataforma Raspberry Pi, y la diferencia es de órdenes de magnitud en potencia de procesamiento, memoria, versatilidad y herramientas disponibles. La diferencia en costo existe, pero no es tanta para una escala de pocos proyectos personales "únicos". Asi que di el salto y migré casi la totalidad de mis experimentos a Raspberry Pi. Y para proyectos de éste tipo a una Raspberry Pi Zero W. Finalmente el desarrollo terminó su evolución y completé un prototipo funcional al que denominé como expliqué antes PixiePi. El proyecto completo está en el sitio GitHub de LU7DID (link). El proyecto termina siendo un pequeño "ecosistema" tecnológico que incluye el prototipo de hardware, el software, las modificaciones a un kit simple que se adquiere en proveedores chinos y hasta la caja para ser impresa mediante una printer 3D. Cada uno de esos puntos requieren muchas horas de desarrollo, "debugging" y documentación. El proyecto medró por bastante tiempo a un ritmo muy lento en base a las (pocas) horas que le podía dedicar en tiempos normales, pero el contexto de la pandemia global y la cuarentena muy larga y rígida que tiene lugar en Argentina aportó algunas horas adicionales aunque mas no sea por falta de alternativas en los horarios que no trabajo. Como resultado pude darle al proyecto un "pulso" de horas que lo sacó adelante. Entre las funciones que la mayor potencia de procesamiento me permite pude incluir un control CAT (Computer Aided Tuning) emulando los comandos del Yaesu FT817 (lo que parece ser el standard en todos los diseños de aparatos no comerciales que implementan CAT). Encontré que la performance del transceptor es bastante buena además de en CW en la recepción de otros modos digitales (es, también, bastante ancho como para recibir en buena forma señales de fonía). Pude así desarrollar o adaptar programas para PSK31, RTTY o SSTV. Incluso algunas pruebas en SSB muestran que a pesar de ser un amplificador clase C el control de envolvente dá una señal legible, comparable a la distorsión que introduce un compresor. En particular WSPR y FT8. El recibir me llevó a pensar sobre la posibilidad de también transmitir en esos modos, lo que no resulta difícil pues he experimentado bastante con balizas de esos modos. Y efectivamente funciona muy bien (dentro de los límites del receptor y transmisor). La construcción y exitoso uso, en un proyecto no relacionado, del kit D4D de CRKits, cuya performance me sorprendió muy gratamente (entrada en el blog comentando el proyecto aqui). O sea que uno lleva una PC para correr WSJT-X, el transceiver D4D con alguna antena pequeña y puede operar en FT8 en la banda de 20 metros con una huella portátil muy pequeña. La huella del PixiePi es mas grande que la del D4D, pero eso es porque el prototipo tiene espacios generosos para poder trabajar con comodidad, un display LCD y otros controles. Si se prescinde de todos esos aspectos de interfaz y se gestiona igual que el D4D, con alguna versatilidad mayor, via el CAT el tamaño posiblemente podría ser aproximadamente el mismo. El principal limitante para el proyecto es que para recibir con WSJT-X no hay que hacer nada, pero para transmitir se necesita tomar una señal de audio y manipular su banda base para emitirla en la frecuencia de trabajo. Ese proyecto terminó siendo muy interesante y dió como resultado al programa Pi4D (también disponible en GitHub). Tuve que desarrollar y adaptar un procesamiento de señales optimizado para que fuera viable en una Raspberry Pi Zero, ya de por si exigida para generar la señal de RF, pero finalmente el resultado fue exitoso, mostrando el potencial de la plataforma para experimentar.
El Pixie no deja de ser sorprendente, en cualquiera de sus encarnaciones, por su potencial de experimentación.

miércoles, 19 de agosto de 2020

La larga marcha del Xiegu X5105 de LU7DID

 Finalmente tengo en la estación el transceptor Xiegu X5105, pero me costó bastante trabajo y una larga trayectoria en un contexto dominado por la pandemia y las dificultades que eso acarrea a toda suerte de logística, parte del problema no fue la pandemia excepto que se trate de una de distintos tipos de estafadores. 

Xiagu X5105

Pero vamos por partes dijo Jack.

Empecé a leer sobre éste transceiver hace un poco menos de un año, en general un aparato hecho en China tiene que ser muy bueno para recibir buenas revisiones en medios americanos, hay una especie de chauvinismo de lo japonés en aparatos de radio. Es cierto que (como le pasó a Japón en la década del '60) los primeros productos sofisticados de origen Chino eran malas copias, rozando lo ilegal en cuanto al respeto de la propiedad intelectual de origen, seguidos de aparatos originales con una enorme cantidad de defectos de fabricación seguidos en, lo que en la presente generación, son dispositivos novedosos y tecnológicamente avanzados a un precio muy competitivo. Creo que pasa con China lo mismo que también pasó con Japón en su momento, empezando sin demasiada mochila saltan directamente a productos "state of the art" sin tener largas transiciones entre lineas de productos, muchas veces impulsadas por la necesidad de amortizar el I+D de desarrollos previos, límites en la cantidad de nuevo I+D y la afinación de las lineas de producción. Cuando veo productos de Yaesu, Kenwood o ICOM veo décadas de robustez para diseñar productos pero también veo tecnologías que no son "state of the art" excepto en temas muy puntuales. Los productos de origen chino, en cambio, son innovadores, usan técnicas de fabricación un tanto menos robustas pero diseños tecnológicos avanzados y, de vuelta, un costo muy competitivo. Nada mejor que una comparación rápida que es inevitable, en aparatos QRP portátiles nada, enfatizo nada, supera en mi opinión al Yaesu FT-817. Tengo uno hace casi 10 años y lo he operado en las condiciones y lugares mas inimaginables, con buenas y malas antenas, buenas y malas locaciones, buenas y malas fuentes, potencias de casi 10W y de 100 mW, en UHF, VHF, 6 metros y todas las bandas de HF, a baterías y con fuentes, en móvil en portátil o fija. Vara altísima en mi opinión. El Xiegu X5105 tiene similar cobertura de modos y bandas de HF junto con 6 metros, pero no tiene ni 2 metros ni 70 cms. En contrapartida tiene un procesador DSP muy completo, filtro notch, buena recepción y un sintonizador automático. Esto último un enorme plus en un equipo portatil donde las antenas nunca sobran, y son mas bien precarias. Ultimamente había sorteado mi gusto recientemente adquirido por las antenas tipo EFHW o long wire (que siempre requieren un sintonizador pues presentan impedancias del orden de centenares de ohms al transceptor) con el hecho que el FT817 no lo tuviera mediante el agregado de un transmatch de QRPGuys (citado en una entrada anterior), el cual dicho sea de paso funciona fantástico. El Xiegu puede además utilizarse como una especie de handy grandote pues tiene micrófono incorporado, habrá que ver que tan práctico es eso en un uso real. Lo vi utilizado en el canal del Youtube de Paul OM0ET (link al video del Xiegu) a quien sigo con mucho interés por sus videos muy interesantes sobre actividad en el campo, antenas y transceptores para ese tipo de operación. El transceptor también tuvo muy buenos comentarios en otro canal que sigo, el de Julian OH8STN  (link al video aqui) un cultor de los sistemas a poner en funcionamiento para operar en condiciones de emergencia "off grid" (fuera de la grilla), no tenemos por ésta parte de Argentina condiciones tan extremas como las que muestra Julian pero aún así sus videos son una fuente inagotable de inspiración sobre proyectos y sistemas.

Luego de tratar de comprarlo localmente y en portales internacionales finalmente pude hacer una transacción exitosa que me llegó hace pocos días. La trayectoria de la transacción fue algo tortuosa e incluyó dos compras fallidas en Mercado Libre (solo puedo recomendar como aprendizaje precaución en las compras en ese medio en el que prometen que traerán la mercadería, suelen ser estafas lisas y llanas). Una compra fallida en eBay con un vendor chino tramposo y la exitosa compra en una casa establecida en USA que honró todos los compromisos que tomó.

Primera impresión, muy robusto. Segunda impresión, viene con todos los cables y accesorios necesarios para conectarlo completamente en todos los modos. Tercera impresión, muy lindo micrófono (y se los dice uno que usa poco los micrófonos). Los controles y el esquema de uso muy intuitivo (a diferencia del mcHF que es tan complicado que cada vez que lo uso tengo que repasar el manual para cambiar la configuración), aunque debe contar que observé muchos videos donde lo usaban al punto que ya me era familiar antes de tenerlo.

La puesta en marcha del aparato es bastante sencilla, en cuestión de minutos ya estuvo en funcionamiento en fonía con el cual hice un contacto inaugural con Lucía (LU1CIA) entregando certificados para el día del niño, no soy afecto a los certificados pero la prueba fue excelente pues hice el contacto (unos 30 Km) en 40 metros con un poco menos de 3W de potencia sobre la antena dipolo rígido. Muy buena operadora, una niña, impecable, un placer haber hecho el contacto. Viejos carcamanes que dicen que la radio se está muriendo ¡in your face! Lucía muestra que nada de eso.

Ahora estoy en el proceso de hacer las conexiones para operarlo en CW y en FT8, los modos que seguramente serán los habituales para este aparato, el primero porque es el que mas hago y el segundo porque es en el que seguramente operaré mas a menudo en portail (cuando acabe toda la locura de cuarentena en la que estamos). Es importante contar con el extensor Xiegu CE-19 Data Interface para realizar las conexiones de audio y señalización mediante el puerto de accesorios. En mi caso vino con el aparato, pero en algunas ofertas se vende por separado; es engañoso porque parece que vendieran al aparato mas barato pero es porque no incluyen la interfaz, la que cuesta entre USD 30 y 40 mas el costo de transporte e impuestos.

Actualización: finalmente completo el simple cableado necesario para operarlo en CW y modos digitales en general (en especial FT8) muestra un muy buen rendimiento, interesante capacidad de configuración de filtros y niveles de señal en todos los canales de entrada y salida.

Dio muchas vueltas para finalmente terminar en mi estación, pero eso tiene de bueno que lo desee mucho, y ahora finalmente lo tengo. ¡Solo queda usarlo!