Programando el HackBat con MicroPython

Hace un mes, vimos un proyecto que nos interesó bastante, este es el HackBat, una especie de herramienta o toolkit con variados módulos (WiFi, NFC, RF 433MHz) que están integrados a un RP2040 (Microprocesador utilizada en Raspberry Pi Pico o Zero).

Este proyecto se encuentra como Open Hardware en Github en donde uno puede descargar los esquemáticos y mandarlos a ensamblar en sitios como JLCPCB u otros. Nuestro HackBat esta incompleto ya que le faltan algunos módulos, pero trabajamos en arreglar eso.

No es Open Software, por lo que nosotros tenemos que programar las herramientas para poder utilizar el HackBat a su máximo potencial.

Hackbat Ensamblado

Esta guía tiene como objetivo presentar los primeros pasos a realizar para crear tu primer script en el HackBat de manera sencilla ya que la programación de embebidos no es tan difícil como parece serlo, por el momento.

Se utilizará Windows para esta guía, pero se puede realizar de manera similar en Linux con el mismo IDE que utilizaremos. Es muy buena idea tratar el HackBat como si fuera un Raspberry Pi Pico o Pi Zero, por lo que siempre hay que buscar documentación si es necesario.

  1. Estaremos utilizando el IDE Thonny, descárgalo en este enlace https://thonny.org/. Este IDE es excelente para lo que haremos.

1

  1. Conectamos el HackBat por MicroUSB a nuestro PC o Laptop que utilizaremos. Asegúrate que el cable pueda transmitir datos y no solo poder.

    2

  2. Al conectar el HackBat, una partición nueva llamada RPI-RP2 aparece

    3

  3. Abrimos el IDE Thonny y configuramos el interprete en las opciones de arriba

    4

  4. Cambiamos el tipo de interprete a MicroPython(RP2040)

    5

  5. Ahora instalaremos el MicroPython en nuestro HackBat, hacemos click en Instala o actualiza MicroPython

    6

  6. Si todo sale bien, el IDE Thonny debe de detectar la partición de RPI-RP2 y poder realizar la instalación con las siguientes opciones, utilizaremos la versión de MicroPython para Raspberry Pi Pico ya que utilizan el mismo microcontrolador RP2040.

    7

  7. Al realizar la instalación, podemos observar en el IDE Thonny una consola de Python que corre actualmente en el HackBat en la cual podemos interactuar.

    8

    Esta es la consola REPL, en donde es utilizada para correr y probar código sin reiniciar constantemente el HackBat por reconexión de USB.

  8. Ahora podemos crear nuestro primer script en el HackBat utilizando Python.

    9

10

11

12

13

  1. Ahora que creamos nuestro primer script y guardarlo localmente en nuestro PC con el nombre holamundo.py, podemos subirlo al HackBat.

    14

    Esto lo sube el archivo holamundo.py al directorio principal / del HackBat

    15

    Ahora sabemos que en ambos lados existe el archivo holamundo.py, este archivo es guardado en la memoria flash del HackBat, en nuestro caso utilizamos una memoria externa de 128mb.

  2. Ahora ya subida, podemos reiniciar nuestro HackBat por el IDE y observar su comportamiento al iniciar.

    16

    Hacemos click en el icono rojo para reiniciar.

  3. Podemos ver que, en efecto, hace nada al reiniciar. Esto se debe a que MicroPython requiere de un archivo especial, llamado boot.py en donde corre todo su código en Python al darle poder, podemos hacer uno rápidamente.

    17

    Creamos un archivo llamado boot.py y le damos el código de impresión de un mensaje y luego lo subimos al HackBat.

    18

    Al reiniciar, podemos observar que corre el código en el boot.py y NO de otro archivo que se encuentra. El HackBat no compilara código que no esté declarado en el boot.py.

  4. Realizamos otra modificación al boot.py para verificar que, en efecto, se puede correr código de otro archivo por boot.py.

    19

    Acuérdate de ser cuidadoso con la sobreescritura de archivos o podrás perder archivos.

    20

    Con esto podemos tener una idea de futuros experimentos.

  5. Con los esquemáticos del HackBat, podemos ver que tiene 2 LED utilizables y 5 botones, lo suficiente para realizar pruebas como las siguientes

    21

En los esquemáticos podemos observar los leds (GPIO14, GPIO15) y los botones (GPIO22, GPIO26, GPIO27, GPIO28, GPIO29) Podemos encontrar los esquemáticos en el Github.

22

Un código que realiza el encendido y apagado de un LED.

23

No olvidemos actualizar nuestro boot.py y subirlo al HackBat.

  1. Realizaremos otra prueba con un botón y un LED ahora.

    24

Acuérdate de subir el archivo al HackBat y editar el boot.py

25

26

Resultados en consola después de presionar 5 veces el botón de arriba.

Reflexiones Finales

Espero les allá gustado esta guía ya que muestra que no es tan difícil la programación de embebidos y espero que puedan crear otros tipos de script utilizando MicroPython, aun falta mucho por hacer, pero poco a poco se realizan las metas.

La meta intermedia es poder ensamblarlo completo con los módulos que le faltan y como meta final poder realizar pruebas de penetración tanto como de RF y NFC con este pequeño toolkit que uno mismo puede programar, y también correr DOOM.

Como mención honorífica, muchas gracias al creador Pablo Trujillo en crear esta herramienta hermosa y liberarlo al público como Open Hardware. Abajo están enlaces a los esquemáticos y el articulo en donde se publico el HackBat en Hackster.

Referencias
  • Hackster.io. (2024, 1 mayo). Hackbat. https://www.hackster.io/pablotrujillojuan/hackbat-1dfdbc
  • Controlpaths. (s. f.). GitHub - controlpaths/hackbat: Hackbat repository. GitHub. https://github.com/controlpaths/hackbat