I have recently been using Eagle for a slightly more adventurous design, where SMD components are to be placed on both sides of the multilayer PCB. This is possible with the wonders of modern assembly techniques, where one side of the board is maintained under the melting temperature of the solder paste and the other is allowed to re-flow. Sweet tech guys.
Having driven into a whole world of pain with Eagle recently with Hierarchical Design (see my previous post Eagle 7 Hierarchical Design - REPLICATING LAYOUT BLOCKS), I was dismayed to have the rug pulled from under me again by the latest massive Eagle Fail, namely that of properly instigating reverse side component placement.
Here are a few positives to temper the, well erm TEMPER.
Thanks for the Eagle 6.x-7 upgrade guys. sweet install and some nice enhancements, 100% stable so far and I love the general way Eagle works. Managed after some sideways steps to import some lovely curved traces from Illustrator to wrap around curves in the PCB design, have successfully exported to .dxf etc. Its a little limited, but all good so far. Just been playing with Design Link, which is useful. Funny how it only offers Farnell as a supplier...........
To keep it simple, here's the workflow:
0) Spend £500 on Eagle, (with the likelihood of needing to double that to make the larger board design I have in the pipeline).
1) Create a myriad of components
2) Create a schematic
3) Jump over to the layout and start populating the board with all the fun of summer
4) Periodically select and [mirror] the bottom side placement components, such that the pads switch from top copper to bottom and the outlines, document, silk etc flip respectfully over to their appropriate layers
5) Spend another two weeks piddling around getting all the intricate details taken care of and drawing up BOMs etc
6) Run the final Gerber data past the board houses and get the green light
7) Upload the gem of a design to the supplier.
8) Take a break before pressing go
9) Take one final glance and scratch my head as to why a transistor has its Gate and Source swapped on the layout
10) Hit the roof.
The mirroring of components, although it shows all the signs of switching the components to the under side of the PCB, does not do this. It leaves all the connections reversed and there is absolutely no satisfactory way of resolving this. (enter embarrassingly obvious solution here PLEASE)
(caveat: it's 'fine' if you just want to mirror two lead components, as the effect is not seem as long as their pads are symmetrical)
I am completely perplexed, surely the core functional reason for flipping components over is that they are usefully represented after the flip. Why would I want to flip an op amp and thence leave it essentially perfectly ready to be assembled on the top side of the bottom copper layer. Yes, literally inside the FR4 material on the reverse side of the pads. That my friends is mind bogglingly stupid.
The only solutions I can find are:
1) Create new versions of all the components I want to place on the reverse side with bottom copper pads in place of the top copper ones and wire them all up, supply all the attributes etc. This sucks, as the time involved is much longer than the time it is going to take for my to write this post, run around the yard screaming, spend time with a doctor and redraw them by hand using an etch-a-sketch. The origin also ends up on the wrong side and two databases of components need to be maintained if any are to be used on the reverse of the design
2) Create new versions of all the components I want to place on the reverse side with all the top copper pads in reverse position from the data sheet and wire them all up, supply all the attributes etc, add them to the schematic and then flip them, hopefully leaving them correctly corrected. This sucks for all the same reasons, plus its counter intuitive and prone to errors and mind boggling debugging fails.
3) Get wasted and throw the computer with the Eagle installation into the sea.
Although 3) looks like a pretty good option, there are knock on implications. I wanted to see if anyone else has any better ideas before I go down that route.