Hacker News new | past | comments | ask | show | jobs | submit login
Prototype to production: How to build and design a PCB prototype (particle.io)
176 points by gb9337 on March 7, 2018 | hide | past | favorite | 114 comments



If you're starting from scratch now as a hobbyist or novice PCB designer, I'd recommend KiCAD over Eagle. KiCAD is fully open-source and has now progressed to the point where it's viable.

Autodesk, on the other hand, has shown signs of crippling Eagle after they bought it, such that I have my doubts about Eagle being viable in 5 years.

If you already know Eagle, it's a tougher call, but if you have just begun learning, I think you're better off with KiCAD.


I made my first PCB in KiCAD, overall it worked pretty well for the relatively simple board I made.

I definitely recommend putting it into OpenGL mode as you get extra features like nice autorouting and a smoother framerate. Not sure why design features are tied to the rendering engine but that's just how it is for now.

I made all my parts/footprints myself in their editor. The library management is a little convoluted but all it takes is some time on Youtube tutorial videos to get the hang of things.

I like that all the kicad files are text and easily version-controlled so I can have my entire parts library and board designs in git and can easily roll back to previous iterations if needed.


I found KiCAD extremely painful to use. Parts library is a mess and the developers are extremely uninterested in listening to people. I love open source projects and want to support them - KiCAD isn't one of them.

My life has changed since I discovered DipTrace. It is free for non-commercial use and extremely cheap for commercial use - About $100 would get you enough to build small-medium sized projects. And it is just so well engineered. Kudos!

Also, no subscription business. Just good ol' perpetual licenses. DipTrace developers are just amazing people - if you ask nicely, they'll give you a discount if you're a startup.

https://diptrace.com/


As a former EE and PCB designer, you never use a vendor PCB library, especially one that shipped with your software.

From a software engineering standpoint, I realize this feels crazy, but its pretty much par for the course. Every organization develops their own libraries for parts and processes their vendors may use, and while there are standard size parts, there is enough variance that it doesn't really make sense.

"Re-implementing" the standard library is sadly par for the course.


Ofcourse, what I was referring to is the library manager itself. Finding parts (even in your own custom library) is horrible in KiCAD. UI/UX feels like it was developed my people with opposing opinions and finally mashed it all together. In any major software, you need a lead UI person that understands, listens, and responds to the community and integrates those changes in the main branch.


I agree 100%. I've used computers all my life and work in IT, and I tried hard but couldn't work out how to use it. I finally gave up even though I'm still very keen to design my own PCBs.

I was planning to design my own ergonomic keyboard. I downloaded some library files for switches, etc, but it was just so painful to even find those switches in the library, I had no idea how to do anything.

I might give it a go again sometime, but it really was so bad I just gave up and let it go, hoping it would improve somewhat in future versions.


Yeah, library managers are not good. Across the entire industry.

If you've ever had a run in with a piece of software called Ultra Librarian you'd probably think highly of KiCad :)


Agreed. I've brought a number of small to large-scale products to fruition using DipTrace. At the time I had a choice (more then several years ago now, I admit, so perhaps things had changed) KiCAD was a mess, while DipTrace just helped me get stuff done. The developers were always responsive to emails also. The cost of the license still leaves you many dollars ahead compared to other possibilities, taking into account time saved and mistakes with PCBs not made.


I'm no neutral party, and this is totally subjective, but KiCAD is way better than DipTrace.


When I tried KiCAD several years ago, I was drawn in by the extensive feature list only to find that it suffered from the same issues as Blender, another mayor open source project, it was mainly feature driven, and the UX was horrible. Enough at least for me as a hobbyist PCB layout software user to leave it be for a few years.


I'm kind of derailing here, but I strongly disagree about the Blender UX being horrible. After getting used to it, I find it one of the most usable pro tools. The command-based approach is IMO far superior than the usual approach of having tools and a toolbar you must switch. The windowing system is amazing and everything being scriptable is incredibly powerful.

I consider it somewhat similar to vim or CLI programs in general in that regard... It violates all conventions you are used to, but internally it is very consistent and well made.


I have heard all EDA UX's are horrible.


