
Durante Julio de 2020 voy a organizar un mini-taller sobre desarrollo en GNU Radio. Serán cuatro sesiones separadas en dos partes: una primera cubrirá los aspectos básicos de SDR y GNU Radio, y la segunda se centrará en temas más avanzados.
El taller es abierto a todo público (previa inscripción vía mail para recibir la información de contacto). Naturalmente, será más provechoso contar con experiencia previa en el uso de GNU Radio, pero no es un requisito estricto. Aunque las básicas las cubriremos al principio del taller, la idea es que sea sobre todo repaso.
Preparación
Para el taller será necesario contar con una instalación de GNU Radio local. La guía de instalación oficial [disponible en línea] es la mejor fuente. Personalmente recomiendo tener un Ubuntu nativo e instalar GNU Radio en él via los PPA oficiales. Una alternativa, que permite incluso usar distintas versiones de GNU Radio al mismo tiempo, es instalar Docker y usar los contenedores que comparto en [mi github]. También es posible instalar GNU Radio nativo en Windows o incluso usando el WSL disponible en Windows 10.
En caso de no contar absolutamente con ninguna experiencia usando GNU Radio la mejor fuente son los [tutoriales en línea]. Una buena fuente en español es el [taller que dicté en 2021]. Para el taller sería importante por lo menos haberlo leído, o idealmente haber intentado algunos de los ejemplos que están disponibles.
Para ver las posibilidades que brinda la herramienta se puede explorar [CGRAN], donde se listan varios desarrollos basados en GNU Radio del estilo de lo que hablaremos durante el taller.
Material
Aquí compartiré los videos de las sesiones y las transparencias que use durante las mismas.
Además comparto un [documento guía] en el que colaboré con Víctor González-Barbone sobre desarrollo en GNU Radio. Es una referencia bastante concisa y en español que me ha resultado muy útil.
Primera parte: básicas
- Transparencias: [Presentación SDR]
- Videos:
- Entrega intermedia: [letra], [grabación].
Segunda parte: avanzadas
- Transparencias: [Presentación scheduler]
- Videos:
Todas las fuentes generadas durante el taller (incluida la solución de la entrega intermedia) disponibles en el [siguiente repositorio].
Además, para encontrar algún tema en particular dentro de los videos armé el siguiente indice.
Primera parte (sesión 1):
- Introducción del taller.
- Introducción a SDR (Radio Definida por Software):
- Introducción a GNU Radio:
- Comentarios de cierre y preguntas (en particular sobre interfaz gráfica).
Primera parte (sesión 2):
- Armar un bloque nuevo en GNU Radio:
- Archivos grc para que el bloque se pueda usar desde el companion.
- Preguntas:
- Estructura de archivos y código del propio GNU Radio.
- Sobre cuántas muestras genera un bloque: la variable noutput_items.
- Codificando un bloque del tipo general:
- Repaso de la función general_work y los punteros in y out.
- Restringiendo noutput_items: la función set_output_multiple().
- Guardando antiguas muestras de entrada: la función set_history().
- Cierre y discusión sobre la primer tarea del taller.
Segunda parte (sesión 1)
- Introducción y comentarios sobre la tarea.
- Presentación del scheduler de GNU Radio.
- El bloque trigger re-visitado.
- Python en GNU Radio:
- Profiling básico:
- VOLK:
- Cierre.
