If you’re like us, there’s a creeping feeling that comes over you when you’re placing an order for parts for your latest project: Don’t I already have most of this stuff? With the well-stocked junk bins most of us sport and the stacks of defunct electronics that are almost always within arm’s length, chances are pretty good you do. And yet, we always seem to just click the button and place a new order anyway; it’s just easier.
But what if mining the treasure in your junk bin was easier? If you knew right at design time that you had something in your stash you could slot into your build, that would be something, right? That’s the idea behind ecoEDA, a Python-based KiCAD plugin by [Jasmine Lu], [Beza Desta], and [Joyce Passananti]. The tool integrates right into the schematic editor of KiCAD and makes suggestions for substitutions as you work. The substitutions are based on a custom library of components you have on hand, either from salvaged gear or from previous projects. The plug-in can make pin-for-pin substitutions, suggest replacements with similar specs but different pinouts, or even build up the equivalent of an integrated circuit from available discrete components. The video below gives an overview of the tool and how it integrates into the design workflow; there’s also a paper (PDF) with much more detail.
This seems like an absolutely fantastic idea. Granted, developing the library of parts inside all the stuff in a typical junk bin is likely the biggest barrier to entry for something like this, and may be too daunting for some of us. But there’s gold in all that junk, both literally and figuratively, and putting it to use instead of dumping it in a landfill just makes good financial and environmental sense. We’re already awash in e-waste, and anything we can do to make that even just a little bit better is probably worth a little extra effort.
What about valves/tubes?
What about them? Have you investigated the software to see if they are or are not excluded? If they are excluded have you made any effort to promote their inclusion? A bug report, an enhancement request, a donation of time or money? If they are excluded have you determined that it would even make any sense to include them? What effort have you expended, other than writing four words?
Pssh, low effort criticism is what the HaD comment section is *for*!
I think it is a great idea.
But, entering something into a document and having a suggestion pop up gave me haunting memories of MS Clippy.
Hey! It looks like you are designing some hardware! Did you know you could have used a 555?
Nooooo, there goes half of hackaday’s content!
Thanks for the comeback!
What a great idea! How awesome would it be if all manufacturers would open source schematics of their electronics that you can load into this program. So it tells you if the broken or working dishwasher you have, has the part you need in it. All of this without manual entering of your parts bin.
Next best step would be to make like an open source library for this where people can create posts list for specific electronic devices and share them with the community.
Does an open source, standardized, schematic from reverse engineered devices, library exist?
Can we make something with AI to just make some pictures of a pcb to automatically generate a junk parts bin list?
So many ideas!
Maybe also be able to add junk bin parts libraries of friends or your local makerspace library. So you know who to ask for extra parts.
I think what we really need is a library of ~25 standard very high level fmodules, and a certification mark that says a device was made with them. They would all have generic functions and pinouts that never change, but new versions with added features could be made. You could have a voltage converter with different voltage capability options, or a CPU board with totally different chips, etc.
You wouldn’t need full drop in replacement capability, just the same pinout on each version of one part number. Different part numbers could have different pinouts, the point isn’t to make everything plug and play, the point is a higher level version of building with individual components.
For convenience you could have the first few pins the same on all modules, for easy stuff like gnd/3v/VIn/Vbat/i2c/input0/output0, after that it could be module specific.
Real component level reuse is lots of work, you have to change your whole design to fit the old junk, and the pinouts change all the time. There’s no abstraction layer so an ARM and a RISCV won’t have the same pinout.
It cuses one to think “might as well use this new thing, I’m getting boards made and ordering parts anyway”. With module level reuse, you think “I’ll just drop this old thing in and I can upgrade later if I need to, which I probably won’t”.
I feel the inverse is even better; “all manufacturers would open source schematics of their electronics”
So you would enter what you have, and then the broken thing. Then you get suggestions on what parts you have to replace any broken ones, eg MOSFET from powerdrill here to make dishwasher work again.
I guess you would still need to troubleshoot what part is broken yourself.. but could of course be integrated with some common problem guides, ala ifixit style. Would be really interesting if it would suggest some more esoteric replacements, maybe 555 instead of transistor or diy inductors?
Or a library of scavengable parts by device!
Once upon a time they did. You would buy most consumer electronics and they came with a schematics including many computers. Then they stopped doing it. And people stopped repairing things and throwing them away instead.
Because business decided it was more profitable to sell you things again that you already owned and most people felt they must have the latest trend.
And here we are… progress huh.
I can’t help but envision a time when you’ll just scan everything as you add it to your junk bin, then you tell the AI what you’d like to make and it picks a combination of items that could make it possible.
AI says, 555 + arduino + microwave transformer = hair removal pen
Came here looking for the “just scan everything” comment. Let some AI/ML/SkyNet thing build my catalog. Not so much the AI parts picker but just identifying some of what’s on a PCB seems plausible. Especially if SkyNet builds a library of PCBs about which it’s collected knowledge either automagically or by manual input of whoever first cared enough to id one part or another. Then it could recognize a PCB and already know what it knows about it.
I’ve made half-hearted stabs at shooting pix of PCBs into Evernote and adding notes about whatever I’ve bothered to ID on a board. Looking for a thing can lead to identifying a bunch of similar things and capturing that helps the next time around looking for another something like that.
Sounds great – once I’ve inventoried my junk bin(s).
But it also leads me to wonder if there’s a way just to help you find parts for purchase. Is there already a solution to help me find a suitable part without trawling through supplier catalogues ?
This sounds like a good idea but isn’t. Firstly you have to spend a lot of time cataloguing every part inside your old electronics and then the more major problem that can’t be fixed with time is that if it is in your junk bin, you probably only have one, so this could cause you to create a design, get the boards made and then if the part fails you don’t have a replacement and maybe can’t get a replacement, so you then have to get a second board made with a new component. One option is to test every component before you catalogue it but that just takes even longer and doesn’t fix the fact that the part could break at any time and leave you with no replacement.
It is also a horrible idea for if you want to make another in the future and potentially means you have to redesign the circuit and PCB to fit different components and it makes collaboration much worse since not everyone would have access to the same components as you, essentially making sharing your work useless.
If you think about the time spent cataloguing, the salvage time, the possibility of having to make and order different boards when changing parts and the assembly time, you have then spent a lot of time on it when you could have saved yourself all that just by buying the part you need. Time isn’t free, most people only have a limited amount of time for their hobbies and most electronic hobbyists don’t want to spend the amount of time required for this to work well, they would rather be making things rather than cataloguing and organizing.
Also how much environmental impact does reusing these electronics actually cause? The vast majority of electronics still end up in landfill and if your part fails and you need to order another board, or if you need to make multiple boards each using different salvaged parts then the price and shipping increases. Any environmental saving by reusing parts is probably offset by getting replacement boards sent to you and any financial savings are probably ruined by parts failing and needing to order new boards, it will also cause you to waste a lot of time on all the things this requires.
The concept here may be good but it just has far too many disadvantages.
While what you say is true, you’re not forced to take the part offered – you can choose whether the 1, or 10, or 100 you have available are worth using or not. I do agree about the inventorying and don’t really think it’s worthwhile catalogoing parts on reclaimed boards .. but for someone with exotic RF power devices or similar, it might be.
I know I have a couple of hundred tubes of miscellaneous opamps, TTL, CMOS etc. and it would save me frustration if I chose something I had in stock rather than have to buy.
I think parts stock is something that works better for hobbyists, who will pick up a bag of something interesting when they see a bargain. Companies tend to have production parts in stock and there are good reasons to use again some part that’s already used in production. Most companies have a parts approval scheme (and CAD library) that encourages this. But commercially other parts would usually be handled by a next-day distributor rather than a big rack of might-be-useful stock.
This is meant to help you reuse old and broken electronics, which you likely won’t have more than one or two of a part at once unless it is a passive, so buying components at a bargain or just cataloguing your stock of parts was not really the use case presented here. I do agree that a system for cataloguing the parts you buy and keep in stock can be useful, just not cataloguing the parts on broken electronics.
As for what you want to spend your time on .. no, I don’t want to do a lot of cataloguing and tidying. I don’t much care if the bench is untidy and while I do resent sorting through the IC box for the 20th time to find that part I know is there, my limited efforts at keeping them ordered are far from this system.
But I’m not everybody. Some people love an ordered workshop with everything easy to find and are prepared to do the work to get there. Let them – it’s their time and their preference. and this software sounds great for that use-case even if it’s not cost-effective for the semi-commercial builder.
Was gonna say that you could just not use it when making PCBs, then I remembered that it’s included in the tool..
Bit yeah, I pretty much agree. Though if you have a sizeable stock, you could save both the indexing and ‘single component’ issues by only entering components you have 10 or more of. And/or will likely buy again either way.. and similar popular jelly bean parts.
But the most brilliant use would be a more repair geared integration, where you can compare the schematic of a broken device on hand and see if you can fix it. But then there would need to be schematics available, so kind of a different problem.
Yeah having a catalogue of parts you have in stock is useful, I never said otherwise, but the use case presented in the article and what the tool is seemingly meant for, cataloguing and using parts on old or broken electronics, isn’t really worthwhile.
I was dabbling with an idea like the EcoCAD. My solution to catalogging was a 3d printer with its hotend removed and high resution webcam in its place. Then I added a cardboard box with led light strips for fixed lighting that it could control.
Im no software engineer so i only got to emulating the g-code with a gaming controller to control the camera and save waypoint that it could cycle through.
With a little machine learning it could automagically catalogue parts i bet.
Considering how difficult it can be to tell different components apart then machine learning cataloguing parts doesn’t seem like it would work well, especially with things like ICs where the writing is hard to read, I think yo get good results your system would have to either reorient the part or the camera to get a good view of the text on the ICs.
Having a camera that can move in 3 axis as well ans lighting that can be manipulated goes a long way for readability on ICs.