Skip to the content
PCBKitNew board
4 layers100 × 100 mmOPDM, the printed circuit board in 3D

OpenPDM is an open-source programable Power Distribution Module for your car

Size
100 × 100 mm
Copper layers
4
Thickness
4.69 mm
Parts
156
Nets
133
Pads
566
Tracks, vias
1,091, 305
Pours
33
Routed
Yes
KiCad
KiCad 7 (file 20221018)
Created
30 May 2022
Updated
27 Apr 2024

Overview

OPDM is an open-source printed circuit board by brenonsantos, from the brenonsantos/OpenPDM repository on GitHub, published under the MIT licence. It is a 4-layer board of 100 × 100 mm with 156 parts on 133 nets, routed with 1,091 tracks and 305 vias.

It is built around the TJA1055T/3/1, CD74HC4067M and SP720ABG, with the SSA23L-E3 among its other parts. Its parts include 46 resistors, 41 capacitors, 17 ICs, 12 diodes and 12 transistors. It belongs with the STM32 boards of this library.

Main components

4

README

README.md

OpenPDM: Programmable Power Distribution Module for Your Car Project

Disclaimer: This project is a work in progress! Don't blow up your stuff If you want to contribute, discuss something or chit-chat, please message me: brenonsantos96@gmail.com

OpenPDM is an open-source, programmable Power Distribution Module for car enthusiast and electronics aficionados. It is being developed by me, as my undergrad thesis. Designed to cater to the needs of electronics lovers, car enthusiasts, and tinkerers alike, OpenPDM aims to bring cheaply programmable fusebox capabilities to your project car.

pcb_3dview

Features

  • Utilizes the STM32 Blue Pill Board as the core controller
  • Provides 4 high-side outputs capable of handling up to 10 Amps and 4 outputs supporting up to 20 Amps.
  • Current sensing using INA180s.
  • Equipped with 8 generic inputs that support signals up to 15 V, enabling seamless integration with your custom setups.
  • CAN communication with an Arduino-style module (MCP2515).
  • [NOT WORKING] Utilizes the internal CAN controller of the STM32F103C8T6 to provide an additional CAN channel.
  • Programmable by editing a file at core/src/pdm_cfg.c.
  • Auto-resetable outputs, inrush current time configuration

What is working

  • Tested CAN Arduino module for reliable sending and receiving of data.
  • Verified activation of output channels based on configured conditions.
  • Conducted tests to disable outputs in case of overcurrent, overvoltage and undervoltage situations.
  • Verified the functionality of input channels as analog inputs.

How can I contribute

