Looking for Tutorials - Eagle and Github?

General project help for Adafruit customers

Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.
Locked
stephanie
 
Posts: 295
Joined: Sat Dec 11, 2010 1:17 am

Looking for Tutorials - Eagle and Github?

Post by stephanie »

This is a request for some how-to info for 'beginners'.

I would really love to learn Eagle but every time I try it just drives me away in frustration. I usually learn-by-doing, so I grab an Eagle file from Adafruit or Sparkfun, for something I've already built and am familiar with, open it up, and try and modify it. I can't even figure out how to add a component, draw a line, or move a trace from one place to another without the whole thing blowing up. I can read schematics. I can draw 'em by hand. I can use paint and vector drawing programs. I can't get my head around Eagle.

I'd love to design my own PCBs now and then for my projects, and occasionally people ask me to share a schematic for something I've built, but Eagle just makes me want to cry. The only success I've had in the past was using EasyPCB (I think that's what it was called) with their free proprietary software, where I just plunk the footprints down and route the traces myself and skip the schematic completely. It's backwards and sucky but at least I could draw lines in that program.

I would also like to learn / understand Github. Their FAQ and howto sections just don't seem to have much information for total beginners. I've set up a couple repositories and even 'pushed' an update once, but they don't even have a glossary to explain all the terms they use. Like what is a "Pull Request?" It seems like there's a whole other layer there that I've missed completely - like there's a prerequisite that I missed.

It makes me feel a bit slow that these two things seem especially elusive for me to figure out. I can build stuff, read stuff, learn stuff, but these two areas leave me defeated. Ok I've never taken any formal education courses on electronics, but I'm sure many other hobbyists haven't either.

So, if anyone can point me to a good beginner's tutorial or a 'for dummies' type reference for Eagle and for Github, I'll be very grateful.

User avatar
philba
 
Posts: 387
Joined: Mon Dec 19, 2011 6:59 pm

Re: Looking for Tutorials - Eagle and Github?

Post by philba »

There are tons of tutorial on eagle. I've yet to see a bad one. Google is your friend.

The thing to realize about eagle is that it doesn't use a Windows style interface. Forget everything that you know from windows or mac. In particular, it is modal (well, for the most part). You select a mode (operation) and then apply it to an object. Rather than the windows way of selecting an object and applying an operation. For example, to drop a part on a schematic, you select drop and pick a part from a library. Then each left click drops a copy of the part on the schematic. or if you want to change a trace width, select change/width and then each click on a trace segment changes it's width.

Once you get used to the interface,it can be really efficient. I've gotten to the point where I can bang out a schematic really fast and layout/routing is actually pretty easy.

Some things are clumsy, like group select and manipulate (like move or rotate) and you just have to get used to it.

On using the autorouter. I know people will disagree with me but the eagle autorouter is a steaming pile of canine feces. You have to fiddle with it a ton just to get mediocre results and on even fairly simple boards, it never finishes. Take the time and learn how to manually route a board. You will get significantly better results. Once you get up to speed, it won't take that long either.

Once you get the basic operations under your belt, take time to learn about the library editor. Creating a part seems to get a lot of complaints but it turns out to be fairly easy. There are several tutorials out there.

User avatar
adafruit_support_mike
 
Posts: 67454
Joined: Thu Feb 11, 2010 2:51 pm

Re: Looking for Tutorials - Eagle and Github?

Post by adafruit_support_mike »

First and foremost, don't be hard on yourself. Both Eagle and Git are things that make sense once they finally make sense, but are opaque until the light comes on.

I personally have a tolerate/hate relationship with Eagle because its user interface really and truly sucks. As philba said, it's a dinosaur from the 1980s that hasn't been allowed to die yet. I hate the autorouter less than philba, but only because I use it as a "give me a hint" tool. In Cadsoft's defense, writing a really good autorouter is hard, and the really good ones have really high license fees. I'll autoroute to get a rough idea of how the traces sit in relation to each other, then do the real routing by hand.

If you aren't using the schematic capture tool in tandem with the PCB layout tool, I'd suggest you give it a try. That's where most of the value is. Yeah, there are also a lot of headaches, but it's nice to have a program keep track of all the "this capacitor connects to that pin on the chip" detail. When I do PCBs without an associated circuit, I make at least one wrong connection more times than I'd like to admit.

WRT: git, I've only been using it for a year or so (I was happy with cvs and tarballs for a long time), so I'm still well aware of the learning curve there. The path that helped me learn fastest was to get a graphical front-end program (I use a Mac, so SourceTree was where I settled) and started building local repositories on my own machine. I'm the first to agree that the git documentation is written by people who already know git for people who already know git, but you can pick up the ideas as you work with an actual repository.

For both Eagle and Git, the best way to learn them is to start with toy projects.. something small and simple that you don't care about much. Learning a new way of handling tasks is hard mental work, and can be stressful. Working on a project you care about can also be stressful. Working on a project you care about with unfamiliar tools is exponentially stressful. Throw in a deadline and some arbitrary 'neatness counts' criteria left over from third grade, and you're well beyond any normal person's "screw this" threshold.

