PROTEL Autotrax - known issues, and unobvious solutions

Ever spoken to someone about a software package they use every day, and been surprised to find that they never, ever, have any problems with it? Never lose a file, never get an unintended result? Sometimes it is just a matter of knowing what NOT to do!

You must size strings in multiples of 12 thou, if you don't they will display as if they WERE multiples of 12 thou, until you come to manufacture, where they may change.

The hole sizes in all the protel PCB libraries are not really correct. They are often odd values like "23 thou". I believe that what was intended was that a designer could layout their board, and AT THE END decide that they wanted, for instance, to use no IC sockets, so 28 thou was the best size, or IC sockets, so 32 thou was the best size - and then they could do a global hole size edit of just hole sizes matching "23 thou" to these new, real, sizes. Actually, a far better technique is to make them all 32 thou and be done with it, as often this last step get reliably missed in the rush to get prototypes made! Check all your hole sizes.

Protel Autotrax Stringer bug

You should not select autoroute "pre-route" while you have SMT pads on the board - it will sometimes add little PTH via pads beside the SMT ("stringers") even if they don't need them, and even if they short to neighbouring pads. Well, actually, once you know where these "stringers" will be dropped, and what to look for, you will find pre-route is still very useful. Autotrax does not seem to place them on all Surface mount pads, and stops placing them once those particular surface mount pads have been connected using tracks and the route is removed from the netlist.

In Autotrax, SMT pads will only be produced without a hole if the hole size is set to 0. Be careful that you specify a hole size of 0 for SMT pads

Octagonal pads are rotated by 22.5 degrees in gerber plots. Most australian manufacturers then rotate them back again for you. The author elects not to use octagonal pads for this reason, unless generating the gerbers as well. This issue may be duplicated in other versions of Protel software.

Protel Autotrax was originally a DOS package. It uses 8.3 filenames, so you must should limit the file name to (7 or) 8 characters with ".PCB" at the end. If you use long filenames, for instance "controller.pcb" then your operating system will make the filename accessible as "contro~1.pcb" or, if similar long file names already exist, perhaps "contro~2.pcb" etc. This will cause you difficulties in the longer term, limit yourself to seven characters, for instance "control.pcb" and then when you need a new version you can call it "control2.pcb"

While Protel Autotrax was originally a DOS package, it is not correct to say it is command line driven. If you set up Autotrax the normal way in DOSBox you will never see a command line - all operations happen in a GUI.