As this project is still in its early stage, contributing with work may be challenging (but I'm open to it, there is a lot to do!). Please message me first to discuss alignment and potential tasks. More importantly, your experience, tips, or suggestions are highly welcome! If you have expertise in automotive electronics, have participated in SAE competitions, or have real-world experience, I'd love to have a conversation. My experience is watching a lot of YouTube and daily driving some old shitboxes.

Disclaimer

Please note that OpenPDM is still in the early stages of development and has not been thoroughly tested with nominal current or in an automotive environment. Therefore, it is not even in a "ready-to-blow-up-your-car" stage.

Hardware Rambling

pcb_final

The PCB design features a 100x100mm 4-layer board using 1 Oz copper for the outer layers and 0.5 Oz copper for the inner layers (the cheapest specs from JLCPCB). Parallel layers were used to distribute the current density, allowing for a greater current capability of the thin layers used. MOSFETs were chosen instead of more advanced smart switches (like Infineon ones) to keep the project cost-effective.

pcb_interfaces

PCB Summary

  • Manufactured by JLCPCB
  • $40.00 including shipping to Brazil
  • 4 Layer, 1 Oz external and 0.5 internal copper thickness.
  • Single IRFR7440TRPBF for 10A outputs, double for 20A outputs.
  • INA180A2 and A3 with 3mΩ shunt resistor for current sensing
  • Simple voltage divider for input sensing

The Bad

The current PCB design is a weak point in this version of the project. It was created in a week to support software development, and due to budget constraints, some cost-cutting measures were taken. As a result, there is missing redundancy and filtering components. I'll learn more about PCB design and scrap this version, and any help or expertise in this area would be greatly appreciated.

Software Rambling

The software architecture was based on AUTOSAR because we thought it would be cool. Problem is, I didn't knew anything about AUTOSAR before starting this project, so it is kind of messy. For the next version I'll simplify the architecture and port the code to C++. The configuration of the PDM is done by modifying a single file at core/src/pdm_cfg.c. More about this.

Parts

156
QtyValueFootprintReferences
2710uCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC1, C2, C3, C12, C13, C18, C19, C20, C21, C22, C23, C24, C25, C26, C27, C31 +11
1610kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR4, R5, R8, R9, R12, R13, R16, R17, R27, R28, R29, R30, R35, R36, R37, R38
1636kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR2, R3, R6, R7, R10, R11, R14, R15, R23, R24, R25, R26, R31, R32, R33, R34
12100nCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC9, C10, C11, C14, C15, C17, C28, C29, C36, C37, C40, C41
12Q_NMOS_GDSPackage_TO_SOT_SMD:TO-252-2Q1, Q2, Q3, Q4, Q5, Q6, Q7, Q8, Q9, Q10, Q11, Q12
111k8Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR1, R18, R19, R40, R41, R42, R43, R44, R45, R46, Rs1
83mResistor_SMD:R_2512_6332Metric_Pad1.40x3.35mm_HandSolderRsHC0, RsHC1, RsHC2, RsHC3, RsLC0, RsLC1, RsLC2, RsLC3
4INA180A2Package_TO_SOT_SMD:SOT-23-5_HandSolderingU13, U14, U15, U16
4INA180A3Package_TO_SOT_SMD:SOT-23-5_HandSolderingU9, U10, U11, U12
4MountingHole_PadMountingHole:MountingHole_3.2mm_M3_PadH1, H2, H3, H4
3Conn_01x04TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-3-4-5.08_1x04_P5.08mm_HorizontalJ1, J2, J3
2150pCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC16, C30
23k3Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR20, R21
2500Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderRrth1, Rrtl1
2CD74HC4067MPackage_SO:SOIC-24W_7.5x15.4mm_P1.27mmU5, U6
2Conn_01x01OPDM:Welding_Terminal_T54010BJ7, J8
2Conn_01x02Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical_SMD_Pin1LeftJ10, J13
2LED_HC1LED_SMD:LED_0805_2012Metric_Pad1.15x1.40mm_HandSolderD8, D9
2LOGOLOGOG***, G***
2LT1161CSW-PBFPackage_SO:SOIC-20W_7.5x12.8mm_P1.27mmU7, U8
1100kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderRp1
1Conn_01x03Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical_SMD_Pin1LeftJ6
1Conn_01x04Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical_SMD_Pin1LeftJ5
1Conn_01x07Connector_PinHeader_2.54mm:PinHeader_1x07_P2.54mm_Vertical_SMD_Pin1LeftJ9
1Conn_02x05_Odd_EvenConnector_PinHeader_2.54mm:PinHeader_2x05_P2.54mm_VerticalJ4
1D_TVSResistor_SMD:R_1210_3225Metric_Pad1.30x2.65mm_HandSolderD12
1LD0186D2T50TRPackage_TO_SOT_SMD:SOT-223-3_TabPin2U4
1LD1086D2M33TRPackage_TO_SOT_SMD:TO-263-3_TabPin2U1
1LED_HC2LED_SMD:LED_0805_2012Metric_Pad1.15x1.40mm_HandSolderD11
1LED_HC3LED_SMD:LED_0805_2012Metric_Pad1.15x1.40mm_HandSolderD10
1LED_LC0LED_SMD:LED_0805_2012Metric_Pad1.15x1.40mm_HandSolderD4
1LED_LC1LED_SMD:LED_0805_2012Metric_Pad1.15x1.40mm_HandSolderD5
1LED_LC2LED_SMD:LED_0805_2012Metric_Pad1.15x1.40mm_HandSolderD7
1LED_LC3LED_SMD:LED_0805_2012Metric_Pad1.15x1.40mm_HandSolderD6
1LED_PWR_3V3LED_SMD:LED_0805_2012Metric_Pad1.15x1.40mm_HandSolderD14
1LED_STATUSLED_SMD:LED_0805_2012Metric_Pad1.15x1.40mm_HandSolderD15
1SP720ABGPackage_SO:SOIC-16_3.9x9.9mm_P1.27mmU22
1SSA23LDiode_SMD:D_SMA_HandsolderingD13
1STM32 BluePillOPDM:BluePill_SMDU3
1TJA1055T/3Package_SO:SOIC-14_3.9x8.7mm_P1.27mmU2
1lockedResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR39

Questions

How big is the OPDM PCB?

It measures 100 × 100 mm and has 4 copper layers, 4.69 mm thick.

What parts does the OPDM use?

156 parts, built around the TJA1055T/3/1, CD74HC4067M, SP720ABG and SSA23L-E3. 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 OPDM KiCad files?

From the brenonsantos/OpenPDM repository on GitHub, at the commit this page was made from: the board is Hardware/PCB_v0.1_revB/OPDM.kicad_pcb and its schematic Hardware/PCB_v0.1/OPDM.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the OPDM 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).