I'm just getting into PCB design as a hobby and I agree with the sentiment about KiCAD. I love open source, and I support open source, but KiCAD is a mess. I watched a half hour video they put out recently to try to understand why it's so bad, and I boil it down to these guys develop in a vacuum and they don't really understand HCI/interactive design. At all.

They understand PCB design, but they do not understand software design at all.

I wish Altium had a more accessible license for hobbyists because it's amazing. I'll have to check out DipTrace.


I wouldn't recommend either. They are both a mess.

Unfortunately there is no good open source EDA software. Sorry but it's true. Also Eagle is the biggest pile of crap I've ever used. Worse than Eclipse. If you don't believe me, download it and then try to work out how to copy and paste something.

The best free, closed source software is DesignSpark PCB. It's still a little weird (e.g. zooming warps the cursor) but it at least is fairly logical to use. You can work it out without extensive tutorials. And there aren't any limits on part numbers of PCB sizes unlike Eagle or MultiSim Blue.

Let me say it again - if you are a beginner DO NOT USE EAGLE! DO NOT USE KiCAD! Either pirate Altium, or use DesignSpark PCB.

Trust me, the difference is like "oh wow designing PCBs sure is complicated! I'm going to need to read a book and watch some tutorials or something" vs "huh this is much easier than I always thought it would be - it's basically MS Paint".


So I recently picked up kicad for some hobby project and made my first boards. I did exactly as you said "watched some tutorials" and I still think that making PCBs is easier than I thought it would be. Kicad definitely has rough edges and I have zero experience with altium but I'm still getting things done so I'm not sure your advice holds.


Well you might have thought it was impossible! Give DesignSpark PCB a go.


at this point I know kicad and all my custom parts are in kicad. maybe for my next project.


How did they cripple it?

I've been an Eagle user for years. After Autodesk bought it, the program has been hugely improved and new functionality is added several times a year. I have rarely see a mature software package develop this fast...

It's a subscription model,which I know some people don't like. But for a professional cad program it's not expensive. In the same ballpark as Photoshop. Competitors charge several orders of magnitude more.


In what way have they crippled it? Its had tons of new features since the acquisition - which is especially noticeable because it languished without updates for years prior. A lot of people are upset at the subscription model but so far I've been getting good value for my money.

Case in point they've drastically improved the horrible CAM export process in previous versions. And push and shove routing is a god send.


> push and shove routing is a god send

Agreed. KiCAD has had for 3+ years as well, though.


You have to have an active internet connection to use it. That change really irked me.


The license works offline for 14 days. It is synced every time you open Eagle. It's also very flexible, you can install it on several computers, if you use more than one.


Yes, I know, it is still a huge deal breaker for me.


Serious question: Do you travel so often and to such remote places that you find yourself offline for two weeks?


Yes, absolutely I'm frequently without Internet connection for long periods of time. Not because of travel though.


Don't know about the paid version, but the free version is limited to 80cm², or a 10×8cm area. Utterly unusable for a wide range of designs, especially if you use through hole to facilitate soldering (bigger components).


That restriction predates the Autodesk acquisition.


Well… crippled all the same. At least, it's reason enough for me to instantly lose all interest. I'll find another way.


It's free if you're a student.


And then it stops being free? I'm no longer a student anyway. Regardless, the damn thing is still proprietary. Authoring tools should not be proprietary. I want to access my data 50 years from now. Depending on a proprietary authoring tool virtually ensures I won't be able to.


How's its library management? Last time I tried Kicad it was impressively bad.

There are other options which may be of interest. Altium have one, I think it's called circuit maker, and digi-key have schemeit.

Its hard to try new things when you have access to a professional package and library. I'd really like to try something free but the motivation has been a challenge.


How's its library management? Last time I tried Kicad it was impressively bad.

Yes, KiCAD, for some reason, has a GUI for library management which is both nonstandard and confusing. The schematic symbol library manager and footprint library manager have similar GUIs but behave quite differently.

Schematic editing isn't bad, although it has the worst approach to wire junctions ever seen in a schematic editor. The dot where wires connect is an entity separate from the wires, and can be omitted or moved, with negative effects on the netlist.