DOSBox allows Autotrax PCB (Traxedit) to run full screen - but only on the primary monitor (#1). The authors of DOSBox are just a little touchy on some subjects, and say this is a limitation of SDL, the base library. This is partly true, the older version of SDL that they use is limited in this respect. If you want to use Autotrax in 1280 x 1024 and set up your 1280 x 1024 monitor as monitor 1, using the package full screen will be easy. The DOSBox authors also insist that their package "is intended primarily for games" which seems rather ab arbitary limitation to impose upon their audience. But hey, they source is open and no one gets charged for the app!

Sometimes when rotating components with rectangular SMT pads on PCBs - or perhaps when you rotate block selected areas, the author is not completely sure - you will get the X and Y values for the pads swopped. That is, everything will rotate by 90 degrees, but if the longest dimension of the pad was horizontal it will still be horizontal. This is usually immediately obvious. It is not random - it happens when you do something unusual first (The author has not been able to pin down what this is - as it very rarely happens to him! Perhaps it happens when the pads are not part of a component, but are "exploded" or primitives - email me if you know what causes this!)

The "netlist:length" command in PCB does not seem to yield a useful measurement

The PCB design rule check is pretty reliable - but reading the report takes some experience - it tells you that there is a fault, but often twice, and often in a way you are not expecting. (For instance if you reverse the ground and VCC connections on an IC, you may get hundreds of reported errors on a large PCB, when there is only, really, two.) The author finds it particularly useful on a dual monitor system to have schematic running on one monitor, PCB on the other, and to open PCBname.drc in a text viewer window over one side of the schematic.

DRC sometimes shows an error for strings in copper when there is not one - be careful though - some manufacturers somehow screw up translation of copper stings - I have had shorts. I tend to leave a bit of extra room around copper strings now.

If you have two pads with the same pin number in a component (which happens with some tactile switches) then PCB DRC will throw up a lot of errors, - especially if you then use the tactile switch as a jumper. The only solution is to show the four pins on the schematic - or make a PCB library component with two pins and two soldered unnumbered pads.

When producing a multilayer board, Vias cannot be connected to the Ground plane or VCC plane. The solution is to use individual pads as vias, as any pad can be individually edited to connect to the ground plane or VCC plane as required. See manual P43. However, be very careful with any translation of the final multilayer PCB file to other formats - while Protel V2.8 generally handles the translation correctly, other Protel versions may lose the plane connection information saved in an Autotrax file, although the outside layers of the PCB will seem to be correct. Have any translation done by someone who knows what they are doing!

The Autorouter included in Autotrax is not really very good. You are much better off manually placing tracks. I find the autorouter most useful as a yardstick test after I finish placement, before I begin manual routing. (Remember to do this on a COPY of your work!) If the autorouter can achieve 95% routing, I know the board will be a very easy manual route job. If the autorouter can achieve 85%-90% routing, I know the board will be a moderate manual route job. Also, using the autorouter to process just preroutes cleans up the "rubber band rats nest" that is used to guide placement during manual routing.

Example PCB

Autotrax works in units of 1 thouandth of an inch internally. When you set the package to metric, it does the best job it can at conversion - but it is converting every step of the way. You are better off working in inches, you will have more control. 1 thousandth of an inch is 0.0254mm - and in making the pad spacing for a new libary component, for instance - the error can cumulatively add up to a significant amount if reapplied over the length of the side of a QFP. It is best to work in the native resolution of the package.

Generally Autotrax is pretty well behaved - it doesn't seem to trash files, lock up, or crash. And, it is 20+ years old, so one would think we would already have seen any problems that were going to occur.

Issues for Schematic

Protel Autotrax V1.61ND was the last version sold - and was previously available free on Protels website. When sold, it was accompanied by Schematic: Schedit.exe V3.31

If you overlap a line and a pin in schematic (instead of joining them exactly end to end) then a connection will not be made. Helpfully, however, POST will show the line segment as an error. You get used to this - and it is actually part of the way the package operates - its a side-effect, not a bug as such, - the package has no real way of determining your intentions if you do not explicitly connect point-to-point - you may have intended to cross over the pin and connect to another line, for instance (seems ridiculous, but it is possible).

Sometimes you can manage to save highlighted tracks in Schematic. Not really a bug - but it does surprise you when you next open the circuit.

If you make very large multipart components in schematic, you will chew through the available memory very quickly. One such component that is tempting is an mutlipart DE9/DB25 RS232 connector, where you can place the individual pins one at a time, and the program automatically knows the signal name. A few of these and you will run out of memory. The standard connector pins that schematic provides need the pin name entered every time, but they use virtually no memory. Another tempting one is a SIP resistor with several resistors to a common.

Issues for Schematic Libmake

Libmake is a dodgy program, it tends to crash. Be very methodical when editing schematic libraries, make regular backups. Open a library, edit or create a part, back out, save and quit. Then do the next part, - backup between if you are really cautious. Libmake seems to work fine if you follow this pattern. But when you do a whole session, editing a lot of parts without saving, then it often seems that Libmake crashes just before you finish :-(

Issues for Plot

Traxplot generates a ZERO relief around vias for multilayer boards with power and ground planes. This will make every via a short between power and ground, and so make the boards quite unusable. The solution is to run DCode32 and Grounder32 with the Pads and Vias option (see Richard Astons Utilities) on every multilayer board before using Traxplot to make artwork. Or use another package to generate gerbers, atleast for multilayer.

This program will seem to run more slowly if its window is not "maximized". Also, because it expects to print directly to the printer hardware, some new types of printers will not operate. Generally, HPLSR300 is a good type of printer format that will certainly still work with just about all HP printers (and others - the brother HL1240 for instance). Otherwise you can either track down an early protel windows demo version and use that to print your autotrax artwork (a lot of effort, really), or use postscript and ghostview (for very good results, but an investment in installation) or use Matthais Hartl's PCX drivers.


The utility called PCBTODXF.EXE allows you to generate a DXF file from an Autotrax PCB. While it is an older 16 bit exe and the dxf format that it generates is also very old, it does allow you to translate your PCB file across in a universally importable format. Just be sure to give your recipeients some idea of scale as I have had people questioning if a board is 3 x 4 millimeters - when actually the PCB was 3 x 4 inches...

Some small utilties come with Autotrax, in the archive UTILARC.EXE. They are all 16 bit .exe's, so they all have to run under DOSBox. There are two translators to import earlier versions of Protel PCB into Autotrax (PCB3CON and PLIB3CON), a tranlator that can import an early PADs PCB format to Autotrax, a basic BOM generator, and a basic Net importer. See the protel autotrax manual for details.

Protel Autotrax Workarounds

...How to do things that weren't thought of originally...

Non-Plated-Thru-Holes. The accepted method for putting a non-plated hole on a board is to make the hole diameter larger than the pad. For instance, 3.5mm holes are often used corner mounting for a small PCB. 3.5mm is 138thou, so the hole size is made 138, and then pad size is made 136. Autotrax supports this. What Autotrax does not directly support is a hole size of 138thou and a pad size of 0 or 1 thou - but if you edit a component manually, Autotrax will faithfully save, copy, and resuse the pad showing no copper at all on the layout - which matches reality. Non-plated-thru holes are usually used where mechanical tolerance is quite important. The plating on the inside of a hole can make its size vary by a few thousandth of an inch - whereas a well drilled non plated hole is accurate.

Small Lettering. Autotrax string sizes jump in units of 12 thou, and the smallest Lettering that can usually be selected is 36 thou (0.91mm). This size of lettering was quite okay on older conventional boards, but 24 thou is more useful for surface mount PCBs. While you cannot select 24 thou lettering in the Autotrax package, if you manually edit a copy of "traxedit.dft" and then paste it into your PCB directory each time you do Surface mount, Autotrax will pick up the 24 thou string sizes and reliably put lettering on your board at that size. 12 thou works as well, if it comes to that, but at 12 thou lettering is getting beyond the capabilities of most PCB silkscreening. (Although some manufacturers use photoimageable component legend, and that often CAN show 12 thou)

Route to outline

Tented Vias. Autotrax does not actually generate a soldermask layer. The soldermask is generated by other tools. Generally the PCB manufacturer will generate a soldermask from a Pad layer by applying an expansion (2 mil or so) to the pads. They can choose to exclude vias from the Pad list used to generate the soldermask - this gives you tented vias. Gerber tools can have the same functionality. This leads on to Soldermask free copper areas - these can be constructed from surface mount pads. For instance, it may be desireable to have a heavy power supply track free of copper so that it can pick up an extra layer of solder during a wave soldering process, and thus be able to be overrated.

Rotated components. Sometimes it is desirable to rotate components so that they fit the layout better - for instance a microswitch may need to be mounted at a correct angle to intercept a mechanical lever. There is a utility called Twist32 by Richard Aston that really simplifies this task. It takes a PCB and rotates the whole thing by an arbitary angle. Because of the Autotrax format, it cannot really rotate partial Arcs or fills - so there may be a little manual cleanup required, but this utiltity is a real time saver. If there were lots of rotated components, and there were lots of partial arcs or fills, it may otherwise be better to find another PCB CAD package to do the job.

Mechanical Layer. Usually the bottom overlay ends up being used as a mechanical layer - to show dimensions, cutouts, and other mechanical features. It is useful because all the tools support that layer, and it carries through on all the diagrams.

Buried vias. I don't know of an accepted way to do buried vias using Autotrax. I would imagine that it would be possible to indicate buried vias by using Surface Mount Pads on inner layers with a hole size equal to the via size. Gerber or other manufacturing software could then interprete the file, deduce that the holes were on inner layers and construct the correct drill files to make buried vias - but I have not seen this done. I would suggest that buried vias may be a step too far for Autotrax, and newer, better, tools might be required for that task.

Libary Limit The Autotrax library is limited to 200 components. I guess back pre-1990's this seemed quite a few - remembering back then that most components were DIP, and only a few surface mount variants were about. Nowadays it is positively limiting. The answer for me has been to have one main library with the most useful parts, and other libraries with less used parts in a hierachical order. It is usually necessary to swop in and out of 3 libraries when I design a board - but that mostly happens just once when I do the "autoplace" (= dump) of all the components from the schematic netlist onto the new PCB outline. See manual P262.

Protel Autotrax Library Wizard

Substantial assistance in managing libraries is prvoided by Richard Astons Library Wizard which can view and copy Autotrax library components between libraries, a lot less tedious than cutting and pasting in Autotrax itself.

Adding components to a Protel Autotrax library is not completely obvious to a new user. For a tutorial, see manual P48. While a board can be made of any number of components, components themselves are only made of primitives - Pads, tracks, arcs, strings, fills. If you want to modify a component, place it out of the way and use command "LE" (Library Explode) to convert it to primitives before you modify it. Every component must have some drawing of some sort on the overlay (legend/silkscreen) layer. Once you have made your new component, you need to use "BD" (Block Define) to select the area before using "LA" (Library Add) to put the component in your library. For ease of use, try and select the exact center of the component when doing the Block Define - that point is the X,Y location of the component from then on - having it as the center of your part will help you a great deal in placement later (because rotate works), and possibly also in Surface Mount programming, because the XY coordinates are likely to be the component centroid.

Rubber banding Autotrax correctly shows Netlist connections as rubber bands (in grey/white) using the "NSA" command after a netlist has been loaded. However, all the rubber bands are the same colour, and PCBs being the way they are frequently the rubber bands overlay so you cannot easily see what connects where. The workaround is to pick up a component ("MC" command) and move it back and forth - the rubber bands will follow, and distinction between nets will be much easier - then use the "Esc" key to drop the component back where it was originally, so that you do not mess up your placement.

Protel File Format The protel file format is documented to some degree in AUTOTFAQ.TXT The description that is given is more an example with notes than an actual description. In contrast the netlist format is described in that document quite completely.

RS274-X Gerbers TraxPlot, the printer driver that comes with Autotrax produces Gerbers that are quite an old format. The preferred format of Gerber is RS274-X. You need to either send the native Autotrax PCB file to a manufacturer to have a board made, or have the Gerber produced by a third party tool. We offer a service converting Autotrax PCB files to RS274-X gerbers. Some people use a later copy of Protel (particularly PFW 2.8) for importing Autotrax and making RS274-X Gerber files.

Route to outline

Panelizing. This is not really a workaround, but is mentioned here for completeness. When making up a panel of several PCBs for production, read in each PCB using the Block Read command, which reads in a seperate PCB file as a new block to place on the current PCB. Do not try and use Block Copy as that is intended to be used for duplicating identical areas of circuitry on the same PCB - when using Block Copy Autotrax creates a whole new set of Designators: So if the first area of circuitry had IC1,2,3 & 4 on it, the second copied area will be labelled IC5,6,7 & 8. That is not what you want when you are panellising PCBs.

Route to Outline. This is not really a workaround either, but a method of operation. The standard way of indicating a PCB border in Autotrax is a track on the Keep-Out layer. The center of the track indicates the edge of the PCB - so the width of the track is really not that important. Usually a track of 8 or 12 thou is used. For complex routing, the track dictates how the board will be routed. Routed slots or complex internal routes are also usually indicated on the Keep out layer. The keep out layer can contain curved sections by placing sections of Arc as tracks. When making complex routed shapes, keep in mind that normally the most cost effective routing tool is 2.0, 2.4 or 2.5mm in diameter - as the larger router bits can travel more quickly. With a bit this size a 90 degree internal angle will be radiused to half the router bit size. I usually radius or atleast angle the keepout layer border track in a similar fashion, so the PCB file more accurately reflects what the final board will look like.

Links to other Autotrax material

While this material is copyright, we would appreciate someone mirroring or archiving our Autotrax material, (with an attribution link, to be fair) in case our website should become unavailable. Please tell us if you are prepared to do this!

©2013 AirBorn - Last updated 01 May 2013