r/KiCad

▲ 1 r/KiCad+1 crossposts

Sad state of affairs in eCAD software

As many of you know, Autodesk killed Eagle and I had to switch my CAD tool. I heard many good things about KiCAD and so I tried it. I was just exploring the tool poking around things. My findings are pretty frustrating.

The Most Egregious Problems

1. UI Bloat — Panels Everywhere
About half the screen on a Full HD laptop is consumed by panels. There are two toolbars, two side panels, a properties panel, and a separate properties *dialog* that opens on double-click and duplicates the panel entirely. Nobody asked for two ways to view the same properties. WHY!?

2. The Context Menu Is a Wall of Text
Right-clicking a component produces a menu with 30+ items including Cut, Copy, Paste, Select All, Zoom, and Grid settings — none of which are contextual to the component. There are also multiple nested submenus. Finding anything quickly is nearly impossible.

3. You Can Edit Individual Pads Outside the Footprint Editor
KiCad allows you to select and modify individual pads directly on the board — changing their shape, size, or type (e.g. turning a through-hole into an SMD pad). There is no warning. This silently diverges your board from the library footprint and will likely be overwritten on the next library update. It's a trap for beginners and a potential sabotage vector for open-source projects. This is not freedom, this is pure evil and should not exist

4. The "Lock" Indicator Looks Like an Exposed Mask Opening
Two completely different states — a locked object and a solder mask opening — are visually indistinguishable. This is not a UI preference issue. This is a functional bug. It can probably be fixed in settings somehow, but why on earth the default state is so wrong.

5. Unpredictable Object Selection
Clicking on a component may select the component, or it may select the copper pour polygon underneath it. There is a selection filter, but it's buried inside the "Appearance" panel — which is also where you manage net visibility and layer sets, because why not. It is just not pleasant and slow to use.

6. The Selection Filter Is a Grid of Checkboxes
To select only one type of object, you must uncheck eight other checkboxes one by one. There is no multi-select in the filter list itself. Two columns of checkboxes, because one wasn't confusing enough.

7. Teardrops With Nine Settings Per Pad
Teardrops are a cosmetic feature whose practical justification (mechanical stress relief) applies almost exclusively to aerospace and military applications — which don't use KiCad. They were popularized by a YouTube video. They have nine configuration parameters. Per pad. This received prominent coverage in release notes.

8. Track Width Cannot Be Typed During Routing
When routing a track, you cannot type a width into a text field. You must choose from a predefined dropdown list, or configure net classes in advance. This is a pretty frequently performed action in PCB layout and you just can't specify your width.

9. Layer Set Switching Is Linear and Slow
Layer sets are switched with Ctrl+Tab. There are 8 default layer sets that cannot be deleted. On a 2-layer board you have at minimum 8 items to cycle through. Shift+Tab, which would logically go backwards, is instead assigned to "saved viewport positions" — a feature that is hardly ever used.

10. The Main Toolbar Is a Museum of Useless Buttons
Present on the main toolbar: three cursor styles (including one rotated 45°), four display modes for tracks/vias/polygons (including a "noodle mode" that outlines tracks instead of filling them), a toggle for curved vs straight ratsnest lines (why?!), polar coordinate display, and a barcode generator. Missing from the toolbar: a text field to enter track width.

11. Pad Properties Have Two Screens of Scrolling
A pad has properties including: back-drilling mode, surface finish, teardrop settings (9 of them), thermal relief overrides, and a solder mask checkbox whose effect is invisible in the PCB editor but visible in the 3D viewer. A pad is a copper shape with a hole. It does not need back-drilling settings.

12. GLTF Export Generates Geometry Instead of Textures
KiCad exports silkscreen, solder mask, and copper as 3D geometry even in GLTF format — which natively supports textures. A small board takes minutes to open in any external viewer. The internal 3D viewer handles this efficiently, making it a necessary walled garden rather than a feature.

13. Zone (Polygon) Has a "Name" Field
Separate from the net name. You can name your GND polygon anyhow if you wish. Nobody has ever needed to name a polygon independently of its net. Why it even exists?!

14. Hatched Fill With 8 Parameters
Two fill styles are available: solid and hatched. Hatched fill with configurable angle, line width, gap, and rounding is available for those who wish their ground plane to look like a notebook. This is not a manufacturing option. Nobody uses it. Why so many settings!?

