fritzing / fritzing-app

Fritzing desktop application
http://fritzing.org
Other
4.01k stars 828 forks source link

support double-sided boards #13

Closed davidperrenoud closed 10 years ago

davidperrenoud commented 10 years ago

From zevel...@gmail.com on November 14, 2007 06:13:24

Currently, the only choice is a two-sided board with thin traces and a big routing grid. Should have at least a few options;

Original issue: http://code.google.com/p/fritzing/issues/detail?id=13

davidperrenoud commented 10 years ago

From irasc...@gmail.com on December 09, 2009 15:09:51

changing summary and cranking up the prority

Summary: support double-sided boards
Owner: co...@irascible.com
Cc: -co...@irascible.com andre.knoerig johannes.landstorfer brendan.howell
Labels: -Priority-Low Priority-High

davidperrenoud commented 10 years ago

From irasc...@gmail.com on February 08, 2010 02:23:12

what individual features do we need for double-sided?

davidperrenoud commented 10 years ago

From irasc...@gmail.com on February 08, 2010 02:41:16

  1. vias. I assume a via is a part that's available from the bin. Are there different kinds or sizes? What's the difference between a jumper and a via?
davidperrenoud commented 10 years ago

From irasc...@gmail.com on February 08, 2010 02:46:48

  1. autorouter. I wonder if the first pass approach is: Start out by autorouting one side as usual, even to the point of adding jumper wires. Then for all the jumpered connections, flip to the other side and try routing from there. Since most pins go through the board, we could draw a direct trace (is that correct?). For pins that don't go through the board, we'd have to add a via.

How do we know whether a pin on a given part sticks through the board?

What about the parts that are already on the other side of the board--may need to have the basic autorouter run independently on both sides of the board, then do the jumpered connections.

davidperrenoud commented 10 years ago

From irasc...@gmail.com on February 08, 2010 02:57:11

  1. how do we represent the two sides of the board? Are they in separate views or just stacked as layers. Which one is flipped w.r.t. the other, or is this under user control. How can a user move parts from one side to the other (this is one advantage to having two views, since it would allow you to make the change via drag-and-drop, though in general I'd prefer the two sides to act as layers).

Is sidedness only relevant to PCB view?

Do we need other layers on each side beyond copper and silkscreen?

Do we need to consider ever having more than two sides?

Are all boards two-sided, or does the user have a way to select one-sided or two sided?

davidperrenoud commented 10 years ago

From irasc...@gmail.com on February 08, 2010 02:57:31

what else?

davidperrenoud commented 10 years ago

From irasc...@gmail.com on March 02, 2010 00:34:19

possibly useful sites for helping to think about it: http://www.instructables.com/id/Two-sided-PCB-using-toner-method http://www.instructables.com/id/Two-sided-PCB-using-toner-method

davidperrenoud commented 10 years ago

From irasc...@gmail.com on March 02, 2010 01:16:10

It might be interesting to have the view of the two sides available both as side-by- side and one-underneath-the-other. It might also be interesting to allow the user to flip both sides (perhaps independently, perhaps not). In underneath view, perhaps the user can switch which side is visually beneath (maybe that's the same as the flip option), and maybe the user can alter the transparency of the side that's on top, in order to show more-or-less of the underneath side.

davidperrenoud commented 10 years ago

From irasc...@gmail.com on May 02, 2010 00:19:24

Vias and holes need to be updated to have both copper0 and copper1 layers and connectors on both. The same is true for any part with a pin (as opposed to a pad). Does this mean every part definition file needs to be revisited?

Kicad and geda import need to be updated to allow parts with copper on both sides.

Should vias and holes be in a different layer (to give the user an easy way to hide/show all vias and/or holes)? They would still be treated at gerber time as if they were part of the copper layer.

We are going with the scheme of having the board you select determine whether you're doing single-sided or double- sided. Therefore each board part needs to be duplicated, and a property added to all of them which says whether the board is single or double-sided. I guess if you're using a single-sided board, the appropriate layers should grey out of the layer palette.

If you swap a one-sided board for a two-sided board (or v.v.) then the connections need to be uprooted and parts may need to be flipped and tossed to the other side.

Right now we are only doing limited double-sided boards (and home-brew, but that's really still single-sided).

Aside from the autorouter work described in comment 8, anything else to consider?

davidperrenoud commented 10 years ago

From irasc...@gmail.com on May 02, 2010 00:32:00

The implication for all parts with pins--i.e. all parts with pins that can be connected either on copper0 or copper1--is that the two layers of each pin should be on their own bus. So now I feel more strongly that it would be better to update every part definition file, but I think this should be scriptable. And maybe this is the next task to do.

davidperrenoud commented 10 years ago

From irasc...@gmail.com on May 02, 2010 00:34:27

what does this mean for the parts editor? Connectors in the parts editor used to mean pins, but now (since the advent of geda and kicad import) there's been a tacit acceptance of pads. But it was all still one-layer stuff. What to do now?

davidperrenoud commented 10 years ago

From irasc...@gmail.com on June 01, 2010 04:57:54

jumper items are essentially like a pair of vias: it's a pair of through-holes.

davidperrenoud commented 10 years ago

From irasc...@gmail.com on June 04, 2010 11:35:55

copper fill needs to work on both layers, so we need two copper fill layers

davidperrenoud commented 10 years ago

From irasc...@gmail.com on June 30, 2010 14:01:53

Since all the big features discussed above are now implemented in one form or another, closing this omnibus issue, in favor of individual issues to come.

Status: Fixed