Skip to the content
2 layers159.5 × 142.5 mmArchivos Placa, the printed circuit board in 3D

Archivos Placa

Antozjr/Super-5-RTOS

Sistema CAN distribuido para un Renault 5 GTL (BCM + Gateway)

Size
159.5 × 142.5 mm
Copper layers
2
Thickness
1.6 mm
Parts
83
Nets
114
Pads
282
Tracks, vias
454, 17
Pours
1
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
19 Oct 2026
Updated
19 Oct 2026

Overview

Archivos Placa is an open-source printed circuit board by Antozjr, from the Antozjr/Super-5-RTOS repository on GitHub, published under the MIT licence. It is a 2-layer board of 159.5 × 142.5 mm with 83 parts on 114 nets, routed with 454 tracks and 17 vias.

It is built around the BC337, SRD-05VDC-SL-C and IRF9540NS, with the P6KE18A among its other parts. Its parts include 22 resistors, 22 connectors, 8 diodes, 7 ICs and 7 transistors.

Main components

4

README

README.md

Gestión electrónica distribuida para un Renault 5 GTL

Microcontroladores RTOS Framework PCB Estado Licencia

🇬🇧 Read this in English

Sistema electrónico distribuido para un Renault 5 GTL de 1989 (G-C1J): varios nodos con FreeRTOS que se comunican por bus CAN a 500 kbps, con firmware en PlatformIO y una PCB combinada (BCM + Gateway) diseñada en KiCad. La idea: modernizar el coche de forma reversible, sin modificar el arnés original.

🔴 Desarrollo detenido por una incidencia. El vehículo sufrió un incendio durante una marcha normal, antes de llegar a instalar el BCM, y el desarrollo se paró ahí. El firmware compilado, el protocolo CAN, la documentación y el diseño de la PCB (Gerbers incluidos) se publican tal cual quedaron, como referencia y como base reutilizable para otro vehículo.


Arquitectura

mermaid
flowchart LR
    subgraph CAN["Bus CAN · 500 kbps · 11 bit"]
        direction LR
        BCM["BCM<br/>STM32F103C8<br/>carrocería"]
        ICM["ICM<br/>STM32F103C8<br/>instrumentación"]
        UCE["UCE<br/>STM32F405RG<br/>motor (congelada)"]
        GW["Gateway<br/>ESP32 + MCP2515"]
    end
    GW -- "WiFi AP · WebSocket" --> WEB["Navegador<br/>dashboard"]

    style BCM fill:#12161d,stroke:#34d3d1,color:#eef1f5
    style ICM fill:#12161d,stroke:#34d3d1,color:#eef1f5
    style UCE fill:#12161d,stroke:#5f6b7d,color:#9aa4b2,stroke-dasharray: 5 5
    style GW fill:#12161d,stroke:#34d3d1,color:#eef1f5
    style WEB fill:#12161d,stroke:#5f6b7d,color:#eef1f5

Cada nodo es una placa independiente con su propio firmware y sus tareas FreeRTOS; todos comparten únicamente el protocolo y los structs de shared/.

NodoMCUQué hace
BCM (Body Control Module)STM32F103C8 (Blue Pill)Luces (posición, cruce, antiniebla), bocina y efecto de llamas por relés/MOSFET; lee los mandos por optoacopladores. Modo fail-safe y watchdog.
ICM (Instrumentation Control Module)STM32F103C8 (Blue Pill)Lee RPM (optoacoplador + interrupción), presión de admisión (MPX4250AP), temperatura de refrigerante y de aire (NTC) y tensión de batería (INA219); publica ENGINE_DATA cada 50 ms.
UCE (Engine Control Unit)STM32F405RGGestión de motor (encendido e inyección con tablas, calibración por TunerStudio). Nunca llegó a compilar: congelada.
GatewayESP32 + MCP2515Puente CAN ↔ WiFi: reenvía todo el tráfico del bus por WebSocket a un dashboard web servido desde la propia flash (SPIFFS).