15. Ctrl+B Removes Fill AND Triggers Ratsnest Recalculation
There are two ways to "hide" polygon fills: Ctrl+B (which actually removes the fill and shows ratsnest errors as if connections are missing) and toolbar buttons (which hide fills visually). These look similar and behave completely differently. This is a trap.

16. DNP Has Three Separate Checkboxes
"Do Not Populate", "Exclude from BOM", and "Exclude from manufacturing files" are three separate attributes. If a component is DNP, it should logically be excluded from both. The user must check three boxes to express one decision.

17. The "Ruler" (Dimensions) Tool
Places annotated dimensions on the board. In the era of STEP file exchange with mechanical engineers, nobody reads dimension annotations on a PCB. The tool exists, takes toolbar space, and solves a problem from 1987.

18. Built-in Barcode Generator
A native tool, not a plugin, for generating QR codes and barcodes on copper. Five formats with four error correction levels. Are we designing the PCB or runing a supermarket?!

There is though one think I actually find useful and like - background image. It is very useful in specific reverse engineering cases. Though such cases are rare, so you won't be ENJOYING this feature too much...

KiCad suffers from a specific disease common to open-source projects without strong product ownership: features are easy to add and nearly impossible to remove. Every contributor adds their panel, their checkbox, their toolbar button. Nobody asks whether it belongs there. Nobody removes anything.

The result is a tool with a functional routing core buried under layers of redundant panels, useless display modes, nine-parameter teardrops, and a barcode generator — while basic things like typing a track width remain inexplicably absent.

It is the best free PCB editor available. That is both its greatest achievement and its biggest problem.

reddit.com
u/Beginning-Corner-570 — 6 hours ago
▲ 7 r/KiCad+1 crossposts

Open-source Universal Kicad Library loader/importer

Hi everyone,

I wanted to share a small app I made for importing components into KiCad.

It works on Windows and Linux, and the main idea is to make component importing easier and more organized.

Main features:

  • Automatically imports downloaded components from any provider you prefer, as long as they are in ZIP format and KiCad-compatible
  • Imports 3D models too, if they are included
  • Can search for an MPN across multiple websites at the same time, such as Mouser, Digi-Key, Octopart, and others
  • Imports all components into one library, which you can name however you want
  • Free

GitHub link:
https://github.com/robertxdx/component-importer-for-kicad

For now, the app covers my own needs, but if there is interest, I would be happy to keep improving it and adding more features.

Any feedback is very welcome.
Discord: https://discord.gg/hnFYPJp6CK

u/RTRtechlabs — 12 hours ago
▲ 14 r/KiCad+2 crossposts

Custom FC - Schematic Review Request

I've just completed the schematic for a custom STM32F405RGTx-based quadcopter flight controller in KiCad. This is my first full FC design and I'd love to get some feedback before moving to PCB layout.

**Overview:**

A full-featured flight controller targeting Betaflight compatibility, designed for 4S–6S LiPo (7.4–25.2V) input.

**Power Architecture:**

- VBAT → TPS54360DDA buck converter → +5V @ 3.5A

- +5V → SPX3819M5-L-3-3 LDO → +3.3V @ 500mA

- VDDA filtered via 120Ω ferrite bead

**Peripherals:**

- IMU: ICM-42688-P (SPI1)

- Barometer: BMP388 (SPI3)

- Magnetometer: QMC5883L (I2C2)

- GPS: SAM-M10Q direct mount (UART3)

- OSD: AT7456E with 27MHz crystal (SPI2)

- CAN Bus: SN65HVD230

- FPV camera input with ferrite filter

- USB-C with USBLC6-2SC6 ESD protection

- SWD debug connector

**Connectors:**

- 8-pin JST-SH motor outputs (DShot, TIM1/TIM8)

- 4-pin JST-SH receiver (USART1)

- 4-pin JST-SH VTX (USART2 + video)

- 2-pin buzzer

- 2-pin current sensor input with ADC filter

- XT30 ESC power and battery connectors

- Battery voltage divider → PA0 ADC

u/Business-Menu-5960 — 14 hours ago
▲ 4 r/KiCad

always getting "component count mismatch" when trying to repeat multichannel layout

