El nacimiento de una malla Meshtastic: Instalando el Nodo 0

En los últimos días instalé el primer nodo fijo de SalsiMesh, una red comunitaria basada en Meshtastic que empieza a tomar forma en la provincia de Córdoba. En este artículo te cuento cómo fue el proceso, qué equipo utilicé y qué aprendí durante la instalación del Nodo 0.

Introducción

En los últimos años, Meshtastic empezó a crecer con fuerza en Argentina. Lo que al principio parecía algo limitado a grupos reducidos en las grandes ciudades fue extendiéndose poco a poco a nuevos lugares, y hoy casi a diario aparecen nodos nuevos en distintos puntos del país. Al principio surgieron las primeras mallas en los centros urbanos más poblados, donde era más fácil que varios usuarios coincidieran y se conectaran entre sí. Pero con el tiempo, la idea empezó a salir de esas zonas y a despertar interés también en ciudades más pequeñas y en entornos suburbanos.

Ese es, justamente, el caso de Salsipuedes, la ciudad donde vivo y trabajo. Con poco más de 20.000 habitantes, ubicada a unos 35 km al norte de la ciudad de Córdoba, en los primeros faldeos de las Sierras Chicas, combina la cercanía con la capital provincial con algunas limitaciones propias de su geografía. Aunque forma parte del área metropolitana del Gran Córdoba, hay sectores donde la conectividad sigue siendo deficiente y donde las comunicaciones no siempre resultan confiables.

Ubicación geográfica de Salsipuedes

A eso se suma otro factor importante: Salsipuedes conserva muy vivo el recuerdo de situaciones críticas, como una gran inundación en el año 2015 (el «15F») y, poco tiempo después, un importante incendio forestal en sus alrededores, con graves consecuencias en algunos barrios. Son antecedentes que hacen pensar de otra manera el problema de las comunicaciones. Porque cuando ocurre una emergencia, contar con sistemas alternativos, descentralizados y resilientes puede dejar de ser una simple curiosidad tecnológica para convertirse en una herramienta fundamental.

En ese contexto, Meshtastic aparece como una opción especialmente interesante. Una red de este tipo podría ofrecer una vía de comunicación alternativa en sectores sin buena cobertura o en escenarios donde los sistemas tradicionales fallen, ya sea por cortes de energía, problemas en la infraestructura o interrupciones de servicios como Internet o la telefonía celular.

La zona urbana central vista desde el Oeste

Hacia fines del año pasado todavía no existía en la localidad ningún nodo público activo, así que decidí empezar por lo más simple: hacer algunas pruebas con nodos portátiles. Para eso utilicé dos Wio Tracker L1 Pro y un SenseCAP Tracker T1000E, con los que realicé ensayos de alcance entre distintos puntos de la ciudad. Esas primeras pruebas me permitieron comprobar de manera bastante clara que Meshtastic tenía potencial real como medio de comunicación alternativo en Salsipuedes.

A partir de esa experiencia, empecé a pensar en un paso más ambicioso: la instalación de nodos fijos que sirvieran como base para una futura red local. Con esa idea fui tomando contacto con distintas instituciones de la zona que podrían beneficiarse de una infraestructura de este tipo, y así comenzó a tomar forma el proyecto SalsiMesh.

La propuesta apunta al despliegue progresivo de nodos en puntos estratégicos, con el objetivo de ir construyendo una malla comunitaria que, con el tiempo, pueda dar cobertura a buena parte de la localidad. El proyecto todavía se encuentra en una etapa inicial y participan en él distintos actores locales. En futuros artículos voy a ir compartiendo los avances, las pruebas y las decisiones técnicas que vayan dando forma a esta red. Por ahora, quiero contarles mi experiencia durante la instalación del nodo 0, el primer paso concreto en la construcción de esta futura malla local.

El nodo 0

Como punto de partida, y con la idea de hacer algunas pruebas preliminares y ganar experiencia comencé instalando un nodo fijo en mi casa: el nodo 0 de SalsiMesh. La ubicación no es precisamente la mejor: si bien tiene una considerable altura respecto al vecindario, está ubicado en una zona baja de la ciudad. Sin embargo, consideré fundamental la ventaja de tenerlo cerca para poder experimentar distintas opciones de configuración y poder hacer una serie de pruebas para comprobar su funcionamiento.