Layout is OK, but, as mentioned, the footprint library isn't very good. Expect to spend time looking at manufacturer data sheets and drawing footprints to match.

There's an autorouter, but due to some political problem you have to download it from another site and rename it. The autorouter and the design rule checker don't quite agree on some tight clearances, which can be a problem.

It's open source, and widely used, so you know it's not going away.


> The schematic symbol library manager and footprint library manager have similar GUIs but behave quite differently.

Just to expand on this, KiCad is an abomination stitched together from the corpses of about six different programs. There are four different graphical editors (schematic part, schematic, pcb footprint, pcb layout) which look somewhat similar but have notably different user interface conventions for selecting, moving, copying and deleting objects, making it frustrating to switch between them. To make it even better, the PCB layout program has three different options for the "canvas" (ie. the layout area) which again have different interface conventions, and additionally some features are only available in some canvases and will simply fail to work if another canvas is selected.

These programs communicate via export/import functions instead of being properly integrated so the process to add a component to a circuit board involves five different programs and four export steps. You also can't back-annotate any changes at the PCB level back to the schematic (or at least, it's a royal pain to do so.)

Once you get your workflow going and you've pushed past the worst of the confusion, it works just well enough that it's easier to put up with the pain for now and allow your resentment to simmer than it is to figure out how to build the damn thing so you can fix it yourself.

(For comparison, I used EAGLE back in 2004 or so, and I thought it was pretty good. I'm not sure what they've done to it since then to garner such animosity.)


Here's a video I made for a Kicad workshop, and the description links to a sample project, so you can try it out and follow along. https://www.youtube.com/watch?v=XQMEROD6Vzc


For me, doing little blinky things and other small projects, the library management was "good enough for me to not notice", but I've also never used Altium.

I didn't like my first install as it required me to be on the internet for library parts. On a later install I found the option to have them locally and that works better for doing layouts on airplane trips.

I tried Eagle a few years ago enough to make a couple designs, but never got proficient at it, just "passable". I found KiCAD easier than Eagle, but it was also several years later and my second such package, so I'm sure just being deeper in the hobby was a big part of that ease.


Depends what you're used to. The library management is still split between footprint and symbol (more like old Protel) with links made between the two using an external tool. IMO the PCB layout makes up for the extra messing around (when compared to Eagle's, which is the worst I've used).


> ...digi-key have schemeit.

Last time I checked, Scheme-it was basic web-based schematic capture, not layout.


I did just that last year and don't regret it. KiCAD components and footprints are quite messy, but they promise to fix that in the upcoming version 5.

They're backed by CERN [1] (who fund actual people working on the project) and, as I'm happy to realize now, my own University of Grenoble :)

So the project is here to stay, and I really enjoyed learning how to use it.

[1] http://kicad-pcb.org/about/kicad/


and don't forget about gEDA. gEDA was around long before KiCAD, so I have a signifcant investment in libraries, etc. I haven't used KiCAD so can't compare them. Just Pointing out that there are two open source alternatives.


There are in fact at least two more - librepcb and horizon, though the latter two are not complete yet, they are quite exciting and show much promise


Out of interest, what do you think Autodesk have crippled in Eagle? I know some people aren't happy with the pricing, but functionality-wise it seems as or more usable to me.


It has a phone-home feature that is required, even for the free-as-in-beer version. This means that you can't trust that you'll have access to the software N years down the road for a board revision or respin if needed (maybe due to a part superseded or obsoleted or a v2 design change). You're entirely dependent on the generosity, business plans, and business success of Autodesk. If they shut the server or eliminate the free plan, you're SOL as even an archived VM won't help you.

To me, that's a deal breaker for what amounts to a code/IP editor, especially if you haven't yet invested the time to become proficient. If you have, you face perhaps a tougher choice.


Hardware folks are generally underpaid, FWIW. I had an idea and was able to get an almost genius level HW guy to do the grunt work for $75/hour, and he seemed thrilled with the comp level. He worked for a very recognizable brand name, but did side work for peanuts. I wasn't lowballing either. I bumped his intitial offer by 50% just to make sure I had his attention.