Funciones destacadas

  • Instalación reversible ("modo transparente"). La PCB intercepta los relés originales del coche, sin tocar el arnés: desconectarla deja el coche de serie. Solo la antiniebla trasera (y, según versión, las luces de posición) tienen relé de fábrica; el resto de canales van en la placa pero se conectan más adelante.
  • Fail-safe CAN. Si el bus calla más de 5 s, el BCM enciende las luces de posición, hace parpadear el LED de alarma a 5 Hz, bloquea los efectos y, pasados 5 min, apaga las luces para proteger la batería. Vuelve a la normalidad solo cuando detecta actividad.
  • Watchdog. El IWDG (1 s) solo se alimenta si las tareas críticas (CAN_RX, ALARM) siguen vivas; si una se bloquea, el nodo se reinicia.
  • Efecto de llamas en el escape. Patrones definidos como tablas de frames (intensidad + duración) a 30 fps, con activación automática en corte de gas (el ICM detecta RPM altas con MAP bajo y se lo ordena al BCM). Módulo externo desmontable.
  • Dashboard WiFi. El Gateway crea su propio punto de acceso y sirve una web con los datos del bus en tiempo real.
  • Protocolo compartido y probado. IDs y estructuras en shared/, con tests unitarios nativos (Unity) que no necesitan hardware.

Protocolo CAN

Tramas estándar de 11 bits a 500 kbps. Cada nodo tiene su rango de IDs:

NodoRango de IDs
BCM0x100–0x1FF
ICM0x310–0x31F
UCE0x400–0x41F
Gateway0x700
Broadcast (reset)0x7FF

Todos emiten un heartbeat cada segundo con flags de estado y tiempo en marcha. Las tramas, periodos y comandos están en docs/CAN.md y en shared/Protocol.h.

Hardware y PCB

Placa única BCM + Gateway, diseñada en KiCad:

  • 2 capas, 159,5 × 142,5 mm, 79 componentes THT más módulos enchufables (Blue Pill, ESP32 DevKit y MCP2515 sobre zócalos, para sustituirlos fácilmente).
  • Ruteo automático con Freerouting al 100 %, plano de masa en ambas capas, DRC sin errores. Gerbers de las 7 capas y taladros en Archivos Placa/gerbers/.
  • Un único riel de 5 V (LM2596) para ambos nodos y las bobinas de los relés; un solo par CANH/CANL con terminación de 120 Ω por jumper.
  • Protección de entrada de 12 V: fusible de 3 A, MOSFET de protección contra polaridad inversa (IRF9540N) y TVS (P6KE18A).
  • Cada relé toma su +12 V del zócalo original interceptado, por lo que se conserva la protección por circuito del propio coche.

La placa nunca llegó a fabricarse. El diseño y su justificación están en docs/PCB_BCM_GATEWAY.md.

Estado del proyecto

FaseDescripciónEstado
Fase 1Validación del bus CAN en banco (BCM + ICM + Gateway)✅ Completada
Fase 2PCB del BCM + Gateway (KiCad)✅ Diseño terminado, Gerbers listos — nunca fabricada
Fase 3Instalación física en el vehículo🔴 No iniciada — desarrollo detenido por el incendio
Fase 4Gateway completo + UCE (motor)🔴 No iniciada
NodoFirmwareEstado
BCMv3.2.0✅ Compilado y validado en banco — nunca instalado en el vehículo
ICMv3.1.0✅ Compilado y validado en banco — nunca instalado en el vehículo
Gatewayv3.2.0✅ Compilado y validado en banco — nunca instalado en el vehículo
UCEv3.0.0❌ No compila (errores pendientes) — congelada

Compilar y probar

Necesitas PlatformIO (extensión de VS Code, o pip install platformio). Las librerías se descargan solas. Cada nodo es un proyecto independiente:

bash
cd BCM     && pio run                 # STM32F103 (flasheo con ST-Link: pio run -t upload)
cd ../ICM  && pio run
cd ../Gateway && pio run && pio run -t upload && pio run -t uploadfs   # firmware + dashboard (SPIFFS)

Los platformio.ini traen puertos serie de mi equipo (monitor_port, upload_port): ajústalos a los tuyos. Antes de flashear el Gateway, define tu propia contraseña WiFi en Gateway/src/Config.h (el valor por defecto es un marcador).

Tests unitarios del protocolo, sin hardware:

bash
pio test -e test_native --project-dir test/

Estructura del repositorio

text
BCM/  ICM/  UCE/  Gateway/   firmware por nodo (PlatformIO)
shared/                      protocolo y structs CAN comunes
Archivos Placa/              proyecto KiCad y Gerbers de la PCB
Super5.pretty/               librería de footprints propia
test/                        tests unitarios nativos
docs/                        documentación técnica

Documentación

DocumentoContenido
docs/CAN.mdProtocolo CAN: IDs, tramas, periodos y modos especiales
docs/PINOUT.mdPinout consolidado de todos los nodos
docs/BCM_HARDWARE.mdAlimentación, transceptor CAN, relés y optoacopladores del BCM
docs/PCB_BCM_GATEWAY.mdDiseño de la placa combinada y notas de fabricación
docs/BOM.mdLista de materiales
docs/INSTALL.mdCompilación, fases de despliegue, instalación por nodo y resolución de problemas
docs/CHANGELOG.md · docs/PROPOSALS.mdHistorial de cambios y de decisiones

Lecciones aprendidas

  • El TJA1050 necesita 5 V en VCC (nunca 3,3 V): con 3,3 V el transceptor no transmite y no da ningún error visible.
  • En un ST-Link, SWCLK y SWDIO no son intercambiables: si falla con init mode failed, revisa que no estén cruzados antes de probar otros trucos.

Más detalles en docs/INSTALL.md.

Reutilizar este trabajo

El protocolo CAN, la estructura de nodos y la placa se pueden adaptar a otro vehículo. Si lo haces, ten en cuenta que los mapas de relés y conectores de docs/ corresponden a un Renault 5 GTL de 1989.

Licencia

MIT — ver LICENSE.

Parts

