
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.

Znibb's Personal Kicad LIBrary
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.
The name of your KiCad symbol libraries will be LIBRARY_FILE_NAME - TOP_LEVEL_CATEGORY/SUBCATEGORY, meaning that if your setup is using:
- Library file name: zpklib.kicad_httplib
- Inventree top level category name: kicad-parts
- Subcategory: Resistoryour resistors will show up under a symbol library named zpklib - kicad-parts/Resistor
/admin/ to the URL (NOTE the trailing forward slash)USERS->API Tokens, click it and then click ADD API TOKEN +Key, select which User the key is for and click SAVE./setup-venv.shsetup-inventree-httplib.sh./check_inventree_connection.pyPreferences->Configure Paths...Environment Variable called ZPKLIB_DIR that points to your local library path and click OKPreferences->Manage Symbol Libraries... and click Add existing->HTTP (.kicad_httplib)zpklib.kicad_httplib and click Open| Name | Usage |
|---|---|
| check_inventree_connection.py | Verify if httplib is setup correctly |
| create_part.py | Create new Part based on existing component structure |
| next_assembly_ipn.py | Create new EA Part with next IPN in series |
| patch_inventree_structure.py | Compares current kicad-parts category state with inventree_structure.yaml and patches the difference in Inventree |
| release_project.py | Handles creation of git tag, github release and upload of relevant assets to said release |
| setup-inventree-httplib.sh | Creates the httplib file used by Kicad to access Inventree |
| setup-venv.sh | Creates a python venv and installs the modules specified in requirements.txt |
| update_assembly.py | Update the Inventree Part for the Electronic Assembly |
. .venv/bin/activateinventree_structure.yaml./patch_inventree_structure.py. .venv/bin/activate./create_part.py. .venv/bin/activate./next_assembly_ipn.py. It prompts for the assembly name, creates the part under electronic-assemblies and prints the IPN and a link to itSchematic Setup->Project->Text Variables and add PART_NUMBER with the printed IPN./update_assembly.py PROJECT_DIRVERSION and RELEASE_DATE text variables, add a ## vX.Y.Z section to CHANGELOG.md, run the production jobset, then commit and push./release_project.py PROJECT_DIRThe 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.
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:
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:
kivad:
show_extra_fields: "FIELD_NAME"to that category in inventree_structure.yaml.
| Layer | Usage |
|---|---|
| User.Drawings | PCB/feature dimensions |
| User.Comments | Footprint-specific notes, connector protrusion etc. |
| User.1 / PCB.Comments | PCB comments, stackup details, impedances etc. |
EMS:
| Qty | Value | Footprint | References |
|---|---|---|---|
| 2 | 4.7u | capacitor:C_1206_3216Metric | C9, C10 |
| 2 | 47u | capacitor:C_1206_3216Metric | C6, C7 |
| 1 | 100n | capacitor:C_0603_1608Metric | C4 |
| 1 | 10k | resistor:R_0603_1608Metric | R28 |
| 1 | 10n | capacitor:C_0603_1608Metric | C11 |
| 1 | 12n | capacitor:C_0603_1608Metric | C8 |
| 1 | 1n | capacitor:C_0603_1608Metric | C1 |
| 1 | 29.4k | resistor:R_0603_1608Metric | R16 |
| 1 | 3.24k | resistor:R_0603_1608Metric | R15 |
| 1 | 33.2k | resistor:R_0603_1608Metric | R29 |
| 1 | 3V3 | testpoint:TestPoint_Round_D1.0mm | TP6 |
| 1 | 3V3_COMP | testpoint:TestPoint_Round_D1.0mm | TP8 |
| 1 | 3V3_EN | testpoint:TestPoint_Round_D1.0mm | TP5 |
| 1 | 3V3_SS | testpoint:TestPoint_Round_D1.0mm | TP7 |
| 1 | 3V3_Vsense | testpoint:TestPoint_Round_D1.0mm | TP3 |
| 1 | 47p | capacitor:C_0603_1608Metric | C5 |
| 1 | 6.8u | inductor:L_12.5x12.5mm_H6.5mm | L1 |
| 1 | 8.45k | resistor:R_0603_1608Metric | R30 |
| 1 | B340A-E3-61T | diode:D_SMA | D3 |
| 1 | GND | testpoint:TestPoint_Square_1.0x1.0mm | TP4 |
| 1 | TPS54331DDAR | package_SO:SO-8-PowerSOIC_ThermalVias | U5 |
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.
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.
Its repository states no licence, so its author keeps all rights: ask znibb before reusing the design.

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.


szolotykh/kinisi-motor-controller-board
Kinisi motor controller board based on STM32F405 microcontroller

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

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



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