Hacker News new | past | comments | ask | show | jobs | submit login
Tutorial On Designing/Building A PCB (Using FOSS) (contextualelectronics.com)
160 points by ChrisGammell on May 10, 2016 | hide | past | favorite | 41 comments

For those interested in the teaching philosophy behind contextual electronics you might be interested in this video - https://www.youtube.com/watch?v=5_9Q4DoUlT8

He favours diving into a teaching example where the student has little background knowledge and expanding later. While my interests are more in the fundamentals I can appreciate the motivation behind this approach, especially in an online environment where keeping your students engaged is key.

That was an interesting presentation and theory. Might check out his learning electronics series at some point.

For those interested in pcb design and you're not tied to FOSS I'd definitely recommend trying upverter.com. It's made loads of progress in the last few years and is probably the best / easiest to use layout software for beginners that I've come across.

I've worked with eagle, altium, and briefly KiCad but I can never get over the tediousness of using KiCad. I recently checked out upverter and after watching their tutorial was able to design an LCD adapter board from start to finish in ~2 hours.

Not trying to knock too hard on KiCad because it's great that we have an FOSS option, but if you're just into tinkering, upverter definitely has an easier learning curve and is pretty powerful. I always find that I want to spend my tinkering time actually getting my project designed instead of fighting with tooling.

Upverter has all the standard trappings of proprietary SaaS businesses (see [1] for a flame-baity editorial).

I think KiCAD is awesome but the learning curve is steep, the interface is a little dated and it's hard to get started and/or share your schematics easily (e.g. online). This was one of the reasons why I wanted to like Upverter so much but the fact they were just another closed source business was a no-go for me.

Anyway, I created MeowCAD as an alternative [2]. It's free and open source [3] allowing you to do circuit design in your browser.

Sorry for the shameless self promotion.

[1] http://dangerousprototypes.com/blog/2011/09/21/editorial-upv...

[2] https://www.meowcad.com

[3] https://github.com/abetusk/www.meowcad.com

I tried Upverter a few weeks back, and thought their UI made some wacky choices, particularly where sliding connected components is involved. Lack of hotkeys also was a big shortcoming in my mind.

Eagle and KiCAD are no picnic to start with, but they do at least have some features that allow you to speed up your schematic capture/board layout.

I've always wondered if there wasn't a business to be had in doing part creation for Eagle/KiCAD as a service...

Sorry for the rough edges - we care very deeply about our UI and spend a lot of our time trying to make this stuff better.

If you ever want to send me an email about UI weirdness in Upverter Im happy to share your feedback with the team here and see what we can do to fix it: zak@upverter.com.

As it turns out, I already did, and you already responded! Check your email from Feb 29 of this year. I haven't really gone back to the design I started as I got busy at work. I'll be sure to do so to see how the UI's changed since then.

Regarding a parts concierge for Kicad / Eagle. We've built this for Altium, you can see it here: https://upverter.com/features/concierge-altium/

We hadn't planned on supporting either KiCad or Eagle though. We didn't think there was much of a market. Im curious what you all think - do you think people would be willing to pay for parts creation as a service for either kicad or eagle? Also don't you think there would be a flame-war of the FOSS Kicad crowd vs. proprietary pay-to0use parts data?

Maybe. I don't love creating parts or footprints for Eagle. (I haven't used KiCAD enough to form an opinion.) I've never used Altium, but I've met plenty of people who love it and rave about it. Given that, I can see how it's a sensible market to pursue.

Ok, thanks!

At one point I started thinking about setting up a business around KiCad with a ruggedized and supported distribution of the EDA, similar to how Red Hat works.

The name? Tin Hat.

I like the idea. Always wondered if there wasn't room for another EE CAD program. I always find myself frustrated by something when I use one.

KiCad definitely has a learning curve, which is why I made these and many other videos.

I have scaled back my arguments a bit, but I'm not a fan of the network connected, in-browser tools (wrote about it previously here: https://contextualelectronics.com/learning/simple-plane-expe...). I rather like the Upverter guys as well, I have had them on my podcast in the past: http://www.theamphour.com/the-amp-hour-163-ramiform-reciproc.... I'm sure to lose this argument (browser tools) over the long term, as I think more things are moving that way. But for now I prefer a localized version of my CAD software and the fact that it's FOSS is a bonus.

