Take a moment to try to think of one single thing that could be done to achieve the greatest gain in ease of schematic and pcb design. If you could instantly obtain one thing what would reduce the aggravation the most?
When I consider this the answer I come up with is standardized , tested & trusted libraries. Searching for components is inevitably stressful. The reason we dont have something like this is the only place anything of this sort is posted is manufacturer provided things like Microchips Ultralibrarian files for its products. They are the only ones who want to take the liability of providing such things. That is not entirely true though. Adafruit and Sparkfun and various other organizations have started to address this problem. What is lacking now is unified direction in their approaches.
Different companies use different suppliers. They have their own organization systems. Their own way of labeling. I offer up the tagging of MP3's in Itunes as analogy. What we have now is comparable to sitting and manually tagging each and every MP3 in your collection.
Library searching is a huge problem now. It would be nice to be able to punch in the (enter your favorite supplier) part number of the exact part Im holding and have the same part from the library pop up.
For any person, organization, or company to do this is impractical. Designspark PCB provides us a unique opportunity to achieve this though. We can crowd source a standard way to make a parts footprint, schematic symbol, 3d info, labels , etc. We can define a universally useful standard of labeling , organizing , and tagging components. We can compile a wiki like Standard library of tested and trusted components. Any user can provide tested contributions for addition following a set of crowd sourced quality control guidelines. This would include different Supplier and manufacturer numbers. As time went on the vast majority of parts and search tags would be added.
I could see this working as a community run site like wiki. Rather then trying to import thousands of different parts from separate libraries you would just download the latest version of the standardized tested & trusted open source library. There are millions of people designing components and testing them. If every one contributed one part we would have quite a library. Because we do it we avoid the taboo of making it search-able by numerous competing suppliers p/n and useful discriminators like package threw hole / not.
Doing this we stand to really gain by the hard work of companies like Adafruit and Sparkfun by combining both of their contributions and reducing redundancy.
I think this is how you open up schematic and pcb design to a larger audiance and make the most impact. The interface difficulty wouldnt play as much of a role if you rarely had to make components or deal with importing libraries. Not that using Designspark PCB hasnt been refreshing compared to Eagle.
Any thoughts? Volenteers ? :)
Martin Keenan
Thanks for all the comments and ideas, especially to Addidis for kicking this debate off!!
Lets start with what we've got and we can work on implementing the ideas to take it to the next level by integrating to the program, enhancing the ability to browse shared libs and so on.
As a couple of you have pointed out, shared symbols are more likely to be useful if we set up some guidleines. These guidelines should come from the community so lets get started!
I have posted a brief starting point for a discussion around some guidelines that we can ask people to adhere to if they are sharing libraries as well as some general pointers that can be useful.
We've got most of the tools here already to share and rate - libraries can easily be shared on DesignSpark and the review and comments system can be used by members to comment on and rate their experience. We don't have the facility to allow people to come in and edit things like in the wikipedia example but this can be done if it is the best way for us to go.
It would be very useful to have a picture or some proof that a symbol has worked before but even then what works for one person may not for another - depending on their own manufacturing process, company standards, even their own preferences. Wouldn't you say it is sufficeint for someone to say they have used it and after that (like with anything you source and use for your own purposes) it is up to the individual engineer? This can be useful for professional work as well as hobbyist work in my humble opinion - if an engineer needs to spend a little time making some small modifications then it is still better than starting from scratch in many cases.
Anyway great debate and looking forward to exploring the ideas for the community editible and integrated library manager - first lets set out some ideas as to what approach people should take so that the shared symbols are of useful for as many people as possible.
Cheers,
Martin
Addidis
I think peer review is really important. With out a peer review system this has no value over say the adafruit lib. I think the idea to use comments (if you meant like the one im leaving now) will dispearse the usefull information to a degree its usefulness is impacted. As things stand now , I can search the web for random libraries. This leads to an extreamly messy library folder and redundancy (not the good kind).
Perhaps 2 general libs. Submitted and confirmed threw peer review. My main goal for hobbyists is to provide some level of confidence . So if they choose to use only the confirmed lib, they can be confident using the stock parts they will work.
Rather then thinking like an engineer, who would customize the part to their needs, think more along the lines of hobbyist , who would feel like they accomplished something using some stock parts , and designing their project around it. Then as suggested above, engineers could use it as a head start.
rogerlas
No pro can trust parts from a Net collaboration. However, at hobbyist level, you can provide a database of parts with "no guarantees" stipulated. Hobbyists are always asking for CAD parts.
Shared parts willl tend to be mismatched because of issues like:
1. Symbols need to be in proportion and to a useful scale. I can't place your enormous transistor symbol beside somebody else's tiny IC. Some hobbyists fill a schematic page with just a few gigantic symbols.
2. Symbol IC pins must be on grid - the same grid - and with the same spacing intervals.
3. Pin labels should probably be taken from a manufacturer's datasheet and not be invented by the creator.
4. Are power pins hidden or explicit?
5. Are pins placed like a top down view of the IC or are they grouped by function?
6. Symbol style.
Perhaps you could set out some standards to encourage uniformity.
Martin Keenan
Completely agree Rogerlas and would be great if we can get some basic guidlines set down. No matter how strict the guidelines there will often be a need to modilfy shared content so it is perfect for another individual's use but if we have some basic ideas generated and people stick to it then shared libs can be a great starting point for everyone
Martin
Addidis
Really like how your thinking. Those are some good ideas for standards too. That is what it will take for it to work.
Martin Keenan
Would be great if you could help us get some guidelines started :) !!
Mark Cundle
Some excellent ideas. If we create a space and the functionality to 'rate' or provide evidence of usage, will you guys help fill the space?!
Addidis - you mentioned the Microchip files, available in .bxl and converted by the UL Reader. Can you (or anyone else) recommend the quality of the converted files when used in other eCAD tools??
halfmast
I have used the UL Reader for several years now and to date have exported footprints/symbols into other CAD tools successfully, including Allegro and PADS. The parts are easy to modify if needed and certainly is easier and faster than building from scratch.
Addidis
Ive used them in Eagle, but due to budget and lack competence in eagle have never ordered boards made with it. Ive used another app which I wont name because it only allows use of their fab service but its closed and self serving and I took the time to design my own parts in its format. Im disabled my own capacity to contribute is severely limited by income. In an ideal world I would be rich and would have approached this differently, coming to the table with an already formed lib to start with etc .
NitWit
For some hobbiest projects, an open source library may work, but for commercial projects, that is a no go at all.
First of all, me as a professional engineer, I have to review and check every library symbol anyway due to restrictions from quality control. I am just not allowed and not willing to rely on foreign data until I have checked them and fixed them to my requirements. So, such kind of lib would not have any advantage for me. Just think about missing your project dead line, due to a bad footprint, you used out from an open source lib and a required redesign (with all the costs for new prototyping)? Will anyone go to your customer saying, you used open source lib without verification by your own? This customer will just go and search for new a designer.
Then, I have to think about commercial production issues. As long as you solder PCB by hand, things like padsizes and form, soldermask and pastemask are not really an issue. But if it comes to commercial SMD assembly in quantities, all this has a direct impact on the quality of this assembly and also on failure ratings. So every designer, I know, has his own libs, where he spends weeks and months for optimization together with the engineers from assembly dept., getting a most reliable lib for the situation in his setup of paste printers, assembly machines, soldering machines, PCB, parts, etc.. Publishing this into an open source lib would make no sense at all, because other company means other machine setup, other soldering process, etc.
Frank Eugen ...
I would like to weigh in on this subject, and think I will use the above as a means to open up more discussion. First of all I am a huge proponent of sharing work and data. The UL reader distributed by several manufacturers including Microchip is my baby. However, I agree wholeheartedly with comments such as the abmve that point out the problems of using an untested or foriegn part in any designs.
One goal that I feel manufacturers as well as others should have however is the goal to provide a reasonable starting point. For instance as mentioned above, there are definately different needs for a hobbyist versus a commercial product. However the manufacturer should be able to provide information such as the pin names and function for each pin, as well as a physical description of the part that each of us can use in our design process.
I do not think there is a one size fits all footprint or symbol. However as a long time designer I also have had to build the same library part dozens of times for each CAD tool I have used as well as each design that is not "standard" in layer count and processes.
My vision, which relates to this discussion, is that ther be a repository of hard core data, like pin names, functions, etc that could be automated for use by designers. People creating 400-3000 pin devices would have some assistance in creating the symbols which are so time consuming at that size. But they should not be restrained to using the divisions of the data among gates that the creator did, or the placement of pins as he has. Footprints could be based on actual part sizes and modified based on technologies required, whether this be hand soldering or mass production.
Our tool is designed to assist with all of these issues, by storing all of the above data and then building both footprints and symbols based on a standard. Of course the standard is not proper for everyone, BUT the standard can be modified be each end user to better fit his own library requirements, whether this is done within our tool on a semi automated basis or in the target CAD tool.
Of course we can not guarantee that every part built with the tool meets the needs of the end user. But we could help in creating libraries that could be used as a "basis" or "strarting point" saftly. I see no reason why many users using a version of this tool could not collect data, such as pin names and types and part sizes that could be used by others. Each user might need to review the footprint and symbol and perhaps modify it for thier own use, but I can see this process becoming more and more automated for users, if the data were available.
Bottom line I believe it is not only possible but important that the industry start making moves to not "build from scratch" each new part used in a design, but to start to off load some of this effort so that the actual design process can be focused on. Yes, I can see completed footprints and symbols used by different companies in different design processes with different end goals starting from a common set of collected data, perhaps data distributed in a "basic" or hobbiest format that others can take advantage of.
Addidis
I suppose I look at the problems you mention, and again use the analogy of wikipedia . One could argue that professional writers have no use for a crowd sourced , open encyclopedia . So should we not have a wikipedia ?
If your goal is to cater to professional engineers , that makes your market 3% of the United states , this according to some college stats I saw a few years ago.
When I thought of this I asked my self how to reach a larger growing audience and specifically targeted hobbyists .
I think this article more eloquently states it . http://procrastineering.blogspot.com/2011/03/re-emergence-of-diy-vs-big.html
To make something truly useful you need to put it in the hands of the masses. The same reason wikipedia is more useful (perhaps more used) then professional encyclopedias.
NitWit
I do not think, Wikipedia is a good example, how it should work. Just think about, how articles are written in Wikipedia and how they are reviewed. Do you really think, just because there is something written in Wikipedia about an issue, it is the truth? Or even reliable? Even if 10 people are working on one article at wikipedia, you can not be sure, that it is true, what they are writting. Having a closer look to wikipedia in Germany, 90 % of all articles show messages, that the article is not aproved. There is nothing more dangerous as "half-knowledge" and that is, what wikipedia is full of.
"To make something truly useful you need to put it in the hands of the masses."
This is not even working with the classic open source project "Linux".
"The same reason wikipedia is more useful (perhaps more used) then professional encyclopedias."
That is why so many people are running around today, thinking they know everything, just because they reed it at Wikipedia.
Again, that idea may work for hobbyist. But it will not work for professional and commercial projects. But those are the projects which are standing for the required turnover, companies like RS are in need of.
FirefighterBlu3
"Encyclopedia Britanica" also has errors. So do industry publications. There is a variety of accuracy to both. Wikis are dynamic and the difference is that anybody can update them, and the updates can be far more rapid than will be found in an industry publication.
The reliability of something can't be taken for granted in either. The vast majority of data sheets out there have small technical errors and typos. That's why addendums are published. Even the Eagle Pro has libraries of unfinished and sometimes slightly incorrect parts. Just because one company or source publishes something, and you paid dearly for it, doesn't mean you should take correctness for granted.
I can't begin to recall all of the professional and commercial project suppliers, whose parts and documentation are left wanting. Especially those written in engrish.
Anyone who thinks they know everything because they read it at a website, are mistaken, and such people are usually easily spotted. Professional just doesn't imbue confidence today like it did yesterday. Product is rushed to market. Sales are more important than quality.
Quality and accuracy depend on those who do the work, not the medium by which it is done.
Addidis
Thanks for commenting first off.
"Quality and accuracy depend on those who do the work, not the medium by which it is done."
Exactly , and the market this helps takes pride in what they do. We dont get paid to do it. This leads me to expect a higher level of quality then say wikipedia or "Encyclopedia Britanica" even.
FirefighterBlu3
A pleasure.
I'd also like to make the point that many professionals a) have a hobbyist interest in the first place, and b) make business software recommendations swayed by their hobbyist influences, and c) often "grow up" from hobbyist to professional and carry along with them their favored tools. Using the aforementioned reference to Linux (my personal favorite of course), Linux made heavy professional inroads and influence precisely because such hobbyists brought something from home, that worked beautifully, into the work place.
I agree with your suppositions. If I love certain software then I'll want to help improve it. I usually favor free (open) software over commercial software because of this. I'll also encourage others to use it as well, be it @home, or @work.
flavioansovini
I think that it's a very good idea to share libraries tested and working.
Personally I often prototype PCB with a
cnc machine. This allows me to get the card immediately, but
unfortunately I had to change almost all the footprints to make them
processed. Maybe in your project there is room for diversification
the final use of the footprint, for those cards made with
professional techniques from those used for prototypes made with cnc machines or homebrew cards ..
what do you think?
Addidis
Thats an awesome point. I think thats another great way to search threw parts. Check box discriminators could be used to determine what kind of project your designing when you begin the project, and then it can take the MFG part number and Automatically place the proper foot prints since there will be multiples for each part.
SiliconFarmer
Its a good idea.
Check out http://www.esawdust.com/blog/eagle/partsearch.html This user has put all the public Eagle libraries into a searchable database and made it available online to everyone. I use this site on every design I do to look for parts that I haven't used before.
You might think I would check the available Eagle parts before using a part in my design, but frankly I don't work that way. Making a new footprint and symbol isn't that hard after you've done it a few times.
I think one thing that would be needed is a script or built-in tool to take all the parts that were used in one design and help the user to automatically mark them as "fabricated successfully". Every design has 10's of parts in it. I wouldn't take the time to go to the web, search for and individually mark each part I used. But I'd be willing to press a button that generates a table of parts used, add comments on any problem parts, then press another button to have it uploaded to the database.
The script/tool should at least alert me to parts in my design that aren't in the database, so I can upload them. Better would be to automate this too.
I've found several problems in Eagle libraries, even parts in Sparkfun's library. Some of Sparkfun's parts are marked that they haven't been tested, but I ran into at least one part that was wrong that was not marked. I'm fairly careful to check the accuracy of any part I haven't used before, but the pin spacing error was subtle enough it made it past me and I had an unsolderable QFN part on my board. I didn't sue Sparkfun. Their lawyers were powerful enough to beat Sun Microsystems, so I figured I didn't stand a chance.
Couple questions to ponder:
How will you avoid name collisions?
If I modify a library part for my own use, how will that be handled? I fairly frequently modify the silkscreen and other non-copper layers such as keepouts. The Eagle library parts are all over the place on quality and style. Sometimes I will also tweek the pad sizes or shapes.
If I think a part is actually wrong, but I've "fixed" it, how would the fixed version be included and referenced?
Addidis
Excellent thinking with the scripts, I was also thinking the same. Perhaps incorporated into DSPCB auto update. A finalize version button might be what you mean. When you get your boards and know the quality of the design, you finalize the files make appropriate notes like forgot to connect such and such a pin and then creates a zip backup . And then runs the prompt for you to check boxes grading the parts.
re: bad parts exactly my point you found it yet chances are its still that way in the lib. This is where this would really cut down on wasted time and money.And over time with peer review better quality. In effect if could submit the files for each part to an automated system that peer reviews automatically. Then auto update would download these stats each time you open DSPCB.
Modified parts could be handled a few ways. When placing a component you can be shown options and select with a radio button. But again you cant please every one every time. Even a good base to start with is an improvement over how things sit now. The same for pad sizes. Small and large versions?
I would think negative peer review would instantly flag a part as defective using an update system like above this would effectively stop people from using it. Survival of the fittest algorithm.
LStacey
Some really great ideas here. There are some very good arguments for open data from a user point of view but from a commercial standpoint I guess it's a little worrying that it makes the switch to a competitor product that little bit easier.
There is a lot of discussion to be had around this topic!
mnphysicist
I'm not following the logic of how open libraries could make switching to a competitors product easier... short of a common standard that all ecad vendors would agree to, AND implement in exactly the same fashion, both of which seem highly unlikely.
Open libraries could work well for schematic symbols, and for vendor recommended footprints. I too have my own footprint libraries honed out over hundreds of thousands of builds on idenctical tools. I also have another set of footpring libraries which are optimized for a given prototyping process... Its a pain having to replace any number of footprints between production and prototype, but I dont want the production house to suffer poor yields, nor do I want my prototype tech throwing his soldering iron at me. The thing is, both sets of libraries started out with the manufacturers recommended foot prints. If a crowd sourced effort focused on solid manufacturers recommended symbol styles and foot prints, even if they were not directly used, the headstart provided by them, mirror across tons of users could save untold multitudes of time.
Addidis
Making it hard to use / switch , isnt a marketing strategy. One could argue it was that practice that left a vacumm for Designspark PCB to fill.
Providing a better product or service is how you make customers chose to be loyal.
LStacey
I wish I could add a Facebook "like" to this.
ralight
As long as there's a way to ensure the part you're putting down has been tested (ie. actually fabricated, soldered and tested) then it's a great idea. Something like an "I used this successfully!" button on a web page associated with the part. If it's got thousands of points you should be fairly confident it's ok.
Addidis
That was what I had in mind, although I made the analogy of an ebay seller rating when I was brainstorming. Perhaps require Picture proof of a successful fab. Then a confidence rating from people who use it after its posted, on the individual parts.