Text based schematic design / pcb design software? - Page 1
Forum section: electronics / general

author: Stonent
author_rank: Super Contributor
timestamp: June 10, 2013, 05:58:44 pm
content: Do any of the schematic and/or PCB design software packages have a text based control mechanism?I've been playing around with Fritzing (mainly the schematic window) to design an Arduino shield with sockets for all the DIP based AVR chips for programming.The actual board will have very few real components, 1 electrolytic cap, and 1 16mhz resonator and the rest will be pin headers and sockets.Though a very simple design in concept, the schematic has been routing for over about an hour now on my laptop and has been through over 1000 iterations and has only been able to route 31 of the 38 connections.I think it may have to do with how you do a schematic in Fritzing. You physically place your parts on the graph paper so to speak and draw your connections in straight lines. Then when done you deselect "do not autoroute" on all your lines and kick it off.The flaw I see in this is that your physical placement of the parts determines the final schematic routing where as I think if I was able to create a parts list, so to speak, and just go line by line connecting pins like:Code:Connect U1 Pin4 to U2 Pin5Connect U1 Pin5 to U6 Pin3 and MainGndConnect C1 + to PSU +5Connect C1 - to GndOr optionally more relative termsCode:Connect U1 SCK to U2 PB0Connect U1 Gnd to U6 Gnd and MainGndAt this point I don't care about the physical placement of components in my schematic if the software has to move heaven and earth to draw the wires.I think I'd much rather have the software determine placement and rotation of parts to simplify it.I don't have any prior experience with schematic design I just know what I want in my head and want to document it.

author: FrankBuss
author_rank: Unknown
timestamp: June 10, 2013, 07:20:00 pm
content: I don't know a software which places the parts. Maybe connect different pins of the microcontroller, if possible, for minimal crossovers, which helps when routing. And try the auto router of Eagle, much better. Of course, manual routing is the most fun

author: c4757p
author_rank: Super Contributor
timestamp: June 10, 2013, 07:22:18 pm
content: Quote from: Stonent on June 10, 2013, 05:58:44 pmYou're using a autorouter for that??

author: MacAttak
author_rank: Unknown
timestamp: June 10, 2013, 08:03:46 pm
content: You may want to just spend a little time with Eagle. It's not awesome, but it will get you a little bit further than Fritzing will. And it should be free for something this small (you shouldn't run up against the freeware limits).But it sounds like you basically aim to do the same thing as this?http://www.kickstarter.com/projects/attinyprogram/chipper-the-attiny-programming-and-prototyping-shiExcept maybe support the larger mega chips too?

author: Stonent
author_rank: Super Contributor
timestamp: June 10, 2013, 08:28:47 pm
content: Quote from: c4757p on June 10, 2013, 07:22:18 pmWell unless I missed an option in the software, it wants to connect everything "as the crow flies" with lines going straight from point A to point B. Then when you autoroute it gets stuff out of the way so you can see it. With wires just going back and forth across the components I can't see mistakes as well.However I have also noticed that sometimes it seems that I miss the pin and it looks connected when it actually isn't. Thats when the autorouter seems to just delete that line. This is sort of how it looks now, some things are not connected at the moment either because I missed them or the autorouter ate them. I have not added the 40 pin DIP AVR yet.

author: Stonent
author_rank: Super Contributor
timestamp: June 10, 2013, 08:46:09 pm
content: Quote from: MacAttak on June 10, 2013, 08:03:46 pmMy plan is to support all the DIP AVRs.This is how I plan to have the end layout look, ignore the jumper wires on the side, I'm just using them to pin the board to the Arduino. Also the 8052 is just house-sitting for the Mega32The left socket will be for the 28Pin AVRs. The next will be 20Pin AVRs on the top and 8Pin AVRs on the bottom. The last socket will be for 14Pin AVRs. (I only have 28 pin sockets on hand so I made do with what was available)

author: MacAttak
author_rank: Unknown
timestamp: June 11, 2013, 01:57:13 am
content: I haven't touched Fritzing in at least 6 months, so I don't recall if it has this feature...But in Eagle (and other schematic capture tools), you can just attach a wire to the pins of a schematic symbol, without routing them on the drawing surface. In the schematic diagram, it looks like a short wire that goes from the microcontroller lead to nowhere. This wire is generally referred to as a "net". And if you give more than one of these "net" wires the same name, the software will recognize that they are really connected together once you go to the board layout part of the tool. In other words, if you have a short wire named "VCC" in one part of your schematic, then the software will behave as though you had wiring drawn to connect it to all other wires named "VCC".For example, many components will have a connection to ground. All of your microcontroller sockets will have at least one (and the middle one that can accept two chips will have two grounded pins). If you simply connect all of those pins with wires on your schematic, it will look like a mess of spaghetti. But instead of connecting them all with routed wires, just attach a short wire to each one, and give them all the same name ("GND" for example). This is electrically exactly the same thing, but without the clutter in your diagram. Once you switch over to board layout to figure out how to place everything and where to solder physical wires, it will want to physically connect all nets which share the same name together.So for an AVR programmer, you would essentially just drop the appropriate chips into the schematic. Then attach small wire nets to each of the programming pins (gnd, vcc, miso, mosi, sck, rst), naming them accordingly. This will give you exactly the same circuit model, without any of the spaghetti wire routing on the schematic.Don't go overboard with it though. Small IC's or discrete components should be wired together with connecting wires so that the circuit can be easily understood. Only use the named nets trick when you need to break the schematic up into logical sections or when there is complex routing between IC's like in this case.