The thing I can't figure out is what happens if Upverter goes away at some point in the future? They have good exporters it seems, but there's no way to run the software without their servers AFAIK. I know people still running local copies of Protel99 (ie. all of China). Will that be possible with Upverter?

KiCAD does seem to have a tediousness problem. The tutorial shows a process for creating a new parts library which requires far too many steps - saving some random part into a new library to create it, telling the part designer about the new library, and starting from a blank part which has text in the way of what you're creating.

Also, moving something by holding "M" and dragging with the mouse seems a holdover from the DOS era. Of course, if you don't like that, you can remap the hotkeys. That's so open-source.

Electronic CAD is tedium, honestly. Even the expensive stuff I use at work is tedious, which is why we have a PCB layout department.

I haven't used KiCAD for several years, but in the past I used Rohrbacher's Quick Library Builder [0] to generate parts. Otherwise making parts is indeed a pain.

I enjoy KiCAD's single-key commands, though.

0: http://kicad.rohrbacher.net/quicklib.php

That's exactly what I was thinking - the footprint editor is horrible in that aspect.

You don't have to hold "M" to move, it picks up the component when pressing.

The shortcuts in general are not as nicely placed as Altium, e.g. Zoom-to-fit (Home) is very awkward. Sure you can change that, but stuff like this requires a lot of time and the setup will be incompatible with other people (and one might have to adapt it on the next update, etc.).

You don't have to hold 'm', you can just press it while hovering over a component. Just like you can in the schematic except the hotkey is 'g'. Or you can do in the OpenGL PCB renderer (but not the default renderer) with a simple click-and-drag. Oh and you can't undo/redo in track laying mode even if you're not laying a track.

The user interface is insanely fragmented, is what I'm getting at.

I've been using Upverter for a couple weeks on a series of boards and have mixed feelings. Broadly it seems to work fine though there are a few niggles here and there.

There are definitely some random bugs (DXF board outline import?) and they have been silent on the support forums for a few weeks.

For an open source option with a small learning curve I like Fritzing.

I guess KiCad is a good future proof solution for FOSS PCB design.

KiCad is now used intensively by CERN teams, and backup by them too. http://www.ohwr.org/projects/cern-kicad/wiki

See the KiCad CERN roadmap (10. is about UI): http://www.ohwr.org/projects/cern-kicad/wiki/WorkPackages

Having used Eagle, KiCAD, and several others, my current favorite is Fritzing. It's quite easy to use and has a large library of built-in parts. Creating new parts is pretty easy compared to other software I've used. Performance leaves a bit to be desired, but this doesn't become a problem except for pretty large circuits.

I've heard others say the same recently. I've always liked their intuitive breadboarding stuff, though haven't used it much. A lot of user-facing friendliness, which KiCad lacks to be sure.

Normally I'd call out the "built in libraries" as a false thing to optimize for, but since you mention making your own components, I assume you're willing to move outside of that as well, so that's good to hear. Most people assume every part should have a library component which is simply never going to be the case in electronics. Even if there were a library for every component, I usually only trust the parts I have made, verified and tested myself. Been burned too many times.

Out of all the open CAD packages, Fritzing takes the UI win but fails for advanced users by only supporting 2-layer boards (unless this has changed?).

Nope, still two-layer only. I'm actually pretty disappointed with their PCB UI. It makes a lot of assumptions about the existence of layers, and their ambiguous selection is really bad. For example, I often cannot select a small part for moving if there are too many airwires nearby, because fritzing always seems to prioritize airwires. I end up having to disable the ratsnest layer just to move a part. There's also a move vs create wire ambiguity that's really annoying.

I guess I've just found that this is somehow less annoying than the problems with other PCB softwares.

Fun project!

I watched the Building Blinky video.

You could improve the video if you hold a loupe in front of the camera lens when trying to zoom in for fine detail, like when you were trying to show us a bridge on two pins.

Good thinking, I like that. I normally zoom when for these kinds of details, didn't realize at the time the view was not sufficient.

Hi Chris! Nice job with the tutorial and podcast. I haven't designed a board in a while, but next time I do I'll definitely be putting in some time moving from Eagle to KiCad.

