KiCad 7.0
kicad.org
kicad.org
This is the biggest usability improvement on the list. Computers are good at menial sorting, humans hate it.
For those not in the know: your nice, organised schematic gets turned into a randomly assorted pile of parts when you first open the PCB editor. Now imagine your board has over a hundred parts, including lots of duplicated copy+pasted bits.
My workarounds have been to:
1. Number the parts with special codes/prefixes to make manual untangling and grouping faster. 2. Import parts into the PCB editor as a draw the schematic. It's annoying extra work (the schematic undergoes lots of changes) and requires you to assign valid footprints from the start (so your work is constantly interrupted by having to draw missing ones OR your assign invalid ones and forget to fix them later).
This new Pack and Move feature seems like a life-saver, since we can use it anytime to add components to a selection with Shift-select and then that will pull it into the other desired grouping area on the PCB.
(This does sound like an extremely useful feature either way, but I'm curious.)
Kicad doesn't make that particularly easy but one of the big errors people make is at schematic capture stage where people chuck all the decoupling capacitors in their own sheet or separate net all across the power bus. They belong next to the devices you are decoupling on the schematic.
Canonical good example from the HP 3478A service manual: https://imgur.com/LQiAKtI
Though kicad would just dump everything randomly when moving to thr PCB view. As I understand, "packing" should help keeping this spacial grouping.
There is a plugin though[1] that does place the components on the PCB similar as they are placed on the schematic (and this does work with sub-sheet too). This is tremendously helpful starting point.
(I miss resistors that go -v^v^v^-. Why would you use a box? Boxes are for black-box ICs.)
1. Draw bypass caps for every IC as its separate space on schematic (also declutters the schematics that way)
2. Group them together on PCB then just... drag one (or two if you have say 100n + 1n) each to each IC.
Alternative is 0 ohm resistor (net tie footprint) before every power line so the cap and IC are on separate netlit
Maybe the play would be a special BP cap setting on the schematic, that binds to a specific part + pin.
Really indispensable. Not sure how the current feature works, but for things like power supply capacitors that are electrically connected to tons of ICs and pins but logically belong to one specific pin, I can't think of a better approach.
I'm still on 5.1.x as snapping is broken. Not apt/snap, but proximity snap. In 5.1.x the best way to place a group is to use https://github.com/MitjaNemec/Kicad_action_plugins 'replicate layout' (components and traces). See also, right click and Select ... Same schematic sheet (components only).
Last I checked though, to install Kicad with apt you needed to manually add a PPA - it wasn't available from the distro at all.
Ubuntu/Canoical itself may have pulled a kicad package update from Debian. But we have no say over that process in Ubuntu.
When I import most projects to 6.0, I get so many errors, violations and whatnot that make no sense when taking a closer look so I just don't trust it.
KiCad 6.0 easily covered 95% of PCB design needs, if not 98%. With 7.0 things are better yet. At this point, I can’t see people paying thousands of dollars per year for maintenance on tools like AD. It makes no sense at all.
Don't underestimate the inertia of processes at established companies. If a company maintains a part library, if the company has more than a few EEs- it can be a multi-man-month effort with potential for costly mistakes.
I like KiCad very much, I use it professionally but I also was the one that mandated AD to be the tool everyone at $WORK must use for production designs a few years ago- solely because it was the common denominator CAD that all EEs at the company/time knew to some degree. The cost of having production designs in a mixture of CAD tools was definitely larger than a few Altium licenses.
Now, if that was a new/my own company, I would mandate KiCad or GTFO.
Over the weekend I put together a toy project with a few ICs and maybe a dozen passives in KiCad and I was amazed to see how easy everything was. And now with a new release they're probably fixing things I hadn't even been annoyed by yet.
Hopefully having an open codebase means we start seeing some nice autoplacement and autorouting trickle in from hobbyists and academia, like we've seen in the 3D printer slicers world.
But when faced with a situation, where some parts of the product were in Altium, some were made by a contractor in Eagle- introducing the third CAD tool made less sense than just settling on the one which majority of team was familiar with.
I understand. The approach we took was to start new designs on KiCad and leave prior work on AD, unless a port is absolutely necessary.
All of our libraries are created using custom tools we wrote nearly 20 years ago. The good news is that these tools can be updated to regenerate the libraries for KiCad. That’ the power of a part description data structure that is independent from the EDA tool.
Starting with KiCad version 6.0 I saw no compelling reason to throw money at AD for the shit job they have been doing maintaining their software. At the end of the day people vote with their wallets. For me this isn’t about free at all. It’s about tool quality and other parameters. We are donating money to KiCad because it is going in the right direction. Altium is not. We were with them for over 20 years. They took us for granted. Goodbye.
I started to use Kicad at v5. Some interesting projects in v4 did not load clean. v6 was released, it had some problems to load v5 projects. And now v7 seems to not load some v6 projects.
If the AD story for support loading old version projects is good then I think they will do fine.
- Current-limiting resistors
- The resistor divider (two resistors between e.g. 3.3V and GND. The point between the two resistors will be between 3.3V and 0V, depending on the resistor values. Sometimes you need a certain voltage. For example to bias transistors.
- Delays, using a resistor and a capacitor. The values will determine the delay.
- Capacitors next to oscillators
- Filters, using a resistor and a capacitor. The order and the values will determine the cutoff frequency.
- Most capacitors on a PCB probably sit right next to a chip. Often, at least one per chip. They get rid of noise already on the line, and act as short-term energy storage for the chip next to it.
- Decoupling capacitors to get rid of the DC component of a signal (i.e. if there is a signal fluctuating between 4.5V and 5.5V before the cap, it'll be -0.5V and 0.5V behind the cap. Often, you need to add a DC component and later remove it, so that's two capacitors already.
There are some good YouTube channels that go into this. EEVBlog[1] has made a lot of really nice videos about the fundamentals, as has w2aew[2]. And I found MicroType Engineering[3] to be a good source of practical information on designing circuits.
Capacitors next to ICs are almost always for decoupling[4]. Similar to how the cistern in your toilet provides a large amounts of water in a short amount of time without affecting the water pressure in the rest of the house, hence decoupling the local water flow from the main supply, decoupling capacitors can supply a lot of current for a short amount of time.
However what values to use can seemingly be a bit of a black art[5], not helped by the fact there's so much outdated information and rules of thumb out there from the days of through-hole components which just doesn't apply to modern surface mounted components (like needing multiple different values).
On the other hand, resistors on a data line can be there to protect against ESD events[6], for example.
Some of it might be a bit more advanced than what you need right now, but there's definitely some good stuff for people starting out. If for nothing else highlighting areas you should be aware of.
[1]: https://www.youtube.com/@EEVblog/playlists
[2]: https://www.youtube.com/@w2aew/playlists
[3]: https://www.youtube.com/c/MicroTypeEngineering
[4]: https://www.youtube.com/watch?v=BcJ6UdDx1vg
Also, I'll recommend the "Follow the example" approach of just looking at the data sheets for various components and modules. Especially stuff like the Arduino Uno - It's got a microcontroller, and then everything around it is just support. You start to see patterns where there (for example) a 10uF and 0.1uF Capacitor around power inputs. And they're everywhere so even if you don't know why (yet) you do know that you need capacitors around power inputs.
https://wiki.ai03.com/books/pcb-design/page/pcb-guide-part-1...
https://youtube.com/playlist?list=PL3bNyZYHcRSUhUXUt51W6nKvx...
I think the hardest things for me so far been (a) getting my head around the idea that everything in a circuit is happening all at once (rather than iteratively like an algorithm) and (b) "input" and "output" are convenience terms, e.g. an opamp can sink current through its "output". Both of these insights have come from seeing real circuits analyzed on YouTube.
You can also see a nice progression there from beginner PCBs to more advanced things.
Also helps them guide and drive development of wanted features. I’m convinced there’s no way ODBC support would have happened without it. That’s a feature no hobbyist or maker would care about- it’s specifically geared towards people who collaborate with other engineers and component sourcing departments.
But ODBC support was by Jon Evans (https://www.kicad.org/blog/2022/12/Development-Highlight-Dec...), who is a lead developer but not employed by KSC. He works elsewhere and added it for his own benefit and that of his buddies elsewhere.
The tighter release schedule is something everyone wanted, just because v6 got too unwieldy.
And, the new dragging behavior is obviously what we should have had from the start. Going to make doing quick drawings much easier.
It does have to basically script drive the GUI to achieve some functionality which has now been added to the kicad cli, so hopefully going forward CI/CD with KiCad will be even easier!
My gitignores don't have anything special. They ignore the *-bak files that kicad makes.
Now that kicad has a stable sort order for its files the diffs are pretty clean and git works pretty well.
I used to use eagle back in the day but stopped being a fan once it was bought/ruined by autodesk. I hate managing parts libraries.
(Edit to add: Oh yeah, any time you click to change a file, any environment variables you had in the path get replaced with the absolute path, so things which had been perfectly resilient against path breakage get brittle again automatically!)
Actually making footprints, though, is super easy. If I have a datasheet, I don't even bother searching for a footprint from someone else (which was probably badly translated from some awful interlingua format), I just make my own.
Bonus if I can find a 3d model of the part. (I work with more connectors than chips, so these are frequently available.) Makes it super easy to doublecheck my footprint, and then I can see housing clearance and stuff in 3D as I lay out the board. Kicad is really, really good at this now.
Where? Many of the editing fields are supposed to resolve paths back to variables when possible.
There's currently a model specified, with a path of:
${OneDrive}/KicadAssets/vendor/model-1.stp
Suppose it's the wrong model and I need to update it. Click on the pathname and at the right edge of the text box, a little folder icon appears. Click the icon and a file browser pops up. Click the correct model.
The path is now:
C:/Users/firstname.lastname/OneDrive - Companyname/KicadAssets/vendor/model-2.stp
And anyone else using this library with my OneDrive share, will see a broken model because the firstname.lastname part of their path is different.
I'm absolutely delighted that KiCad is as usable and continues to be developed on. I remember a time not too long ago where the Mac version was tragically unmaintained. I now do all my EDA in KiCad. I'm not a professional EE. All my stuff is hobbiest, and relatively amateur, but it's so nice to have tools that are so flexible.
Then you'll be just fine, we didn't rock the boat on interface/interaction like 5->6 was.
Amazing work here.
Is there a similar resource for KiCad anybody might recommend? It's been about two years since I've done anything with electronics (I really do forget almost everything) so the gentler and broader the better.
Maybe next time I'll try some tactics to minimize the re-learning curve. I was thinking of maintaining an electronics lab book.
Basically the CAD world is exactly like people arguing over vim vs emacs
Even default keybindings are very personal. Some prefer to focus most of the common ones in one place (say around the qwer/asdf/zxcv cluster) so you don't need to move hand much, while others would rather go by easier to remember names and have [M]ove and [D]rag. I guess you can still define the "bad" here by neither intuitive nor convenient, which is to say "LTSpice", but most programs are not that.
Kicad is very powerful but it is also very unintuitive (to the average user). You can't just dismiss that fact because it is subjective.
Hell yeah. Finally schematics and PCBs with aesthetic text.
Putting a logo on a board as a footprint is fine, but footprints, for good reason, cannot be arbitrarily resized.
Most of the things work fine but the managing of part libraries I found extremely confusing and not really intuitive: e.g. different library file formats for schematics and footprints or the standard libraries being located and hidden behind some PATH variables..
Regardless, I think it is a great piece of software and I am looking forward to make more use of it in the future!
Solvespace is your friend: https://solvespace.com/index.pl
When you learn that completely and then outgrow it, you're probably going back to FreeCAD, or maybe blender with the CAD-sketcher addon.
Are you a student? Military? You may be able to get SolidWorks for cheap. Not what you asked for, but is the best option I've found.
Since KiCad v6 I can't think of anything CM does better, on top of that the CM forums are full of spam and it seems obvious that Altium have effectively abandoned it.
I switched when KiCad 6 came out and haven't looked back - I can have as many custom parts I want and I don't need to upload my design to the cloud to generate gerbers, I also don't miss the characteristic exception errors that CM would throw all the time
We're working to setup continuous integration here at work for the boards we make. Reduces a ton of human error being able to type "make" and get a zip file you can send to the fab house.
Downloading now...
Anyone have experience using it for woodworking modeling? Is there a better tool out there for that? I've been using SketchUp, which is "only ok": The modeling for parts is good, but setting it up for spitting out a cut list kind of sucks. Plus, it's like $300/year to buy the version that does cutlists, the web version will not. I use tinkercad for modeling 3d prints and mostly like it, it's kind of klunky, but easy for simpleish models.
I'll probably donate something to KiCAD, it'd be a no brainer to donate $300 instead of buying a year of SketchUp, but "buying" SketchUp for $300 for a year for something I'm going to use 3-5 times in the year is kind of a hard sell.
Been meaning to look at FreeCAD and SolveSpace.
Any recommendations for woodworking?
I'll admit to having done it with keyboard mounting plates-- they ended up significantly cheaper the price of traditional laser/water jet sheet aluminium, but you had to buy five units.