Crowdsourcing Reference Designs From Github

A ton of open source hardware projects make their way onto Github, and Eagle is one of the most popular tools for these designs. [TomKeddie] came up with the idea of searching Github for Eagle files containing specific parts at Hacker Camp Shenzhen, and a method of scraping useful ones.

The folks over at Dangerous Prototypes used this to build the Github Hardware Search tool. Simply enter a part number, like “ATmega328P”, and you’ll receive a list of the designs using that part. You can then study the design and use it as a reference for your own project. You can also snag library files for the parts.

Of course, there are some limitations to this. The most obvious one is the lack of quality control. There’s no guarantee that the design you find works, or has even been built. Also, it only works for Eagle 6+ files, since prior versions were not XML. You can read more about the design of the tool over on Dangerous Prototypes.

24 thoughts on “Crowdsourcing Reference Designs From Github

      1. EVERYONE in China and many other places uses pirated Protel. It is the standard for multil-ayer boards and board manufacturing companies. I bought a seat in 1998 and am still using it! I don’t know any Protel users today who paid for it and I don’t think Altium cares. It leads people to Altium deisgner when they need more features.

        The point is, Eagle doesn’t have to be so awful. Diptrace is is also free and better looking for large designs – where Eagle really falls down. Like Eagle, more ambitious projects need a purchased Diptrace which is tiered in nice affordable steps. I’m all for Open Source but KiCAD has such ups and downs and given the rate at which something like Firefox crashes on Ubuntu14, do I want to work on big designs with KiCAD? (AT least you don’t describe the board with coordinates and equations like OpenSCAD but the learnign curve is still kinda brutal).

        Altium has announced a free version but the free thing is not the same interface as Altium Designer – strange decision.

        All that aside, the Github search idea is pretty interesting.

  1. This is pretty neat. Eric makes a good point that trusting these designs is tough. But I find a lot of projects link back to original datasheet which they derived the basic circuit from. Even this small bit of documentation when you post your own reference design is huge in helping the next person research the viability of your work.

  2. Hi guys,
    we are also working on a search engine for electronic circuits over at ; considering search results we obviously face the same challenges but have some ideas on how to check for quality. What would be interesting to hear from guys would be: what do you expect from a high quality project?

    1. I would say, there should be some indication how far the circuit was taken in its lifecycle. Is it just an idea transformed into a schematic? Has the circuit been simulated? Is there a (working as intended?) prototype of the circuit up and running?…
      Another point that could indicate the quality of a circuit is some background information about the designer. Was it just a kid or a “newbie” playing around for fun, or is there a more serious designer behind the circuit that actually should know what he does?

      1. Hi Andreas,
        considering the lifecycle is a very good idea. As Thoquz mentioned some of these things will be hard without a “human eye” however we are confident that just checking for working prototype and the amount of projects the maintainer has done can already give us a good indication.

        Thanks for your input. We’ll keep you updated.

    2. Looking at way a schematic/layout is done can tell you a lot of the person. If it is illegible, messy, tangled mess, means that the person don’t give a shit, I stay away from it. A person that can’t even draw a clean schematic isn’t likely to spend time doing a proper design. I believe in simulation, design before even drawing a schematic.

      1. Hi tekkieneet,

        it’s actually a valid point to check how a schematic has been designed. We will look into how our software can actually do this automatically as Thoquz pointed out this can be quite a challenge.
        Same as to the previous poster, thanks a lot for your input, we’ll keep you updated.


    3. The other commenters are suggesting ideas that require human intervention. I’m assuming you’re looking for an automated way to do this, a sort of pagerank for circuits. In the case of github circuits, you could sort by the most starred/watched projects. I don’t think there is a simple solution to the problem. I haven’t seen any unfinished circuits published on line before. Your tool could look for strange cases such as a wire connected directly between supply voltage and ground, unconnected components floating around and not passing the Electrical Rule Check

      1. Hi Thoquz,

        yepp your are totally right, we are looking at a way to automate without human intervention.
        I would say though that some of the suggestions of the previous posters can be implemented and we’ll look into it.

        Great idea with the stars and watches on github circuits, we also had a similar idea to test for project activity. Your second suggestion goes a lot into the direction of what EDA-applications should already cover, perspectively it would be awesome to have it in the rating as well, but it’s rather complicated to implement.
        Thanks for your help ;-) As for all the others, we’ll keep you posted on our next steps.


      2. Most shared/watched isn’t necessarily implies quality. Looking at my own HaD projects, the most view counts are the ones that are simplest and ironically not the ones I put in the most effort doing the design work. It only reflect the amount of wider appeal. My more complex projects are a bit too much for others to duplicated 0402, QFN and other fine pitched SMT parts. Not going to dumb down my own projects and force myself to use obsolete through hole parts. I do explain a lot about how things works and hopefully the readers do get to learn something.

        For me anyways, when I am interested in something, I usually look at the design/theory of operation part of the project and not at the actual schematic/layout. Hardware have cost/availability associated with them. I might have my own parts that I already have/used and design rules for making the PCB. Homebrew PCB or board house has their own limitation that a copy/paste project still needs to be tweaked. Also I do not like the haphazard routing without taking signal integrity into consideration of most of the open source projects.

        Source code on the other hand might come in useful if they are good quality code with reasonable amount of abstraction.

  3. I have been burnt more than once laying out switching power supplies, this should be a very good resource when routing such circuits, with a tight space constraint(the manufacturer data sheets and reference circuits usually don’t take this into consideration I feel!)

    1. In general, you have to understand the current flow for the high current path. Linear Tech, TI datasheet are very good on that subject. You also want to consider the return current path and make sure that the area enclosed by forward/return path is kept to a minimum to avoid unwanted inductance/coupling/EMI.
      My Github link is on the left hand side. I have Eagle CAD file and Sketchup 3D models for my layout. They are optimized for homebrew PCB.

      1. This reminds me of something at work. My company’s “initials” are DP. My colleage was tasked to create some marketing material. She discussed with some of the guys at work and suggested that we should refer to the company as DP. The guys strongly advised against it, but she didn’t understand why. Then they told her to google it when she got home. The day after she understrood why DP would be a bad idea to use for the marketing materials. :)

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.