Navigation

Saturday, August 23, 2014

Tools of The Trade - Part 2

In this second part of the series about tools I will talk about HARDware related tools, i.e. schematics, PCB layout, etc. This took more time to select; therefore, I made a little review of the contenders. In the end my decision was partly quantitative and partly subjective. It's how I feel about a tool that matters, we will be spending a lot of time together.

HARDware

I have experience is a couple of the main EDA tools for schematic capture and PCB layout. I use these tools almost everyday and as such it makes sense to use these tools at home as well right?

The tools I use (or have used) specifically are Cadence OrCAD, Altium, Protel 99SE, Zuken CR-5000, and Mentor Graphics PADS. For my home projects I decided to do a little research and see what tools would be most suitable for my use.

I started off looking at the big guns. Cadence OrCAD vs Cadence Allegro vs Altium vs Mentor Graphics PADS. This quickly stopped after I realized (and forgot for a moment) that I am not a company nor am I doing this for a company, so how the hell will I afford the $7k+ tools listed above. Fool I was. I forgot there for a second I am not doing this research for my day job. I was actually doing a similar tools analysis at my work around the same time so my thinking got crossed.

Now that I'm back to reality, I decided to look at the more "affordable" solutions. Eagle vs DipTrace vs DesignSpark vs KiCAD. The first two listed tools (Eagle and DipTrace) are actually commercial software with some "free" versions available, more on that in a bit. The last two (DesignSpark and KiCAD) are open source software.

** A little note about my logic when it comes to paying for software. If it's affordable to my standards and I think it has features that can save me time and make me more productive, then I will consider it. If it's a little more expensive, but a mainline tool (something that a lot of companies use) then I would also consider it since I can call this "investing in my career".

Here's the points I look at when purchasing tools.
- Price
- Features
- User base
- Mainline tool (do engineering companies use it?)
- Ease of use
- Ability to customize

Eagle

Let's start off with Eagle. In the realm of hobbyist and affordable tools Eagle reigns king. They're the most popular by far. I personally don't "love" this tool, but it is acceptable. I do love their ULP (User Language Programs). Basically you can write a script to do just about anything from BOM outputs to HyperLynx ASCII format files (to be used for signal integrity analysis). This is a very powerful and useful feature, but sometimes I feel the Eagle team gets lazy on certain tool features that should be integrated but they depend on ULPs to fill in the gaps (just my opinion).

Not sure if this is changed in their newer V7 version but in V6.6 they did not have online DRC for PCB layout. That's a big fail in my opinion, it's 2014 and they have been around for over 20 years, really?!?!

Pros:
  • Popular, lots of tutorials available
  • ULP is awesome
  • Can export to HyperLynx
Cons:
  • Dated GUI
  • No online DRC!!!!
  • Almost no ability to make constraints for PCB layout (i.e. spacing between nets classes, separate net class properties, etc)
Their pricing is where I gave up on Eagle. They have a non-commercial/hobbyist version for $169 up to 6 layers, but I plan to be making some boards over 6. That means I need a professional licence between $575 - $820, no thank you. Eagle is not industry standard enough to warrant this investment. Next!

DipTrace

I actually really like DipTrace. They have a lot of nice features and they seem pretty active on adding features based on user feedback. They have a online DRC with some nice constraints available (i.e. length matching). I played around for a week and really came to like it.

Pros:
  • Open GL, 64bit version, fast easy fluid GUI
  • Good constraints for PCB layout (i.e trace length matching) 
  • Although no differential routing it's pretty easy to route differential using constraints and online DRC
  • I can tent individual VIAs (this is useful for covering VIAs under an FPGA on the component side)
Cons:
  • Their online DRC will not restrict, but will show errors in real-time only
  • No differential routing (they say soon though)
  • Copper pour feature is a little weird (hard to explain)
  • BOM creation is annoying
When it comes to pricing they also have a non-commercial range from FREE to $348. The $348 is the full featured version, which I will need. $348 is borderline for what I would pay. My biggest problem with DipTrace is that no one uses it nor will they probably ever (I'm talking about mid-large engineering companies). Unfortunately I do not see a good ROI. If they had a full featured non-commercial version for ~$150 I probably would jump on it.

DesignSpark

Meh.

I downloaded it, opened it, placed a component, routed a signal, hated it, then deleted from my computer

Moving on...

KiCAD

KiCAD is fully open source. They have a lot of users and are very active. Just look here at their development page. Multiple commits per day. I have no doubt this tool will become very powerful in the future. Because it is open source there's a few annoying "features", but one can work around them for now. I have confidence the developers will make this a better tool and take users feedback into account. Worse case I dust off my C++ programming skills and do it myself!

What I like about KiCAD is that some big names have taken interest, see here on CERNs contribution.

Pros
  • Open source
  • Constantly getting better
  • Very active user base
  • Although no differential routing it's pretty easy to route differential using constraints and online DRC
  • They have a Python console available for PCB layout. This console gives you almost full access to all the internal functions and classes. So a lot like the ULP in eagle.
Cons
  • Still a lot of bugs, it's still in development
  • Not a lot of support for windows users (although thanks to these people here they are building Windows binaries of snapshots)
  • No differential routing 
  • Solder/Paste mask viewing editing is only global. You have to do tricks to individually tent/mask specific VIAs
  • I don't love their copper pour tool

Other tools (HARDware related)

  • LTspice 
    • This should be your main tool for spice simulation, nothing, in my opinion even comes close
  • OpenEMS
    • EM field solver, open source, can be used for signal integrity analysis
  • Saturn PCB ToolKit 
    • Very useful tool for quick information when performing layout
  • KEMET Spice 
    • A great tool for analyzing your capacitor decoupling networks. For example choosing the right mix of 1u, 100n, 10n, etc bypass caps for the frequencies of interest for FPGA decoupling needs

Conclusion

I have decided to go with KiCAD as my main EDA tool. The main reason is that it's open source but also I feel it is a very good tool and will only get better. I hope to contribute via bug finding/feature request as well as developing side tools to perform certain actions (i.e. a constraints editor).

Although unlikely any engineering company would ever use KiCAD I still think it's a good investment in terms of a learning skill. For example, creating a 10-layer, multi-GHz, high density PCB in Cadence Allegro or Altium is actually not that hard. Doing the same in a open-source tool like KiCAD where most of the projects are simple two-layer boards, now that will take skills! For home projects I want to learn, share, and challenge myself. At a company you are there to make money for the company; therefore, time is money and as such paying for a tool that can increase productivity is a good investment. 

Finally, from my experience almost every software tool, whether it be for schematics, PCB layout, or software development, they all have common work flows and features. If you learn one, you can learn any. Learning a tool is actually easy and requires a short amount of time. Learning/polishing a skill, such as PCB layout takes time and effort. I'm in it for the long run.






No comments:

Post a Comment