227 points by Hanqaqa 18 hours ago | 11 comments
simojo 16 hours ago
Recently, I made an Arduino UNO that I showed to have better switching characteristics than a commercial board. It was a great project to help me understand how seemingly inconsequential routing practices can lead to issues down the line.

http://www.simonjjones.com/#/posts/golden-arduino

bschwindHN 7 hours ago
You should be able to improve it further with a 4 layer board, as you can have the signal lines closer to their reference planes, and can more easily avoid signals crossing each other and breaking reference planes.
achr2 15 hours ago
I enjoyed your post - PCB routing is often an act of 'zen and the art of..' for me and I recently did a similar exercise for an esp32.
Liftyee 14 hours ago
Neat project. These popular "commodity" devboard designs have been remixed and copied so much that it was just missing an open-source design to slot into many existing projects. I can imagine designing a board using one of these designs as a "template" but adding whatever capabilities I need, then knowing it fits a standard footprint.
14 hours ago
hathawsh 15 hours ago
This is an amazing resource. It was difficult to appreciate what this resource was for until I tried to create my own boards based on an ESP32. It's not really difficult to build around ESP32, it's just that I don't know what I don't know. With starting points like these, I can start with a lot more confidence. Thank you!
hattmall 15 hours ago
Does this help you build a custom PCB that you would send to a factory or like just design and simulate something you could build on your own? Or both / neither? I'm not fully understanding what this project does, could you offer insight?
numpad0 14 hours ago
This is File -> New Project... -> New Hello World Project. The New Project button in hardware engineering tools often don't have the trailing 3 dots.

I think most low-end projects done in KiCad are not tested beyond making sure there's no red squiggly underlines at a glance. You are your own F5 key and assembler/runtime crash reporter. Proper circuit verification through software simulation isn't needed for most digital designs unless you do your own wireless antenna, analog amps, and/or DRAM/PCIe/GbE/etc.

kreelman 8 hours ago
I like the "File -> New Project" analogy.

I guess in theory, the original question is whether this project allows a board to be sent of for construction at a company that makes and populates boards. Yes, you could do this if you wanted to. As numpad0 has said though, it's early days for these boards and if you wanted to do something commercially reliable, you will most likely run into issues with things not being completely tested on these boards yet.

These boards provide the ability to make your own boards to host the chipsets yourself, rather than relying on a third party providing the board. So what? What if you want USB-C? What if you want to make a square or a circular board? This project is a good step along the way to allowing you to make these kinds of things.

On the hobbyist and corporate side, they also provide a way to provide a modern design that can use USB-C, which is becoming very common and is better than older USB options.

As mentioned in the README.md "Available Development Boards" section, the Atmega16u2 chip was hard to come by for Hanqaqa in 2023. The Arduino guys (arduino.com ?) probably did a "lifetime buy" of these comms chips and they probably also have several shelves of fully built Arduino boards as well. Lifetime buys and keeping good stock levels mitigate the risk of difficulty building new boards... Just get one of the older working ones off the shelf and send it. However, for an organisation (even an open source board that becomes fairly popular) wanting to build their own board, not having a given comms chip is a problem. Replacing it with a commonly available one makes it much easier for people/companies wanting to build these boards in any kind of numbers.

Having the board design readily available is really useful for the reasons above. It does seem like overkill if you just want to fiddle with a board, but if you make something that becomes popular that needs any kind of hardware adjustment, having the design becomes almost essential.

coryrc 15 hours ago
kreelman 9 hours ago
Copy that!

Wonderful that there's a Free version of these designs out there. The bugs and kinks will get sorted out over time.

ofrzeta 7 hours ago
This is great. One of my goals is "create my own ESP32 PCB" however I am lacking the knowledge to do so. I was hoping to get some help by an LLM but people here said it's not that great in PCB layout. Still I will try Kicad with MCP :)

Sure I am willing to learn but I need a more efficient path than a complete EE degree. I guess you can get quite far with a reference design but I understood that there's a lot to learn about ground layers, trace widths and so on.

aaronmdjones 7 hours ago
A substantial portion of the things you need to know about layout are summarised quite nicely in the 4 YouTube videos in a previous comment of mine

https://news.ycombinator.com/item?id=44549063

Note that the audio in the first video doesn't start until 40 seconds in.

