I'm going to complicate this a bit and say "If you can use open source, you can prototype hardware"
Part of building hardware is making it robust enough to exist in meat space long term. That means thinking about how the humidity sensor is affected by ambient conditions (including the packaging bag, that one has bit me in the past) and having a plan for re-calibration if drift becomes too great. That means picking connectors for your wire harnesses that can handle the number of times you expect to connect/disconnect them over the course of your things lifespan. That means tuning the length of that wire harness so you can't damage it when you open the enclosure to change the battery or whatever. It means thinking about how ambient conditions affect the rest of the design, so you don't have to clean the contacts on all the wire harnesses every so often, because you didn't get gold contacts for both the harnesses and the connectors, and you live in a high humidity environment.
Don't get me wrong, I'm self-taught on virtually all of these points, it is achievable for the hobbyist. Just understand that swapping out one smart relay controller for another is pretty far from having a smart relay controller you'd even give to your sister-in-law for Christmas.
I’m a big proponent of open source hardware but as your post shows it often involves skills of many disciplines that requires vigorous thought or trial and error. Electronics and physics are unforgiving in a way processors are not.
Even after reaching the prototype phase, the open source hardware is probably only useful to one person: it’s creator.
There is a big difference between making a prototype and detailing the build in sufficient detail other hobbyists can replicate it / modify / use it. Documenting hardware is substantially harder than documenting software. If the project is cool a bunch of people will be excited to jump in; some of these people have zero experience soldering or ordering laser cut parts or whatever. Supporting them is hard.
Then another step up to sell the design to other hobbyists, even just a few extra copies on Tindie.
And then a huge step up from that to selling to the general public, where suddenly FCC interference certifications are needed and the company is liable if the design burns down a few houses. There’s a reason firms making hardware have real engineers on staff held to professional standards. Plus all the cash flow and business concerns when the marginal cost per unit isn’t under 1 cent like software.
Each of these steps often involves multiple iterations of hardware and therefore lead time and cost.
There are a lot of OSHW projects I'd love to work on, but the main thing that holds me back is knowing they'd basically go nowhere. I can't post them online for others like with code.
Nobody is going to build it, the physical building of it is way harder than the design, anyone who could build it is too busy building their own projects that will go in the junk drawer in a week.
I would love to work at a real OSHW company, making IoT gadgets and stuff that for production and sale as polished commercial products with a software ecosystem behind them... but I lack a degree, live in Montana, and don't drive, and there are not many companies like that(And most of them are making expensive FOSS phones that don't run normal apps, cryptocurrency stuff, or glorified dev boards kinda pretending to be products)
Even seasoned professionals can get caught in the gap between 'prototype' and 'production grade' especially for things that are on the margin of what can be done with a particular hardware recipe. That's when component variation can cause your product yield to go straight into the sewer.
We had a bespoke wireless entry system for our hackerspace which kinda sucked. Eventually the board switched it out for OpenPath (which also sucks--to be fair).
Why?
Support. The board can now call someone and say "We pay you. Fix this."
Support is the bane of consumer products. I really wish we had some way to counter this.
And all of this together still doesn't solve the bigger problem with DIY hardware, which is the DIY itself.
It it goes wrong, you cannot buy a new one or hire repairperson at a sane price. If it has a software side, it will probably need maintainence. If you want one, there's a large chance you might want another to expand your project.
While yes, I am able to design a reliable hardware device, unless you have a large budget it will not be immune to direct baseball bat hits or spilling epoxy in the connector. So, in practice, if you ask me to build something for you, I'll try to find a way to do it with off the shelf parts as much as possible.
Which sucks, because electronics projects are super fun, but the fun is dampened by the fact that in the end you have this completely unique irreplaceable thing that becomes a liability if you use it for anything important, which is generally tied to one application and becomes junk if you no longer need it, unlike the more general purpose off the shelf stuff.
ESPHome and Amazon modules plus 3D printing gives a pretty good balance for a lot of things. Reconfigurable, machine-soldered reliability, a prefab software stack, but still enough flexibility to build novel things.
> It it goes wrong, you cannot buy a new one or hire repairperson at a sane price. If it has a software side, it will probably need maintainence.
It's not clear to me that the alternative provides these either. Just thinking about some of the appliance-type things I've had issues with lately: my oven would've made more sense to replace than hire a repair person, and my ISP-provided router is running their latest firmware which is horribly out of date...
Agreed. Also, the kinds of passive safety needed to not burn your house down in the event of a code error or other design issue.
The hardware design is the last line of defense before you can do real-world damage.
Things like fuses, ESD and surge protection, watchdog timers, often get overlooked in a hobbyist or even open-source design... it takes (sometimes hard-won) experience to know when these things are required.
There are also some physical constraints as well. I have an essential tremor - painting warhammer minis and doing anything with a sodering gun are forever out of my reach.
That all said - I have written firmware for things that other people have wired and it's quite fun!
As much as I agree with this, buying off the shelf things, especially on the extremes of "very niche" (ok this kinda how's under your "hobbyist design" or "so general there are hundreds of knockoff versions with various cost cutting measures", there is no guarantee that they have thought of all (or any) of the required safety measures... Check out Big Clive on YouTube if you haven't already, and aren't afraid of knowing about all the different ways products skimp on safety.
watchdog timer is not hardware protection. It might seem like it is, as the timer itself is in hardware, and it does occasionally protect from hardware related lockups, but it's all too easy mistake to stick a watchdog refresh in a timer somewhere that still works even when rest of the code went tits up
This reminds me of when I was in college(EE) and working at an electronics store. A small aircraft owner wanted help with a regulator to (IIRC) drop 28v down to 12v and handle a few amps. I resisted helping design a solution but he kept pushing so I suggested putting a couple TO-3 packaged 7812s in parallel. We bench tested it and it worked so he went on his way. A few years later I learned you never do that as one regulator can end up handling the load and it ends up overloaded. Instead you use a pass-transistor(or other mechanism) to allow a single regulator to do the job. I still wonder if that guy's plane ended up going down in flames...
You can get away with it if there is some resistance in series with each one but yeah, the enemy here is that each of the regulators will have slightly different voltage and the unlucky one with highest will handle most of the current.
Although I'd imagine you got lucky here because IIRC this particular's chip voltage drops with temperature a tiny bit so technically the one that starts to heat up would drop voltage, letting other pick up the slack
> "If you can use open source, you can prototype hardware"
You can prototype some hardware. I’ve looked into trying to build some stuff that goes beyond what a little prepackaged MCU dev board can do, and I can’t wrap my head around it. Too much stuff involved that in no good at.
Compared to software skills those are relatively easy to learn though and they have a longer best-before date than any kind of language/framework kind of knowledge.
I recently started at a big connector manufacturer... And I have to say, there is so much more that goes into connectors, even "simple" ones, than what is obvious to the end user.
Want to second this comment. Spatial efficiency, insert and locking mechanisms, electrical characteristics, mechanical strength characteristics, machine pickability/placeability, solderability, thermal characteristics, thermal impact to overall system, environmental seal properties including water/saline air/weak acids/weak bases, orientation guarantees, safety factors such as susceptibility of shorting with different categories of pollutant including metal dust, longevity/susceptibility of contacts to build-up of dust, formal fire engineering properties (including combustion temperature/off-gassing), fabrication cost including line purchase/scheduling/maintenance and hard tooling fabrication/longevity/maintenance, color coding for human error reduction in assembling and maintenance, documentation and translation, distribution and recalls, etc. That's just the connector. Now look at regulatory outlook, availability and all of the above mentioned concerns for the relevant cables and their fabrication processes...
No different than writing software to a releasable stage. Prototyping is a very important stage of building hardware, it's how you test, if you get yourself that far, you can get yourself to a production build. It does mean a bunch of reading and research though. I've been doing embedded/electrical/mechanical systems for decades from consumer grade products to large industrial machines which have to last decades. There are often hard-earned lessons along the way, but many end up jumping out at you. Solving some of those problems sometimes require significant rethinks, but a lot of stuff is not that tricky. Main thing is having good tools to investigate problems.
IMHO the oversight in this response is that having good tools to investigate problems essentially equates to (1) tens of thousands of dollars in hardware; (2) permanent lab space; (3) the relevant base capital; (4) supply chain access; (5) a university equivalent level education in physics and electronics; and (6) at least a few years to hone your craft. This is realistically a five to ten year commitment, perhaps a little less full time if enthused and adequately capitalized.
Some things that are cheaper at a low scale is quite expensive at scale, 3D printing is obvious here, your way to consume less 3D printing may be opposite to the way that regular plastic manufacturer does, so you need to adapt your process to the process of your suppliers.
I wasn't even touching manufacturing at scale, because sometimes you really do need just the one. But it should not be so fragile you can't carry it from the garage to thermostat mounting position.
I learned that the hard way when I automated the heat lamp that I put in my chicken coop. Having to noodle around with screw terminals while being pecked at by an angry rooster was not a great time.
I've breadboarded a number of projects, but always awem to hit a wall when faced with the concerns you describe. Do you have any pointers for how to gain the knowledge to get past this? Right now I feel like I dont even know what I dont know.
A lot of it comes down to being mindful of what you're spending the most time on during assembly, but some of it is just hard-won. But I've learned a lot from reading Hackaday.
Some simple things that you shouldn't have to learn the hard way (but most people do):
Make sure your wiring contacts are electrochemically compatible. Gold-to-gold is safe in almost every household environment.
Strain relieve every wire. Solder is not meant to be structural.
Every circuit component degrades over time. Heat, humidity, and dust accelerates that process. Make a plan to mitigate the ingress of each, and a plan to account for that degradation.
Learn to design simple breakout-board carrier boards. The best breadboard layouts are still worse than a mediocre PCB, because the PCB doesn't have flywires to catch on literally everything.
Make sure you include mechanical support points for your designs, and pick the right size and material for your mechanical supports.
All of this to say, your hardware thing is a thing first, and an expression of your software/firmware design second. If it cannot physically survive being that physical thing, the elegance or resiliency of your code is meaningless.
Take things apart. Fix things, while observing how they break. There are amazing online videos on how to repair virtually anything that goes wrong with a home appliance. Make things that improve your life at home. These are things that a lot of hardware people did as kids, including myself. Get your hands involved.
Look inside older stuff that predates 3d printing and cheap mold tooling, just to avoid the trap of everything being made the same way. In my case, since I'm interested in music, I've looked inside things like guitar pedals and amps, which often solve the problem of making something that's robust, but that can be made profitably in short runs and small shops.
Get a hold of the McMaster-Carr catalog, in paper form, and leave it in the bathroom. An old Digi-Key catalog if someone still has one.
The Cave Pearl Project (arduino based underwater data loggers, used for real science in cave systems) has a blog and several Youtube videos with info about ruggedizing electronics for humid environments and temperatures from freezing to about 60 Celsius. [1] Two words: conformal coating.
Lots of other good in-the-trenches reporting of hard-won knowledge in the blog. Many epoxy resins shrink significantly, for example. That may or may not be important for your project. The blog is not super condensed but it's worth reading, especially for seeing the evolution of design and construction practise from the early years (2011) to now.
There's a book, now somewhat dated, on the Protection of Electronic Circuits from Overvoltages (lightning strikes, or fridge motors, for example): [2] TVSes (transient voltage suppressors) are still in use, however. Even varistors.
Connectors are the bane of every electrical engineer's life. There are more designs of connectors than of any other category of component, and probably there are good reasons for all of them to exist. I haven't got any good references for this topic though.
Other things like fuses, fireproof insulation on on your power cables, physical design such that prying objects can't touch high voltages, and so are about protecting the rest of the world from your projects.
Rod Elliott's web site [3] is a mine of information for beginning to intermediate hobbyists. It's focused on analog, audio specifically, but when you get down deep enough, everything in electronics is analog. you need to know about resistance, capacitance, and inductance, earthing (grounding) layout, and other similar topics.
Lots of gatekeeping and snark in these comments. Every time something hard gets easier, the pure who suffered hardest come out of the woodwork to inform you that the easy thing you're doing is not as good as the hard thing they've been doing since you were in short pants.
Composition is great for prototyping and small-scale production. As you level up and learn about optimizing BOMs and DFM, you will start to swap out MCU boards for your own designs; you'll see how that $10 I2C rotary encoder can be replaced with $1 worth of resistors, capacitors, a Schottky diode and a hex inverter.
Anyhow, I came to say that with companies like JLBPCB and PCBWay offering 3D printing and CNC services, you don't even need to buy a 3D printer to get started.
Heck, with https://wokwi.com/ you might not even need prototyping components.
Totally agree with your comment on the gatekeeping and snarkiness. Also my current foray into hardware (as a software guy) tells me there's tons of low hanging fruit on the design rules side to cover all sorts of scenarios for "production ready" component selection, placement, and environment concerns.
My gut tells me that the software market that serves hardware engineers isn't nearly as creative or ambitious as that on pure software and even devops or infrastructure.
The problem is that 1) "design rules" are in practice more like guidelines, and often need to be violated in order to actually get stuff made, and 2) all the data is wrong, contradictory, and cannot be trusted.
A lot of the work of a hardware engineer is reading and interpreting datasheets and trying to separate the wheat from the chaff. The low-hanging fruit which can easily be automated is the easy part of the job, and writing the input data for the automation ends up taking more time than just manually doing it yourself.
I have dabbled into writing some software extensions for KiCad, and some turned out to be very useful and now save me quite a lot of time. However, every time I tried to be "clever" and solve a seemingly easy problem, it ended up not being worth it in the end.
You are not wrong overall, but I am not sure if the opportunity is huge, at least IMO not enough to sustain a VC-backed company (or perhaps barely). As a benchmark, Altium has a market cap of 6B. The fundamental problem is that there aren't that many HW engineers out there (compared to SWEs and SWE adjacents like DevOps etc). And the existing players are super entrenched into existing companies doing HW design.
There are some interesting companies out there that I am watching, like flux.io. The problem there is that none of these companies are working on creating open-source tooling, so their endgame seems to be getting acquired by Altium, Cadence et al.
I fear a future where doing even regular PCB designs will be gatekept by the Cadences and Synopysyes of the world, akin to how IC design is today. At least we have KiCad right now, which is getting really powerful and is fantastic for doing PCB development work.
I'm in a similar boat so maybe totally naive, but this seems true. I think the software industry is super rich in tooling because software engineers understand software, and can build their own software (haha..). Non-software fields have crap software because usually their only way to get some is to hire a software person who doesn't actually understand the industry. Introducing a communication barrier like this massively dampens productivity. Things are much smoother when the person using the software can actually dig in and fix the kinks themself instead of filing a Jira ticket.
Interesting, I am in the same boat with the author. Recently have started to dabble more in embedded devices. I am building a well water level sensor. First I tried to use an NRF based board, but I got bogged down with the SDK ecosystem, it's really meant for experienced embedded engineers of companies. Then I fell back to much simpler ESP32-C3/S3 boards, which are great, widely supported, easy to set up and pretty reliable. I hook it up to the distance sensor (HC-SR04) and make the distance calculations work. You also have to add a voltage converter if you want to run from batteries, because the sensor requires 5V - easy enough after some reading and failing. Then you have a mess of boards and cables, you need to solder it to a board which requires tools and a bit playing around. Now I was missing an enclosure, tried a few store bought junction boxes, none were perfect, and I decide to buy my own 3D printer (the future is now, print your own things, learn modelling, etc). Those are actually pretty easy compared to everything else, I printed my first models <1h after receiving the printer. Modelling in programmatic OpenSCAD or my currently preferred tool CadQuery - easy to pick up in a few hours of playing around. So yeah, I have had my printer for exactly a week, and I have printed almost a dozen successful prints, and designed a couple of usable and functional parts. Don't be afraid of 3d printers, oh and also you can get good printers for much less than 500 USD, I bought a lightly used second hand Sovol SV06 for 150EUR (220 for new) and it works really well.
The idea is I didn't find an existing water-well sensor for my purposes, so I am building my own. Final price of BOM probably 20EUR. Time spent learning and tinkering - hundreds of hours. Cost of stuff I had to buy to support all this, probably somewhere around 500EUR now. (printer, connector crimpers, cables, MCUs, solder boards, sensors, battery holders, electronic components, filament for the printer, soldering iron, etc). It has all been worth it.
> There is a learning curve to 3D printing. It might be the steepest factor here, in fact.
I love CAD but man do I hate 3D printing. It's a type of device that seems to have been invented to illustrate Murphy's law that "anything that can go wrong, will go wrong".
The print nozzle gets clogged. Every. Time. The filament breaks at the worst possible position and requires some disassembly to remove. The printing stops for no reason in the middle of a long print. The plate is never exactly even. You forgot to leave the wire spool with enough free spinning and when the machine pulls on the wire it makes the spool fall, itself pulling the whole machine down with it as a vengeance.
And of course, it takes hours.
I have been much more lucky with external providers that you can send your file to, and they send an object back. It's often expensive and takes even longer than doing it at home (days vs hours), but there's no price for peace of mind.
That is just how physical reality is. Everything breaks all the time and your process needs to be resilient to it. It is definitely the case that consumer 3D printers make that practically impossible though. (I tend to think home CNC is more interesting for this reason).
For example, an industrial solution to some of the problems would be a checklist based inspection of the printer between every task, but this would be incredibly tedious.
Software that has to directly interface with reality also has these problems.
It feels like we are trying too hard not to learn the lessons of metal casting.
As metallurgy goes, casting is very old tech. I won't say it's the simplest thing, but it was simple enough that pre-industrial people were figuring it out, which says something about complexity.
Lathe work starts out with cylinders or polyhedrons, which
But we only carve shapes out of polyhedrons, or build them up from nothing. It seems more likely that for complex, concave or knotted objects, we should be using low resolution additive printing and high resolution subtractive printing in combination.
We may also need CNC machines with a an additional degree of freedom. Perhaps not a fully 'prehensile tail' but the ability to tilt the cutting head to say 45º would probably reduce the gap between additive and subtractive manufacturing's achievable shapes by quite a bit.
Getting a machine that works well out-of-the-box is critical. While tinkering and troubleshooting is definitely part of the 3d printing experience, my Prusa Mini requires very little babysitting and maintenance.
Could that be due to consumer vs industrial 3D printers? The external providers are probably using more expensive industrial printers designed for more frequent or continuous usage vs a typical consumer printer.
As a software-only guy, this article brings me great encouragement for doing a hardware project in the future! :)
Although, to be honest, my bigger problem is probably just simply not having a use case which I could use a self-built hardware project for. I don’t feel like I’m missing or lacking anything in my life or at home that could be fixed with a hardware project.
Additionally, I usually want the absolute best solution to a problem that I can afford. Commercial products have satisfied me well so far. My mindset about this is that if I can just pay someone for a product that solves my problem, I will gladly do so instead of scratching my head with a self-built project (I consider my time more valuable than anything else).
So I guess what really needs to happen to make me actually dip my toes in the hardware soup… is to have an annoying enough problem that cannot be solved with ready-made products on the market (either because they are bad or outright don’t exist).
I think it's a flaw inherent to the current system. You have to make money to live and you do that, not by appeasing human readers, but by appeasing an algorithm. The world is not easily reduced into clear classifications but we're currently forcing it into them
> You can’t beat Prusa: the printers come out of the box working perfectly
At the cost of being old and slow. I wouldn't be throwing roses to Prusa after they effectively ceded the market to everyone else.
For $200, you can get a Sovol SV06 that's a smarter iteration on the MK3/MK3S (while also being open-source both in hardware and software); for $500 you can get a Bambu P1P that's much faster and has better vertical integration through the slicer (and for $100 more than that you can get a P1S, which is high-temp ready while also doing all the same things as the P1P).
I used to do microwave communications repair in the army. The most painful part of my education was basic soldering. I couldn’t solder for the life of me. I have the finger dexterity of a brick (which is to say none at all).
A few years I took a comprehensive career aptitude assessment, which included testing finger dexterity. I thought I’d done really well after taking the test. I was informed I scored in the bottom 5%. If I became a surgeon, my malpractice insurance would cost more than my annual salary.
Part of building hardware is making it robust enough to exist in meat space long term. That means thinking about how the humidity sensor is affected by ambient conditions (including the packaging bag, that one has bit me in the past) and having a plan for re-calibration if drift becomes too great. That means picking connectors for your wire harnesses that can handle the number of times you expect to connect/disconnect them over the course of your things lifespan. That means tuning the length of that wire harness so you can't damage it when you open the enclosure to change the battery or whatever. It means thinking about how ambient conditions affect the rest of the design, so you don't have to clean the contacts on all the wire harnesses every so often, because you didn't get gold contacts for both the harnesses and the connectors, and you live in a high humidity environment.
Don't get me wrong, I'm self-taught on virtually all of these points, it is achievable for the hobbyist. Just understand that swapping out one smart relay controller for another is pretty far from having a smart relay controller you'd even give to your sister-in-law for Christmas.
Even after reaching the prototype phase, the open source hardware is probably only useful to one person: it’s creator.
There is a big difference between making a prototype and detailing the build in sufficient detail other hobbyists can replicate it / modify / use it. Documenting hardware is substantially harder than documenting software. If the project is cool a bunch of people will be excited to jump in; some of these people have zero experience soldering or ordering laser cut parts or whatever. Supporting them is hard.
Then another step up to sell the design to other hobbyists, even just a few extra copies on Tindie.
And then a huge step up from that to selling to the general public, where suddenly FCC interference certifications are needed and the company is liable if the design burns down a few houses. There’s a reason firms making hardware have real engineers on staff held to professional standards. Plus all the cash flow and business concerns when the marginal cost per unit isn’t under 1 cent like software.
Each of these steps often involves multiple iterations of hardware and therefore lead time and cost.
Nobody is going to build it, the physical building of it is way harder than the design, anyone who could build it is too busy building their own projects that will go in the junk drawer in a week.
I would love to work at a real OSHW company, making IoT gadgets and stuff that for production and sale as polished commercial products with a software ecosystem behind them... but I lack a degree, live in Montana, and don't drive, and there are not many companies like that(And most of them are making expensive FOSS phones that don't run normal apps, cryptocurrency stuff, or glorified dev boards kinda pretending to be products)
Ding!
We had a bespoke wireless entry system for our hackerspace which kinda sucked. Eventually the board switched it out for OpenPath (which also sucks--to be fair).
Why?
Support. The board can now call someone and say "We pay you. Fix this."
Support is the bane of consumer products. I really wish we had some way to counter this.
It it goes wrong, you cannot buy a new one or hire repairperson at a sane price. If it has a software side, it will probably need maintainence. If you want one, there's a large chance you might want another to expand your project.
While yes, I am able to design a reliable hardware device, unless you have a large budget it will not be immune to direct baseball bat hits or spilling epoxy in the connector. So, in practice, if you ask me to build something for you, I'll try to find a way to do it with off the shelf parts as much as possible.
Which sucks, because electronics projects are super fun, but the fun is dampened by the fact that in the end you have this completely unique irreplaceable thing that becomes a liability if you use it for anything important, which is generally tied to one application and becomes junk if you no longer need it, unlike the more general purpose off the shelf stuff.
ESPHome and Amazon modules plus 3D printing gives a pretty good balance for a lot of things. Reconfigurable, machine-soldered reliability, a prefab software stack, but still enough flexibility to build novel things.
It's not clear to me that the alternative provides these either. Just thinking about some of the appliance-type things I've had issues with lately: my oven would've made more sense to replace than hire a repair person, and my ISP-provided router is running their latest firmware which is horribly out of date...
The hardware design is the last line of defense before you can do real-world damage.
Things like fuses, ESD and surge protection, watchdog timers, often get overlooked in a hobbyist or even open-source design... it takes (sometimes hard-won) experience to know when these things are required.
That all said - I have written firmware for things that other people have wired and it's quite fun!
Although I'd imagine you got lucky here because IIRC this particular's chip voltage drops with temperature a tiny bit so technically the one that starts to heat up would drop voltage, letting other pick up the slack
You can prototype some hardware. I’ve looked into trying to build some stuff that goes beyond what a little prepackaged MCU dev board can do, and I can’t wrap my head around it. Too much stuff involved that in no good at.
It's extremely different, imo.
Releasing buggy software to prod: no biggy, hotfixed in a couple of hours
Releasing buggy hardware: recalls, mass customer dissastifaction.
I learned that the hard way when I automated the heat lamp that I put in my chicken coop. Having to noodle around with screw terminals while being pecked at by an angry rooster was not a great time.
Yeah they are more expensive than running printer in your garage because they need to earn money too but it's not like the price grows with volume
Some simple things that you shouldn't have to learn the hard way (but most people do):
Make sure your wiring contacts are electrochemically compatible. Gold-to-gold is safe in almost every household environment.
Strain relieve every wire. Solder is not meant to be structural.
Every circuit component degrades over time. Heat, humidity, and dust accelerates that process. Make a plan to mitigate the ingress of each, and a plan to account for that degradation.
Learn to design simple breakout-board carrier boards. The best breadboard layouts are still worse than a mediocre PCB, because the PCB doesn't have flywires to catch on literally everything.
Make sure you include mechanical support points for your designs, and pick the right size and material for your mechanical supports.
All of this to say, your hardware thing is a thing first, and an expression of your software/firmware design second. If it cannot physically survive being that physical thing, the elegance or resiliency of your code is meaningless.
Look inside older stuff that predates 3d printing and cheap mold tooling, just to avoid the trap of everything being made the same way. In my case, since I'm interested in music, I've looked inside things like guitar pedals and amps, which often solve the problem of making something that's robust, but that can be made profitably in short runs and small shops.
Get a hold of the McMaster-Carr catalog, in paper form, and leave it in the bathroom. An old Digi-Key catalog if someone still has one.
Lots of other good in-the-trenches reporting of hard-won knowledge in the blog. Many epoxy resins shrink significantly, for example. That may or may not be important for your project. The blog is not super condensed but it's worth reading, especially for seeing the evolution of design and construction practise from the early years (2011) to now.
There's a book, now somewhat dated, on the Protection of Electronic Circuits from Overvoltages (lightning strikes, or fridge motors, for example): [2] TVSes (transient voltage suppressors) are still in use, however. Even varistors.
Connectors are the bane of every electrical engineer's life. There are more designs of connectors than of any other category of component, and probably there are good reasons for all of them to exist. I haven't got any good references for this topic though.
Other things like fuses, fireproof insulation on on your power cables, physical design such that prying objects can't touch high voltages, and so are about protecting the rest of the world from your projects.
Rod Elliott's web site [3] is a mine of information for beginning to intermediate hobbyists. It's focused on analog, audio specifically, but when you get down deep enough, everything in electronics is analog. you need to know about resistance, capacitance, and inductance, earthing (grounding) layout, and other similar topics.
1. https://thecavepearlproject.org/2023/03/17/waterproofing-you...
2. https://store.doverpublications.com/0486425525.html Available on Amazon as an ebook.
3. https://www.sound-au.com/articles/index.htm
Composition is great for prototyping and small-scale production. As you level up and learn about optimizing BOMs and DFM, you will start to swap out MCU boards for your own designs; you'll see how that $10 I2C rotary encoder can be replaced with $1 worth of resistors, capacitors, a Schottky diode and a hex inverter.
Anyhow, I came to say that with companies like JLBPCB and PCBWay offering 3D printing and CNC services, you don't even need to buy a 3D printer to get started.
Heck, with https://wokwi.com/ you might not even need prototyping components.
My gut tells me that the software market that serves hardware engineers isn't nearly as creative or ambitious as that on pure software and even devops or infrastructure.
Huge opportunity there.
A lot of the work of a hardware engineer is reading and interpreting datasheets and trying to separate the wheat from the chaff. The low-hanging fruit which can easily be automated is the easy part of the job, and writing the input data for the automation ends up taking more time than just manually doing it yourself.
I have dabbled into writing some software extensions for KiCad, and some turned out to be very useful and now save me quite a lot of time. However, every time I tried to be "clever" and solve a seemingly easy problem, it ended up not being worth it in the end.
There are some interesting companies out there that I am watching, like flux.io. The problem there is that none of these companies are working on creating open-source tooling, so their endgame seems to be getting acquired by Altium, Cadence et al.
I fear a future where doing even regular PCB designs will be gatekept by the Cadences and Synopysyes of the world, akin to how IC design is today. At least we have KiCad right now, which is getting really powerful and is fantastic for doing PCB development work.
Deleted Comment
Deleted Comment
The idea is I didn't find an existing water-well sensor for my purposes, so I am building my own. Final price of BOM probably 20EUR. Time spent learning and tinkering - hundreds of hours. Cost of stuff I had to buy to support all this, probably somewhere around 500EUR now. (printer, connector crimpers, cables, MCUs, solder boards, sensors, battery holders, electronic components, filament for the printer, soldering iron, etc). It has all been worth it.
I love CAD but man do I hate 3D printing. It's a type of device that seems to have been invented to illustrate Murphy's law that "anything that can go wrong, will go wrong".
The print nozzle gets clogged. Every. Time. The filament breaks at the worst possible position and requires some disassembly to remove. The printing stops for no reason in the middle of a long print. The plate is never exactly even. You forgot to leave the wire spool with enough free spinning and when the machine pulls on the wire it makes the spool fall, itself pulling the whole machine down with it as a vengeance.
And of course, it takes hours.
I have been much more lucky with external providers that you can send your file to, and they send an object back. It's often expensive and takes even longer than doing it at home (days vs hours), but there's no price for peace of mind.
For example, an industrial solution to some of the problems would be a checklist based inspection of the printer between every task, but this would be incredibly tedious.
Software that has to directly interface with reality also has these problems.
As metallurgy goes, casting is very old tech. I won't say it's the simplest thing, but it was simple enough that pre-industrial people were figuring it out, which says something about complexity.
Lathe work starts out with cylinders or polyhedrons, which
But we only carve shapes out of polyhedrons, or build them up from nothing. It seems more likely that for complex, concave or knotted objects, we should be using low resolution additive printing and high resolution subtractive printing in combination.
We may also need CNC machines with a an additional degree of freedom. Perhaps not a fully 'prehensile tail' but the ability to tilt the cutting head to say 45º would probably reduce the gap between additive and subtractive manufacturing's achievable shapes by quite a bit.
Although, to be honest, my bigger problem is probably just simply not having a use case which I could use a self-built hardware project for. I don’t feel like I’m missing or lacking anything in my life or at home that could be fixed with a hardware project.
Additionally, I usually want the absolute best solution to a problem that I can afford. Commercial products have satisfied me well so far. My mindset about this is that if I can just pay someone for a product that solves my problem, I will gladly do so instead of scratching my head with a self-built project (I consider my time more valuable than anything else).
So I guess what really needs to happen to make me actually dip my toes in the hardware soup… is to have an annoying enough problem that cannot be solved with ready-made products on the market (either because they are bad or outright don’t exist).
At the cost of being old and slow. I wouldn't be throwing roses to Prusa after they effectively ceded the market to everyone else.
For $200, you can get a Sovol SV06 that's a smarter iteration on the MK3/MK3S (while also being open-source both in hardware and software); for $500 you can get a Bambu P1P that's much faster and has better vertical integration through the slicer (and for $100 more than that you can get a P1S, which is high-temp ready while also doing all the same things as the P1P).
I used to do microwave communications repair in the army. The most painful part of my education was basic soldering. I couldn’t solder for the life of me. I have the finger dexterity of a brick (which is to say none at all).
A few years I took a comprehensive career aptitude assessment, which included testing finger dexterity. I thought I’d done really well after taking the test. I was informed I scored in the bottom 5%. If I became a surgeon, my malpractice insurance would cost more than my annual salary.
1. https://jlcpcb.com/capabilities/pcb-assembly-capabilities