[HN Gopher] How a devboard works (and how to make your own)
       ___________________________________________________________________
        
       How a devboard works (and how to make your own)
        
       Author : kaipereira
       Score  : 85 points
       Date   : 2025-11-07 22:35 UTC (1 days ago)
        
 (HTM) web link (kaipereira.com)
 (TXT) w3m dump (kaipereira.com)
        
       | eqvinox wrote:
       | Honestly my problem is that all my designs turn into devboards
       | since I always have a kind of "FOMO" of not breaking something
       | out and then needing it later to bodge things... and then I'm
       | left with a crowded board where I don't even use two thirds of
       | things...
        
         | MrGilbert wrote:
         | I'm sure you've already considered that, but what about
         | iterating your design, e.g. redesigning the board if you need
         | more outputs?
        
         | sweetjuly wrote:
         | Test pads are great for these anxious breakouts. I usually drop
         | tons and tons of test pads on the back of my boards as it's a
         | very dense and unobtrusive way to expose traces that you
         | probably don't need.
        
       | hackingonempty wrote:
       | This is a really excellent tutorial, thank you for making it.
        
       | jmole wrote:
       | I thought this article would first start with the most essential
       | question: "How to decide what you need on your devboard".
       | 
       | Without that critical piece of design work, you may as well call
       | this "How to build a Raspberry Pi Nano from scratch". Which, to
       | be fair, is also a good article to write.
       | 
       | But step 1 for really building a dev board is answering the
       | question, "What do I need from this that I can't get from a $5
       | Amazon purchase?"
        
         | brailsafe wrote:
         | > What do I need from this that I can't get from a $5 Amazon
         | purchase?
         | 
         | A month of enjoyment tinkering on a hobby just for the hell of
         | it.
        
         | madaxe_again wrote:
         | I just go the other way - dev boards are so cheap you can just
         | take a scalpel to them and take off the bits you don't want.
        
       | neuvarius wrote:
       | Crosspost to r/embedded if you haven't. See you there.
        
       | exmadscientist wrote:
       | I don't like this tutorial. It purports to teach you "what
       | everything on the PCB fundamentally does, and what every single
       | component on your PCB is actually for!" but it gets the reasoning
       | for a lot of stuff wrong, sometimes badly wrong. I think every
       | single instance of a component with a numerical value picks the
       | value with a misleading or even completely wrong justification.
       | Even if the tutorial gets to an OK schematic in the end, it
       | shouldn't be teaching shoddy reasoning.
       | 
       | (And the author doesn't seem to understand decoupling capacitors,
       | but most people don't understand decoupling capacitors, including
       | most datasheet authors, so that doesn't surprise me.)
       | 
       | Also, KiCad's "solutions" for BOMs are hilariously, absurdly
       | terrible. But that helps me earn a living, so I can't complain
       | too much....
        
         | randmeerkat wrote:
         | Do you have a tutorial that you like?
        
           | exmadscientist wrote:
           | I agree with the sibling comment that "How to decide what you
           | need on your devboard" is the tutorial that would be nice to
           | see. This article is trying to do too many things at once
           | (design a dev board, baby's first schematic, baby's first
           | PCB, baby's first JLCPCB order,...) and that's really the
           | only one that's novel. The rest of it is standard EE stuff
           | that's covered in a lot of places (with varying degrees of
           | success).
           | 
           | As for decoupling, I've written about how to do it in various
           | places scattered across the internet. I should really collect
           | it all in one place one of these days.
        
         | althaine wrote:
         | Can you clarify the issues with KiCad's BOM flow?
        
           | exmadscientist wrote:
           | _What_ BOM flow? It doesn 't bloody well have any!
           | 
           | At no point in the entire design process within KiCad does
           | this design ever get part numbers assigned for its resistors
           | or capacitors (to pick one thing). That's not acceptable for
           | professional work. A Bill of Materials _ABSOLUTELY MUST
           | DESCRIBE THE MATERIALS_ used in the assembly of the PCBA.
           | Internal part numbers are perfectly acceptable: assigning a
           | generic RES-0402-10k or WIDGETCO-PN987654321 or whatever
           | would be OK by me. KiCAD does not really do this, as
           | evidenced by how this design reaches  "design complete"
           | without being... complete.
           | 
           | EVERYTHING MUST HAVE AN ORDERABLE PART NUMBER OR INTERNAL
           | PART NUMBER.
           | 
           | But the resistors are the easy parts. SMD thick film
           | resistors are basically all interchangeable. Things like the
           | ceramic capacitors (MLCCs) _cannot be substituted for each
           | other_ because _they all bloody well behave differently_ so
           | good luck getting the same behavior if you randomly pick a
           | capacitor vendor on LCSC each time you build boards! That 's
           | how EEs get fired, and deserve it.
           | 
           | When I generate a build package in Altium, it has complete
           | lists of every part in the design, its MPN, at least one
           | supplier to purchase it, and the SPN for that MPN. (Sometimes
           | internal parts don't have suppliers assigned, but then
           | they're tracked elsewhere in the project or company
           | organization.) There are also assigned alternates in many
           | cases, though they are typically inadequate. Larger projects
           | should use entirely internal part numbering, but that's a
           | real headwind for smaller stuff. All of this comes from a
           | single master part database, plus a project part database,
           | and never gets touched by hand after a library entry's birth.
           | 
           | KiCad is so crap at doing this that last month a client
           | literally paid me thousands of dollars to fix up a garbage
           | KiCad design package that didn't have this information
           | properly stored. There are several add-ins for KiCad that
           | claim to do BOMs better... but it's not standard, so if you
           | don't document what you did and how (which you _do not have
           | to do_ in real CAD software, because it is built in and the
           | CAD vendor documentation plus the years of built-up lore will
           | cover you!) it may as well not exist. Certainly it didn 't
           | exist in any sort of usable form for this project.
        
             | wronex wrote:
             | I don't think you've used KiCAD. Simply add an MPN
             | attribute to your component and that is it. Use the built
             | in BOM editor and exporter. Done. There are certainly ways
             | to misuse any advanced software. But it definitely can and
             | will produce a complete BOM without additional add-ons.
             | Grated, the exporter is limited to CSV files. So I'm
             | guessing your workflow requires something more interesting?
        
               | exmadscientist wrote:
               | > Simply add an MPN attribute to your component and that
               | is it.
               | 
               | No, that's the problem, right there. KiCad doesn't have a
               | parts library. KiCad has schematic elements you can
               | manually tack parameters on to. And everyone does it
               | slightly differently!
               | 
               | There's no way to have a set of parts you can select from
               | that are guaranteed-approved (because we used them
               | previously or whatever). There's no way to have the
               | software just show you the entire E24+E96 series of
               | standard 0603 resistors so you can just grab one and go
               | and know that it's orderable. There's no way to be able
               | to get that confusing series of diode footprints and
               | orientations right _once_ and store it _forever_ so the
               | software gets it right _for you_ from now on. (Diodes are
               | the worst. At least Panasonic got out of the diode
               | business. And, yes, I was thinking of their product line
               | when I said that.)
               | 
               | Yeah, sure, you can do anything by tacking parameters on
               | schematic components. Sometimes you even have to do that.
               | Just like programming in assembly: there's no job it
               | can't do. But sometimes you really need a little bit
               | more, right?
               | 
               | And that's notwithstanding the fact that many people who
               | use KiCad, like our article author here, don't even
               | bother to tag parts with an MPN parameter! That's a
               | cultural issue, but it is one the software can and should
               | be pushing back on.
        
               | wronex wrote:
               | The nice thing with KiCAD is that a part is simply a
               | symbol (schematic element) with enough parameters
               | attached. You can specify footprints, MPN, ratings,
               | value, etc. then store it in your approved and verified
               | symbol library for use in all your projects. Use your
               | R_4.7k_0603 symbol an it comes preconfigured with
               | footprint, MPN, rating etc. Making these symbols is a lot
               | of work but very simple.
               | 
               | Unfortunately there is no standard name for these
               | parameters beyond footprint, value and some others. MPN,
               | brand, rating etc. are not default. This hinders bigger
               | adoption I think, and makes every project unique. This
               | should be improved.
        
             | rcxdude wrote:
             | >When I generate a build package in Altium, it has complete
             | lists of every part in the design, its MPN, at least one
             | supplier to purchase it, and the SPN for that MPN.
             | (Sometimes internal parts don't have suppliers assigned,
             | but then they're tracked elsewhere in the project or
             | company organization.) There are also assigned alternates
             | in many cases, though they are typically inadequate. Larger
             | projects should use entirely internal part numbering, but
             | that's a real headwind for smaller stuff. All of this comes
             | from a single master part database, plus a project part
             | database, and never gets touched by hand after a library
             | entry's birth.
             | 
             | Only if you've put in the effort to make that database in
             | the first place, which Altium makes pretty annoyingly
             | difficult. I really don't like Altium's mess of options for
             | parts libraries, the defaults for which all suck and a
             | sensible setup requiring a lot of fiddling. I haven't dived
             | too deep into KiCad's setup here recently, but it'd have to
             | try hard to be worse than Altium. The difference is
             | cultural, not tooling.
        
               | macnetic wrote:
               | We use the Celestial Altium Library [1], it's really good
               | for passive components, which make up ~80% of our
               | schematics by count. For other parts we first try to get
               | them through Altium Manufacturer Part Search, we vet the
               | symbol and footprints before importing them into our
               | internal library. Other model sources in order of
               | preference is SnapMagic, UltraLibrarian, Samacsys. Be
               | aware as the quality is often half-baked. Between
               | components that meet my requirements, I will always pick
               | the one with CAD models easily available.
               | 
               | With those prerequisites I only have to make 2-3
               | footprints from scratch per project as needed, and less
               | so as our library grows.
               | 
               | [1] https://altiumlibrary.com/
        
         | numpad0 wrote:
         | This reads like the author just wanted to format his ChatGPT-
         | aided build record in a lecture manual format, rather than
         | being an attempt at such material.
        
         | _def wrote:
         | What do people often get wrong about decoupling capacitors?
        
           | IndrekR wrote:
           | Few things for starters:
           | 
           | - you have to look at it in frequency domain as well;
           | 
           | - speed of light is too slow;
           | 
           | - often capacitors are inductors, even more so when mounted
           | on PCB;
           | 
           | - capacitance is not what is written on the component.
           | 
           | I am teaching this to robotics and computer engineering MSc
           | students. Quite nice intro book into the topic that I
           | recommend to my students:
           | https://www.oreilly.com/library/view/principles-of-
           | power/978...
        
       | toonewbie wrote:
       | Not sure if it was due to higher load from HN or my IP location,
       | but your website is inaccessible to me right now: "This
       | deployment is temporarily paused."
        
         | LaFolle wrote:
         | For me also it is unreachable
         | 
         | "This deployment is temporarily paused"
        
         | h1fra wrote:
         | If I had to guess, it's because it's loading a bajillion images
         | that are not compressed
        
       | matt3210 wrote:
       | Dang, I wanna read this but the site seems down
        
         | Tharre wrote:
         | https://web.archive.org/web/20251107235749/https://kaipereir...
        
           | bartvk wrote:
           | That now yields a "429 Too Many Requests"
           | 
           | I didn't know HN could bury a site like that.
           | 
           | Edit: I had to turn off my VPN and now it works.
        
       | wayvey wrote:
       | While the deployment is down you can read it on web.archive.org
       | https://web.archive.org/web/20251107235749/https://kaipereir...
        
       | moi2388 wrote:
       | " This is how are schematic will look when done the tutorial"
       | 
       | Well, that bodes well for the rest of the article..
        
       | avipars wrote:
       | This deployment is temporarily paused
       | 
       | Any archived version?
        
         | St_Alfonzo wrote:
         | https://web.archive.org/web/20251108052512/https://kaipereir...
        
       | massifist wrote:
       | I found this article very informative. Thanks for writing it.
        
       | kaipereira wrote:
       | Hey guys, thanks for all the love :D
       | 
       | The website went down because of the traffic and large images, so
       | I've temporarily switched hosting, and it should stay up now (DNS
       | propagation might take a bit though), but I'm going to get those
       | images smaller ASAP, thanks to everyone who posted web archives!
       | 
       | I'm also going to alter some of the reasoning for some of the
       | stuff like decoupling capacitors, but the guide is still meant
       | for complete beginners, and lots of the terminology/reasoning can
       | be pretty overwhelming, and I still have a lot to learn about
       | decoupling/other stuff!
       | 
       | I'll also add a part about what you actually need on your
       | devboard, that's a great suggestion!
       | 
       | You can find a JOURNAL.md in EVERY SINGLE one of my hardware
       | projects https://github.com/KaiPereira?tab=repositories so if you
       | guys want to see more guides/tutorials, let me know :D
        
       ___________________________________________________________________
       (page generated 2025-11-08 23:02 UTC)