maufl 2 hours ago
One thing I learned the hard way is the antenna must not lie on your PCB! Even if it's just board without copper. I didn't see this stated anywhere, but once you look, every devkit is doing that, the antenna sticks over the PCB. When I had it on the PCB I had very bad connectivity and very high power usage.
nchie 1 hour ago
I haven't made a ESP32 design, but I recently learnt KiCad and PCB design enough to do a RP235x board with a non-reference design choice (1.8v VDDIO). I only used the official hardware guide + LLMs for questions, and had it work on the first try - it wasn't too hard!
xrd 14 hours ago
Does anyone have any suggestions on how to get started on projects like this, specifically alongside kids (very smart 9-13 in range)?

I got them a 3d printer to move them into more "physical" computing, with mixed results.

Any place to have a gentle introduction to PCB boards?

poetaster 2 hours ago
I do workshops with kids occasionally. Last week, 4 13 year old boys. In this case I did breadboarding with them first and then showed them the transfer to fritzing -> breadboard -> schematic -> pcb. https://fritzing.org/ If you're looking for stuff they might find fun, logic noize (for instance https://hackaday.com/2015/03/09/logic-noise-sawing-away-with... ) has a bunch of fun cmos audio tutorials with great videos. Personally, I build audio toys, both analog and digital (mostly pi pico2) and still mostly use fritzing for the breadboard education element, but kicad if I need smd positioning and the like.
kaipereira 14 hours ago
I personally love this macropad tutorial and it's how I got into doing circuit board design in highschool: https://hackpad.hackclub.com/. Before doing this, it's really helpful if they have experience messing around with breadboards, so getting them a kit can help them into a soft transition too!

I like to suggest making a macropad, then a keyboard, then going into a devboard, and then starting to make your own projects. But for kids that aren't quite in highschool yet, it can feel quite intimidating and the learning curve is moderately high, so getting them playing with breadboards first might be the best option ;)

Hack Club will also give you a grant to cover the entire cost if your kids are over 13 through their programs like stasis, fallout, or forge (you can check their site for more info)

xrd 14 hours ago
Thanks so much.

Your blog is great, btw! I expect more great things from you!

I especially enjoyed your repo on your custom keyboard. My kids are crazy about keyboards. If you taught I class I would definitely sign them up!

