autorouting SMD much worse than PTH? - Page 1
Forum section: electronics / general

author: djacobow
author_rank: Super Contributor
timestamp: March 23, 2014, 10:11:35 pm
content: This may be a dumb question, but I can't get Diptrace's autorouter to work (well).I was working on a PCB using almost all through hole parts and the router, though often generating wonky routings, could usually mostly route the board itself.But then I decided, hey, today is the day I'll join the latter-20th century, so I switched most of the PTH parts to 0805 SMT.And now the autorouter just never makes it very far. If I tell it vias are free, it does a bit better, but still nowhere near completing. If I tell it it can put vias in pads then it does almost as well as it did with PTH parts, but my understanding is that is not kosher anyway.Am I doing something ludicrously incorrect here?Regards,Dave J

author: ludzinc
author_rank: Unknown
timestamp: March 23, 2014, 10:29:19 pm
content: Yep.You're Autorouting. Just stop. Please.

author: 8086
author_rank: Super Contributor
timestamp: March 23, 2014, 10:32:55 pm
content: Incorrect? Yep, using the autorouter.

author: sleemanj
author_rank: Super Contributor
timestamp: March 23, 2014, 11:15:25 pm
content: Try an external autorouter, like freerouting (http://freerouting.net) which as it's name implies, is free, you simply export from Diptrace, import into freerouting, have it route, and then import the results into diptrace. Most of the routing settings in diptrace will transfer to freerouting in the import.As a dedicated (auto)router it does a better job.There are other autorouters out there that use the same import/export format, the main one would be TopoR, but I've never had any success getting it to work without crashing (the free-handish traces it produces are another matter, either you love them or hate them).

author: DerekG
author_rank: Frequent Contributor
timestamp: March 23, 2014, 11:53:58 pm
content: Quote from: djacobow on March 23, 2014, 10:11:35 pmYes, always avoid placing vias in pads. When you send the boards through the infrared reflow oven, the vias will suck down some of the solder paste through their holes. This leaves the SMD components light on for solder. Also, depending on how the solder reacts with the via, sometimes the SMD components shift sideways/off centre somewhat.Do you have more than 250 pins on your board? If not then Diptrace has an Electra Autorouter interface. You can download the demo version from herehttp://www.konekt.com/I believe the demo version allows up to 250 pins - but someone who has downloaded it lately might update on this if this is not the case.It does a much better job than the DipTrace autorouter. Just a pointer - did you change your grid when placing the SMD components from what was set for the through hole components? Grid, clearance & track width settings all have a major influence on the autorouter's success rate.

author: djacobow
author_rank: Super Contributor
timestamp: March 23, 2014, 11:59:09 pm
content: OK, not much love for the autorouter, I see.Well, my experience is that it's useful. I don't take its output as-is, but use it as a starting point. Also, the router makes a good general indication of how "routable" the placement is. I often can get results I like by routing some nets by hand, picking a few for the autorouter to do, then making tweaks, doing a few more, etc, etc.I did not make an adjustment in the grid when placing the SMD parts. Should I have? What should I have set it to?I think what is killing the router is that it can't route traces between the pads of the 0805s the way it can the PTH parts. But that seems like it would afflict all SMD stuff all the time.

author: djacobow
author_rank: Super Contributor
timestamp: March 24, 2014, 12:07:00 am
content: I've attached a pic of my board if it's of any use.On the left is the "AC mains" side. I routed that all by hand. On the right is the microcontroller side; I was hoping to get some help with that. In between is opto-isolated no-man's land.

author: ludzinc
author_rank: Unknown
timestamp: March 24, 2014, 12:21:00 am
content: Wow, so much space!It looks to me like you have x4 sections that repeat - but your part layout is different for each. Why's that?To be up front, I'm an Altium user (at work) and would tackle this by defining rooms, routing one and then copying the 'room format' to the other rooms. So quick and easy (it also will arrange parts in the other rooms based on the first).Does Ki-Cad or Eagle offer a similar functionality (I'm considering KiCad for my next home project).So, in not-helping-you-al-all about your auto router question, I's ask why are you so keen to autoroute? I'd bet money you can route this by hand quicker than solving the autorouter issue. I'd be surprised if you couldn't make most of your connections on the top copper layer, and this saves the bottom layer for you to run a bus for connections to the micro.

author: djacobow
author_rank: Super Contributor
timestamp: March 24, 2014, 12:36:44 am
content: Yeah, I know it's not the tightest board. In some sense I have room to spare because the size of the board will ultimately be determined by the box size, which is always bigger than you want. Also, the "AC" side really needs to have fat clearances.I should have done a sub block and repeated it, and I may still go back and do that. You have to forgive me -- I'm just learning diptrace.And I am routing by hand now, and it's going well, except that I'm placing a lot more vias than I feel like this should need. But I still feel like getting the router to work is a useful learning experience!

author: T3sl4co1l
author_rank: Super Contributor
timestamp: March 24, 2014, 12:36:54 am
content: Autorouting that?! I'd literally be done in half the time this thread has taken!I'll admit to using autorouting to begin some more complex layouts, but it always needs the human touch to prioritize paths and sort out ugly paths. Last board I did (about 100 components), the autorouter wanted like 20 vias, and lengths were a mess; I spent a day doing it by hand and only used one or two vias, saving plenty of room to stitch ground plane around the whole thing (which would've been nearly impossible to do with the messy autoroute).But whatever. Learning being what it is... you now know that autorouters suck,no matter what the package. I've never seen one make even passable results.Tim

author: djacobow
author_rank: Super Contributor
timestamp: March 24, 2014, 12:38:39 am
content: > Autorouting that?! I'd literally be done in half the time this thread has taken!And the "I" in this is the problem. I'm sure many folks much more skilled in the practice than I would fly through this. But I'm learning. I just wanted the tool to work and not suck.

author: sleemanj
author_rank: Super Contributor
timestamp: March 24, 2014, 12:49:01 am
content: Quote from: djacobow on March 24, 2014, 12:07:00 amLooks like a number of simple changes you can make there, for example C_FILT0, C_FILT1, C_FILT3, rotate those 180 degrees and the trace to the right pad won't have to cross anything. Same for R_LSL3. Didn't look any further but you get the idea, look at the ratlines and rotate/move parts to get the optimal non-crossingness. Is the orientation of U_SPARK set in stone, if you can rotate that 180 it might help too.As for autorouters in general, personally I really don't like manual routing, it's a boring tedious annoying drudgery, so if I can use an autorouter, I would, and some manual cleanup later if necessary. Freerouting is better than the built in autorouter in diptrace (and probably most other packages).

author: DerekG
author_rank: Frequent Contributor
timestamp: March 24, 2014, 12:52:54 am
content: Quote from: djacobow on March 23, 2014, 11:59:09 pmCorrect. 0805 components are based on a metric grid (component size is 2.0 x 1.2mm) whereas most/all you through hole components are based on an imperial grid.I would lock in place all your imperial grid components, then change your grid to say 0.1mm or 0.2mm, then autoroute just your metric SMD components. I would then manually route the tracks between your metric & imperial components (there are not many of them so it won't take much time).Whilst you could route all these manually (it would also not take much time), it is useful to learn how the autorouter works for your future (more complex) pcbs.

author: gxti
author_rank: Frequent Contributor
timestamp: March 24, 2014, 12:56:18 am
content: Make sure it's actually possible to run tracks between the pads. It should be easy to run 8 mil tracks between 0805 or even 0603 pads, with my current setup I can fit two tracks in an 0805.

author: DerekG
author_rank: Frequent Contributor
timestamp: March 24, 2014, 01:25:53 am
content: Quote from: ludzinc on March 24, 2014, 12:21:00 amI also use Altium (ver 6.9) for work (but I can use it at home too - it's allowed under their license).I keep an eye on other pcb software packages (it is sort of a hobby) & I have found DipTrace to be about the best of the low end packages. It operates (from a user's perspective) in many similar ways to Altium & so the learning curve is not too great.You can also import DipTrace schematics & pcbs into Altium via the P-Cad format. I often open up some track solder masks so that the wave soldering adds to the current carrying capability of the track (and/or increases the heat dispersal from the attached components) - but you cannot do this in DipTrace so an import into Altium to finish off is required. This allows me to order standard 1oz pcbs which saves money.The new DipTrace beta version has some great screen advances over version 2.3.1.0, but it is full of bugs & I had to uninstall it & remove the registry keys, then re-install last year's full release as the bugs made it unproductive. They will fix most of these bugs no doubt before the full release which I would expect within the next 3 or 4 months.If you grew up with Protel, then Circad is very easy to master as many of the user inputs are the same. It does however cost US$995 & is operated by just one programmer now who is in his late 50's/early 60's ............... so what will happen to the software when he retires?I did not like KiCAD because I have no choice to change the pcb board background colour. Black is all you get. This may not worry some people of course.You can do quite a lot with Eagle, but you will hate the user commands if you grew up with Protel/Altium. If you think with a German perspective instead of an American/UK/Australian perspective, you will no doubt be fine (a bit like finding your way around the menus in a Samsung mobile phone before Samsung saw the light & moved to Android).Library component generation is the thing to check out in these low end packages. In some it is not too bad (ie Diptrace), in some it is a pain (Design Spark) & even Target 3001 was not as easy as in Altium.What I hate about Altium is the transfer process from Schematic to pcb. In DipTrace, Circad, Target 3001 & Design Spark, this transfer process is quick & easy. The autoplacement in DipTrace is very quick & easy to set up. Just lock the components in place where you need them, run autoplace & the result is not a whole lot different on boards of say 100 components or less to what is achieved in Altium.Anyway, just my 2c worth.

author: djacobow
author_rank: Super Contributor
timestamp: March 24, 2014, 01:45:56 am
content: Thanks everyone for your comments. I have several leads to pursue now on making this a better design, including:1. modularize and tile (haven't tried that in DipTrace yet)2. make sure the grid is right and that component placement matches the grid (I wish there was a "jiggle components into new grid function")3. try thinner wires that might be able to make it inside 0805s. (I was trying to say with big clearances to make it easier to fab at cheapie places, but...)4. reorient components to reduce criss-crossesAttached is a pic of my as-quick-as-possible manually routed version. I'm really unthrilled with it. In particular, it's via city in there. If I could get traces in between those SMTs it would make a world of difference.Regards,Dave JPS -- If "check route keepouts" is checked, DRC throws a hissy fit. What's going on there? I basically makes a DRC error every time a wire enters a part.

author: DerekG
author_rank: Frequent Contributor
timestamp: March 24, 2014, 01:58:55 am
content: Quote from: djacobow on March 24, 2014, 01:45:56 amAlso, change any 90 degree track corners into 45 degrees. Easy to do in DipTrace (just push the corner in or out). The reason is that during etching, the etchant can "pool" in the 90 degree corners. This increases the chances (for thin tracks) of eating through the corner resulting in an open circuit track.

author: TMM
author_rank: Frequent Contributor
timestamp: March 24, 2014, 05:24:54 am
content: Quote from: djacobow on March 24, 2014, 12:38:39 amWell the autorouter isn't going to learn to be any less sucky. You however, can and the only way to do that is to try and fail, often. Don't be afraid to rip up everything and start over.If you use 1206/1210 parts instead of 0805 you can run larger traces under them, though by the looks of things you're still going to be making a double sided board anyway so a few vias probably won't hurt.By swapping some IO pins on your micro you will be able to avoid a few traces crossing as well. All of the traces coming from the right side of micro can be run on the top layer with some rearrangement (see red traces below).If you move the micro to the location shown by the blue outline and use the space below it more efficiently you'll be able to reduce the width of the board.edit (excuse the crude picture and some wrongly connected pins but you get the idea):

author: ludzinc
author_rank: Unknown
timestamp: March 24, 2014, 05:42:14 am
content: Quote from: djacobow on March 24, 2014, 01:45:56 amMy $0.02 worth re your routing:If you look at where you have lots of little traces crossing a long trace, you're probably better off putting the longer traces on a different layer.I've hack your pic in MSPaint - see below - to illustrate what I mean (red is my top layer, blue is bottom).I'd also run your lines form the U_SPARK module on the bottom layer and route across to those. I started to do this in paint, but lost my patience...There's still a fair number of vias (painful if you're making your own boards) involved but you can get good ground pours around your traces as you have ample room for spacing. But I'd bet even with 'many' via you'll now have less drill holes by switching to SMD parts.

author: djacobow
author_rank: Super Contributor
timestamp: March 26, 2014, 05:09:54 pm
content: I've tried to incorporate all the advice I've received here into my board. The result is attached.I did use hierarchy in the schematic to make the repeating block fixed. I then used those blocks in the PCB tool. The system did not work quite as I had expected. (I come from the VLSI world where excellent support for very neat tiling is the norm.) What I found is that if I brought routes to the edge of a "box" so that the box could simply be stacked on top of each other, DipTrace did some weird stuff when I told it to copy the place and route, copying bits and pieces that were not part of the module. Overall, the hierarchical features on the PCB side are not great, IMHO.I also tried to de-right-anglify when I could, though I have a lot of "T" interfaces and I could not bring myself to turn those into "Y" interfaces. Is that really better?Finally, I did rearrange the layers of many traces to cut down on the number of vias and "jumpers."I'm going to let this sit for awhile while I ponder what improvements I could make. (I know I could make it denser, particularly vertically.)Regards,Dave JPS -- I never got the autorouter to work worth a damn. I tried different grid setting, etc, but I suspect it doesn't like my relatively fat traces and the 0805s.

author: DerekG
author_rank: Frequent Contributor
timestamp: March 26, 2014, 10:14:06 pm
content: Quote from: djacobow on March 26, 2014, 05:09:54 pmYes, a big improvement.Don't worry about the track T junctions, just avoid 90 degree angles when placing single tracks.Please report the copy & paste problems to DipTrace (supply them a before & after screen shots if possible). Are you using the latest beta version? I have found the latest beta impossible to use due to cut & paste problems (this problem also presents itself during schematic component generation, particularly when rotating copied parts).Fat tracks are good if you have the space. Fat tracks (nearly) always etch correctly. Thin tracks sometimes get etched through.Several things to consider:1/ Move the track (that passes through the 2 pads of the U_Spark) around outside of it. Should you ever need to replace/rework the U_Spark, it will be easier without a track between the pads.2/ Consider a ground plane for both sides of the board around all the digital components to hold down any noise generated.3/ Consider an unconnected plane on both sides of the board around the HV components. Board manufacturers often look at the cost of etchant when lots of boards are being produced. Laying down planes on your boards means that significantly less etchant is required. This also means less reprocessing of the etchant & less to dispose of at the end of its life.4/ Consider elongating the U_Spark pads horizontally (as we view the pcb in your scan). This will help to hold the pads to the pcb should you ever need to replace the U_Spark. Always remember that more copper around the pad is good as long as you don't go overboard as the copper will suck the heat away from the pad during the soldering process.5/ Consider slightly larger holes for the U_Spark. This will make it easier to insert (& remove during rework).6/ When placing tracks between through hole pads, have a preference for the bottom layer. The tracks are less likely to be ripped from the board when desoldering & removing the through hole components.Just my 2c worth.

author: djacobow
author_rank: Super Contributor
timestamp: March 26, 2014, 10:29:26 pm
content: Thanks for the advice, Derek!I definitely will add a ground plane. You think two ground planes are better than ground on one side and Vcc on the other?On the HV side, I'm less enthusiastic about a grid or plane, connected or otherwise. Doesn't the inclusion of such a thing just invite more opportunity for arcing? I suppose it doesn't matter that much; it's more of a gut thing. I like to have lots of room between 120 Vac traces, but I know that the pin spacing of a TO-220 is good enough, so that same spacing anywhere else should also be good enough!Will make all the other suggested fixes.Yes, I am using the beta version. The copying problem I only noticed when trying to use the hierarchical copy placement / copy route feature. Other than the nets and objects that are actually in the hierarchical block to be copied, it seems to want to pull in "some more stuff." Maybe objects that touch, or are inside a circumscribed rectangle? (It does draw such a rectangle during the copy process, but then it disappears afterwards.I also get another weird error message whenever I try to compare to the schematic or refresh from the schematic. Something along the lines of "ratlines were reiniitialized, please report..." The error doesn't seem to actually affect anything.I will indeed report!

author: DerekG
author_rank: Frequent Contributor
timestamp: March 26, 2014, 11:56:26 pm
content: Quote from: djacobow on March 26, 2014, 10:29:26 pmAround the low voltage digital components, I would place a ground plane on both sides to minimise any digital noise (there is not much on this board - just good design - you can allow 35 mil clearance if you like).In the HV regions of the board, you could consider an unconnected plane on both sides, leaving say 120 mil clearances to alleviate any concerns you might have about arcing. As the plane is unconnected, there is no voltage differential to induce arcing.Another good design feature is to use "teardrops" where thin tracks leave through hole pads. If there are only a few of these, you can add a thicker track (on top of the thinner track) to a length of 2mm or 3mm when exiting the pad. This helps to hold the pad to the board if you ever need to replace the through hole component. I generally add these thicker tracks when using track widths of 18mils or less. The thicker track's width I often use is 24mil or 30mil. You have plenty of room to do this. On some tight boards with lots of components & tracks, this is not always possible of course.I'm glad you are persisting with the beta version. I uninstalled it (& manually removed the legacy stuff left in the Windows 7 directory) & am using the stable March 2013 version.DipTrace will work on the bugs & I would expect release a "more bug free version" in the next 2 or 3 months. I believe DipTrace is one of the best low end packages out there, so it is worth persisting with.

author: Falcon69
author_rank: Super Contributor
timestamp: March 29, 2014, 04:46:24 pm
content: You can eliminate several vias if you do it the way I have drawn. (maybe even ALL the vias with alittle more work.)Is that a Via under LSH_3?Also, on U_SPARK, running that trace between the pins is pretty tight, I'd reroute the trace as shown.

author: free_electron
author_rank: Super Contributor
timestamp: March 29, 2014, 05:00:19 pm
content: Quote from: DerekG on March 24, 2014, 01:25:53 amwe are at 14.xx … no wonder you are groaning.transfer is 1 clickin altium.

author: DerekG
author_rank: Frequent Contributor
timestamp: March 29, 2014, 05:37:39 pm
content: Quote from: free_electron on March 29, 2014, 05:00:19 pmGood to know. It's such a pain in the a*** in ver 6.9The quoted upgrade cost a couple of years ago was AUD$3.6K & it comes out of my pocket (work for myself).I have been so disgruntled with Altium since their sales staff assured me that the full screen issue was fixed in 2007 (when it was only half fixed) & the what-you-see-is-now-what-you-will get (when in 6.9 is was still not true), that I no longer feel inclined to support Altium.Im lucky now with the power of micros that most boards I design are now under 150 components .............. so my reliance on Altium has diminished significantly.

author: djacobow
author_rank: Super Contributor
timestamp: April 01, 2014, 10:35:04 pm
content: Good catch on that via. Haven't worked on this for a few days, but will revisit soon. I have to swap out that AC/DC regulator footprint for another one since the part I like is on super duper double-secret extended backorder.Quote from: Falcon69 on March 29, 2014, 04:46:24 pm