Entre el final del colegio y los primeros años de universidad, un grupo de amigos y yo construimos un satélite del tamaño de una lata de bebida. Lo hicimos volar colgado de drones y globos, lo subimos a un escenario en PyCon, lo llevamos a la televisión nacional y a aulas llenas de niños y profesores. Hicimos casi todo durante una pandemia, con mascarilla, aprendiendo sobre la marcha. Yo era el que escribía el software. Esta es la historia desde mi lado de la mesa.
6:21 de la mañana
Hay una foto a la que siempre vuelvo. Una Raspberry Pi 3 en una carcasa roja, una protoboard con más jumpers de los que debería aguantar y un monitor que muestra el mismo traceback de Python tres veces seguidas. El módulo que fallaba se llamaba Houston. Era nuestra estación terrena, y no encontraba la radio.
Eran las 6:21 de la mañana. Lo sé porque el reloj aparece en la esquina de la pantalla, justo debajo de una advertencia de bajo voltaje que yo estaba ignorando. El cableado con el que peleaba ni siquiera era el de la radio. Estaba tratando de hacer funcionar una pantalla pequeña, y unos días después quemé algo en esa Pi y nunca volvió a arrancar. Esos fueron los primeros pasos. Nada de esa noche terminó en un satélite, y todo terminó en mi forma de trabajar.
Un satélite en una lata
Un CanSat es un satélite que cabe en el volumen de una lata de bebida. No orbita nada. Sube en un globo o un dron, mide lo que mediría un satélite de verdad y lo transmite por radio a tierra mientras baja. La idea es que todo lo que tiene que hacer un satélite (energía, sensores, un computador, un enlace de radio, una estación terrena) cabe en una mesa y lo puede construir gente que nunca ha construido un satélite. Ese era nuestro caso.
Al proyecto lo llamamos Octa Aerospace y a la lata, OctaSat. El objetivo era fácil de decir y difícil de lograr: hacer un CanSat lo bastante bueno para servir como herramienta de enseñanza, de modo que una clase pudiera pasar de "print hello world" a leer telemetría en vivo de algo que ellos mismos habían programado.
Yo era el líder de software. En un equipo tan pequeño, eso significaba que hacer funcionar el código de vuelo, la estación terrena, el enlace de radio y los dashboards me tocaba a mí, con mucha ayuda de la gente que menciono al final.
Space Apps y una promesa
En octubre de 2021 participamos con OctaSat en el NASA Space Apps Challenge. Ese año Chile no tenía evento local, así que competimos por Santa Fe, Argentina, en el desafío "Near-Space Near You!". Ganamos el evento local y pasamos como Global Nominee. Un canal de televisión argentino entrevistó al equipo por eso, y fue la primera vez que unos desconocidos se tomaron la cosa en serio.
Esa primera versión transmitía telemetría por un enlace LoRa hacia Open MCT de la NASA, una interfaz open source de control de misión. Fue una buena forma de empezar y una mala forma de terminar. Open MCT está hecho para gente que ya opera misiones. Nosotros queríamos algo que alguien de catorce años pudiera leer de un vistazo, así que más adelante Rodrigo y yo lo reemplazamos por un dashboard propio. Cada CanSat que construimos después tuvo su propia vista de telemetría en vivo, y los datos quedaban guardados para analizarlos después. Nunca encontré una foto decente de ese dashboard, de esas cosas que uno lamenta años después.
La charla
Un mes después de Space Apps, Rodrigo y yo dimos una charla en PyCon Chile 2021 sobre cómo aplicar Python al desarrollo de nanosatélites. Explicamos qué es un CanSat, por qué Python era la herramienta adecuada para un equipo como el nuestro, cómo funcionaban los dashboards y cómo el proyecto había cambiado la forma en que nos comunicábamos como equipo. Está en español, y en ella me veo absurdamente joven.