I'm not sure what I'm doing wrong.

  1. I create a schematic for the first group of components

  2. I draw a rule area around that group

  3. I "Place Directive Label" at the rule area and name the component class "H-Bridge 1"

  4. I create 5 copies of that group and update the names of the directive label of each group's rule area

  5. I update the PCB from schematic and layout the first group of components

  6. I go to tools -> multi-channel -> "generate placement rule areas" and select all 6 component classes and click ok

  7. I shift around the components so that each group is exactly within its generated rule area - no overlaps

  8. I go to tools-> multi-channel->"Repeat layout" and select the rule area of the first component group that I have already layouted

  9. Now in the "repeat multichannel layout" window that pops up I could select H-Bridge 2 a H-Bridge 6, but each of them has the status "component count mismatch", even though each area contains exactly the same amount of components (4).

  10. If I nevertheless select them all and click ok I just get the message "copied to 0 rule areas" and nothing happens.

What am I doing wrong?

u/MarinatedPickachu — 23 hours ago
▲ 0 r/KiCad

I built a CLI tool that turns KiCad PCB files into JLCPCB manufacturing outputs (BOM + CPL + gerbers)

I built a small CLI tool that generates JLCPCB manufacturing files directly from KiCad PCB files.

It takes a .kicad_pcb as input and outputs:

  • bom.csv
  • cpl.csv (centroids + rotation)
  • gerbers.zip

Core idea

The PCB file is the source of truth.

No schematic parsing, no netlist step, no KiCad UI required.

Components are defined directly in the PCB using footprint attributes:

  • lcsc → LCSC part number (only footprints with this are included)
  • lcscRot → optional rotation correction

Everything else is ignored.

Workflow

jlcc board.kicad_pcb -F ./libs -o ./out

Footprints are resolved from explicit .pretty libraries (no global KiCad dependency).

Why this approach

It’s designed for automation / CI workflows rather than manual GUI exports.

There are already good KiCad plugins for interactive export (like kicad-jlcpcb-tools), but I wanted something that can be scripted, versioned, and run headless.

Try it!

It is in the NPM repo at: https://www.npmjs.com/package/kicad-fab-export

Would love some feedback! Am I reinventing the wheel again?

npmjs.com
u/limikael — 1 day ago
▲ 32 r/KiCad+1 crossposts

I Made an Interactive PCB Map of the East Bay in California

I designed the board in KiCad using the image converter. The roads are copper traces, the water is solder mask, and the bare board is the land. An LED panel behind the board can draw locations and images.

I documented the whole thing with the design files and source code for the software: https://www.robopenguins.com/pcb-map/

u/curatorcat — 1 day ago
▲ 0 r/KiCad+1 crossposts

I'm making Cursor for KiCad

Meet Mechbear, an agentic assistant in development natively for KiCad.

Early builds show major promise for autonomous multi-layer routing, datasheet RAG, and automatic component placement.

Check it out

u/AdSweet6351 — 1 day ago
▲ 0 r/KiCad

First ever KICAD PCB design. Built a PCB for a wearable smart watch. Roast this brutally.

This is my first time building something on kicad. I aimed to build a wearable smart watch. I got 0 DRC errors in the pcb editor. I think it's therefore, that it's flawless. Tell me why I am wrong and roast this as brutally as you can.

u/Parasytesss — 2 days ago
▲ 6 r/KiCad+1 crossposts

Please help (HD audio schematic)

For context, this is a custom HDA/I2S audio schematic thing for a diy laptop project (first schematic 🫣)

Please can any professionals/anyone that knows more than me (you probably do) check for any mistakes

Thanks 🫡

u/michael201110 — 2 days ago
▲ 1 r/KiCad

kicad 9 project vs kicad 10 project

I had a project in KiCad 9. I upgraded to KiCad 10 and decided to open the project with KiCad 10 to see how well it worked. Now, when I try to go back to KiCad 9, I can’t open it anymore because it says the project was created with a different version. Is there any way to open it again with KiCad 9? I wasn’t tracking this project with Git because it was something small.

KiCad 10 has several bugs that I don’t like, so I want to go back to KiCad 9 until KiCad 10 is fully polished.

reddit.com
u/Lonely_Leg_8424 — 3 days ago
▲ 0 r/KiCad

KiCAD 10 Gerbers don't work at JLCPCB??

I have a small PCB, 20x24mm. When I upload the Gerber, JLC displays correctly, and denotes the proper dimensions. It looks good here, but .....

When I click Gerber viewer, JLCPCB hangs.