His design worked out of the box with no issues, and he even had solid advice on dealing with the end Chinese PCB suppliers.

I'd advise hiring an expert because they generally aren't priced the same as software experts. I'm pretty sure I'd have spent a lot more fumbling around trying to do it myself.

Kind of a shame really. It's arguably a harder skill to master these days.


I've observed the same thing regarding EE and embedded software compensation vs. pure software pay. Big difference, and very unfair feeling when you look at the skill involved with being an EE.

I'd argue that maybe EE's aren't underpaid on an absolute scale, but that software has completely different market conditions and rather, it's software people who are doing uniquely great.


+1

Back when was re-evaluating where I wanted to go with my career(post-gamedev burnout) I briefly considered getting an BS in EE and getting a hardware job since it's an area that interests me. Did a bunch of research and found similar things.

I think it largely boils down to a couple factors:

1. Everything in hardware has to be spec'd to the teeth since re-spin of HW/Masks can easily run into the 7-figures. That means there's very little flexibility and opportunity for the "10x" EE to manifest.

2. Since everything is still heavily spec'd you get a lot of "replaceable cog in the machine effect".

3. A lot(but not all) HW is really removed from the end customer so you aren't as deeply tied with the business side of things which hurts visibility/etc.

4. Software is just more flexible which means you have a much easier opportunity to be "full stack" and not get pigeon-holed to a specific technology.

At the end of the day I scratch the hardware itch in my spare time and I still find SW a ton of fun. Plus there's a ton of value in being a software dev that can speak/understand hardware language and fit it into the larger picture.


It does feel like a bit of a weird bubble. I had one unique/rare skill (financial trading + network+ it security, basically Kerberos skills) that let me bill out at $350/hour for a short while. I was somewhat embarrassed, though grateful, about the whole thing.

And I completely got that people smarter than me were billing at 5x lower rates for harder work.


The bigger thing, at least among my friend group, is that some people will take a pay cut to work on something interesting/avoid doing CRUD work/etc. I feel like that's the most common reason a EE is willing to accept lower pay, though I've also generally felt that the bulk of EE jobs were in lower cost areas than the Bay or NYC, so it would be interesting to see a breakdown of EE salary by location and compare that to pure software.


I looked at freelancer.com for the first time yesterday. I was shocked at the lowest bid prices for hardware jobs. Though many of these are from overseas. Makes me think again about working for myself. I’m billed out at close to $400/Hr, and maybe take home about $60 of that.


How do you go about finding a good HW guy for a side-project?

Asking because our analog layout guy with decades of experience really needs help with the discrete parts.

Nothing fancy just some rotary encoder work.

This is the kind of stuff I remember doing in my FPGA class a long time ago but I figure I'd be fumbling around in a real hardware land since I usually do embedded software.

There must be gotchas that an expert would know in a real hardware that are not present in a simulation.


I just happened to "know a guy that knew a guy". Places like upwork seem too much of a crapshoot.

People with those talents should congregate on some webaite. They could easily get side work that pays better then their day job. Since PCB's are dirt cheap these days, it feels like there's a missing marketplace.


Any idea where one could find such experts? And good on you for bumping his initial offer.



Thanks


Really cool! I wish more universities included this sort of training during their undergraduate ECE programs.

