This is my review of PCBweb, a relatively new schematic capture and PCB layout tool for Windows. I used it to design a simple ATtiny based project so I could test it's features in a real application.
There seems to be a trend for component suppliers to provide a free schematic and PCB layout tool with instant access to their inventory and built in ordering - RS Components have DesignSpark and now DigiKey have PCBweb. After having this new tool pointed out to me I thought it would be worth doing a quick review of it and see how it stacks up.
Rather than just randomly play with the features of the program I decided to pick a project from my queue and try to implement that - this will give me a better feel for how it would work in the real world. I have a few PIC32 chips (in DIP format) sitting in the parts draw that I want to use in the near future but I need to be able to get a bootloader on them so I can program then in-circuit with just a serial cable. The design is based on this project which uses an AVR processor as a JTAG controller and accepts HEX files over the serial connection.
I've modified the original project to use an ATtiny84 rather than an ATmega and provided a header to connect a PICkit 3 as an alternative programming method. The circuit is pretty simple - the CPU itself, a CD4050 as a logic level convertor, a ZIF socket for the target CPU and a handful of discrete components.
Setup is fairly straight forward - download the setup program from their site (it's suprisingly small - only 3.5Mb) and run it. You will need to create an account as well but thankfully they don't ask for any extraneous details - a name, email address and (optionally) company information.
The program seems to be available for Windows only at this point (7 and above) although when I was doing background research on it I did see some references to a Mac version but that option is not listed on the download page. I beleive the application uses Silverlight for it's UI framework but I haven't been able to confirm this. If so Mac and Linux versions may be possible in the future.
The first time you run the program you will be prompted to sign in or create an account. Thankfully they have done this well - as long as you have signed in previously you can use the program even if your internet connection is not available. Some features (the DigiKey catalog for example) are not available but you can still edit your schematic and PCB layout - I wish more software did this, only disable the functionality that requires an internet connection rather than locking you out of the program alltogether.
Once you have done that you are presented with the schematic editor.
The layout of the program is nice and clean giving you a good portion of the screen real estate for the actual editing area. Component selection is available on the side bar and a minimalist tool bar gives you access to editing tools and common schematic symbols.
The default schematic page includes a frame which is a nice touch - it's one of those things you really should have in your schematic but often don't bother with. Multi-page schematics are supported and you can set the paper size of each page differently if you like.
The default component selection tab provides access to the DigiKey inventory with an option to limit search results to components that have a footprint available. I found the component search functionality much nicer than the one in DesignSpark - it provides a very intuitive parametric search capability which lets you narrow your search considerably. You can also search on part number or keyword as well.
Unfortunately I ran into problems immediately. The ATtiny84 isn't available as a ready to use component - in fact the AVR core isn't listed in the component selection box at all. Removing the 'Ready to Place' limit showed it but then prompted me to create a custom footprint and schematic symbol for the part.
I tried with a few other components and found that there were very few DIP footprints at all - the only ones I found were for the 14 pin DIP MSP430 series, some 28 pin DIP dsPIC33 processors and 40 pin Maxim 8051 based controllers. The majority of the components from DigiKey with footprints available were surface mount only even though they do stock a wide range of THT components as well.
I decided to move forward and add the components that were available. The CD4050 was available with a THT footprint as were the discretes. Find generic resistor and capacitor components was a little non-obvious though - they are on the 'Library' tab under 'Generic Components'. I had assumed the 'Library' tab was for external or custom components so I didn't think to look there at first.
After I created a few custom components (I'll describe that process later in the post) I put the schematic together. The editor is nice and simple to use and reminiscent of Fritzing in some ways. Adding net lables is easy and standard symbols such as VCC and GND are readily available. It does have a habit of moving connector lines into some rather odd places when you move a component and the size of some of the symbols (labels, resistors and capacitors) are a bit large relative to other components. These are just minor nipicks though - overall it was easy to just concentrate on the job at hand.
Custom Components and Library Management
The component editor was one of the nicest I have ever used. The symbol and footprint editors are separated into two panes and can be edited invidually.
The symbol editor has predefined templates for single, dual and quad row components as well as letting you place pins in arbitrary locals. For custom shapes there are drawing tools for lines, arcs and text. Compared to making symbols in other tools this was really a breeze.
The footprint editor is much the same - placing pads is simple and you can easily adjust the shape, size and hole diameter. Multiple layers are supported - top and bottom copper, silk screen and placement. Switching between layers is done using the tabs at the bottom - you can also adjust the properties of a visual item and change the layer there.
The downside of this simplicity is that more advanced management features aren' available - I couldn't use an existing footprint with a different component for example. Once I make a 28 pin DIP footprint I should be able to use that with any 28 pin DIP chip - so an ATmega8 and a PIC32MX150F128 should be able to share the PCB footprint without me having to duplicate the design.
You can't customise existing components either. I prefer to use square pads - when milling or using toner transfer to make PCBs this avoids the problem of copper lifting from the board during the drilling process - so if an existing component footprint uses round pads I prefer to modify it to suit my production method. PCBWeb doesn't seem to have any support for this - you can't copy a component from the DigiKey library into your own library and modify it, you have to rebuild the component from scratch.
There also doesn't seem to be any way to import or export components - even in the programs own format. Although DigiKey have a vast catalog not all of their components have footprints available and I can't share the ones I make with others (or make use of other peoples designs). These are large deficiencies I'm afraid, hopefully a future upgrade will add these features.
The layout editor is as simple to use as the schematic editor. You can focus on individual layers using the tabs at the bottom and laying down tracks is straightforward. Visually you can adjust the colors of different elements using a property sheet at the side of the screen. Unfortunately you can't change the dimensions of lines - personally I found the rats nest lines were a little too difficult to see, it would have been nice to be able to increase their size a bit.
The layout tool supports boards with 2 to 12 layers, there is no direct support for single layer boards but you can simply use a two layer board and only place tracks on the bottom layer.
You can't view the schematic and PCB layout at the same time so I found the best way to do the layout is to print out the schematic and have it by my side so I can cross reference components on the PCB with the schematic (the rats nest really is a rats nest and connections between components are not always clear).
I did find the PCB layout a little sluggish whereas the schematic editor was fairly snappy. I'm not exactly running it on a high end machine but it was noticably slower than DesignSpark on the same laptop.
When you have finished your board design PCBWeb gives you a number of tools to help with manufacturing.
The BOM (Bill Of Materials) is automatically generated from the design and you can order the parts kit directly from DigiKey from within the interface. Parts that have been imported from the DigiKey library will automatically have the appropriate part number associated with them and you can specify a part number for your custom components. The BOM can be exported in CSV format so you can order from other providers as well.
You can also directly order from a range of PCB fabricators (KingBrother, Fusion PCB or Viasystems) directly from the program as well. The layout tool has DRC (Design Rules Check) for each of the fabricators it supports as well as support for a set of custom design rules.
If you are using a different manufacturer (or build the boards yourself) you can generate Gerber files directly. They are always packaged in a ZIP file for some reason - presumably to make it easier to submit to an external fabricator.
for other manufacturing processes.
I was dissapointed to find that you could not generate a PDF file of the copper layer, this means that if you are going to use toner transfer or photoresist to make your boards you will have to use a third party tool to generate the plot from the Gerber files.
Overall PCBWeb is quite a nice tool to use and well worth considering. I'm not sure what market they are targeting - it doesn't really compete with the likes of Eagle (the full version) or Altium but it fits nicely between Fritzing and the free version of Eagle. I would imagine it would appeal to the hobbiest or small design service, it was certainly a lot easier to get started with than DesignSpark.
I would seriously consider migrating if the library management was a bit more advanced and there was a way to import components and schematics from other tools. As it is I have 2 dozen or more projects in DesignSpark already as well as a library of 20 or so custom components I use regularly - having to redo all of those increases the cost of migration so the simpler the process is the more likely people will take it up.
If you don't already have a large investement in an existing tool it is well worth looking at PCBWeb. It's an easy to use tool that keeps out of your way - exactly what you want if you are not designing PCBs full time.