If I ignore that, reload Gerber, and try to go through PCBA. When I get to screen where I verify placement, the PCB does not render, and the website hangs.

I started KiCAD 9and loaded on older abandoned design. I generated Gerbers, these display correctly and Gerber viewer works too. I did not verify PCBA because I did not want to burn an hour looking up JLCPCB #s, etc. as I have no intention to fab this board.

I checked the Gerber menu 9 to 10, it looks the same to me!

Differences are new board is smaller, and it does have teardrops.

Any ideas? Is it me? Is it KiCAD? Is it JLCPCB?

reddit.com
u/thespeakerdude — 3 days ago
▲ 5 r/KiCad+1 crossposts

Help for an exercise

I need to see how this would look like in CAD, important to note that I'm from Germany, so in the middle you have the front perspective on the left you have the sideperspective from the right and on the left you have the sideperspective from the left and on the top you have the bottom perspective and on the bottom you have the top perspective. Im offering to pay for that pls help me with that

u/Professional_Move_43 — 3 days ago
▲ 3 r/KiCad

I want to save some space on my keyboard PCB at the stabilizers, so I want to leave the plated hole open at the bottom. Otherwise, the remaining part would only be very thin anyway. Can I therefore just place the edge cut over the hole in KiCAD? Would this cause any problems for the manufacturer?

u/xNyke — 3 days ago
▲ 1 r/KiCad+1 crossposts

I built a free and open-source universal component importer for KiCad.

I built a free and open-source component importer for KiCad.

The goal is to make component importing easier and cleaner, especially when working with parts from different providers. The app works similarly to the SamacSys Library Loader, but gives you more control over how your KiCad libraries are organized.

Main features:

  1. Auto-import components after a one-time setup per KiCad project
  2. Choose your own library name
  3. All imported components are stored under the same library
  4. No separate library created for every imported component
  5. Manual component import is also supported
  6. Built-in how-to-use instructions
  7. Online component search
  8. Free and open source

Supported sources:

  1. Mouser
  2. DigiKey
  3. SamacSys
  4. Ultra Librarian
  5. SnapEDA
  6. Octopart

I made this mainly for PCB designers, electronics hobbyists, and professionals who want a cleaner workflow when importing symbols, footprints, and 3D models into KiCad.

GitHub: https://github.com/robertxdx/component-importer-for-kicad

The app is completely free, but anyone who wants to support the project can do it here: Buy me a coffee

i.redd.it
u/RTRtechlabs — 3 days ago
▲ 0 r/KiCad

Kicad -> 10.0.3 -> Bug in BOM

There is a bug that needs urgent resolution.

In BOM

Click on Group By (enabling the grouping) check box of $QUANTITY.

we get a message that "Quantity Column cannot be grouped by"

Then I press OK,

The Tick mark still remains.

I now click on TICK MARK to remove it, I get the same above message...
It does not update the field or perhaps the rendering.
When I close and reopen the tick mark is gone.

This bug needs to be fixed asap.

reddit.com
u/Charming-Work-2384 — 4 days ago
▲ 6 r/KiCad+1 crossposts

First time attempting my own Schematics (review would be nice)

first time working on a PCB schematic, can someone take a look at this if i made a mistake, it's just a esp32 dev board with a micro SD slot and pin headers to integrate some I2C sensors like a MPU6050 and BME280. Really dont know what im doing just trying to find out the hard way I guess, wanna make sure I didn't make any obvious blunders before moving in to pcb routing

u/Express-Sundae9168 — 5 days ago
▲ 13 r/KiCad

First PCB board design [Request Review]

I want to gift my girlfriend a heart shaped PCB-board which can emit light and also blink depending on the slide switch. I will connect everything with a 2xAAA battery with lead wires and solder it together myself. I don't have that much experience with electronics so any recommendations would be appreaciated. :)

u/extremely_talentless — 5 days ago
▲ 0 r/KiCad

Whats needed for jlcpcb?

https://preview.redd.it/fe2yynb6mh1h1.png?width=1712&format=png&auto=webp&s=fe63df94a23a9a0a46c9e0d7690f437ad51989ad

I am but a humble mechanical engineer... who needs to make a stupid simple voltage divider for reference values for testing!

Little new to KiCad and PCB design in general, but I've managed to put this together to better package a resistor network. Now I'm unsure if I have everything I need here to order a functioning prototype from JLCPCB.

It's a very simple circuit, one layer is all I need, but the board appears different than others I've seen and I'm looking for any advice!
Any additional settings I need to configure for JLCPCB manufacturing?

reddit.com
u/GSRJash — 5 days ago
▲ 46 r/KiCad+1 crossposts

Learning KiCad and PCB Design from CERN White Rabbit example

Hello All,

For those new to KiCad a great example design out there is the CERN White Rabbit VME WREN design. its 73 pages with hierarchy, FPGA and robust power system that is worth looking at to understand the power of KiCad and also give tips on how to design a complex power system for an FPGA.

The WREN (White Rabbit Event Node) is designed in multiple form factors including VME64x, this design is the VME version. It's based on the Zynq UltraScale+ SoC and licensed under the CERN Open Hardware License. White Rabit provides timing in the low 10s of picoseconds for the LHC. I can't say i know all about it but it is quite an acheivement. The original files are here:
https://gitlab.com/kicad/code/kicad/-/tree/5371312c6f945e99bd464769626d83c7111f18ed/demos/vme-wren

I inserted test points and generated descriptions of the power and EMC/ESD sections which may help anyone who is debugging the boards or looking to understand the design. There are some comments on things which are marginal or could be done better in a next generation. The new files are here:

https://github.com/ttrain4086-cpu/Kicad-VME-Wren-Update

There are areas of concern with TPS62125, and the PGOOD status is not always brought out to a probable test point such that debug could be a little easier when things go wrong. Here is a short description of the power, for brevity just 1 section of the entire 14 section power description:

The design is a VME-format board built around a Xilinx Zynq UltraScale+ XCZU4CG FPGA (IC14). Two independent backplane power domains feed the board. The P12V rail enters from the VME P1 connector and supplies the core-voltage conversion chain. The P5V_VME rail, also from the P1 connector, feeds the main 3.3 V domain. A separate P3V3_VME rail is present on the backplane but has no on-board consumers.

From P12V, a TPS62125 buck converter (IC32) generates the 5VREG housekeeping rail. 5VREG powers the two Infineon IRPS5401M digital PMICs (IC30, IC31), the TDA21535 power stage (IC29), and the TPS74801 LDO (IC22). IC29 produces the P0V85 core rail for the FPGA. IC30 generates P1V8 (two paralleled channels C and D), VCC_PSPLL (internal LDO), and drives IC29 via its PWM_A output. IC31 generates MGT_1V2, MGT_1V8, P1V2, MGT_0V9, and MGT_0V85 (internal LDO). IC22 post-regulates 5VREG down to P2V5 for DDR4 VPP.

From P5V_VME, the LMZ31704 power module (IC40) produces P3V3, the largest rail on the board with over 600 pins and 225 decoupling capacitors. P3V3 is further filtered through two 220-ohm-at-100-MHz ferrite beads (L13, L14) to create the P3V3_CLK sub-rail for the clock synthesizers (IC18, IC60), the DAC (IC10), and the voltage reference (IC12). The TPS51200 DDR termination regulator (IC24) derives VTT_DDR4-PS from P1V2.

Smaller filtered sub-rails include VCC_PSDDR_PLL and VCC_PSADC, both derived from P1V8 through individual 120-ohm-at-100-MHz ferrite beads (L5, L6), and PSADC_AGND, an isolated analog ground for the FPGA PS-side ADC connected to GND through a 600-ohm-at-100-MHz ferrite bead (L2).

Power sequencing is managed through the enable chain of the IRPS5401M devices. IC32 starts unconditionally when P12V is present (EN tied to VIN). Its PG output on net 5VPG enables IC22 (EN pin). IC30 is enabled by the 5VREG rail through R212 to its EN_L, EN_A, EN_C, and EN_D pins. IC31 is gated by the P1V8AUX_PG signal from IC30 pin PG_D, which drives IC31 EN_L, EN_A, EN_B, EN_C, and EN_D. IC29 EN is tied to P3V3, so it starts once the 3.3 V rail is live. IC24 PGOOD drives the FPGA PS_POR_B pin, establishing the final power-good handshake to the processor. IC40 starts whenever P5V_VME is applied because its INH/UVLO pin is intentionally unconnected, relying on the internal pull-up.

anyway, enjoy see if the explanations help in designing your own power architecture if you're using high end FPGAs.

u/ttrain4086 — 5 days ago