author: Stonent
author_rank: Super Contributor
timestamp: June 11, 2013, 04:03:00 am
content: Well I downloaded Kicad after watching Dave's video on it and I think I'm liking it more. Now just having more issues there, namely can't figure out why it is saying I have open pins on devices when the wires are connected. Grrr.

author: Thor-Arne
author_rank: Unknown
timestamp: June 11, 2013, 11:00:30 am
content: I guess this is the power pins?Try attaching a PWR_FLAG on the +5V and GND lines.

author: Stonent
author_rank: Super Contributor
timestamp: June 11, 2013, 05:14:22 pm
content: Yes that was it, I figured it out late last night.

author: sleemanj
author_rank: Super Contributor
timestamp: June 12, 2013, 02:40:13 am
content: Quote from: Stonent on June 10, 2013, 08:28:47 pmI think what you say you are doing is that you have designed your system in the "Breadboard" view, and are now trying to turn that into a schematic and autoroutethe schematic? Not autorouting the PCB design?I have used fritzing a bit in the last year. I have never started (or really used) in BB view, always start in schematic, and have (thus) never autorouted a schematic.Autorouting in the pcb view is hopeless so it doesn't surprise me that autorouting in the schematic view would be too.Frankly, it (autorouting a schematic) seems to me like something that just shouldn't exist, I don't see a very good use-case for it myself (even if you were starting in BB and converting to a schematic, students should be routing the schematic themselves if you ask me to get a better understanding, autorouting especially there seems silly).As MacAttak says, you might want to use named net labels, in the schematic view, in the toolbox, scroll down and you'll find them, along with the ground and various power net symbols. Matter of taste, some people like lots of named labels, some people like to follow lots of lines, most split the difference.One tip I can offer because of some fiddly-ness in Fritzing, joining two wires to a pin (like pin 14 on your ATTiny) can be a bit, I guess unstable is a good word, better to join 1 wire to the pin, and the next wire to a "bendpoint" in the first wire (like you have for SCK on the 328).

author: MacAttak
author_rank: Unknown
timestamp: June 12, 2013, 07:28:01 am
content: Calling it "fiddly-ness" is being very gracious and forgiving about what Fritzing does to those connectionsI used Fritzing for a whole week when I started learning how to do schematics and basic circuit layouts, but I couldn't take it anymore after that.

author: westfw
author_rank: Super Contributor
timestamp: June 12, 2013, 08:39:57 am
content: EAGLE is actually really good at allowing you to do pretty much anything you can do with the GUI and Mouse via textual commands as well. Or half and half; you can select "move", click on an object, and then type the destination coordinates as text (and exactly, or in polar coordinates) It's rather neat.This also implies that you can use a text editor, or an external computer program, or the internal programming language, to build up scripts that can do pretty much anything you could do through the GUI.

author: sleemanj
author_rank: Super Contributor
timestamp: June 12, 2013, 09:26:03 am
content: Quote from: Stonent on June 10, 2013, 08:28:47 pmOhhh, I see what you are missing.You've got that you can draw the initial connection from 1 pin (or bendpoint) to another as a straight line, but seems what you have not discovered is that you can click-drag on the line to "pull it" into the shape you want.

author: MacAttak
author_rank: Unknown
timestamp: June 12, 2013, 04:37:58 pm
content: Quote from: sleemanj on June 12, 2013, 09:26:03 amIf I recall, once your manually route a wire though, things start getting weird. If you decide to ever move one of the connected parts, then there is a 50/50 chance it will disconnect a few of the wires (but they still appear connected). And tearing up routed wires is even more precarious - especially if you have happened to routes some of them on the breadboard or pcb views.Argh my blood pressure is rising just thinking about how that software violated me

author: sleemanj
author_rank: Super Contributor
timestamp: June 12, 2013, 10:37:51 pm
content: Quote from: MacAttak on June 12, 2013, 04:37:58 pmFritzing may have a (few) new version release since you tried it :-)