For the last five months, I’ve been writing a series of posts describing how to build a PCB in every piece of software out there. Every post in this series takes a reference schematic and board, and recreates all the elements in a completely new PCB tool.
There are three reasons why this sort of review is valuable. First, each post in this series is effectively a review of a particular tool. Already we’ve done Fritzing (thumbs down), KiCad (thumbs up), Eagle (thumbs up), and Protel Autotrax (interesting from a historical perspective). Secondly, each post in this series is a quick getting started guide for each PCB tool. Since the reference schematic and board are sufficiently complex for 90% of common PCB design tasks, each of these posts is a quick how-to guide for a specific tool. Thirdly, this series of posts serves as a basis of comparison between different tools. For example, you can do anything you want in KiCad and most of what you want in Eagle. Fritzing is terrible, and Autotrax is the digital version of the rub-on traces you bought at Radio Shack in 1987.
With that introduction out of the way, let’s get cranking on Upverter.
A little bit about Upverter
Upverter was founded in 2010 as an entirely web-based EDA tool aimed at students, hobbyists, and Open Hardware circuit designers. This was one of the first completely web-based circuit design tools and Upverter’s relative success has been a bellwether for other completely web-based EDA tools such as circuits.io and EasyEDA.
I would like to take a second to mention Upverter is a Y Combinator company (W11), which virtually guarantees this post will make it to the top of Hacker News. Go fight for imaginary Internet points amongst yourselves.
Upverter is a business after all, so how are they making money? Most EDA suites offer a free, limited version for personal, hobbyist, and ‘maker’ projects, and Upverter is no exception. The professional tier offers a few more features including CAM export, 3D preview, an API, simulation (coming soon), BOM management, and unlimited private projects for $125 per seat per month, or $1200 per seat per year.
To give you a basis of comparison for that subscription fee, Eagle CAD’s new license scheme gives you everything – 999 schematic sheets, 16 layers, and unlimited board area – for $65 per month, or $500 per year. Altium’s CircuitStudio comes in at $1000 for a one-year license. There are more expensive EDA suites such as Altium Designer and OrCAD, but you have to call a sales guy just to get a price.
Upverter is positioning itself as a professional tool at a professional price. There are better tools out there, of course, but there are thousands of businesses out there designing products with tools that cost $500 to $1000 per seat per year. In any event, this is all academic; the Hackaday crowd gravitates towards the free end of the market, whether that means beer or speech.
A big draw for Upverter is their Parts Concierge service. You’ll never have to create a part from scratch again, so the sales copy says. Apparently, Upverter is using a combination of very slick scripts to pull part layouts off a datasheet and human intervention / sanity check to create these parts. Does it work? We’re going to find out in the review below.
Creating A Schematic
We have three things to do in Upverter. First, we’re going to recreate the schematic given in the introduction to this series of posts. Second, we’re going to make a part from scratch in Upverter. In this case, we’re going to build the PDIP ATtiny85. Finally, we’re going to turn this schematic into a board. Let’s begin with the end. Here’s the completed schematic:
This is, more or less, exactly what we want. Here’s how I got to this point.
Upverter’s main focus and selling point is that you never need to worry about part libraries. There are only so many footprints, there are only so many datasheets, and this is a web-based EDA tool, anyway; it only makes sense every part should be available. In practice, or at least for the jellybean parts I’m using for this simple microcontroller board, everything pretty much works out. A 1×4 0.1″ header is the same no matter who the manufacturer is.
Clicking on the little chip icon in the toolbar brings up the Add Component dialog. Search for a part, use the search filters, and you’ll probably find what you’re looking for.
With the parts selected and laid out, the only thing left to do is draw a few wires, place a few VCC and GND symbols, and name all the nets. This is easy enough with the toolbar on the left-hand side of the screen. For those of us who aren’t quite into the whole Web 2.0 thing, Upverter provides hotkeys. Press ‘N’ to add a net, ‘F’ to flip a selection, ‘R’ to rotate a selection, and arrow keys to move the window around.
For anyone who has used PCB design software before, all of this should be familiar. There are a few oddities of the Upverter schematic interface, though:
- Resistors, caps, and everything else that comes in standard packages is easy. Everything else — inductors and switches — is hard to find in the interface.
- For some ungodly reason, Upverter thinks your mouse only has one button. Dragging the view around with the ‘hand’ tool is a chore.
- Values can be edited directly on the schematic, not just through the modal dialog accessed by double clicking a part.
- The bus icon is a ‘wheels on the bus’ bus.
Making A Part From Scratch
Upverter has a lot of parts in their database, and they have a Part Concierge service that will make parts for you. For this part of this tutorial and review, we don’t care about that. This is how you create a PDIP ATtiny85 from scratch. Does Upverter already have a PDIP ATtiny85 part? Yes, but that’s not the point of why I’m doing this.
There’s a reasonably complete and up to date guide on the Upverter wiki, although there are a few tweaks and caveats that should be mentioned and are not obvious at all.
The first thing to do when creating a part from scratch in Upverter is to edit the attributes of the part. These attributes include the part number, manufacturer, package, a link to a datasheet, Digikey and Mouser part numbers, and temperature ratings. This is a simple chip for a simple board that will only be used once, so entering ‘ATtiny85’ in the name field is good enough.
Next up is generating pins for the schematic symbol. Click on the ‘Pins’ label in the right hand toolbar, click the ‘edit’ button, and the Pin Manager dialog pops up. The first column is the pin number, in this case starting at one, going counter clockwise around a PDIP part. Refer to the ATtiny85 datasheet for the second column, the pin name. That’s PB0 through PB5, VCC, and GND. The next few columns define the function of the pin, and which side of the schematic symbol they’ll be autogenerated on. Hit ‘save’ in the Pin Manager, and you’ll have something like the picture on the right. That’s not bad, actually.
With the schematic symbol out of the way, it’s time to make the footprint.
At the top menu bar, hit the Footprint button, and click the footprint icon on the left-hand toolbar. This gets really cool.
The Footprint Generator has options for just about every type of package you’ll ever need. If you need a DIP, select DIP from the drop-down menu. If you’re working with an SSOP part, select that. Selecting any standard brings up options for the number of leads, the height of the package, the pitch of the leads, and all the dimensions you’d find in the back pages of a datasheet. I couldn’t find any options for truly weird and old parts like PGA packages, but Upverter’s footprint generator is more than enough to automagically create parts by just entering numbers from a datasheet. It’s pretty cool.
With the schematic and a custom part done, it’s time to move on to the last step: actually creating a PCB.
Creating A PCB
We’re done with the schematic, so hit the ‘PCB Layout’ button at the top of the screen. Here’s what we get:
It looks ugly, but that’s fine double click on the background of the window to open the Board Outline dialog. This is where you set the dimensions of the board. Since we’re just copying the board presented in the introduction to this series of posts, enter 44.45mm x 20.95mm in the dialog. Move the components around, and you’ll eventually get something that looks like this:
Again, we’re simply copying what we’ve already done half a dozen times now. Routing is easy enough with snap-to and a neat feature I’ve only seen in Photoshop, Illustrator, and their ilk — automatic alignment to other pads.
The only confusing part about this build is the ground and power pours. Here’s the trick: to stop drawing a pour polygon, press escape.
Draw a pour on the top copper layer, assign it to the GND net, draw a pour on the bottom copper layer, assign it to the VCC net, and get the VCC pad on the USB connector to the other side. That’s it, it’s done:
Sending the board off, exporting, and the takeaway
Want to take a look at this project for yourself? That’s one of the bonuses of a web-based tool. Here you go.
Upverter allows you to design a PCB in their tool, but strangely they don’t have an agreement with anyone to sell the actual small production runs. I find this very odd; it’s a great way to make a bit of change for Upverter. Fritzing, for instance, has an agreement with a fab house in Berlin to produce boards at about a 300% markup over OSH Park.
Instead of upselling, Upverter has a spectacular array of options to export a bunch of data. Everything from pick and place data to 3D models in STEP format is available. Gerbers are just a single download button away, and yes, they work with OSH Park’s web interface.
So, how does Upverter compare to other design tools? Remarkably well, in my opinion. It’s much more refined than the more primitive tools I’ve taken a look at. Routing is easy, and even building a part from scratch is relatively simple. Is it good enough for a hobbyist? Absolutely. Is it good enough for a team of engineers? That’s another question entirely.
When it comes to EDA tools that cost money, there are two tiers. Altium and OrCAD are the top tier. You can’t even get a price for these things without calling a salesperson. The second tier includes Eagle CAD, which is significantly cheaper than a yearly subscription to Upverter. Again, the Hackaday crowd gravitates towards free as in beer and speech, but it is something to think about.
One problem I did have with Upverter was a few graphical glitches. To be fair, I was running this in Microsoft Edge, but a few times in creating this tutorial Upverter turned into the cover of a vaporwave album. Whether this is Upverter or Edge is up in the air, but it is an issue.
Well that’s done
This concludes the Creating A PCB in Everything post on Upverter. If you have a suggestion for what PCB design tool to cover next, leave a note in the comments.