Ingeniería inversa · Hardware · Firmware
Flasher automático para módulos BK7231N
Una herramienta con Python y un Arduino Mega que automatiza el flasheo de firmware libre (OpenBeken) en módulos WiFi BK7231N, controlando su alimentación con un transistor.
- Año
- 2026
- Estado
- Herramienta de taller
- Rol
- Diseño de hardware y software
- Repositorio
- Repositorio en preparación
01 · Problema
Para flashear firmware libre a un BK7231N hay que reiniciarlo justo cuando la herramienta lo pide. El módulo de la placa no expone el pin de habilitación (CEN), así que hacerlo a mano —desconectando cables en el momento exacto— es poco confiable.
02 · Enfoque
Un Arduino Mega corta la tierra del módulo con un transistor NPN para reiniciarlo bajo comando. Puede trabajar junto a un adaptador CH341A en 3.3 V o hacer él mismo de puente serial, con un divisor de tensión en TX. Un script en Python orquesta todo con ltchiptool.
03 · Resultado
Dos modos de trabajo (dos puertos, o el Arduino como puente), comandos de encendido, apagado y reinicio para modo descarga, lectura de la flash a un archivo para respaldo y una interfaz de consola con progreso por fases.
04 · Stack
- Python
- pyserial
- ltchiptool
- Arduino Mega 2560
- CH341A
- OpenBeken
El truco: reiniciar cortando la tierra
Arduino pin 7 ──[1 kΩ]──► base del NPN (2N2222 / BC547) colector → GND del módulo BK7231N emisor → GND del Arduino
pin 7 HIGH → el módulo tiene tierra → encendidopin 7 LOW → sin tierra → apagadoEl Arduino escucha comandos simples por el puerto serie (POWERON, POWEROFF, DOWNLOAD, RESET, BRIDGE) y, en modo puente, pasa los datos de forma transparente entre la PC y el módulo.
Cuidados que no se negocian
- 3.3 V siempre. El módulo no tolera 5 V: el TX del Arduino pasa por un divisor de 1 kΩ y 2 kΩ, y el CH341A debe estar en su posición de 3.3 V.
- No tocar el bus SPI de la flash interna ni su alimentación: solo se usan VBAT, GND, RX y TX de la placa.
- Respaldo primero. El script puede leer la flash completa a un archivo antes de escribir nada.
Cuando el chip ya no tiene remedio, la otra salida es reemplazarlo: así nació el smart switch con ESP32-C3.