Similar boards

  • 2 layers101.6 × 88.9 mmAutomotive gateway, the printed circuit board in 3D

    Automotive gateway

    dexus1337/automotive-gateway

    An automotive-grade, multi-protocol vehicle network interface, Man-in-the-Middle (MitM) filter, and wireless telemetry gateway

    109 parts1
  • 2 layers312 × 140 mmTsynth2 Rev1.3, the printed circuit board in 3D

    Tsynth2 Rev1.3

    Electrotechnique/TSynth-Teensy4.1

    TSynth for Teensy 4.1

    108 parts182
  • 2 layers422.4 × 118.2 mmMidiMood (tht), the printed circuit board in 3D

    MidiMood (tht)

    silveirago/MidiMood

    This repository contains the code for a custom MIDI controller project called MidiMood, built using an ATmega32U4 microcontroller (or similar).

    53 parts82
  • 2 layers248.9 × 120.7 mm16nx, the printed circuit board in 3D

    16nx

    16n-faderbank/16nx

    16nx is a controller for musical instruments. Sixteen faders,MIDI over USB and jack, CV out, and I2C out. Based around RP2040.

    171 parts76
  • 2 layers215.9 × 101.6 mmIps20, the printed circuit board in 3D

    Ips20

    gzweigle/open-hybrid-piano

    Building a hybrid MIDI digital piano

    135 parts61GPL-3.0
  • 2 layers152.4 × 95.3 mmControl board, the printed circuit board in 3D

    Control board

    carsonrobles/fpga-guitar-pedal

    FPGA based guitar effect station.

    51 parts36
  • 2 layers100 × 100 mmEavesdrum module, the printed circuit board in 3D

    Eavesdrum module

    tobigun/EavesDrum

    EavesDrum is an e-drum trigger module project, designed for musicians and makers. It allows you to connect drum pads or piezo triggers and converts their signals into MIDI events.

    103 parts25GPL-3.0
  • 4 layers33 × 65.5 mmOM FlexGrid Rigid PCB, the printed circuit board in 3D

    OM FlexGrid Rigid PCB

    Open-Muscle/OpenMuscle-FlexGrid

    60-sensor wearable with flexible PCB and pressure matrix

    65 parts19CERN-OHL-S-2.0