83
QtyValueFootprintReferences
131kResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR3, R4, R5, R6, R7, R8, R9, R11, R13, R15, R17, R19, R21
810kResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR1, R10, R12, R14, R16, R18, R20, R22
7PC817Package_DIP:DIP-4_W7.62mmU1, U2, U3, U4, U5, U6, U7
61N5819Diode_THT:D_DO-41_SOD81_P10.16mm_HorizontalD3, D4, D5, D6, D7, D8
6BC337Package_TO_SOT_THT:TO-92_InlineQ2, Q3, Q4, Q5, Q6, Q7
6SRD-05VDCRelay_THT:Relay_SPDT_SANYOU_SRD_Series_Form_CK1, K2, K3, K4, K5, K6
6~TerminalBlock:TerminalBlock_MaiXu_MX126-5.0-02P_1x02_P5.00mmJ8, J9, J10, J11, J12, J13
4MountingHole_3.2mm_M3MountingHole:MountingHole_3.2mm_M3H1, H2, H3, H4
3100nFCapacitor_THT:C_Disc_D5.0mm_W2.5mm_P5.00mmC4, C5, C6
2100µFCapacitor_THT:CP_Radial_D6.3mm_P2.50mmC1, C2
1+12/GNDTerminalBlock:TerminalBlock_MaiXu_MX126-5.0-02P_1x02_P5.00mmJ1
110µFCapacitor_THT:CP_Radial_D6.3mm_P2.50mmC3
1120Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR2
115vDiode_THT:D_DO-35_SOD27_P7.62mm_HorizontalD1
13AFuse:Fuseholder_Blade_Mini_Keystone_3568F1
1ESP_AConnector_PinSocket_2.54mm:PinSocket_1x15_P2.54mm_VerticalJ17
1ESP_BConnector_PinSocket_2.54mm:PinSocket_1x15_P2.54mm_VerticalJ18
1IRF9540NPackage_TO_SOT_THT:TO-220-3_VerticalQ1
1JP1Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ7
1J_BKINSuper5:LM2596_pin_pairJ2
1J_BKOUTSuper5:LM2596_pin_pairJ20
1J_BPLConnector_PinSocket_2.54mm:PinSocket_1x20_P2.54mm_VerticalJ3
1J_BPRConnector_PinSocket_2.54mm:PinSocket_1x20_P2.54mm_VerticalJ4
1J_CANConnector_JST:JST_XH_B3B-XH-A_1x03_P2.50mm_VerticalJ6
1J_FLAMEConnector_JST:JST_XH_B3B-XH-A_1x03_P2.50mm_VerticalJ15
1J_I2CConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ16
1J_INConnector_JST:JST_XH_B8B-XH-A_1x08_P2.50mm_VerticalJ14
1J_MCPConnector_PinSocket_2.54mm:PinSocket_1x07_P2.54mm_VerticalJ19
1J_MCPCANConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ22
1J_TJAConnector_PinSocket_2.54mm:PinSocket_1x04_P2.54mm_VerticalJ21
1J_TJACANConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ5
1P6KE18ADiode_THT:D_DO-15_P10.16mm_HorizontalD2

Similar boards

  • 2 layers92 × 70 mmTexecom power reset, the printed circuit board in 3D

    Texecom power reset

    jd710313/texecom-power-reset

    A single board with an ESP32-C3 (Tasmota) and two on-board relays. It sits inside a Texecom Premier Elite 64-W housing and can remotely "hard power reset" the panel by briefly cutting both its battery and 16VAC feeds.

    45 parts
  • 4 layers98.5 × 82 mmPico2lvds, the printed circuit board in 3D

    Pico2lvds

    ceteras/PicoLVDS

    Tested with B089AW01-V.0 and HSD089IFW1-A00-V1.0 on a breadboard. I'm sure it will work with other displays from old netbooks.

    43 parts7GPL-3.0
  • 2 layers122.9 × 89.4 mmPwm seno, the printed circuit board in 3D

    Pwm seno

    cardosorapha/pwm_senoide

    Gerador de onda senoidal a partir de PWM

    29 parts
  • 2 layers160 × 95 mmPlaca Control Fuentes y Carga, the printed circuit board in 3D

    Placa Control Fuentes y Carga

    edgranzella/Placa-de-Corte-TX

    Circuito Impreso de la plaquetita de Corte TX que va apilada sobre el Arduino Nano de la placa Controladora de Fuentes y Carga.

    142 parts
  • 2 layers160 × 100.1 mmArdumower mega shield svn, the printed circuit board in 3D

    Ardumower mega shield svn

    Ardumower/ardumower

    Develop an open source robotic lawn mower (HW+SW reference platform)

    67 parts282
  • 2 layers152.4 × 76.2 mmTransistor, the printed circuit board in 3D

    Transistor

    apxco/Kicad

    Zum Testen von einigen Transistorschaltungen für Verstärker. Noch nicht fertig.

    119 parts

Questions

How big is the Archivos Placa PCB?

It measures 159.5 × 142.5 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Archivos Placa use?

83 parts, built around the BC337, SRD-05VDC-SL-C, IRF9540NS and P6KE18A. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Archivos Placa KiCad files?

From the Antozjr/Super-5-RTOS repository on GitHub, at the commit this page was made from: the board is Archivos Placa/Archivos Placa.kicad_pcb and its schematic Archivos Placa/Archivos Placa.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Archivos Placa design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).