Skip to the content
PCBKitNew board
4 layersTPS54331DDA, the printed circuit board in 3D

TPS54331DDA

znibb/zpklib

Znibb's Personal Kicad LIBrary

Copper layers
4
Thickness
1.6 mm
Parts
23
Nets
10
Pads
57
Tracks, vias
64, 4
Pours
2
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
12 Mar 2026
Updated
25 Oct 2026

Overview

TPS54331DDA is an open-source printed circuit board by znibb, from the znibb/zpklib repository on GitHub. It is a 4-layer board with 23 parts on 10 nets, routed with 64 tracks and 4 vias.

It is built around the TPS54331DDAR. Its parts include 9 capacitors, 5 resistors, 1 IC, 1 diode and 1 inductor.

Main components

1

README

README.md

Znibb's Personal Kicad LIBrary

Table of Contents

1. Description

The name of your KiCad symbol libraries will be LIBRARY_FILE_NAME - TOP_LEVEL_CATEGORY/SUBCATEGORY, meaning that if your setup is using:

text
- Library file name: zpklib.kicad_httplib
- Inventree top level category name: kicad-parts
- Subcategory: Resistor

your resistors will show up under a symbol library named zpklib - kicad-parts/Resistor

2. Setup

2.1. Inventree

  1. Log into the Inventree web UI and access the Django admin panel by appending /admin/ to the URL (NOTE the trailing forward slash)
  2. Scroll down to USERS->API Tokens, click it and then click ADD API TOKEN +
  3. Take nto of the Key, select which User the key is for and click SAVE

2.2. Kicad

  1. Create a python venv and install the required packages: ./setup-venv.sh
  2. Create the httplib file: setup-inventree-httplib.sh
  3. Check that the Inventree server is reachable: ./check_inventree_connection.py
  4. Open the KiCad main window, go to Preferences->Configure Paths...
  5. Add an Environment Variable called ZPKLIB_DIR that points to your local library path and click OK
  6. Go to Preferences->Manage Symbol Libraries... and click Add existing->HTTP (.kicad_httplib)
  7. Select zpklib.kicad_httplib and click Open

3. Usage

3.1. Helper scripts

NameUsage
check_inventree_connection.pyVerify if httplib is setup correctly
create_part.pyCreate new Part based on existing component structure
next_assembly_ipn.pyCreate new EA Part with next IPN in series
patch_inventree_structure.pyCompares current kicad-parts category state with inventree_structure.yaml and patches the difference in Inventree
release_project.pyHandles creation of git tag, github release and upload of relevant assets to said release
setup-inventree-httplib.shCreates the httplib file used by Kicad to access Inventree
setup-venv.shCreates a python venv and installs the modules specified in requirements.txt
update_assembly.pyUpdate the Inventree Part for the Electronic Assembly

3.2. Bulk update Inventree

  1. Source the venv: . .venv/bin/activate
  2. Analyze the contents of inventree_structure.yaml
  3. Applying the structure by running: ./patch_inventree_structure.py

3.3. Adding components to categories

  1. Source the venv: . .venv/bin/activate
  2. Run ./create_part.py

3.4. Assemblies

  1. Source the venv: . .venv/bin/activate
  2. Reserve an assembly IPN (can be run from any directory): ./next_assembly_ipn.py. It prompts for the assembly name, creates the part under electronic-assemblies and prints the IPN and a link to it
  3. In KiCad, go to Schematic Setup->Project->Text Variables and add PART_NUMBER with the printed IPN
  4. Generate the production files, then upload the assembly information (BOM, revision, description and image) to that IPN: ./update_assembly.py PROJECT_DIR

3.5. Releasing a project

  1. In the Kicad project, set the VERSION and RELEASE_DATE text variables, add a ## vX.Y.Z section to CHANGELOG.md, run the production jobset, then commit and push
  2. Create the git tag and GitHub release and upload the production files: ./release_project.py PROJECT_DIR

The script needs git and an authenticated gh. It aborts if the working tree is dirty, HEAD isn't pushed, or any file name's _vX.Y.Z_ doesn't match VERSION. If the tag or release already exists you are asked before it is overwritten. The uploaded files are set by FILE_PATTERNS at the top of the script, and the release notes are the matching CHANGELOG.md section.

3.6. Customizing category symbols

Kicad handles the default symbol fields reference, value, footprint, datasheet, description, keywords in it's own batch, showing reference and value while hiding the rest by default.

To hide any of the default fields add:

text
kicad:
    hide_fields: "FIELD_NAME"

to that category in inventree_structure.yaml.

The rest of the symbol fields are considered "extra" fields. To make an extra field visible on the symbol add:

text
kivad:
    show_extra_fields: "FIELD_NAME"

to that category in inventree_structure.yaml.

4. KiCad layer specific usage

LayerUsage
User.DrawingsPCB/feature dimensions
User.CommentsFootprint-specific notes, connector protrusion etc.
User.1 / PCB.CommentsPCB comments, stackup details, impedances etc.

5. EMS Capabilities

EMS:

Parts

23
QtyValueFootprintReferences
24.7ucapacitor:C_1206_3216MetricC9, C10
247ucapacitor:C_1206_3216MetricC6, C7
1100ncapacitor:C_0603_1608MetricC4
110kresistor:R_0603_1608MetricR28
110ncapacitor:C_0603_1608MetricC11
112ncapacitor:C_0603_1608MetricC8
11ncapacitor:C_0603_1608MetricC1
129.4kresistor:R_0603_1608MetricR16
13.24kresistor:R_0603_1608MetricR15
133.2kresistor:R_0603_1608MetricR29
13V3testpoint:TestPoint_Round_D1.0mmTP6
13V3_COMPtestpoint:TestPoint_Round_D1.0mmTP8
13V3_ENtestpoint:TestPoint_Round_D1.0mmTP5
13V3_SStestpoint:TestPoint_Round_D1.0mmTP7
13V3_Vsensetestpoint:TestPoint_Round_D1.0mmTP3
147pcapacitor:C_0603_1608MetricC5
16.8uinductor:L_12.5x12.5mm_H6.5mmL1
18.45kresistor:R_0603_1608MetricR30
1B340A-E3-61Tdiode:D_SMAD3
1GNDtestpoint:TestPoint_Square_1.0x1.0mmTP4
1TPS54331DDARpackage_SO:SO-8-PowerSOIC_ThermalViasU5

Questions

What parts does the TPS54331DDA use?

23 parts, built around the TPS54331DDAR. 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 TPS54331DDA KiCad files?

From the znibb/zpklib repository on GitHub, at the commit this page was made from: the board is design_block/regulator_switching.kicad_block/TPS54331DDA.kicad_block/TPS54331DDA.kicad_pcb and its schematic design_block/connector.kicad_blocks/TC2030_ISP_DualSide.kicad_block/TC2030_ISP_DualSide.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the TPS54331DDA design in my own project?

Its repository states no licence, so its author keeps all rights: ask znibb before reusing the design.

Similar boards

  • 4 layers53.3 × 68.6 mmUnoq power shield, the printed circuit board in 3D

    Unoq power shield

    ramalamadingdong/pcb-agent

    Design a PCB end to end with an agent: CSV source of truth, idempotent build passes, containerized KiCad+Freerouting, and checks that run on the fab output.

    56 parts4GPL-3.0
  • 2 layers74 × 32 mmColorSensor01, the printed circuit board in 3D

    ColorSensor01

    nevzathipertek/color_sensor

    99 parts1
  • 4 layers75 × 60 mmSmart motor controller, the printed circuit board in 3D

    Smart motor controller

    szolotykh/kinisi-motor-controller-board

    Kinisi motor controller board based on STM32F405 microcontroller

    79 parts1MIT
  • 4 layers85 × 65 mmStm32h743 core, the printed circuit board in 3D

    Stm32h743 core

    changgeruoxiao/hagent

    一块 STM32H743ZIT6(LQFP144, Cortex-M7 @ 480MHz)最小系统核心板,以及生成它的全自动化 EDA 流水线:

    81 partsMIT
  • 4 layers100 × 72 mmRtl8367-switch, the printed circuit board in 3D

    Rtl8367-switch

    Deco025/rtl8367-switch

    Five-port gigabit unmanaged Ethernet switch based on the Realtek RTL8367RB - 4-layer KiCad 10 design with fabrication outputs

    229 partsCERN-OHL-S-2.0
  • 4 layers28.2 × 26.1 mmDongleHiderPlus PCB, the printed circuit board in 3D

    DongleHiderPlus PCB

    LeoDJ/FW-EC-DongleHiderPlus

    Framework Expansion Card that includes a USB hub to hide a bare dongle inside and still have a USB-A port externally

    23 parts497CERN-OHL-W-2.0