For Eagle, start with something like an LED and a resistor. Build the circuit diagram, switch to the board, route it, and award yourself a cookie for having gotten that far (seriously.. you'll have earned a few chocolate chips by that point). Then add a transistor to turn the LED on and off, and deal with the changes on the PCB. Go in small steps, making the circuit a little more complicated each time, and dealing with the issues necessary to handle that change. Every five changes, start a new project and build a new version of the same circuit/board from scratch. That will give you practice with the techniques that work, and a chance to try new ideas you've learned in the last few steps.

For git, create a local repository with exactly one file. Make some changes to it, and get familiar with the process of staging and committing changes, checking out older versions, etc. Then start playing with branches. Learn the basic tools there, and get caught by the "BANNED, you merge another branch into the one that's checked out now" and "whoops, I just committed those changes to the wrong branch" mistakes enough times to avoid them. Then clone your repository, open the clone, and start working with pushes and pulls. Then add some more files. Get used to adding, removing, and moving files around in a repository. Then start playing with stashes.. change several files, stash the changes, do a minor edit somewhere, then fit everything back together again. Once you're comfortable with the basic operations, work out a branching strategy and workflow that are comfortable for you.

In both cases, there's a lot to learn, and ultimately you have to learn it by banging your head against the keyboard. Set things up so mistakes are as cheap as possible, then go make a hell of a lot of mistakes.

We all have. ;-)

stephanie
 
Posts: 295
Joined: Sat Dec 11, 2010 1:17 am

Re: Looking for Tutorials - Eagle and Github?

Post by stephanie »

Thanks for the comments.

For Eagle, I've found a couple tutorials linked from Ladyada.net that I'll try - maybe a bit outdated (the first one is for Eagle 4) but I'm sure that the basics haven't changed too much.

I guess part of what I find frustrating is I am kind of approaching things 'backwards' - I know in my head exactly what I want, and that's a board layout. I'd love to set up the outline of a board, place components where I want them, and manually route traces, then just push a button and have it spit out a schematic. And if I change something halfway through, like change my mind on a component or add another one, I want to do it on the board first because that's where I'm visualizing it in my head.

I gather though that Eagle works the other way around, and that everything you do starts with a schematic? As I said, this seems backwards to me because how does Eagle know what size board to make or where to put the parts? And if it just best-guesses it then you have to do it all manually anyways, so why not do it manually to start with?

For Git...hub I think I've figured out my first big stumbling block - "GIT" and "GIT HUB" are two different things! So all the help and info and FAQs about github are really just about a web-site (or gui front end?), which is why it doesn't tell me anything about what "git" is and how to use it. Right? I'm sure this is all second-nature to folks with background/training/education in this stuff but it's not obvious, or at least not to me.

I have gone through the process of setting up with Github, I have two repositories that I created. There's no information though on what to do 'next' - I mean, there's info on how to fork someone else's project, but that's about it. Nowhere do they actually tell you what these things mean (eg. 'pull request' - github told me I have one, but not what it is or what to do about it.) But now I guess that's something which is related to "git" specifically and not "git hub" so much...

Anyways, I'm going to try tackling Eagle again as my first step. I have a project for which I would love a custom PCB, and there's no deadline and no external pressure so hopefully that's enough incentive to keep at it without getting too frustrated. If I succeed I'll get the PCB made, and treat myself to an Eagle badge from the Adafruit store too hehe.

Thanks again!

User avatar
philba
 
Posts: 387
Joined: Mon Dec 19, 2011 6:59 pm

Re: Looking for Tutorials - Eagle and Github?

Post by philba »

Yeah, with eagle, you start with schematics. This is actually a huge benefit. I think it's a false efficiency to just do the board. If you make a change to your schematic, it's reflected in the board and you can fix it up quickly. With the schematic, you can run an engineering rules check that will catch missing wires or incorrect connections. So, for example, if you forget to hook up ground on a chip, it will tell you. Just doing the board alone won't catch those kind of problems. Plus, doing a schematic is actually pretty fast once you get the hang of it. It's also great for the prototyping to final process: I do the schematic, select through hole components, put the circuit on a breadboard and debug it. Then I'll make tweaks to the schematic from the debug session, change the through hole components to surface mount and make the board.

User avatar
adafruit_support_mike
 
Posts: 67454
Joined: Thu Feb 11, 2010 2:51 pm

Re: Looking for Tutorials - Eagle and Github?

Post by adafruit_support_mike »

I gather though that Eagle works the other way around, and that everything you do starts with a schematic? As I said, this seems backwards to me because how does Eagle know what size board to make or where to put the parts? And if it just best-guesses it then you have to do it all manually anyways, so why not do it manually to start with?
I know what you mean.. I started off doing board-only layouts too.

