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.
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.
https://github.com/bschwind/tsl4531-module
(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.
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.
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!
PCBs are very neat, but that shipping time is a boomer when you are prototyping and you really don’t know what you are doing.
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)
[dead]
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.