About 7 years ago, several members of the SRS were lucky enough to get a special deal from Protel. They sold us, through a school, copies of the Protel for DOS programs Autotrax and Protel Schematic. This was old software package, but it turned out to be quite reliable and actually works pretty good. The software was fairly easy to learn, simple in the number of features, and except for a few minor quirks, works extremely well. I have been using Protel Autotrax and Schematic ever since. I have successfully used it to create my HC12 products, and the BotBoard Plus boards.
Not all is bliss, however! The DOS based programs don't support any of the newer hardware. For me to get a picture out of Protel and into the Encoder requires some jury rigged methods of converting file formats. I use no less than 4 utility programs in converting my schematics into something that can be electronically distributed. In addition, the program runs in 640x480 resolution. I normally have a 1600x1280 desktop on a 21" monitor. I also can only print to a Laserjet printer, and the output of gerber files is really quite a pain.
I have been willing to put up with these limitations because the software does what I need most of the time. I long, however, to have a capable program that will interact with the rest of the world. Therefore, I have been searching for a new set of layout and schematic software for nearly 2 years. Switching to a new program is proving to be difficult. There are a number to choose from, but none of the packages I have tried so far have convinced me enough to make the jump
This article is going to document how I have evaluated several PCB programs, and suggest a few that you might like to try, and many that you might like to avoid based on my experiences.
I have some relatively straight forward desires in my PCB program. I want the ability to
This seemed like a pretty straight forward list of wants. When I started my search, I assumed that I would be able to find a package over the weekend, and purchase it on Monday morning. Turns out I had drastically underestimated the amount of time required. Actually, I guess I had over estimated the abilities of the software designers for these CAD programs. I had assumed that most of the commerically available packages would have, after 5 years of Windows/95 availability, been able to create software that at least made some attempt at behaving like a normal Windows program. I also assumed there would have been enough time to work out some of the bugs, build up a respectable set of default libraries, and hopefully make these programs much easier to use.
Well, I hoped for too much! Granted that PCB software isn't a high volume product, so we are unlikely to find a Microsoft or Adobe quality of program. But for the money being asked for many of these packages, it is rather depressing to see the state of affairs in this narrow vertical market.
As I sit here, I ask myself if I am being a little rough on the developers of these programs. I really don't think I am. I will admit there is some pretty good starts on the market, but nothing so far has impressed me enough to get out my checkbook.
And now, I present my opinions on a series of different programs. I am going to list them in order of preference, starting with the most preferred, down to the real stinkers!
Cost: Free for unregistered copies. $99 for a decent set of functionality, $600 for the Standard, $1200 for the Professional
If you have read anything I have ever written about Eagle, you probably know I have a some serious issues with this program. However, after careful consideration of the features vs price vs pain, I have decided that Eagle is probably at the top of the list of contenders.
This package is by far the best deal for the buck. You can download a fully functional freeware version for nothing, and play with it for as long as you wish. It comes with a schematic editor, a PCB layout program, and a very functional auto-router module. You are restricted in the free and lowest registration amount to having a board that is 4 x 3.2 inches, and two layers. For most projects, like the BotBoard Plus or my HC12 boards, this is more than enough room. The program attempts to be highly integrated between the Schematic and PCB editors, and generally does a good job. The schematic editor does all of the basic functions, allowing you to place and wire up parts onto the schematic. It has an electrical rules check, which is used to insure you haven't connected two outputs together, or done anything else that might cause problems.
The library concept in Eagle is a good one (with a lousy implementation!). The Library editor allows you to create a Symbol (used in your Schematic), a Package (used in your PCB), and a Device (which is a combination of the two). Thus, you used the same library regardless of which program mode (PCB or Schematic) you are using. It actually makes sense after the second or third week!
I really like the schematic editors methods for handling bus connections. You name a bus by giving it a text name, and then to give it a width. For example, PORTA[0..7] defines a buss called PORTA with 8 lines. PORTA0,PORTA1,...,PORTA7 and so on. You can even define a bus with different subscripts. PORTAD[8..15] will define PORTAD8,...,PORTAD15 for example. Wiring to a bus is a breeze since when you attach any connection to the bus, it puts up a little popup with all of the pins. You can select one with the mouse, and you are connected.
As you are editing your schematic, you can click a single button on the UI to get into the PCB editor. The PCB editor is pretty nice. The programs are linked, so as you make changes to your schematic, they are reflected in the PCB. This is quite handy. Other programs often require you to manually export the netlist, and start up the PCB program in a seperate session.
The UI between the two programs is fairly similar, and based on several toolbars and menus. Both programs suffer from the same quirky UI problems, meaning they don't operate like you would sometimes expect. Still, it is a fairly efficient setup.
The Autorouter in Eagle is awesome. I have thrown some really ugly problems at it, and have seen it do some amazing feats of magic. Eagle uses a ripup router. That means that if a previously routed trace is in the way, it will rip that track up and move it elsewhere if needed. The other common autorouter type is a grid router. A grid router usually insures that traces on the top are horizontal, and traces on the bottom are vertical. If something gets in the way, it will usually place a VIA for the direction change. Anyway, suffice it to say, this router is extremly impressive, especially in such a relatively low cost scenario.
The user interface is a little funky at times, as it doesn't follow the standard Windows guidelines. For example, when you try to do something like a Edit.Cut operation, you will get surprised that the object has only been copied to the clipboard, and not cut from the program. The methods of selecting objects takes some experimentation, and isn't consistent through the different program modules.
The Eagle package has a very powerful built in scripting language. This language allows the user to write little scripts to do complex tasks. This could be seen as a good thing. However, there are many simple day to day tasks that the UI doesn't provide ways of doing, such as copying a device from one library to another. The vendors solution to this is for you to write a script to solve this problem. The scripting language has access to the entire library database, which is good. Having a CAD program that I need to write programs for to do simple tasks isn't good. Still, I suppose it is barely better than nothing!
The other problem area I ran into was the grid definitions. Many of the parts in the libraries are defined in metric units. If you are mixing and matching metric and imperial parts, the program sometimes won't let you connect things. The Cadsoft solution is, of course, for you to write a User Language Program (ULP) to fix this problem on your own. Luckily, there are several of these in the online help forum. However, it is a pain in the butt, and something I think they can fix in the software.
The library management and browsing situation really stink with Eagle, which is the one of the few reasons I have for not actually purchasing the program yet. They have a long list of libraries, with lots of cool parts, but the only way to browse through these libaries are to load them, then load each individual part. This is the grope and poke method of searching, and it is a terrible thing to have to put up with in an otherwise cool program. Managing your libaries is also painful. If you want, for example, to copy a device from one library to another, you have to cut (which means copy!) the package to the clipboard, close the current library, open the destination library, create the new package, paste the information from the clipboard. Then, you need to repeat those steps for the symbol. Finally, you have to reassociate all of the pins of your package and symbol, one at a time, to make the duplicate device in the new library. You would have to try this once or twice to see just how ugly this really is!
The lack of browsing ability and the lack of management are only surpassed by the utter lack of useful documentation! The online help is barely helpful. If you hit the help key, it will show you the scripting language function closest to what it thinks you were trying to do. However, it doesn't explain how to do things using the UI. Its a very poorly documented yet extremely complex program.
One word of caution: Never work on the schematic or the board layout without opening both files. You will be forever screwed if you make changes on one side but not the other. I have found the program has difficulties reconciling the changes at a later date, and seems to be prone to generating additional wiring errors.
One strong point about Eagle is their support forums. They have several newsgroups that are dedicated to helping people, and they have at least two people who answer a lot of questions on the net. I will give them a big thumbs up on the support department. They have kept all of the posts for the last year or so. I was able to find answers to many of my questions by spending 4 hours reading through many many articles.
I love it, I hate it, I might be able to live with it. I have about 120 hours into Eagle, learning and trying things out. The Cadsoft folks are promising the library management problems are the focus of version 4.0 of this program. Anything they do will be better than what the have, so I am anxious to see the improvements. However, I have also been waiting for nearly 18 months, and they still don't have a ship date in mind!
Versions of Eagle are available for Windows and Linux. I found the Linux version to be rather unstable. (Perhaps it is just me, but I found that the program had some irritating quirks when run on X-Windows. I don't really care for X anyway, so I may be biased.) There is even an old DOS version still being maintained. If you are evaluating PCB programs, you should put Eagle on your list.
If I had to choose one today, I think I would go with Eagle.
Cost: $400 + $1000 for Autorouter
I have been kicking the tires on IVEX for a couple of years. It looked promising, but I have some issues with it. I might recommend you try it for yourself. It has some nice features, but I have had some reliability problems. On my Windows/NT machine, it crashes now and then. Nothing repeatable, but always when I have just done an hours worth of work! Anyway, it has a decent set of functions.
If I had to guess, I would be willing to guess that the IVEX program started out as a set of smaller programs under DOS. This is one of those programs that still shows its heritage in the way it operates. It still has a habit of wanting you to run batch operations on your data. For example, it has a seperate Annotation feature. That means when you run the Annotation feature, it will search for parts with a ? in the name, and assign numbers automatically. Useful feature, but having a seperate batch style utility makes an extra set of steps.
WinDraft (Schematic program) and WinBoard (PCB program) are seperate programs. Following the batch processing theory, to get the schematic into WinBoard, you have to invoke a utility program in WinDraft to export a NETLIST file. Then, in WinBoard, you have to load the netlist manually. This is the old way, it works, but it is kind of clumsy.
WinDraft has a built in SPICE simulator. This is a feature that I currently don't really care about. However, it turns out that many of the software packages I have evaluated during this process are focused on their schematic programs ability to do SPICE sims. I would prefer they spent time getting the programs to run flawlessly, but I may not be reflecting the general market.
The editor windows look somewhat the same, but you can tell these are different programs. Each behave slightly differently. The WinBoard module editor (library editor) is different from the Windraft editor. The associations are done in the netlist format. In WinDraft, you create a symbol, and assign it a package name and a library name. When the netlist is output, this information tells the PCB program where to find the package. This works alright. The library browser in both programs gives you the ability to select the library file, specific part, then shows you a preview of the part you are considering. This is a nice touch, and very useful. I like the way both programs use a similar UI for this.
The program puts up a rather useful toolbar on the screen which contains a set of often used parts. This is a happy feature, since I can load it up with my favorite parts. I wish other programs did the same.
I found the library editors in both programs to be adequate. They operated well, were easy to figure out, and allowed me to work quickly to get the job done.
There does appear to be a few small issues with both IVEX programs. The UI doesn't seem to have much fit and finish work. For example, the program occasionally won't allow me to resize the current window. It also has an irritating habit of throwing up a text based output window that I then have to close to get out of my way. This happens after doing something like outputting a netlist, doing a design rule check, etc. These are the things that show that this was once a DOS program!
I am also not wild about the number of intermediate steps I have to take to do some things. Having to annotate, output netlists, load netlists, and generally fuss around with certain areas of the program left me not wanting to make it my primary program.
In the fit and finish area, there are a number of things that make the schematics look odd. For example, the size differences between the part traces and the wire traces. The program also puts the text for the parts in funny positions. Often times trying to grab the text to move it doesn't work well, and takes extra time to deal with.
I don't like the gerber output functions. I found this to be lacking compared to Eagle, which has a good set of gerber generation features. For example, I have to go select each layer individually, plot it, then go back. In Eagle and some of the others, these are done in a batch mode. Much faster.
The autorouter is not included with this package, so I didn't get a chance to try it. I don't think I would spent the $1000 on it either since the Eagle program comes with a very powerful one for much less.
I have had numerous crashes with IVEX. They are not occuring in a regular or predictable way, which means working around crashes like this can be a real issue. I had sent email to the company for support, and they sent back a canned reply suggesting it was my video driver. They did this without even looking into the bug report, which means they may or may not actually even look at their bugs. The crash address was smack in the middle of their code. They are picking up a pointer, which ended up being NULL, and reading something at pointer +4 bytes. After my reply mail telling them that Windows/NT video drivers don't crash like this, and that it was in their app, they promised to have a developer look.
The crashes are not always at the same address, which also has me a bit concerned. After working on a libary part for almost an hour, I was not ready to start over just yet!
The jury is still out on their support. I wasn't too impressed with the second contact. The first contact was last year when I was asking some how-to questions. I did get reasonable answers at the time, so I am hoping that this latest incident was just an error in judgement on behalf of the support engineer. He did agree that the problem could indeed be in the program, so he wasn't completely dodging the issue.
The website does list their current bug list. They don't have too many ugly ones, but there are a few. I am glad to see this list. Most vendors would not do this.
Their other support areas are fairly small, and the parts libraries are OK, but not very extensive.
I kind of like this program, and have invested well over 40 hours learning how to use it. This may very well be a good program for you, though I have decided that Eagle might be a better choice for me. IVEX can be pretty expensive. They currently have it 'on sale' for $400 for the pair of programs plus a gerber file viewer. This is for a 650 pin limited version. A 650 pin board is fairly good sized. However, it gets really expensive after that, and you still don't get the autorouter!
Cost: $395 for Standard, $995 for Professional
Microcode recently updated their Traxmaker and Circuitmaker programs into a single entity called CircuitMaker 2000. Unfortunately, this just happened, and they no longer supply the two programs I spent time with. However, I will tell you about the previous versions. I hope this information is going to apply to the new programs as well!
Circuitmaker is a schematic layout program that I didn't care too much for. The mating program, Traxmaker, is something I use quite a bit since it is the Windows version of DOS Protel. It is capable of reading Autotrax schematics, and does a better job outputting the various layers from that program. I am told that Microcode bought the Autotrax franchise from Protel and continued developing it while Protel headed off in another direction. That was in about 1990 or so. Then, in 1998, Protel bought Microcode. So, CircuitMaker is a division of Protel again!
Traxmaker is a straight forward PCB layout program. It has a fairly functional set of capabilities for placing parts, routing signals, and the autorouter works OK for many purposes. It isn't quite a glitzy as the others, but it gets the job done. It also had a nice UI for dealing with gerber output files, allowing you to do the entire batch of files from one screen. Some of the features are a little odd, but I use the 'demo' version of this program quite a bit. This program can read Autotrax files (DOS version from Protel). For a low end program, it works very well.
Circuitmaker is setup to be a simulation/schematic capture program. Therefore, they spent a great deal of time working on the simulation area at the expense of the schematic capture area. I really didn't care much for the UI in Circuitmaker. I found it to be clumsy to use, and the visual details of the schematics generated didn't appeal to me at all. However, I was able to play around with the simulator on a few small circuits, and it looked pretty interesting. I don't do much with analog, and none of the parts I would typically use have SPICE models, so the feature is very low on my list of features.
Well, the demo versions I downloaded didn't give me any warm fuzzies. The Circuitmaker program was limited in its ability, and the libraries didn't excite me at all. I was really hoping to find a program that had libraries I would find useful. This wasn't it.
The Traxmaker program was fully functional, except that I couldn't save anything. No biggie, I was still able to get a good feel for the program. I liked the way it operated. I would have purchased Traxmaker, except it didn't integrate with any other schematic programs but Circuitmaker, which I didn't care for.
You might like to download their demo version (when the new one becomes available). I would hope that the integration is improved, and perhaps the functionality of the program has improved.
There are quite a few other programs that I have tried, but didn't like well enough to bother with a review. However, I will mention them in summary form so you can evaluate them for yourself:
I have a demo version of Protel '98 that looked impressive, and costs about $5000 for the real thing. To be honest, the program crashed about every 10 minutes while I was experimenting. Granted, I was doing things that the designers probably never thought to test, but the frequency of the crashes was a true disappointment. The program is a full featured electronic design assistant, including schematic, PCB layout, PLD compiler, autorouter, and a bunch of other features that I don't understand. It also does simulation. You can get a demo CD from them at www.protel.com . Interesting to play with, too much money for me.
They didn't have a downloadable demo of their current version. I have played with the previous versions. This is gear more towards simulation than PCB design. I didn't like the library selection, nor did I care much for the limited functionality of the schematic program or the PCB program. The latest version, called Ultiboard, doesn't peak my interest enought to try. The 'demo' version is really a canned set of screen shots. They don't let you try the program out first, which I don't like and won't support. They also have poor library support. They claim to provide over 6000 library parts. However, they list each value of resistor as 1 part each. There are about 100 resistor values, 100 capacitor values, several hundred diodes, etc. You get the picture: no bang for the buck. The program costs $400 for the PCB program, $400 for the Multisim program, and $400 for the autorouter. http://www.electronicsworkbench.com/
I wasn't impressed much with Mental Automation. Perhaps you might be: http://www.mentala.com/index.htm
As much as I hate the program, Eagle is the current winner of the contest. As I stated before, I still am not impressed enough to plunk down any hard cash, but I am watching for signs of improvement. I do like the companys helpful attitude towards its users, and hope they will be able to pull off a great new version with their upcoming v4.0 update.