Lo que realmente había adentro
Para la tercera revisión, OctaSat SN3, el hardware ya se había asentado. El computador de a bordo era una Raspberry Pi Zero W con Linux, montada sobre una PCB a medida con los sensores conectados como hats. Esta es la ficha de una página que repartíamos, y explica la lata mejor que yo.
El código de vuelo era un conjunto de módulos de Python, uno por subsistema: GPS, el sensor ambiental, la IMU, la cámara, un buzzer. Un loop principal leía todo, lo empaquetaba y se lo pasaba a la radio. Del otro lado, Houston recibía los paquetes, los decodificaba y alimentaba el dashboard. La foto de cuatro placas sobre un mismo laptop es lo que para nosotros era una "flota". Cada una tenía que recibir el mismo código, la misma calibración y su propio dashboard antes de un día de pruebas.
Casi todo ese código salió de hilos de Stack Overflow, cursos de Udemy, datasheets y de leer documentación de librerías hasta que algo hacía clic. Depurar significaba revisar el software y el hardware a la vez: los módulos de Python, el cableado de los sensores, el enlace de radio y la fuente de alimentación.
Lo que me quedó de esa parte tiene menos que ver con satélites que con software. Al hardware no le importa qué tan limpio esté tu código. Un cable suelto, un sensor muerto o una radio que pierde paquetes a distancia van a dejar en evidencia todo lo que diste por sentado en el banco de pruebas, y la única defensa es probar tal como vas a volar: la misma placa, la misma alimentación, la misma distancia, el mismo clima. Desde entonces nunca he vuelto a confiar en algo que solo funcionaba en mi laptop.
El código es abierto
La mayor parte del código más reciente vive en un monorepo open source, y el resto está repartido en la organización Octa Aerospace en GitHub. Eso sí, una advertencia: es código escrito por estudiantes que aprendían sobre la marcha, así que léelo como un ejemplo funcional de lo que de verdad corre un CanSat y no como la forma en que hay que hacerlo. Es real, voló, y si quieres construir uno, es un punto de partida.
Octa-Aerospace/octa-launchCanSat open source para exploración estratosférica: esquemáticos, PCB y software de vuelo en un solo lugar.PythonMIT6 Octa-Aerospace/OctaSatSN3El software de la placa SN3, la revisión de las fotos de arriba.PythonTodo lo demás, desde el simulador de vuelo en globo hasta experimentos más antiguos, está en github.com/Octa-Aerospace.
Pruebas, drones y una antena casera
Probamos mucho. Pruebas de banco, luego pruebas de alcance, luego pruebas con dron en las que la lata subía colgada de un cuadricóptero y veíamos llegar la telemetría en vivo. Estuve en cada prueba y en cada intento de lanzamiento que hicimos. El último de esos intentos tiene su propia historia y merece su propio artículo, así que lo dejo para otra ocasión.
Apuntar una Yagi a un puntito bajo un dron mientras alguien lee el conteo de paquetes en un laptop no tiene nada de glamoroso, pero es el momento en que todo el stack funciona o no funciona, delante de todos. Algunos de esos días de prueba los grabó Chico Maker, un amigo y lo más parecido a un influencer que teníamos, que mostraba lo que hacíamos en sus canales cuando nadie más nos estaba mirando.

Devolver lo aprendido
Nunca fui el profesor del grupo y solo participé en un par de los talleres que hicimos, pero están entre mis recuerdos favoritos de todo el proyecto.
Siempre me he imaginado como un niño con intereses raros y grandes ideas sobre ingeniería, así que traté a los niños como me habría gustado que me trataran a esa edad: contarles cómo funcionan las cosas de verdad, alentarlos, celebrar los pequeños logros y cuidar esa chispa de curiosidad para que persigan sus propias ideas. Lo que me sorprendió fue lo despiertos que eran algunos. En las fotos de abajo hay un niño con lentes. Le mostré un puñado de comandos para moverse por una terminal de Linux y los aprendió casi al instante. Más tarde lo encontré recorriendo directorios por su cuenta, fascinado. Ahí está todo el sentido del proyecto en una sola tarde.
También hicimos un taller aparte para profesores de STEM, que querían llevar esto a sus propias aulas, y en enero de 2024 OctaSat pasó a ser uno de los cursos de la academia STEM de verano de la Pontificia Universidad Católica de Chile, OctaSat, mi primera misión satelital, con un primer día titulado Hello Universe, and welcome to Linux. Los comentarios de niños y profesores fueron mejores de lo que esperábamos, y a mucha de la gente que todavía conocemos en este ambiente la conocimos en esas salas.
En las noticias
En el camino, el proyecto apareció en medios que veíamos desde niños. La que todavía le mando a la gente es la nota de T13, donde Adonis y Matilde llevaron la lata al estudio.

Algunos más, si quieres la mirada desde afuera:
- Conclusión TV sobre el resultado en Space Apps, octubre de 2021.
- Cooperativa Ciencia antes de un lanzamiento en globo, septiembre de 2023.
- Colegio de Ingenieros sobre el equipo, febrero de 2024.
- La página del equipo en Space Apps 2021 y el anuncio de la Academia STEM UC 2024.
La gente
Nada de esto fue solo mío. El equipo original lo formaban Manu, Mati, Rodrigo, Cata, Jorge, Fer y Adonis, conmigo en el software. Andrea, Paula, Jota, Javier y Nelson se sumaron en la recta final e hicieron trabajo de verdad sobre esa base; la mayoría sale en la foto de la cancha. Gracias también a Chico Maker por aparecer con una cámara. También hay amigos que trabajaron en esto con nosotros y que no salen en estas fotos, y a ellos también les estoy agradecido.
Con el tiempo, la mayor parte del equipo tuvo que alejarse para sobrevivir a sus carreras. Es un final normal para un proyecto de estudiantes, y no uno triste. Aprendimos a construir algo real, se lo enseñamos a gente más joven que nosotros y nos divertimos mucho haciéndolo.
El último intento de lanzamiento, y lo que vino después, queda para otro artículo.