A la hora de seleccionar el equipo a instalar, analicé básicamente dos alternativas: montar uno casero a partir de alguna placa basada en ESP32 o nRF52840 más baterías y un panel solar o un equipo ya armado y listo para usar. Con la intención de no tener demasiadas variables que controlar, me incliné por la segunda opción y adquirí un SenseCAP Solar Node P1 de Seeed Studio, ya que conozco la excelente calidad de sus productos.

En las secciones que siguen, les comparto mi experiencia con este equipo y como fue el proceso de instalación, configuración y prueba de este primer nodo.

El SenseCAP Solar P1 de Seeed Studio

Preparación

Antes de instalar el equipo en su ubicación definitiva, tuve que llevar a cabo algunos pasos de preparación. La Wiki de Seed Studio me sirvió de ayuda en todo momento porque explica el procedimiento paso a paso de una manera sencilla.

Baterías

Lo primero que hice fué colocar las baterías en el interior del equipo. El SenseCAP Solar admite cuatro baterías de litio formato 18650, lo que, al menos en principio, permite esperar una muy buena autonomía de funcionamiento.

Lo ideal es utilizar baterías de buena calidad y de marcas reconocidas, que garanticen una capacidad de carga real acorde a lo especificado. En el momento de la instalación yo no disponía de ese tipo de baterías, así que recurrí a otras alternativas que ya me habían dado buen resultado en usos anteriores. El tiempo dirá si en este caso repiten su buen comportamiento.

Instalé las baterías en la parte posterior del equipo, luego de retirar una serie de tornillos, observando siempre con mucho cuidado de insertarlas con la polaridad correcta. Las baterías deben ser del modelo con tetón para que queden firmes en los portapilas.

Luego de montar las baterías y conectar la antena intenté prender el equipo para ver si respondía (siempre es importante prender los equipos de comunicaciones luego de conectar la antena). Tuve un breve sobresalto porque no obtuve ningún resultado: el equipo no encendió. Pero la tranquilidad regresó cuando revisé el pequeño manual de instrucciones donde se aclara que el SenseCAP tiene un circuito protector que habilita las baterías recién luego de hacer una carga a través del conector USB-C. Luego de seguir estas instrucciones pude poner la unidad en marcha sin inconvenientes.

Firmware

El equipo traía un firmware instalado, pero me propuse hacerle una actualización usando el web flasher de Meshtastic. Luego de borrar la versión anterior instalé la última alpha (2.7.20) una decisión demasiado optimista que me trajo algunos inconvenientes mas tarde.

El Web flasher de Meshtastic

Antena

La antena que usé es la que viene incluída en el equipo, que según las especificaciones es de 2 dBi. Para mayor tranquilidad protegí el conector montado sobre el soporte con algunas vueltas de cinta autosoldante, para así disminuir el riesgo de ingreso de agua.

Protección del conector de antena

Configuración

Con el equipo funcionando y el firmware ya instalado llegó el momento de configurar sus distintos parámetros. Esto se puede hacer con la App para teléfono usando Bluetooth o una computadora con un cable USB. A mi me resulta mas cómodo y sencillo utilizar la aplicación, que en mi caso es la versión para Android.

El primer parámetro a revisar fué la Región, dentro de la configuración LoRa, que define la frecuencia de trabajo de la radio. En mi caso es ANZ (Australia, Brasil y Nueva Zelanda). En la misma pantalla ajusté la Configuración predefinida, que establece además varios parámetros de la comunicación.

Hecho esto, dentro de la configuración de Usuario cambié el Nombre largo y el Nombre corto que identificarán a este nodo.

Luego modifiqué otro valor importante, que es el Rol que cumplirá el nodo dentro de la malla. En mi caso, se trata de un nodo fijo que contribuirá a crear la infraestructura de la malla, así que se asigné el rol de ROUTER. Cuando instalemos otros nodos, sobre todo en puntos elevados que puedan brindar una cobertura mas amplia revisaré si conviene mantener este rol o cambiarlo a otro diferente.

A continuación también configuré la parte de Posición del nodo. Esta versión de equipo (P1) no tiene GPS (que si tiene la versión P1 Pro) así que le cargué una posición fija, obtenida desde la posición del teléfono:

Para finalizar, también configuré el acceso a MQTT, con el sólo propósito de publicar la posición del nodo en los mapas públicos, ya que lo considero útil para planificar la ubicación de los futuros nodos.

En la sección de MQTT cargué los datos del servidor de Liam Cottle para publicar la posición del nodo en su mapa. Este servidor permite la subida de paquetes, pero no la bajada, por lo que no se recibirá información de otros nodos a través de MQTT.

También configuré la subida y bajada de paquetes en el canal LongFast, configurando que se reporte la posición precisa.

Algo que noté durante la configuración con la App es que el BLE (Bluetooth Low Energy) tiene un alcance de pocos metros. Esto es algo a tener en cuenta si se planea poner un nodo en una torre elevada o una ubicación lejana, porque se puede complicar la configuración. También existe la posibilidad de realizar una administración remota usando LoRa, pero lo investigaré en el futuro.

Instalación

Instalé el nodo sobre un caño metálico que ya estaba montado en la estructura que alberga al tanque de reserva de agua. Alguna vez este caño fué soporte de una antena de TV y luego de un equipo de Internet por aire. Ahora, con la fibra óptica, ya no tenía uso y fue reconvertido para la malla Meshtastic.

El soporte del nodo incluye un adaptador con una abrazadera útil para un poste de unos 10 cm diametro. Como el caño que utilicé es mucho mas fino, quité este adaptador y usé directamente otra abrazadera mas pequeña.

Detalle del montaje con abrazadera

El SenseCAP incluye un panel solar de 5 W para recargar las baterías. Para lograr un funcionamiento óptimo, es importante orientarlo correctamente, por lo que, una vez fijado el nodo al poste, realicé las mediciones necesarias para dejarlo en la mejor posición posible. El panel quedó orientado hacia el norte, como corresponde en el hemisferio sur, y ajusté su inclinación a unos 31°, un valor que, para esta latitud, ofrece un aprovechamiento aceptable de la radiación solar a lo largo de todo el año.

El nodo instalado

Pruebas

Con el nodo ya en su posición definitiva realicé una serie de pruebas para comprobar su correcto funcionamiento y revisar si la configuración era la apropiada.

Métricas

Desde un nodo se le puede solicitar a otro distintas métricas con información muy interesante. Como tengo un par de Wio Tracker L1 Pro, vinculé uno de ellos a mi teléfono y seleccionando el SenseCAP en el listado de nodos, desde la sección Telemetría le pedí reportes de Métricas de dispositivo y Calidad de señal.

Métricas sobre el funcionamiento del nodo

Las Métricas del dispositivo dan información sobre el porcentaje de carga y tensión de la batería, el uso del aire y del canal (que dan una idea de cuan ocupado está el canal de radio). Por otro lado el reporte de Calidad de señal sirve para conocer los valores de RSSI (intensidad de señal) y SNR (relación señal/ruido) que percibe el nodo móvil e indirectamente saber hasta donde llega la señal del nodo fijo.

Test de alcance

Otra prueba de gran utilidad es el Test de alcance (range test) que sirve precisamente para determinar cual es el alcance de la señal del nodo que se está probando.

Para esta prueba también usé dos nodos: el SenseCap fijo y el Wio Tracker como móvil. Habilité el modo de Test de alcance en los dos, pero configurando un tiempo de reporte en el fijo (1 minuto) y sin tiempo en el nodo móvil.

Configuración del Test de alcance en el nodo móvil (izq) y el nodo fijo (der)

Dejé sin seleccionar la opción «Guardar el CSV en el almacenamiento (Esp32)» porque esta función sólo está disponible en los nodos basados en ESP32 y los míos utilizan ambos el nRF52840. Configurado de esta forma, el nodo móvil va guardando los resultados de la prueba en el teléfono y los puedo descargar luego de una manera sencilla.

Al completar la configuración, el nodo fijo comenzó a transmitir un mensaje especial cada un minuto, con el contenido «seq x» donde x es un numero consecutivo y creciente.

Mensaje de Test de alcance recibido en el nodo móvil

A continuación salí a recorrer la zona, comprobando si recibía o no los mensajes de prueba.

Algo muy importante a tener en cuenta es que, salvo que se cambie la configuración, este test utiliza el canal principal, LongFast. Eso significa que los paquetes de prueba serán recibidos por todos los nodos que estén dentro del alcance del transmisor, algo que puede resultar bastante molesto para otros usuarios de la red. En mi caso no me preocupé demasiado, porque no tengo otros nodos cercanos en la zona, pero sin duda es un detalle que conviene considerar antes de hacer la prueba.

Luego de recorrer las inmediaciones del nodo volví al lugar de partida y descargué el archivo de log con los paquetes de la prueba desde la aplicación:

El archivo tiene el formato CSV (Comma Separated Values, o valores separados por comas). Luego de pasarlo a una PC, lo abrí y comprobé que contiene, entre otros datos, la posición del receptor y el valor de SNR medido en ese punto.

Archivo CSV de registro

Si bien del análisis de estos datos en crudo se pueden sacar algunas conclusiones, es mejor analizarlos viendo cada unos de los puntos sobre un mapa.

Buscando en la web encontré esta herramienta, escrita en Python, del canal de Youtube TheCommsChannel. Permite cargar el archivo CSV y ver cada uno de los puntos relevados con su valor de SNR sobre distintos mapas.

Sobre la misma idea y haciendo algo de vibe coding con Gemini, creé mi propia versión, con algunas funciones adicionales, que corre directamente on-line, sin necesidad de ninguna instalación.

Con esta aplicación se pueden ver sobre el mapa todos los puntos donde se recibió señal con su correspondiente nivel de SNR representado por un color distintivo. También se pueden combinar varios archivos CSV (relevados en distintos dias por ejemplo) y verlos todos juntos o por separado, filtrar por nivel y ver valores estadísticos generales.

Este es el punto mas lejano al que he comprobado que llega el test de alcance, casi 3,8 km con un SNR de -5.25 dB.

Puntos mas lejanos alcanzados por el nodo

Actualización de firmware

Mientras hacía esta última prueba noté que no podía conectarme al nodo por Bluetooth para hacer algún cambio de configuración. Probé de resetearlo, pero seguía en la misma condición. Probablemente esto sea un defecto del firmware, que es una versión alpha muy reciente, así que decidí bajar a una versión anterior que estuviera mas probada, dejando la 2.7.15. A partir de esta modificación ya no tuve de nuevo ese inconveniente.

Conclusiones

El SenseCAP demostró ser un equipo muy adecuado para la instalación de un nodo fijo Meshtastic, ya que reúne prácticamente todo lo que se necesita para este tipo de aplicación: bajo consumo, buena autonomía gracias a sus baterías, un panel solar de dimensiones generosas, protección frente a la intemperie y una estructura que facilita su montaje en distintas situaciones. Su instalación y configuración no requiere de conocimientos o habilidades especiales, lo que lo pone al alcance de cualquiera que quiera instalarlo y contribuir así a la expansión de la malla.

Mi nodo SAL0 ya lleva dos semanas de funcionamiento ininterrumpido. En ese período atravesó algunas tormentas tardías de verano, con viento y lluvia, sin que se presentara ningún inconveniente. Ahora, con el comienzo del otoño en esta región, la disponibilidad de luz solar empieza a disminuir, y eso me va a dar una buena oportunidad para seguir evaluando la autonomía y el comportamiento general del sistema en condiciones menos favorables.

Este es apenas el primer paso. SAL0 será el punto de partida de una red que recién comienza a crecer. En las próximas semanas y meses iremos sumando nuevos SenseCAP y también otros nodos basados en distintas placas, con la idea de seguir ampliando la cobertura y consolidando SalsiMesh. Como siempre, iré compartiendo por acá los avances, las pruebas y las experiencias que vayan surgiendo en el camino.

Agradecimientos

Quiero agradecer públicamente a toda la comunidad de Meshtastic Argentina, cuyos integrantes están siempre dispuestos a responder preguntas, aclarar dudas y compartir su experiencia. Sin su ayuda, me habría resultado mucho más difícil dar mis primeros pasos y encontrar el rumbo en este fascinante mundo de Meshtastic.

Pueden encontrar la comunidad en su web y su canal de Telegram.

Nos vemos! 🚀

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.