You're right that the schematic editor doesn't know anything about the board or where the parts should be located. Those are the PCB editor's job. OTOH, the PCB editor doesn't know what parts or how many you want in the circuit, or which pads are supposed to connect to each other.

If you start by drawing a schematic, then switch over to the PCB editor, Eagle will automatically give you pads for all the parts you need. The pads appear off to one side of the board, and you can move them wherever you want them. Better yet, it will draw 'air wires' between all the pads that need to be connected by traces.

Air wires move along with the pads, and typing 'ratsnest' or 'rat' will automatically show the shortest path for any connections that still need to be routed. Air wires also follow the traces you've routed, so they keep you from getting lost when you have several partially routed traces.

It's easier to see it happen than to read about it, so try drawing a simple schematic, let Eagle generate a board for you, and play around a little.

stephanie
 
Posts: 295
Joined: Sat Dec 11, 2010 1:17 am

Re: Looking for Tutorials - Eagle and Github?

Post by stephanie »

Thanks for the replies and tips!

I spent a few hours with it last night and a couple more today. It seems like the first 2 hours or so were the worst, then after that things started to click.

The two biggest hurdles I think were the way the tools work (pick the action first, then the object), and getting used to the idea of drawing Nets instead of 'wires' or just 'lines'. Once those two concepts sunk in, the rest started to fall into place.

I've made a schematic of my ISEB6 bracer, more sort of a block diagram since it was assembled with off-the-shelf parts, but it worked.

I also figured out how to define new devices, so I could make some of the 'blocks' I used that I couldn't find existing parts for, like the OLED 128x64 display. (I did find the actual display panel in the Adafruit library, but not the finished board as it appears in the shop.)

Image

I've also started making a proper schematic for building a new bracer with a custom pcb instead of using existing boards wired up with jumper wire. That's much more challenging, and looking at the board screen... yikes "ratsnest" is exactly the right description for how the airwires appear!

Anyhow, I'm feeling a lot better about it now. Thanks again for the comments and encouragement!

User avatar
philba
 
Posts: 387
Joined: Mon Dec 19, 2011 6:59 pm

Re: Looking for Tutorials - Eagle and Github?

Post by philba »

Yeah, looks like you're getting it. One thing that makes eagle easier to use (for me at least) is on schematics I don't bother drawing the nets from one pin to the other. I just draw short nets (cut-n-paste like crazy) and then name the nets. (when you paste a net on to a pin, you have to move the component to get them to hook up) For example, if you have a power led, call the next pwrled, draw a short net from the led, name it pwrled and then do the same with the driver pin (cut and paste). Eagle connects them and when I move things around in the schematic, I don't have to deal with cleaning up the rats nest of nets that results. I use labels on the nets as well so I can see the what's what. I find myself using the schematic editor to play around with circuit idea. I just wish there was a pspice connection then all would be right with the world.

User avatar
adafruit_support_mike
 
Posts: 67454
Joined: Thu Feb 11, 2010 2:51 pm

Re: Looking for Tutorials - Eagle and Github?

Post by adafruit_support_mike »

Whoa.. big success. Bravo!

It sounds like you're past the steepest part of the learning curve. Keep plugging away, and if you get stuck on something, we're here to help.

stephanie
 
Posts: 295
Joined: Sat Dec 11, 2010 1:17 am

Re: Looking for Tutorials - Eagle and Github?

Post by stephanie »

Thanks for the comments and encouragement! Philba, your suggestion about using short nets and just naming / labeling them is great, makes the schematic a lot easier to tweak and edit!

I ended up scrapping the board I started on Thursday as it wound up being much too large to fit on my wrist, and started over on Sunday creating my first 'from scratch' schematic and board. I had too many parts in there and the whole thing ended up too unwieldy.

The new version will use the ATMega1284P for the uC, as the extra ram and flash will let me build the software with all the bells and whistles that I wanted. I've packed in as many goodies as I could think of, while still keeping the board as small as I could.

I tried the auto-router at first but it quit at 68% and I didn't like where it was going so I scrapped it and routed everything by hand. I must admit, I really enjoyed doing all the routing. It's like puzzle-solving, like figuring out a maze. When I was finished, I had 5 or 6 unused I/O pins and then started tweaking everything so I could bring them out to test-points, so I can easily use them later if I get new ideas.

I plan on getting the board done at OSHPark so I downloaded their DRU file and everything seems ok (except for Stop Screen errors where the silk and solder mask are in conflict, but from what I've read, they are not critical / will be resolved in fabrication).

I'd be grateful though if someone with experience could have a look at my schematic & board, and let me know if it looks ok? I'm not 100% satisfied with the routing, but I think it should work. I've zipped up the schematic and board files here: http://planetstephanie.net/blog/wp-cont ... B_MkII.zip

Thanks again!

p.s. The lower part of the board is designed to be broken off or cut off, and act like a daughter-board that will be connected by a bit of ribbon cable. It's based on the 'proto-snap' boards from Sparkfun.

Locked
Please be positive and constructive with your questions and comments.

Return to “General Project help”