Un modem 4G de apenas $20 comprado por internet terminó convertido en una computadora de bolsillo con Linux, teclado mecánico y pantalla de tinta simulada. El desarrollador Blaž Kovač documentó en su blog personal cómo reflasheó un hotspot Qualcomm pensado para dar internet a otros dispositivos y lo transformó en un dispositivo de mensajería propio, sin depender de un teléfono.
El proyecto combina tres piezas que, según cuenta el propio autor, llevaban semanas juntándose polvo en su escritorio: el modem, un teclado Clicks para iPhone y una pantalla SHARP Memory de Adafruit. El resultado es un artefacto que recuerda a la Beepy de sqfmi o a la Playdate, pero armado a partir de hardware de descarte.
TL;DR
- Un modem 4G MF800 de $20 fue reflasheado con Linux usando el proyecto OpenStick.- El desarrollador Blaž Kovač combinó el modem con un teclado Clicks para iPhone y una pantalla SHARP Memory de Adafruit.- Se descartaron otros dos candidatos: el UZ801 y un modem tipo pendrive USB, por falta de batería o GPIO suficiente.- El acceso al modo EDL de Qualcomm se logra vía adb reboot edl o cortocircuitando pines en la placa.- Una placa adaptadora propia resuelve el modo host USB, el boost a 5V y el nivel de señal de la pantalla.- La placa incluye un TUSB320, un SN74LVC8T245, un MCP1640 y dos TPS22917 para gestionar energía y USB.- Cortar la PCB para que entre en la carcasa del Clicks no afectó ninguna pista crítica, salvo la línea de batería.- Todos los archivos de diseño y el firmware están publicados en GitHub para que la comunidad los replique.
Introducción: por qué un modem 4G terminó siendo una computadora
La idea nació de la desorganización, según cuenta el propio autor: pedidos de AliExpress, proyectos a medio terminar y regalos sin destino final se acumulaban en su escritorio. Entre ellos había varios modem 4G compatibles con OpenStick, un teclado Clicks que le regaló un familiar (para un iPhone que no tenía) y una pantalla SHARP Memory de Adafruit que sobraba de otro proyecto.
La combinación no es casual. El propio Kovač reconoce la influencia de dos referencias del mundo maker: la Beepy de sqfmi, una computadora de bolsillo con teclado físico, y la Playdate, la consola con manivela de Panic. Ambos proyectos demostraron que hay demanda por dispositivos pequeños, dedicados a una sola tarea y con pantallas de bajo consumo, en un mercado saturado de smartphones genéricos.
Qué pasó
Sobre el escritorio había tres candidatos posibles para el hackeo, todos routers 4G compatibles con el proyecto OpenStick: el MF800, el UZ801 y un tercer modem con forma de pendrive USB. El autor descartó el último por problemas de compatibilidad y el UZ801 por no traer batería integrada ni suficientes pines GPIO expuestos.
El MF800 ganó por eliminación: tiene batería propia, expone pines útiles en la placa y existe una versión con pantalla (basada en un controlador GC9107) que el autor terminó descartando por estética, y una versión sin pantalla que reemplaza ese componente por LEDs, aunque el diseño de la placa base es el mismo en ambos casos.
El MF800 sin tapa trasera, con el recorte extra para los pines de bootloader que al final no hizo falta.
Contexto e historia
El MF800 corre Android de fábrica, pero adb queda accesible desde el primer encendido. Desde ahí es posible reiniciar el chipset Qualcomm directamente en modo EDL (Emergency Download), el modo de bajo nivel que usan los fabricantes para grabar el firmware original en la línea de producción. También existen pines en la placa que, cortocircuitados, fuerzan el mismo modo sin pasar por Android.
Ese acceso es el que aprovecha OpenStick, el proyecto de la comunidad que documenta cómo instalar Linux en este tipo de módems Qualcomm de bajo costo, de forma similar a como postmarketOS lleva Linux mainline a teléfonos Android descontinuados. Antes de reflashear nada, el autor recomienda extraer el device tree del Android original en ejecución: según sus propias palabras, es "una mina de oro de información" para portar el kernel.
La comunidad alrededor de OpenStick documenta guías, kernels de referencia y device trees para distintos módems compatibles, un trabajo acumulado de varios desarrolladores que hace posible que un modem barato termine corriendo un kernel Linux personalizado en lugar del Android cerrado de fábrica.
Detalles técnicos y rendimiento del modem 4G
El teclado Clicks, pensado originalmente para un iPhone 16 Pro Max, se comporta como cualquier teclado USB estándar. Kovač identifica un endpoint adicional propietario de Apple usado para autenticación MFi (Made for iPhone), pero para este proyecto ese endpoint es irrelevante: el modem solo necesita ver un teclado USB genérico.
La pieza de ingeniería más compleja del proyecto es la placa adaptadora. El MF800 no trae un booster de 5V a bordo, así que conectar una pantalla o un teclado USB externo requiere generar esa tensión desde la batería. La placa resuelve cuatro problemas a la vez: conmutación de modo host/device de USB, boost a 5V, alimentación de la pantalla y conversión de niveles de señal.
Modem evaluadoFactor de formaVentajaLimitaciónMF800Hotspot con batería y pantalla opcionalBatería integrada y pines GPIO suficientesHay que cortar la carcasa y parte de la PCB para entrar en la caja del ClicksUZ801Hotspot compactoTamaño adecuado para el proyectoSin batería ni GPIO visible suficiente para el hackModem tipo pendrive USBStick USB sin pantallaEl más compacto y barato de los tresDescartado por problemas de compatibilidad con OpenStick
Los componentes clave de la placa, según el listado publicado por el autor, son un TUSB320 para la conmutación de modo USB, un SN74LVC8T245 como conversor de niveles, un MCP1640 como booster a 5V y dos TPS22917 para conmutar VBUS y VBAT de forma independiente. El diseño se fabricó con ensamblado de un solo lado para abaratar costos, usando la cara sin componentes para las conexiones placa a placa.
flowchart TD
A["Modem 4G MF800 (Qualcomm)"] --> B["Placa adaptadora"]
B --> C["TUSB320 (modo host/device)"]
B --> D["MCP1640 (boost 5V)"]
C --> E["Teclado Clicks recortado"]
B --> F["Pantalla SHARP Memory"]
subgraph Firmware
G["Kernel Linux via OpenStick"]
end
A --> G
El corte físico de la PCB fue el paso más arriesgado. El MF800 es más grande que otros dispositivos compatibles con OpenStick, en parte por la batería y en parte por su diseño más artesanal, así que orientarlo verticalmente no entraba en la carcasa del Clicks. La solución fue recortar la placa para que quedara horizontal, algo que podía cortar líneas de datos USB si el trazado no acompañaba.
La PCB recortada encendió al primer intento; solo la línea de batería necesitó un cable de parche.
El resultado sorprendió al propio autor: el dispositivo arrancó de inmediato después del corte y no hubo que reparar ninguna pista de datos. Lo único que se cortó fue la línea de conexión a la batería, que se resolvió con un cable de parche soldado a mano. Lo que no se probó de entrada fue la conexión USB completa ni el módem 4G en sí, aunque el autor estaba casi seguro de que el radio no tendría problemas porque no hay motivo para rutear señales de RF por esa zona de la placa.
Cómo probarlo
Para replicar el primer paso (entrar en modo EDL y respaldar las particiones originales) se usa la herramienta edl, mantenida por bkerler, que habla el protocolo Firehose de Qualcomm. Los comandos son prácticamente idénticos en las tres plataformas, con la salvedad de cómo se invoca Python.
En Linux y macOS:
git clone https://github.com/bkerler/edl
cd edl
pip3 install -r requirements.txt
adb reboot edl
python3 edl.py r all_partitions.bin
python3 edl.py rf firehose_prog.elf
En Windows (PowerShell):
git clone https://github.com/bkerler/edl
cd edl
pip install -r requirements.txt
adb reboot edl
python edl.py r all_partitions.bin
python edl.py rf firehose_prog.elf
El primer r all_partitions.bin vuelca todas las particiones del MF800 antes de tocar nada: es el respaldo que permite volver al Android de fábrica si algo sale mal. Recién después de eso tiene sentido flashear el kernel de OpenStick sobre la partición de boot.
Para confirmar que el modo host de USB quedó activo tras el flasheo, basta con conectar el teclado Clicks y correr lsusb en una consola serie: debería aparecer un nuevo dispositivo de clase HID. Y para confirmar que el kernel personalizado arrancó (y no el de fábrica), uname -a por consola serie debe mostrar la fecha y el nombre de compilación propios, no los de Qualcomm o del fabricante del MF800.
Una vez que el modem responde como un módem serie estándar, enviar un SMS es una cuestión de comandos AT sobre el puerto correspondiente:
import serial
modem = serial.Serial("/dev/ttyUSB2", 115200, timeout=5)
modem.write(b'AT+CMGF=1\r') # modo texto
modem.write(b'AT+CMGS="+50370000000"\r')
modem.write(b'Hola desde mi modem 4G modificado' + b"\x1A")
print(modem.read(200))
Este script abre el puerto serie que expone el módem, activa el modo texto de SMS con AT+CMGF=1 y envía un mensaje al número indicado. El byte 0x1A final (Ctrl+Z) le indica al módem que el cuerpo del mensaje terminó.
⚠️ Ojo: entrar en modo EDL sin respaldar las particiones originales del modem 4G puede dejarlo sin firmware de fábrica de forma permanente.
💡 Tip: antes de cortar la placa, escaneala en 2D y superponé las líneas de corte sobre la imagen para verificar que ninguna pista crítica de USB o batería pase por esa zona.
Impacto y análisis
Lo interesante del proyecto no es tanto el resultado final como lo que revela sobre el hardware barato de telecomunicaciones. Un modem 4G de $20 trae, sin saberlo el comprador, un procesador Qualcomm completo, radio LTE, WiFi, Bluetooth y batería, todo desbloqueado y accesible desde el modo EDL. Proyectos como OpenStick convierten ese excedente de silicio en una plataforma Linux genérica, algo que hasta hace pocos años solo era viable con placas de desarrollo dedicadas.
Esto conecta con una tendencia más amplia en la comunidad maker: reutilizar hardware de consumo masivo (routers, hotspots, smart TVs) como computadoras de propósito general, en lugar de comprar un microcontrolador nuevo. El costo marginal es bajísimo porque ese hardware ya se fabrica en volumen para otro fin.
El costado honesto del proyecto es que no es replicable sin herramientas: requiere diseñar y mandar a fabricar una PCB propia, soldar componentes SMD y tener paciencia para portar un kernel Linux a un dispositivo sin soporte oficial. No es un tutorial de fin de semana, es un proyecto de varias semanas con retrocesos incluidos.
Qué sigue
El propio autor deja abiertas varias líneas de trabajo. El teclado Clicks está controlado por un microcontrolador CH32V203 (o similar) que en teoría admite firmware propio, aunque el autor no ve todavía una razón práctica para reflashearlo. La idea que sí menciona es construir a futuro una utilidad de configuración para el teclado, algo que hoy depende de la app móvil oficial de Clicks.
El código de la placa adaptadora y los archivos de diseño ya están publicados en GitHub, lo que abre la puerta a que otros desarrolladores repliquen el proyecto con variantes: otra pantalla, otro modem compatible con OpenStick, u otro teclado mecánico distinto al Clicks.
📖 Resumen en Telegram: Ver resumen
Probalo vos: cloná bkerler/edl, poné tu modem 4G compatible en modo EDL y respaldá todas las particiones antes de tocar el firmware original.
Preguntas frecuentes
¿Qué es OpenStick y para qué sirve?
Es un proyecto de la comunidad que documenta cómo instalar Linux en módems 4G baratos basados en chipsets Qualcomm, aprovechando que el modo EDL de fábrica queda accesible sin protecciones adicionales.
¿Necesito saber soldar para replicar este proyecto?
Sí. La placa adaptadora usa componentes SMD como el TUSB320 y el MCP1640, y además hay que reparar a mano la línea de batería que se corta al recortar la PCB del modem.
¿Cualquier hotspot 4G sirve para este hack?
No. Tiene que ser un modelo marcado como compatible con OpenStick por la comunidad; el autor descartó dos candidatos (el UZ801 y un modem tipo pendrive) antes de quedarse con el MF800.
¿Qué riesgos tiene entrar en modo EDL?
El principal es perder el firmware original si no se respaldan las particiones antes de escribir nada nuevo, dejando el modem sin la posibilidad de volver a su estado de fábrica.
¿El teclado Clicks funciona sin un iPhone conectado?
Sí. Fuera del endpoint propietario de autenticación MFi que usa para validarse contra un iPhone, el teclado se comporta como un teclado USB HID estándar frente a cualquier host.
¿Cuánto cuesta armar un dispositivo similar hoy?
El modem 4G ronda los $20, a lo que hay que sumarle el costo de fabricar la placa adaptadora y el precio del teclado Clicks, que es la pieza más cara de las tres.
Referencias
- Modem-thing, el post original de Blaž Kovač: fotos, esquemas y el repositorio completo de la placa adaptadora.- bkerler/edl en GitHub: herramienta usada para acceder al modo EDL y flashear chipsets Qualcomm vía Firehose.- Beepy de sqfmi: la computadora de bolsillo con teclado físico que inspiró parte del proyecto.- Adafruit: fabricante de la pantalla SHARP Memory Display usada en el hack.
📱 ¿Te gusta este contenido? Únete a nuestro canal de Telegram @programacion donde publicamos a diario lo más relevante de tecnología, IA y desarrollo. Resúmenes rápidos, contenido fresco todos los días.
Top comments (0)