Also worth noting (didn't see this mentioned in the article, and maybe this is obvious...), it is usually wise to make your prototype on a breadboard/perfboard first, before ever printing a run of PCBs. This is especially true if your board is interacting with other parts of a system (E.G. you are building a power board for a robot). This let's you get a proof a concept working right away, and helps ensure no unexpected integration problems crop up that might call for a redesign.


Making a breadboard prototype used to be common practice, but with a lot of new technology it's often not possible anymore. High frequencies requires small tolerances. Luckily, getting a pcb prototype made, isn't as expensive as it used to be.


Not to mention that most interesting parts just don't come in through-hole packages, and the time it takes to wire up anything even remotely complicated. Yes, there are some prototyping boards that have various SMD package footprints, but PCBs fabrication is generally cheap and fast enough now that it's not really worth the time anyway if you're reasonably sure everything works in theory.


If you have a similar board you might make changes to it, or you might wire together some breakout boards. But in my professional experience, it's rare for anyone to use breadboards or perfboard, especially in the last decade or so since SMT became standard and PCBs became so quick and cheap.


I would recommend you find your enclosure before you even start the PCB and design the PCB with all the correct sizes, screw holes and cutouts. This might be useful http://rodyne.com/?p=415 (re-using existing cases for your design)


For runs of maybe 5-10+ boards, SLS 3D printing is pretty competitive because you can design everything to fit exactly. The setup cost tends to be high (minimum order of £40/$50), but individually a small printed enclosure will cost the same or less than a box from Hammond or the like. Certainly compared to the cost of customising a name-brand enclosure (short run), it's a no brainer, and you can add awkward structural elements that simply aren't possible even with CNC machining.

Once you get a bit bigger (physical volume), the cost becomes prohibitive and you can look at etruded aluminium. If you're clever you can design a PCB to act as end panels. 3D printing is also a nice stepping stone before getting a machined enclosure made - saves a lot of cash if you find you've missed something.

And yes - too easy to forget things like standoff holes, or where a connector is going to be mounted. I suspect because it's annoying having to double your board area so you can fit an M3 clearance hole/keepout. Cheaper to not bother. If you go with 3D printing you can do things like add slots and slide your board in.


One of the biggest benefit of using 3d-printing initially is adopting an CAD-first workflow, with 3d-model of PCB (incl connectors etc) is put into the assembly model. This allows to ensure that mounting solution and button/connectors placement is thought about from the start and handle the inevitable changes to either enclosure and PCB.


Dangerous Prototypes offer SLA printing for $0.95/gram. They also do very cheap laser-cut acrylic panels.

http://dangerousprototypes.com/store/print3d


That's not bad for SLA (we have a Form1+ at work and I would happily pay someone else to deal with the mess it makes), but it works out to be very expensive for even moderately sized parts. You can get 10-20c/cm3 of SLS nowadays and the tolerance is great.


There's something to be said for that. You can get aluminum or plastic extruded cases to which you add your own custom end plates to fit your switches and connectors. End plates can be made on a laser cutter, or outsourced to companies such as Front Panel Express.

Too many hobbyist boards end up with connectors on all four edges, making it very difficult to package the board.


I'd second this: the case tends to be a bigger constraint than the board (which you can modify at the design stage). Even when you are fabricating the case, the manufacturing constraints are usually more difficult.

Although sometimes you may want to get the pcb working before worrying about the particulars of the case if there are a lot of unknowns in the design.


FWIW, PCBShopper[1] is a convenient web service for querying several popular PCB fab houses based on your design requirements. iTead Studio[2] has been my go-to fab house for personal 2/4-layer and simple flex designs, mostly because they haven't fail me in 5+ years.

[1] https://pcbshopper.com/

[2] https://www.itead.cc/open-pcb/pcb-prototyping.html


Is there free software to create and simulate virtual populated PCBs? Fritzing allows creation, but it doesn't simulate the board.

For simulation one needs the exact behaviour of all parts. That excludes board with parts that have a closed design, or insufficient documentation. But for many parts, and hopefully soon with CPU-ICs thanks to RISC-V, we can do simulation.

I don't expect real-time simulation, but at least a solution for letting the machine compute over night to see if the board successfully does X.

Any suggestions? Is this a problem waiting for a solution?


You can do SPICE simulation with pretty much any CAD. I'm pretty sure that Eagle can do that.

Edit: not sure why I got drive by downvotes.

https://www.autodesk.com/products/eagle/blog/spice-simulatio...

Edit2: for KiCAD http://mithatkonar.com/wiki/doku.php/kicad/kicad_spice_quick...


I'd like to for example create a PCB with some sensors, LEDs, and a microcontroller, specify the sensor input over time and the software on the microcontroller, and let the computer figure out the behaviour of that system, so it can tell me state of the system (i.e. what LEDs are on, or what values are in the registers of the microcontroller?) at a given time. For performance reasons, that would require both low-level simulation (electrics) and high-level simulation (software on the microcontroller) simultaneously in a compatible way. Can SPICE do that?


SPICE can do a lot, but you're asking a LOT. Modelling internal states of a micro is generally a different package than the mainly analog simulation that SPICE does. It is rare for them to be tied together.

Practically speaking, your interface ought to be separate enough that you can define the range of states the micro's inputs should see, and the range of outputs it should drive, and separate the two. There are times when I've wished for a combined simulation but it wasn't worth the hassle to set it up. Honestly for the accuracy I expect I usually prefer to just build the thing rather than simulate it.

LEDs are really boring to model anyway.


I also think that I ask for a lot. And I know that simulation is hard, error-prone, and often more expensive than just buillding the real system. However, building the system does not always give the insight that a simulation can give, and it's sometimes prohibitively expensive. More specifically, I already had built the system, but I couldn't get the information out of it without disturbing it too much. That's why I wanted to simulate it.


A full logic simulation of a processor can be done from VHDL or Verilog code in software, but cycle accurate simulations are many, many orders of magnitude slower than a real IC.

You can set up testbench code that feeds in data and stuff, and link different stuff together digitally. I don't know if there's much in the way of analogue simulators like SPICE hooked up to logic simulators though.

The next level down is to run it up on an FPGA, which is only a few orders of magnitude slower than you can clock an IC.


Combined software/MCU and circuit simulation is, as far as I know, not really existing in the FOSS world. I would loove to be proven wrong on this. Several times I've considered building my own...


I'm thinking about what would be necessary for it. It seems doable to me. First, one would need to separate the simulation into different domains, define interfaces between them, and then figure out appropiate time stepping for the simulation so the domains are properly coordinated. Depending on how low-level the simulation needs to be, getting the needed data for the parts might be problematic. However, when that data isn't available, then maybe the simulation can just randomly create plausible values, and do the simulation for these values. In reality, every part has slight variations so every board is unique too, when inspected closely enough.

There is also a lot of merit in a simulation even if it can't go very deep, say, considering quantum mechanical effects inside the IC's. That may be practically impossible due to unknown data, or just give impractical performance. But there are a lot of use-cases that don't need that level of detail.

What level of detail is realistically possible? If we know that a certain level of detail is too slow to simulate, then writing a simulator for a higher level is easier and we need less data for the models.


I would be fine with even needing to modify the MCU code to use the simulator APIs in the Hardware Abstraction Layer - then no MCU emulation needed at all. So then essentially this needs to push/pull data in from the SPICE domain for the circuit simulation part. It should be possible to reuse an exiting simulator there, hopefully.


It seems I need pspice to use any of the vendor models though (or LTSpice if I stick to LT only parts).


Instructions for adding a 3rd party model to LTSpice

http://www.linear.com/solutions/4678


I don't know if it's generally that useful (in my experience). There are usually too many things one doesn't know: Many parts don't have models, or the right kind of models, and it can take more time and effort than it's worth to set up the simulation.

Simulation is usually more useful when you have very specific questions about small parts of your circuit. Questions like will the oscillator start up under the full temperature range, or what's the phase margin of my analog front end.

Big exception to this is FPGAs and other programmable logic where a major portion of one's time is spent specifying, simulating, and verifying a design in software. This can also include software/hardware co-simulation. But the toolchain for doing this is usually furnished by the silicon vendor.

Another place simulation pops up more often is in power supply design and RF parts. TI, LT and other vendors have specialty software and wizards to simulate common designs. This is basically an extension of reference designs and demo boards.


Proteus (https://www.labcenter.com/simulation/) can do this, but it's not free. It's really great though, you just draw out your circuit, load in your compiled firmware and it will simulate it all.


What's the best option for PCB CAD on Mac?

Last time I checked, the most popular options didn't even support HiDPI mode. E.g. KiCAD on Mac feels very "out of place", e.g. two fingers control zooming instead of scrolling (panning), not to mention other usability issues / general unpolishness.

I've tried https://circuits.io (Autodesk Circuits web app) and it's surprisingly good (for a beginner, at least).


FYI, touchpad panning was enabled a year or 2 ago, but you have to turn it on in the preferences. As well, I strongly suggest switching to OpenGL rendering. With those 2 changes Kicad on Mac went from barely usable to outright pleasant (still not a huge fan of their library management though).


Second the KiCad recommendation. The UI is super clunky but the functionality is all there, and the push-pull router is great.


kicad on the mac does support hidpi mode in the development version (though it has some rendering performance issues that people are currently working on). I recommend you try out kicad 5.x when it comes out (hopefully in a few weeks, or nightly versions that are available now)


I suppose this is only the first article, but before you commit components to a manufactured board, I recommend you do a schematic layout and then a wire-wrapped or bread-boarded version first. Manufacturing takes time, and can be costly in mostly time if you make a mistake.

I made a few PCB's using http://aisler.net/ which seem fine for prototype manufacturing. They can also make the laser-cut stencil for SMD component mounting. You can upload Eagle BRD files directly (my experience with KiCAD and Fritzing was a lot less than stellar). Cost was around nine euros for three small PCB's and another nine for the stencil and took about a week to be delivered.


This rather depends on what you're doing - anything which relies on controlled impedance or high-speed digital is a pain in wire-wrap and even more so on a breadboard. If you can stand the delay a PCB can be a cheap and reliable way of getting started. If you leave enough space that you can green-wire over PCB errors you can have the best of both worlds.


Is this the same as oshpark?


OSHPark also allow you to upload Eagle BRD files, but based in the US. I think it's a separate company.


He speaks a little bit about RoHS compliance... If you plan to make a real product, make sure you work with somebody that has done that before. Having certification can be tricky as soon as you start having high-frequency components, and it's always the case today...


Are you confusing RoHS (reduction of hazardous substances) and EMI/EMC (part of CE certification)?


Solid PCB design article. However, I want to come out and state clearly what they seem to be just implying: talk to your PCB vendor and your assembly house before you pull the trigger on a prototype!

You have two great resources on designing for manufacturing/test right at your fingertips. Building electronics is what these houses do every day, and they possess an immense amount of knowledge about it. Give them the chance to review your designs so you don't make dumb, expensive mistakes!


I've been designing PCBs for guitar amps and pedals for the last year or so and I highly recommend OSHPark for fabricating PCBs. It's not the cheapest, but the quality is great and it's still quite affordable. Mainly, though, it's the ease of use of their ordering system that makes me recommend it so highly.


> (when in doubt about any particular UI solution, check how it has been done in a certain proprietary app that is very popular among OSHW folks and do exactly opposite).

This is currently listed on the CERN roadmap for KiCad. Given all the complaints about the UX here I thought it might be relevant.


Thanks for linking this. I had a pretty tough time getting quotes on a custom PCB a few months ago. If I'd had this article ahead of time, everything would have made quite a bit more sense!


I once wanted to make a custom PCB for my mechanical keyboard layout. I was so frustrated and disheartened by how difficult it was and all the pitfalls that could occur I decided to just stick to hand wiring.

I’d love to be able to just hire someone to make me a custom PCB the way someone would hire a developer to write an app, but unfortunately it seems there is no market for this.


You just need to find the right community. I'd start with forum.eevblog.com and see if someone is interested in the freelance work. If you want the full design and by-hand prototyping, it's a fair bit more work than you might think (so $$$), especially if you're used to getting moderately complex mass produced electronics for $50. Add two zeroes.

Then, if you want a change, it's pretty near that same full amount of effort/cost again for the second assembled prototype.

Have a look at this custom keyboard PCB tutorial perhaps and see if you want to tackle all or part of it yourself: https://news.ycombinator.com/item?id=13406772

I've also got a friend who does that as part of his company's offerings. Not sure how busy he is or if he wants to do a small one-off (he mostly serves product and engineering companies), but you could have a look at: https://www.ciholas.com/ourservices/ (I have no financial interest and he's a good acquaintance or distant friend, so use him or not; I don't care... :) )


I've seen scripts that can take a keyboard layout from http://www.keyboard-layout-editor.com/ and turn it into a PCB, how realistic is it to get a working PCB generated by code?


For a constrained problem like that, it's certainly possible for someone to have fully automated the PCB design. (I think it's unlikely to be commercially viable to create that automation, but there's a lot of excellent hobbyist work out there.)

There's still a time-intensive series of steps for one-off production from "finished PCB gerbers" to "finished PCB with all components installed, all mechanical holes in exactly the right place, microcontroller firmware written and programmed, and the whole thing tested".

If the scripts exist, there's probably forum discussions about people's experiences trying that path.


I know at least one example where someone made something like this before (http://kalerator.clueboard.co/), but I have no idea if what I'm looking at is viable or how to evaluate it.

I would love a solution where I could simply have a PCB made based on parameters but I guess it's not happening any time soon. Still requires specialized knowledge.


I poked around some web searching, and it seems viable. From what I read, it does schematic and layout, using Eagle (which means you need the paid version of Eagle if your board is over 10cm in either direction). It doesn't do column wiring [based on a web post, not first-hand experience], but it gets close enough that you could probably finish by hand or with help on a forum or reddit. There were a few posts where people proposed porting it to produce KiCAD or other EDA tool output, but I didn't readily find any "I'm finished; here it is" posts along those development lines.

You still need to buy the parts and solder everything up, but for one-off, that's mostly a bit tedium, so this seems doable if you're somewhat dedicated and the type to find a way around or over small obstacles. The microcontroller and firmware for something constrained like this is almost assuredly a solved problem, so I wouldn't worry much about that [though it's something you need to chase down, of course].

But you're right, there's still enough specialized knowledge that there's no real "thingiverse equivalent" (of similar community size) for PCBs.


There is market for sure for this. The question is if you are ready pay the price. I assume, you need huge size 2 layer pcb with components on one side only with wide tracks. Aligning all these buttons would take a day (5 minutes*105). It would take another day to create footprints and prepare components. Another half day to sort things with MCU and at least half day for communication overhead with client. And a day of communication with different pcb manufacturers/assembly houses. A week for a very simple project. If something is not clear with MCU, add second week. Hardware cycles are very different than software. One can write plenty of code in 2 weeks and ship it. In hardware world 2 weeks is a short warm-up phase.


> Aligning all these buttons would take a day (5 minutes*105).

Surely you could have a group of switches together and copy/paste?


There is a market of freelancers who do this, but the cost is probably not what you are expecting from the software market.


I have a small prototype I need to get from a schematic stage (needs additional checking & decoupling caps, etc added) to a few PCBs - I was thinking of hiring someone to do the PCB layout. forum.eevblog.com was mentioned above, there are hardware designers on upwork - anywhere else I should look?


I do this - my email is in my profile, or poke me on IRC and we'll talk.


Same - I still do it from time to time. The EEVBlog forums have ended up as the main discussion area for professionals and small-time operators/hobbyists.

Do realize that keyboard-sized PCBs will be expensive in single quantities past the design stage as well.


What is the cost?


If you need only small number of simplest type 1-2 sided PCB's you can just use CNC milling machine to carve the layout and drill the holes.


Why? You code get 10 higher quality boards for $20 from China.


Cause its annoying to wait 4 weeks each time to find out what you did wrong...


You can get boards in a week if you pay a little extra for shipping via a courier. Even by regular mail, you're more likely to wait two weeks than four. It's difficult to imagine circumstances where 'just' using a CNC machine would be a more practical option.


Yes, a week delivered is doable for 50-ish USD. But it still takes 2 weeks for 2 revisions. With a CNC I can do 2 revisions in 3 days, incl 1 day waiting for parts.


What's your setup for doing this? You need quite a bit more than just a CNC to make PCBs. Making even a basic two-sided board with vias and soldermask is a pretty complex process. If you can get by with a single-sided board with no soldermask, then you can probably get by without using a PCB at all, at the prototyping stage.


if you want to get dirty with pcb making for mechanical keyboards, there's the #kb-design channel on /r/mechanicalkeyboard's discord for you to ask around. start here to learn a bit more: https://kbwiki.ai03.me/


Hey! I do this kind of thing, and there definitely is a market for it.


Do you have good mechanical drawings of the housing and switches?




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

Search: