Sunday, March 30, 2014

Rev C1

I received bityExpress-C1 yesterday. This PCB is the OSH Park rebuild of rev C with a little more separation between the inner-plane polygons. My initial inspection showed no plane shorts.

This is where things get hard. I'd love to know how well this card works, but with my pivot to Lattice I'm not sure that spending any more on this path makes sense. If I can stay strong I'll just do some more electrical testing to confirm that my latest OSH Park ruleset worked.


Saturday, March 29, 2014

It's cloudy out

After I decided to try Lattice's Diamond toolset, I had to find a place to install it. Recently I've been using Linux boxes to run the Xilinx and Altera toolsets and I've have very good success using the boxes remotely. This means either a graphical VNC connection or just SSH'ing into the box and running the FPGA tools from the command line.

Lattice presents an interesting opportunity. I've been running Ubuntu/Debian for quite a while and I'm comfortable with them. Unfortunately Lattice Diamond is built for RHEL (Red Hat Enterprise Linux) and I don't have a box set aside to install RHEL on. I've gone down the path of installing toolsets on unsupported Linux distributions; It usually works but it can be very time consuming.  My solution: Amazon EC2 (Amazon Elastic Compute Cloud).

I set up a AWS Free Usage Tier account a few months ago and this was the perfect excuse to start using it.  They had a free machine image that runs 64bit RHEL 6.4.  The free system's specs are pretty meager, but should be fast enough to see if this is worth pursuing.  I can always switch to a faster instance if I like it.

It took me a few hours to set the image up, learn how to enable a VNC session, and install Lattice Diamond.  If anyone is interested I'll consider writing up a tutorial.


I've been reconsidering my FPGA selection lately. With my current interest in developing low-cost PCI Express designs, the $80 or so that I'm shelling out for each Altera Cyclone V GX is becoming a pricey way to work on my home-brew designs. Based on Digikey pricing, the cheapest Altera Cyclone V GX is ~$80, the cheapest Xilinx Spartan-6 25T is ~$50, and the Lattice ECP3 family capable of PCIe starts at around $30.

$30 is enough to entice me to test drive Lattice's development tools and see how mature they are.

Sunday, March 9, 2014


I heard back from OSH Park about the shorts on bityExpress-C. My board meets their design rules and the shorts are a fab error. That said, they are recommending larger polygon to polygon (plane) spacing on internal layers (2 to 3 mils above the clearance spec). I'm concerned that they may not be specifying some rules that they should be; I've decided to look into rule sets from some other PCB prototype houses to look for common themes.

VendorTrack Width / GapSmallest DrillVia Annular RingComponent Annular RingBoard Edge to CopperDrill to Copper GapPlane to Plane ClearanceSolder Mask SilverSolder Mask Expansion
OSH Park5104 (5*)nsnsnsns (7-8*)nsns (4*)
ns = not specified, * = guess based on experience

PCB-Pool's rule listing is more complete than OSH Park's. Given how similar they are I'm inclined to generalize my prototyping rule set in Altium to work for both vendors.

PCB-Pool's Drill to Copper Gap caught my attention. This rule defines how far copper on an internal layer must be from a drill with a different net.  With the bityExpress-C ruleset, the 5 mil annular ring rule plus the 5 mil clearance rule meant that my PCB had a 10 mil Drill to Copper Gap where the PCB-Pool rule is 12 mils. This is especially interesting because if I increase my Plane to Plane Clearance (polygons in this case) to the 7 mils that OSH Park recommended, I also meet PCB-Pool's Drill to Copper Gap rule.

All of this makes me wonder if OSH Park was right that the bityExpress-C shorts are inter-plane shorts. It's possible that the shorts are really due to inaccurate drills hitting planes. I'll give this some more thought. Perhaps I can drill out the vias on one shorted net and see if I can clear the short.

OSH Park wanted to re-run the PCB so I updated it to rev C1. The only change made was to bump the polygon clearance rule to 7 mils. I'm already working on some plans for rev D (which will most likely be built at PCB-Pool). I'll post about my rev D plans soon.

Wednesday, March 5, 2014

PCB-Pool pricing

It looks like the delta between OSH Park and PCB-Pool is less than I originally thought.  I noticed that if I select any file format on PCB-Pool's website other than GERBER the price drops another $25.63.  This makes bityExpress-C cost $48.33 more at PCB-Pool rather than $73.96.

I updated my comparison chart to show the reduced PCB-Pool pricing.  If the number of PCBs doesn't matter, this means that at 10 square inches PCB-Pool clearly wins.  Below 10 square inches my selection of prototyping vendor will depend on if the design is complex enough to require full electrical testing.

VendorClearanceDrillLayerFinishSilkE Testing
OSH Park5104ENIGTop/bottomNo
PCB Specs used in the comparison

Tuesday, March 4, 2014

Reconsidering the PCB

As much as I love OSH Park's prices, I'm starting to reconsider using them for more complicated designs.  If it turns out that the bityExpress-C error is related to PCB manufacture (rather than design), then I will have gone thru two PCB spins without determining if the PERSTn misconnection on bityExpress-A was the problem.  This hasn't been too bad since I've learned a lot about home-brew PCB assembly during these spins, but looking forward OSH Park's cost advantage starts to look less appealing.

I've been casting about since I discovered the shorts on bityExpress-C.  Most prototype PCB houses don't support 5 mil traces/clearances and 8 mil drills, but I found one that does: PCB-Pool.  Their pricing model is a bit more complicated than OSH Park's simple $10 per square inch for a four layer PCB.  They charge a flat fee based on the design's complexity up to 16 square inches.  If the design is small you can get as many boards as it takes to fill up 16 square inches.  For comparison I used PCB-Pool's online price calculator to generate a quantity one price for various PCB sizes from 0.5 square inches to 25 square inches:

VendorClearanceDrillLayerFinishSilkE Testing
OSH Park5104ENIGTop/bottomNo
PCB Specs used in the comparison

For bityExpress-C, OSH Park costs $55.50 for 3 PCBs.  At PCB-Pool it would cost $155.37 for 2 PCBs (or $159.96 for 3).  At first glance $99.87 extra looks excessive, but if I drop the top silkscreen the price drops to $140.51.  PCB-Pool also provides a free metal stencil.  Since I paid $11.05 from OSH Stencil that brings the price difference down to $73.96.

So the question becomes is the free electrical testing at PCB-Pool worth $73.96.  For me the answer is yes.  I spent twice that amount on the FPGAs that I installed on bityExpress-B and bityExpress-C.

Monday, March 3, 2014

A swing and a miss

While checking the bityExpress-C board that I assembled, I found that most of the power rails were shorted to ground.  I inspected the PCB before assembly, but I did not check for power shorts.  After finding the shorts on the assembled board I checked my two remaining un-populated PCBs and found the same shorts.

I re-ran the DRC in Altium (my EDA tool) and it passes.  I opened a service ticket at OSH Park.  If this does turn out to be another error by OSH Park I may have to find another PCB house.

Saturday, March 1, 2014

Building bityExpress-C

Assembly and reflow of my first bityExpress-C board went well last night.  I'll test it later today and see how well it really went.  Below is a video of the process:

Finished bityExpress-C sn #1 assembly