otaviogood 12 hours ago
for an introduction to the CAD software, Kicad, which this project uses, I really liked "Shine on you crazy Kicad": https://www.youtube.com/watch?v=eMW9ohCbcik&t=27s It takes you from basics to buying a PCB from the manufacturer.
zamalek 12 hours ago
Breadboards[1] with breakout boards[2] (the Pi Pico in particular is incredible, having an unusually detailed and correct datasheet). MicroPython is probably a great way for gets to get started on the compute side of things. Once you have something working on a breadboard then you can "graduate" to PCB design (and there's nothing wrong with designing the PCB to take a breakout daughterboard) - possibly perfboard as an intermediate step. Use KiCAD - it's Blender-tier open source software. A high quality breadboard and wires are very important - I guess diagnosing a loose connection is a learning experience, but it would be an overall hindrance to learning if encountered frequently.

Have many spares of all components (including breakout boards) handy - they will probably summon the magic smoke a few times.

They will likely quickly need to learn how to read data sheets. You can often get away with copying the "typical application" and avoiding the real technical stuff.

Friendly reminder: those brains are still developing. Adequate exhaust is extremely important (even if you are using solder-free, flux fumes are varying levels of toxic). You want those fumes going out of the window, not via a filter into the same room. Any complaints about headaches are serious: you aren't extracting the fumes correctly. There are a few important things to know about soldering: "there is no such thing as too much flux," "solder likes to flow towards heat," and "heat the thing and apply the solder to the thing (not to the iron)" (to keep the technique at its most basic).

The often recommended Hakko FX-888D is just plain awful. The Pinecil is way better (yes, even though its a fraction of the price) or the TS100/TS101.

[1]: https://en.wikipedia.org/wiki/Breadboard [2]: https://www.raspberrypi.com/products/raspberry-pi-pico/

sitzkrieg 11 hours ago
the hakko fx-88 series is great. use one full time with zero issues. not sure what parent is on about, this is not a shared opinion in industry
zamalek 10 hours ago
The FX-888D is known to have a significant time delay between tip temperature and reported temperature, which is a newbie landmine.

https://www.reddit.com/r/soldering/comments/1le2y4l/comment/...

https://www.eevblog.com/forum/beginners/is-the-hakko-fx-888d... (#7)

https://www.reddit.com/r/AskElectronics/comments/qcofiq/comm...

https://www.reddit.com/r/soldering/comments/1282gci/comment/...

It was maybe the best at the price tier 10 years ago, but smart tips make things much more predictable. The FX-888D is dated and suggesting it is bad advice; you overcame its shortcomings while learning and years later are left with "the good parts." Try do something with it when it reports that it's at temperature, bonus points for changing the calibration by mistake or straight into a large copper pour. Smart tips have a much more forgiving learning curve, and then the user might subsequently have more success with something like the FX-888D.

I personally ran into this when starting out, not knowing what I was doing wrong for literal months - until I got the Pinecil, which was night and day.

I just don't know why anyone would suggest something that's "good enough" over something that's genuinely good.

ssl-3 10 hours ago
Indeed. I haven't ever heard any complaints about any Hakko irons, except for cost.

I'm a huge fan of the (now kind of old) version 1 Pinecil irons I have.

If someone put me at a bench to work on a project, I'd be very happy with either of these soldering irons. Both the FX-88 and the Pinecil are miles and miles ahead of the low-power, not-temperature-controlled soldering irons I used when I was a kid.

(I do want to buy a v2 Pinecil, since that can run directly on the 24v-nominal batteries that I use for everything from my power tools to my lawn mower. That would allow for very portable soldering using stuff I already have. v2 tips also have a lower resistance and that provides a bit more oomph at any given voltage, but lack of oomph hasn't been an issue for me at all with v1.)

contingencies 13 hours ago
Strongly feel the logical progression is: (1) Wiring third party devices and modules to an existing MCU board and programming it (2) Making a PCB to plug modules and the MCU board in to (3) Making a PCB with integrated peripherals and only plugging the MCU board (4) Making making a whole board with everything.

The MCU is typically far more fiddly than the devices (eg. crystals, storage, buses with conditioning, power stages, etc.), so continuing to plug the MCU in to a PCB while integrating peripherals is a good. You really need to be able to read a datasheet to do a nontrivial board and that brings in quite a few elements of electronics which are nontrivial for kids to grok without hand-holding and a lot of explanation.

Pick an MCU with easy USB-C programming. RP2040 is a good modern option.

poetaster 2 hours ago
Strongly agree. I have a number of projects (RP2040/RP2350) where I stick to using the piggy back mcu because it's actually cheaper than doing the whole design with small quantities (<50). Not to mention, much less complex.
zamalek 12 hours ago
Awesome! It's been a while, but my next level of learning was designing PCBs without breakout boards (and I had several failed revisions). This will be great to learn from.
stevenpetryk 17 hours ago
wow, I've been wanting a "PCB design system" like this for such a long time. I've always found it stupidly hard to just take an existing working board and tweak it.
wpm 16 hours ago
Worst is when I have a full board and schematic, but its for some other EDA program. Importing EagleCAD shit into KiCAD is agonizing, endless tedium. It's not like I'm not grateful to have free and open-source designs (specifically I'm talking about Adafruit, I like them, but all they use is EagleCAD), but goddamnit why can't it just be easy for once :(
slicktux 17 hours ago
This is a nice project that I will definitely be looking into for my projects!
lloydatkinson 16 hours ago
Is the intention that you "fork" the PCB design and use it as a base/template for you own schematics/PCB design, or something else?
throwup238 14 hours ago
Most electrical engineers use “reference designs” published by the IC manufacturers to design their PCBs, although any open source commercially available design can act as a reference. They essentially copy the schematics from the PDF (or import if file formats/converters allow), ripping out whatever they don’t need, then reroute the PCB using their layers.

In some cases, when their PCB fab layer stack up is similar enough to the original board, they can go a step further and copy paste most of the PCB into their design so that any signal integrity work carries over. Realistically this is only really practical for low speed designs but still useful for a whole class of electronics.

I don’t use KiCad but software like Altium support modular schematic sheets and PCB rooms so theoretically it can imported into that (since KiCad’s format is open source S-expr)

junon 16 hours ago
I could imagine small companies that rely on these boards and that also have their fab and sourcing pipelines set up would be able to easier source these themselves. Just have to generate the Gerbers (fabrication output format most manus need) and then send it off as part of a larger order, etc.

Especially if you're able to replace certain small/passive components with those you already have in bulk, it could be a potential cost cutting measure.

Just a guess though.

For my case, they'd be useful if I wanted to know how certain subcircuits are designed or laid out.

Even for beginners, taking it into kicad, enabling the selection of only tracks and vias and deleting them all, then doing a full re-layout of the board as practice would be a cool project if you're wanting to learn.

Mizza 15 hours ago
I've got some projects that use ADCs on Pi "Hats" that connect to controls, I could see a future version which integrates that ADCs and pots directly onto the board to get a slimmer profile. It's quite handy, I wonder what the unit cost is with assembly at JLCPCB.
coryrc 15 hours ago
Yes to the first half, for the most part.
precompute 16 hours ago
Awesome.
qzgrid37 8 hours ago
[dead]