Since graduating from university I’ve gotten more and more into embedded software development. This has even spilled over into designing PCBs (printed circuit boards) for my embedded devices to sit on. Initially I had assumed that the leap from software to hardware design would be insurmountable without any formal education but it turned out to be quite enjoyable. It turned out that the problem I’d be facing wasn’t a technical one, but of an organisational nature. Designing circuits Designing circuits turned out to be a lot like software development. Or at least I managed to force it to become similar to how I develop software. Modular parts or blocks, which I could share between circuits needing similar functionality sounds a lot like DRY. Avoiding complexity by only including the absolute bare minimum that I could get away with sure sounds like KISS. And so I charged forwards into the world of power electronics, sensors and Bluetooth communication, armed to the teeth with sort-of applicable design principles. I ordered PCBs, parts and went to town with soldering paste, stencils and a soldering iron to realise my new creations. And that is where the problems began. Parts and components Each circuit could be composed of up to ~40 different parts that needed to be mounted on the board. And since I had been so clever as to share designs between boards I could even use parts from the stocks of one circuit board to build another design if it was missing any parts. One day, when I was looking to build Battery manager V1.2 and was scrambling through box after box of components I realised that I couldn’t find the appropriate step-down converters needed. In fact, I didn’t even know if I had any left. And for that matter, did I have any 10 kΩ resistors left? The overlapping component usage had left me with no actual idea of my inventory. There was no way of knowing how many of each circuit design that I could actually build and ordering new parts was just as big of a nightma...
First seen: 2025-07-31 04:57
Last seen: 2025-07-31 10:58