Main Content

KiCad has improved a lot, but one of the features it’s really lacking is the ability to do smooth, rounded traces with teardrops (fillets on pads and vias).
A lot of early, hand drawn PCBs had this look, where every connection is smooth and slightly melted.

When people first switched to using computers to design circuit boards, the routing options were very limited and traces were forced to have sharp corners. Some people forget that our tendency to restrict traces to 45° angles is mainly a holdover from before there were any other options.

Some of the benefits of teardrops and smooth traces are controversial, but the following can generally be agreed upon:

- Smooth corners are potentially less prone to errors in the etching process
- In the case of drill/pad misalignment, teardrops reduce the chance of a breakout
- For flexible PCBs, sharp corners are stress concentrators, so removing them reduces the chance of cracking
- Denser routing is possible when arbitrary angles are permitted
- There may be some electromagnetic compliance (EMC) benefits, since sharp transitions represent a sudden change in impedance

That last point is the one people tend to dwell on. It’s been shown that at sub-GHz frequencies, the difference is negligible. Many developers argue that since there are no EMC benefits, this feature is not needed. The attitude of “only ignorant people who know nothing about EMC would want rounded traces” really irks me.

There are two important points to make here.

- Teardrops and round traces look cool. Some people want them for the aesthetics.
- Not supporting a feature that’s implemented in other CAD software is simply driving away users. When I need to design a flex PCB, I do not use KiCad.

A lot of people have attempted to add these missing features into the KiCad source code, but for various reasons the most promising branches never got merged. Curved traces are apparently on the roadmap for KiCad 6, which hopefully isn’t too far in the future, but I’m not holding my breath.

Another way to add functionality is via “action plugins” – python scripts. This is in many ways more limited, but has the massive benefit of not needing to recompile the KiCad source code.

Interactive curved traces are not possible this way, but I had an idea: to draw a PCB with sharp corners, and then “melt” it afterwards, via a plugin. Curves can be approximated with many small straight segments, and by keeping the original file you can still easily modify it, then apply the melting process as a step that renders to a new file.”

Link to article