It's incredible how cheap it is to get custom PCBs made at prototype scale these days, even ones with advanced features. It feels like we're living in a golden era of custom manufacturing.
It is unfortunate hope local companies like OSH Park get love too. The marketing of companies like JLC or pcbway whenever I post a hardware project on a website like Hackaday or Hackster always reach out to me to use em. Not that it would matter so many big makers on YT use em.
OshPark's quality is high, but their prices are certainly higher too. Good to support them though if you live in the States, since that's where they manufacture the boards.
That's kind of the problem though. jlc/pcbway aren't just "cheaper", for anything 2 or 4 layer that doesn't require special coatings, thickness, or finish such as gold fingers, it's just so cheap and fast that it makes no financial sense to buy locally. You'd pay several hundred percents more to get the boards maybe 1-2 business days earlier.
In addition, china is where all the world's pcbs are made, even for commercial stuff, it's not unreasonable to expect them to deliver higher and more consistent quality than home fabs.
The gap only begins to slightly close at more complex boards, but not that much.
To throw another in the mix, SendCutSend has consistently been a reliable and affordable option for 2D cut parts. They recently added CNC machining offerings, though I can't speak to their affordability on that.
Overseas will almost always win on price (at least in small quantities), but it's hard to beat the turnaround from local manufacturers...
I was actually very surprised myself. As I mentioned in the post, I don't do that type of work so it's all new to me. This got me also interested in CAD. You can design parts and don't need to own the 3d printer, could just get parts manufactured online.
Yeah, and since it seems there's some competition there, the prices are decent. You can get milled metal, 3D prints, populated PCBs... crazy what you can do now and how quickly it can be turned around, if you are willing to pay.
I wish there were more regional places like PCBWay and JLCPCB in US, EU, etc (with similar pricing) so shipping didn't require circumnavigating the globe.
EU has Aisler but what you win in shipping times you lose in production lead time (unless you pay for faster service).
And there are probably others but with even less visibility / willingness to interact with private customers. Hell, I used to live next door to a sales office for a local PCB fab, but they never bothered to answer my inquiry about prototypes.
(That's another thing the proto-friendly companies do right: instant quotes without log-in requirement)
JLCPCB is often the manufacturer of choice with DIY PCBs, and the reputation is well deserved. I recommend them as well, have never had an issue with what they've made. It's a bit pricier for a one-off board given the MOC, so it's preferable to do some sort of group buy if you can.
Slight tangent: a long time ago when I was into this hobby, Oshpark was usually the go-to instead of JLCPCB. What happened to them? Macrofab too if anyone's used them.
I don't think anything necessarily happened to OSHPark so much as JLC became the default for a lot of people. I find the defining factor is just consistency mixed with capabilities. Even if one could conceivably get a specific PCB stackup quicker from a US company, being able to order basically any type of PCB (and increasingly more than just PCBs) from a single vendor is a pretty significant value-add.
There are US shops like Advanced Circuits that can turn boards around extremely quickly, but obviously you are paying for that speed. Most people ordering a handful of boards for a hobby project, or prototype are probably optimizing more for cost and consistency than shaving a few days off the lead time.
Once someone finds a vendor where they know the quality will meet whatever their own subjective minimum is, there's not much incentive to shop around. Being able to tack on assembly at JLC with a single checkbox also exponentially increases the desire to just stick with that vendor.
Simple: jlcpcb can deliver you 10 boards for anything a hobbyist will likely need for 10$ including shipping, and it ships in 24 hours. Oshpark cannot compete with that.
Wow, very very similar to my first PCB, a breakout board for the TSL4531. I ordered it from OshPark back in 2016. Used the exact same soldering iron, and a Quick hot air station, though it's the less fancy one than you have.
From there on I've made various PCBs, and thankfully they've pretty much all worked on the first try. I do take a lot of extra time to verify the design and double check all the datasheets.
I work on software and a bit of hardware for my job, at tonari. It's basically a low latency video "portal" to connect spaces. My most recent hardware project was to add an OLED display + rotary encoder dial to the product. That was a fun project, and it turned out great! It was also my first time doing a 4 layer board and having to worry at least a little bit about EMI and all that. All my previous stuff has been lower speed 2 layer stuff, like a custom mechanical keyboard.
OK, so people are ordering a custom PCB from China for a one-off? Whatever happened to making them at home? I remember my brothers doing this in the bathroom sink with a board coated with copper¹, some special markers to draw the circuit on the board and chemicals to wash off the extra copper. I’m guessing they might have used our dad’s electric drill to put some holes in the board as well, but looking at the article, this doesn’t seem like an order from China need.
⸻
1. Some details may be incorrect as I was 10, this was the late 70s and I only saw the results, not the process.
In addition to what others said, home-etched PCBs are just much lower quality. We're no longer living in a world where every component has leads on a 2.54 mm grid, so tolerances matter a lot more. Also, SMD means you really need vias and a solder mask.
The problem isn't that people outsource it, it's that they need to outsource to China. That's an abject failure of domestic PCB manufacturers who simply don't want to deal with retail customers.
What happened is that you can get a set of 5 custom PCBs for about $2. The quality is much higher and you don't have to deal with nasty chemicals. I'll never manually etch a board ever again if I can help it.
Buying custom PCBs from China makes sense if you're interested in making electronics. It was more than a decade ago that the equation shifted to the point that making them at home has only made sense if you're interested in the process of making PCBs themselves.
Things like soldermask, multiple layer stackups and plated holes and vias are standard on dirt-cheap Chinese boards but are challenging and time-consuming to do at home.
I used to do this at home. Either thermal transfer or also used a flat bed plotter with an adapter for a Staedler permanent market to draw directly on the PCB. Fun times. Ferric Choride IIRC for etching or you could also use hydrogen peroxide which was much slower...
And yes drill through holes.
Ofcourse only good for two sided (layers) boards at the most.
Nice board, looking forward to seeing your next one. A little feedback, helpful I hope:
A "via" is basically just a wire stuck right through the whole board top-to-bottom. (Okay, it's not really a wire. They drill a hole and then chemically grow a layer of copper that fills the hole.) You can connect the copper pattern on any layer(s) to that "wire", so it's often used to route a signal from one layer to the other. But you already have a real wire going through the board: the GND header pin! So no via is necessary; just connect directly to that pin on each layer (kicad probably did this for you automatically). This trick works with all thru-hole pins.
For RF or high-current applications, sometimes you cover a board with a grid of vias, just making redundant connections between the planes all over the place, "stitching" them together. But careful, add too many vias and the PCB shop will bill you extra.
Putting a GND pour on the top layer is a good idea. It's lower-impedance than individual skinny traces, and takes less/zero effort to route. The GND trace you manually routed isn't necessary; you can see by the transparent-red shape that kicad already has copper there. However, you ended up with a little "island" of dead copper between R2 and C2, which is the real reason you needed the via.
A better approach would be to use the bottom layer for +3.3V power instead of a redundant ground pour. This gets rid of the +3.3V traces (BTW, best to use a single, thicker one instead of 2x side-by-side) and unifies the island into the ground pour. Even though this is a micro-power application, playing the traveling-salesman game with long scraggly power traces is never a good idea. You would still need vias to connect each top-layer +3.3V SMD pad to the bottom-layer power plane, but the signal-integrity benefits of a plane make this worth it. Maybe the absolute best is an uninterrupted GND plane on the bottom and a +3.3V pour on the top.
Putting SMDs on the bottom side makes the board cost more, so good call leaving them all on top, but putting traces on the bottom layer is free. So you can even move signal traces between layers to avoid cutting up your planes too much. It's "fun" with big complex boards, like untying a giant knot...
You are very miserly with your +3.3V global net symbols in the schematic! You can place as many as you want to optimize the schematic's readability. Especially near the CSB pin, the 4-way solder dot looks like some intermediate signal in a voltage divider, but it's actually just +3.3V. Same suggestion with GND -- basically, it's more informative to read "this pin is GND, and this pin is GND" than "these two pins are connected, I wonder what they're doing...oh, it's all GND".
Pull-up resistors are usually oriented vertically, too, so they graphically pull "up"!
Anyway...I hope you don't mind all my constructive criticism. It's nice to see something on HN I know about!
This is great! Thanks for the detailed write up and suggestions to improve. Like I said, this is my first time doing it and I have no background in EE or PCB design. If I make something else I'll give your suggestions a try.
I've been trying to make a PCB but it's just so annoying having to sift through pages and pages of listings in order to find each individual tiny component without minimum order quantities of hundreds or more. The process of finding each component is so tedious that I gave up. (I was using EasyEDA hoping it would be easy to find components I could actually order -- nope)
What kind of part? I use Octopart for a lot of things, like ICs (sometimes some variants are available in low quantities but others aren't and only in thousands).
For stuff like passives it's usually easier to use Digi-Key or Mouser and you can filter by MOQ so you only see things that are available individually.
the most annoying was stuff like resistors or capacitors. They tended to have huge minimum order quantities, there were hundreds of results for any kind of query and most of them were always out of stock. I wanted to stick to JLCPCB's platform so that I could order the boards pre-populated, but I didn't want to be stuck ordering far more components than the board actually needs.
I always feel anger or something when I see some YouTuber say they easily made a board and ordered it pre-assembled from JLCPCB. They make it sound like it's so painless, but for me it's mostly searching through part listings trying to find one without a minimum order quantity of like 100, because there are no filters or sorts for that
DigiKey used to be a good place to get. Also design for parts you can get... In the old days you could also get samples from chip companies if you asked nicely. No idea if anyone still does that.
In addition, china is where all the world's pcbs are made, even for commercial stuff, it's not unreasonable to expect them to deliver higher and more consistent quality than home fabs.
The gap only begins to slightly close at more complex boards, but not that much.
Overseas will almost always win on price (at least in small quantities), but it's hard to beat the turnaround from local manufacturers...
I wish there were more regional places like PCBWay and JLCPCB in US, EU, etc (with similar pricing) so shipping didn't require circumnavigating the globe.
And there are probably others but with even less visibility / willingness to interact with private customers. Hell, I used to live next door to a sales office for a local PCB fab, but they never bothered to answer my inquiry about prototypes.
(That's another thing the proto-friendly companies do right: instant quotes without log-in requirement)
There are US shops like Advanced Circuits that can turn boards around extremely quickly, but obviously you are paying for that speed. Most people ordering a handful of boards for a hobby project, or prototype are probably optimizing more for cost and consistency than shaving a few days off the lead time.
Once someone finds a vendor where they know the quality will meet whatever their own subjective minimum is, there's not much incentive to shop around. Being able to tack on assembly at JLC with a single checkbox also exponentially increases the desire to just stick with that vendor.
https://github.com/bschwind/tsl4531-module
https://imgur.com/ozk7UuS
(sorry for imgur, not sure what people use for image hosts these days)
I then went on to also make a BME280 breakout:
https://github.com/bschwind/bme280-module
From there on I've made various PCBs, and thankfully they've pretty much all worked on the first try. I do take a lot of extra time to verify the design and double check all the datasheets.
⸻
1. Some details may be incorrect as I was 10, this was the late 70s and I only saw the results, not the process.
The problem isn't that people outsource it, it's that they need to outsource to China. That's an abject failure of domestic PCB manufacturers who simply don't want to deal with retail customers.
Things like soldermask, multiple layer stackups and plated holes and vias are standard on dirt-cheap Chinese boards but are challenging and time-consuming to do at home.
And yes drill through holes.
Ofcourse only good for two sided (layers) boards at the most.
A "via" is basically just a wire stuck right through the whole board top-to-bottom. (Okay, it's not really a wire. They drill a hole and then chemically grow a layer of copper that fills the hole.) You can connect the copper pattern on any layer(s) to that "wire", so it's often used to route a signal from one layer to the other. But you already have a real wire going through the board: the GND header pin! So no via is necessary; just connect directly to that pin on each layer (kicad probably did this for you automatically). This trick works with all thru-hole pins.
For RF or high-current applications, sometimes you cover a board with a grid of vias, just making redundant connections between the planes all over the place, "stitching" them together. But careful, add too many vias and the PCB shop will bill you extra.
Putting a GND pour on the top layer is a good idea. It's lower-impedance than individual skinny traces, and takes less/zero effort to route. The GND trace you manually routed isn't necessary; you can see by the transparent-red shape that kicad already has copper there. However, you ended up with a little "island" of dead copper between R2 and C2, which is the real reason you needed the via.
A better approach would be to use the bottom layer for +3.3V power instead of a redundant ground pour. This gets rid of the +3.3V traces (BTW, best to use a single, thicker one instead of 2x side-by-side) and unifies the island into the ground pour. Even though this is a micro-power application, playing the traveling-salesman game with long scraggly power traces is never a good idea. You would still need vias to connect each top-layer +3.3V SMD pad to the bottom-layer power plane, but the signal-integrity benefits of a plane make this worth it. Maybe the absolute best is an uninterrupted GND plane on the bottom and a +3.3V pour on the top.
Putting SMDs on the bottom side makes the board cost more, so good call leaving them all on top, but putting traces on the bottom layer is free. So you can even move signal traces between layers to avoid cutting up your planes too much. It's "fun" with big complex boards, like untying a giant knot...
You are very miserly with your +3.3V global net symbols in the schematic! You can place as many as you want to optimize the schematic's readability. Especially near the CSB pin, the 4-way solder dot looks like some intermediate signal in a voltage divider, but it's actually just +3.3V. Same suggestion with GND -- basically, it's more informative to read "this pin is GND, and this pin is GND" than "these two pins are connected, I wonder what they're doing...oh, it's all GND".
Pull-up resistors are usually oriented vertically, too, so they graphically pull "up"!
Anyway...I hope you don't mind all my constructive criticism. It's nice to see something on HN I know about!
For stuff like passives it's usually easier to use Digi-Key or Mouser and you can filter by MOQ so you only see things that are available individually.
I always feel anger or something when I see some YouTuber say they easily made a board and ordered it pre-assembled from JLCPCB. They make it sound like it's so painless, but for me it's mostly searching through part listings trying to find one without a minimum order quantity of like 100, because there are no filters or sorts for that
What's annoying for me is Digikey and friends insisting on only delivering with express carrier. I'd like to have a cheaper, slower option.
(not that I use it since they don't deliver to our loading dock)