badge-bugcon-2025

Public

@electroniccats

Share badge-bugcon-2025

Check access before sharing the link.

Who can open this board

Anyone can open this board. No sign-in is required.

This link opens the latest version. Copying it does not grant additional access.

Loading 3D model… large boards can take a moment.

README

Badge BugCon 2025

El Badge BugCon 2025 es un dispositivo de hardware abierto diseñado para la comunidad de hackers, desarrolladores y entusiastas de la tecnología. Cuenta con un potente procesador Linux capaz de ejecutar aplicaciones personalizadas, junto con una amplia variedad de interfaces para ampliar su funcionalidad.

🚀 Características Principales

Procesador principal

  • RV1106: Procesador Linux de alto rendimiento
    • ARM Cortex-A7 + MCU RISC-V
    • NPU integrada (Unidad de Procesamiento Neural)
    • ISP integrado (Procesador de Señal de Imagen)
    • Soporte completo para sistemas operativos Linux

Interfaces y Conectividad

  • GPIOs: Múltiples pines de propósito general
  • MIPI CSI: Interfaz para cámaras y sensores de imagen
  • UART: Comunicación serial asíncrona
  • SPI: Comunicación periférica de alta velocidad
  • I2C: Bus de comunicación para sensores y pantallas
  • USB: Puerto USB con hub integrado
  • Ethernet: Puerto Ethernet basado en GPIO para conectividad por cable

Periféricos Integrados

  • Neopixels: LEDs RGB programables WS2812E
  • Batería: Soporte para baterías 18650 con gestión de energía
  • Buck Converter: Regulación eficiente DC-DC
  • USB-A: Soporte para dispositivos externos

📦 Componentes del Proyecto

El proyecto está dividido en dos directorios principales:

1. Badge Principal (Badge_Bugcon_2025/)

Incluye el diseño principal:

  • Procesador RV1106G3
  • LEDs Neopixel WS2812E
  • Gestión de energía y batería
  • Interfaces USB

2. Add-on (Add_On_Bugcon_2025/)

Placa de expansión que incluye:

  • Microcontrolador PY32F002AA15M
  • Componentes adicionales para capacidades extendidas
  • Diseño decorativo personalizado

📋 Especificaciones Técnicas

ComponenteEspecificación
ProcesadorRV1106G3 (ARM Cortex-A7 + RISC-V MCU + NPU + ISP)
Sistema OperativoLinux
LEDsWS2812E Neopixels
BateríaSoporte 18650
InterfacesUSB, Ethernet, UART, SPI, I2C, MIPI CSI, GPIOs

🔌 Interfaces del RV1106

El procesador RV1106 ofrece las siguientes interfaces:

Comunicación

  • UART: Comunicación serial (debug/terminal)
  • SPI: Interfaz periférica de alta velocidad
  • I2C: Para sensores, pantallas y otros dispositivos I2C
  • USB: Hub USB integrado

Red

  • Ethernet: Conectividad por cable mediante una interfaz basada en GPIO
  • WiFi (NO INCLUIDO): Conectividad por USB mediante el USB HUB, drivers disponibles ya instalados en kernel.

Multimedia e Imagen

  • MIPI CSI: Interfaz para cámaras y sensores de imagen
  • ISP: Procesador de señal de imagen integrado

Control

  • GPIOs: Pines de propósito general
  • PWM: Canales PWM para control de LEDs y motores

Primeros pasos

El badge Bugcon 2025 está basado en el hardware y el SDK del Luckfox Pico Pro Max. Para información general, consulta la Wiki oficial de Luckfox. El badge incorpora el RV1106G3, un microprocesador de bajo consumo de Rockchip, basado en una CPU ARM y un co-procesador RISC-V de 32 bits optimizada para aplicaciones de codificación y decodificación de audio y video.

Nuestro primer badge con Linux embebido!

El badge es compatible con múltiples interfaces, incluyendo GPIO, UART, SPI, I²C, USB, entre otras, lo que facilita un desarrollo rápido y una depuración eficiente.

🔌 Conectarse al puerto serial (Debug Serial)

Para interactuar con el badge (ejecutar comandos, ver logs o depurar), debes conectarte al puerto DEBUG SERIAL mostrado en la imagen anterior. Este puerto corresponde a la UART2 del RV1106:

TX → GPIO1_B2_d
RX → GPIO1_B3_u

⚠ Importante: La señal del puerto serial del badge es 3.3V TTL.

✔ Adaptadores USB–Serial compatibles

Puedes usar cualquier adaptador USB a UART de 3.3V, por ejemplo:

CH340 / CH341 CP2102 / CP2104 FT232RL PL2303 CP2105

Matek F405 adapters (soportan 3.3V)

Asegúrate de:

TX del adaptador → RX del badge
RX del adaptador → TX del badge
GND → GND

💻 Cómo abrir la terminal serial

A continuación, cómo conectarte desde Linux, macOS y Windows.

🐧 Linux

Conecta el adaptador USB-serial.

Verifica qué puerto creó:

dmesg | grep tty

Normalmente aparecerá como:

/dev/ttyUSB0
/dev/ttyACM0

Conéctate con screen o minicom:

Con screen (lo más fácil)

screen /dev/ttyUSB0 115200

Para salir: CTRL + A luego K (y confirma).

Con minicom

sudo minicom -b 115200 -D /dev/ttyUSB0

🍎 macOS

Conecta el adaptador USB-UART.

Ver puertos disponibles:

ls /dev/tty.*

Suelen ser:

/dev/tty.usbserial-*
/dev/tty.wchusbserial*
/dev/tty.SLAB_USBtoUART

Conéctate:

screen /dev/tty.usbserial-XXXX 115200

Para salir: CTRL + A, luego K.

Mac también permite usar CoolTerm (GUI amigable).

🪟 Windows

Usa un cliente serial como:

PuTTY
TeraTerm
CoolTerm
RealTerm

Conecta el adaptador USB-UART.

Abre el Administrador de dispositivos → “Puertos (COM y LPT)”

Identifica el puerto COM, ejemplo: COM4

Abre PuTTY o TeraTerm y selecciona:

Port: COM4
Baudrate: 115200
Data bits: 8
Parity: None
Stop bits: 1
Flow control: None

Con eso verás la consola del badge.

Pinout

Los números de pines correspondientes a los GPIO se encuentran marcados en el diagrama de pinout. Puedes utilizarlos para configurar un pin como GPIO. Para más información, consulta la wiki de GPIO de Luckfox.e.

Los números de pines correspondientes a los GPIO se encuentran marcados en el diagrama de pinout. Puedes utilizarlos para configurar un pin como GPIO. Para más información, consulta la wiki de GPIO de Luckfox.

La tarjeta también es compatible con Ethernet de 10/100 Mbps. Ten en cuenta que es necesario agregar el transformador Ethernet (Ethernet transformer) y el common-mode choke para garantizar el funcionamiento adecuado del dispositivo.

Finalmente, la tarjeta permite conectar micrófonos analógicos externos a través de la entrada del códec. El CPU también puede generar señales de audio digital PCM (Pulse-Code Modulation), las cuales pueden convertirse en señales analógicas para reproducción. Es importante destacar que la señal analógica utilizada para reproducción requiere su propio amplificador para evitar problemas relacionados con la corriente.

Para más información, consulta la wiki de audio de Luckfox:

IMPORTANTE: No utilices los pines FSPI. Estos están conectados directamente a la memoria flash. Cualquier alteración en sus señales puede provocar fallos en el funcionamiento del badge.

Presiona los botones que se encuentran al frente del badge y enciende los leds!!

Acceso:

Para acceder al dispositivo los accesos son:

usuario: root

password: 1337

Hola Mundo

El badge ya incluye Python 3.11.6, por lo que puedes ejecutar scripts de Python directamente desde la terminal sin necesidad de configurar nada adicional.

Esta breve guía muestra cómo crear y ejecutar un simple programa “Hola Mundo”.

  1. En la terminal, crea un nuevo archivo:
nano nombre.py

o

vi nombre.py

Agrega esta linea:

print("Hola mundo!")
  1. Ejecuta el archivo
python3 nombre.py

you should see

Hola mundo !

NEOPIXELES

Los LEDs RGB WS2812B y WS2812E-1313 pueden controlarse utilizando el módulo de Python spidev a través de la interfaz SPI del RV1106. Es importante destacar que SPI se utiliza como un generador de trenes de pulsos a 800 kHz, lo cual es necesario para el funcionamiento correcto de los NeoPixel.

Una vez habilitados los módulos en la interfaz de configuración y grabada la tarjeta, el siguiente paso será crear un script de Python en el entorno de Buildroot dentro de la PCB.

nano /root/[nombre del scrip].py

Puede ser algo como esto:

#!/usr/bin/env python3
import spidev, time, threading

SPI_SPEED_HZ = 2400000
NUM_LEDS = 8

def byte_to_spi(byte):
    spi_bytes = []
    for i in range(8):
        if byte & (1 << (7-i)):
            spi_bytes.append(0b1110)  # '1'
        else:
            spi_bytes.append(0b1000)  # '0'
    return spi_bytes

def color_to_spi(r, g, b):
    data = []
    data += byte_to_spi(g)
    data += byte_to_spi(r)
    data += byte_to_spi(b)
    return data

def make_buffer(r, g, b):
    buf = []
    for _ in range(NUM_LEDS):
        buf += color_to_spi(r, g, b)
    return buf

def run_spi(bus, device, colors):
    spi = spidev.SpiDev()
    spi.open(bus, device)
    spi.max_speed_hz = SPI_SPEED_HZ

    try:
        while True:
            for (r,g,b) in colors:
                buffer = make_buffer(r,g,b)
                spi.xfer2(buffer)
                time.sleep(1)
    except KeyboardInterrupt:
        spi.xfer2(make_buffer(0,0,0))
        spi.close()

def main():
    colors = [(255,0,255), (0,255,0), (0,0,255)]  # rosa, verde, azul

    t0 = threading.Thread(target=run_spi, args=(0,0,colors))
    #t1 = threading.Thread(target=run_spi, args=(1,0,colors))

    t0.start()
    #t1.start()

    t0.join()
    #t1.join()

if __name__ == "__main__":
    main()

El script controla tanto los LEDs WS2812B como WS2812B-1313 a través de spi0 y spi1, alternando entre cuatro colores diferentes (azul, rojo, verde y rosa) cada segundo. Una vez creado, ejecuta el script:

python3 /root/[nombre del scrip].py

Device tree source

El Device Tree es utilizado en el kernel de Linux para describir el hardware de una placa. Está compuesto por archivos de texto con extensiones .dts (Device Tree Source) y .dtsi (Device Tree Source Include). El archivo .dts define el hardware específico de la placa, mientras que el archivo .dtsi contiene configuraciones comunes o compartidas por múltiples .dts.

Puedes utilizar el Device Tree para habilitar, deshabilitar y/o configurar los diferentes periféricos que la tarjeta ofrece. Los archivos del Device Tree se encuentran en el siguiente directorio del SDK:

 luckfox-pico SDK/sysdrv/source/kernel/arch/arm/boot/dts

Para más información, consulta la wiki de DTS de Luckfox:

USB host mode

Puede modificar la configuración del device tree para establecerlo como un USB HOST, lo que le permitirá ampliar múltiples interfaces mediante un USB HUB.

  1. Abre la herramienta de luckfox-config en la terminal de la badge:
luckfox-config
  1. Selecciona "Advanced Options":
  1. Selecciona "USB" :
  1. Selecciona el modo "HOST":
  1. Una vez seleccionado, usar la tecla "Esc" para salir.

Cargar la imagen

Windows

Para cargar la imagen a traves de windows, es necesario descargar este zip:

https://drive.google.com/drive/folders/1J3xfAAmFQHFgw1gC7Ql5-bSOi6YOyE-3

La carpeta contiene varias imagenes necesarias para el flasheo de la placa Bugcon2025. Una vez descargada, por favor seguir las intrucciones de la wiki de luckfox:

https://wiki.luckfox.com/Luckfox-Pico-Pro-Max/Flash-image

Linux

  1. Descargar y extraer la herramiente de actualizacion de Rockchip.

  2. Del release, descargar y descomprimir el archivo comprimido Bugcon-Badge-2025-vX.X.tar.xz.

  3. Mantenga presionado el botón BOOT mientras conecta la placa a la computadora anfitriona para entrar en modo de flasheo.

  4. Una vez que tengas la placa en modo BOOT, procede a flashearla. Para ello, tendras que usar el .img que se encuentra en el archivo previamente descomprimido (modifique la ruta según la ubicación real de la imagen):

sudo ./upgrade_tool uf  {PATH-TO-IMAGE}/Bugcon-Badge-2025-v1.0.img

MAC OS

  1. Descargar y extraer la herramienta de actualizacion

  2. Del release, descargar y descomprimir el archivo comprimido Bugcon-Badge-2025-v1.0.tar.xz.

  3. Mantenga presionado el botón BOOT mientras conecta la placa a la computadora anfitriona para entrar en modo de flasheo.

  4. Una vez que tengas la placa en modo BOOT, procede a flashearla. Para ello, ejecute el programa para flashear el firmware (modifique la ruta según la ubicación real de la imagen) y use el .img previamente descomprimido:

sudo ./upgrade_tool uf  {PATH-TO-IMAGE}/Bugcon-Badge-2025-v1.0.img

📖 Documentación Adicional

🤝 Contribuciones

Este es un proyecto de hardware abierto. Las contribuciones son bienvenidas:

  1. Haz un fork del repositorio.
  2. Crea una nueva rama para tu feature (git checkout -b feature/AmazingFeature)
  3. Haz commit de tus cambios (git commit -m 'Add some AmazingFeature')
  4. Haz push a tu rama (git push origin feature/AmazingFeature)
  5. Abre un Pull Request

📝 Licencia

Este proyecto es de hardware abierto. Consulta los archivos de licencia para más detalles.

🏢 Electronic Cats

Desarollado con ❤️ por Electronic Cats

Electronic Cats invierte tiempo y recursos en proporcionar este diseño de hardware abierto. Por favor, apoya a Electronic Cats y al hardware abierto comprando productos de Electronic Cats.

📞 Contacto y soporte

🙏 Agradecimientos

Gracias a toda la comunidad de hardware abierto y a todas las personas que hacen posibles proyectos como este.

Nota: Este badge está diseñado para BugCon 2025. Para más información sobre el evento, visita la página oficial de BugCon.

Comments

No comments yet. Be the first to ask about this board.

Ask about this board

Sign in to BoardRepo

New here? Signing in creates your account; there is no separate sign-up.