Having made that jump over the past few months, I should warn you that KiCad has some very annoying rough edges. It's basically a bunch of FOSS PCB-related projects wedged together into a single launcher, which has then been spot fixed as individual problems got too annoying for individual users. Once you get used to it the main workflow is pretty alright, but there are a lot of facepalm-worthy 'features'.

Each program has its own (sometimes slightly, sometimes wildly) different UI, right down to things like selecting and moving objects. In addition, the PCB layout component has three different selectable "rendering engines", each of which has its own UI and available feature set inconsistent with the others. (Hint: OpenGL rendering enables the interactive routing features which speeds things up immensely.)

Information is transferred between programs via intermediate files, creating a lot of busywork to export/import changes. (For instance, to go from a schematic in eeschema to PCB ratsnest in pcbnew, you have to annotate components, run CvPCB to associate components with PCB footprints, generate and save a netlist, load pcbnew, and read in the netlist. Any name collisions with existing footprints will cause the conflicted footprints to not be updated.

Importing/vectorizing images from outside sources is byzantine and scaling images after import is poorly or not supported.

It crashes from time to time, especially in the PCB editor. Get used to spamming ctrl+s regularly.

Also, the part and footprint library management is insane and needs a rewrite.

Basically it's got all the ingredients for a great CAD package but it needs a single guiding force to turn it into a consistent, reliable tool.

I'd say moving from EAGLE is one of the biggest shifts because the symbol and footprint aren't automatically tied together in KiCad. However, it is possible! https://www.youtube.com/watch?v=lLo4xQNHTcY

Very nice introduction to KiCad - also for people with a background in other CAD tools like me.

It's awesome to have a short but complete example of the whole process. KiCad definitely has some room to improve in terms of UI/UX flow, so that was very helpful.

This is interesting to me because recently I have been playing with the open source spice software, ng-spice, and all of the other tools.

I'll make sure to watch the whole series tomorrow morning :)

I'd love to hear from someone familiar with both KiCad and eagle how the library availability compares. Last time I tried the FOSS alternatives, the main pain point was that I needed to create pretty much all the component libraries myself, whereas for eagle someone had usually already done that work.

Eagle is a truly terrific program, but I would really like a FOSS alternative. I'll have to give KiCad a try next time I have to do some layout work.

Just adding a note here that gEDA, the GNU EDA suite, is another free software alternative. Its older than KiCAD by quite a bit. I got started with gEDA since I was doing PCB's before KiCAD, and now have invested in tools and libraries and such and don't want to restart. The functionality seems roughly equivalent -- both have their rough edges, just in different places.

Yep, that's the thing about EDA. The curve is so steep, it's pretty hard to get someone to switch unless there is a disruptive event in their electronics life. I'll be saying the same some day about switching away from KiCad, I'm sure.

Another free CAD program for pcb making is designspark pcb (http://www.rs-online.com/designspark/electronics/eng/page/de...). It's not opensource like Kicad and gEDA, and it's only available on Windows. But it's easy to learn, very polished for free software, and quite capable. Lots of tutorials as well. There is a lot of free software available for hobbyists/makers today and they're pretty impressive compared to commercial software.

Sincere call for comments on make a living as a PCB designer in India.

Get your work out there.

- Make small batches and sell on Tindie - For bigger projects do a crowdfunding on CrowdSupply (has a rep for OSHW)

It's easy for software folks to get noticed courtesy of GitHub or building things which propagate faster than hardware (a simple script or emacs mode or atom plugin or whatever). It's much harder for a hardware guy.

Look at https://femto.io/. I think it is a small team spinning boards in relatively small batches and selling them - https://femto.io/collections/all

Also, there are a lot of makerspaces popping up in India. Showcase stuff there too. There are a lot of software guys looking to do hardware stuff.

Thanks for your comments.

Its not for me but for someone I know who was once very skilled in the art (I myself am clueless about PCB matters). Wondering if starting PCB designing again be a source of livelihood.

Anuj has some great advice below. Maybe also try contacting Anool (https://twitter.com/anool) to ask a similar question? He works with a couple different companies and is a huge supporter of the KiCad project (writes about it regularly on Hackaday and runs workshops all over the world)

Watched the hole series more or less, feel a bit suckerd when the device did not even work.

Put your wrists on something when you solder.

Long time Amphour listener.

Great work Chris! Looks awesome.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact