This Blog Has Moved!

I've moved this blog and all its posts over to There won't be any more posts made over here.

Taking the "Ahg!" out of making parts in Eagle.

A Perl Library for Making Eagle Parts

imageMaking footprints and schematic symbols are some of the more onerous parts of using Eagle. But most ICs are pretty similar: they're either DIPs, some type of leaded SMD, or BGAs. So I made a Perl library that lets me enter a simple text description of a chip and it will generate a footprint and symbol for me and link them together into a complete device.

"Phew! Just made it!"

I announced chapter 6 of "FPGAs?! Now What?" in March of 2012. Today, I'm "proud" to release chapter 7. I got it done in less than a year since the last one. Yay me!

This chapter covers how to do a mixed VHDL/Verilog design. 

As always, remember that all the source files for this book - including the FPGA projects - are available at Github.

A Python Package for XESS FPGA Boards


I've been working on a Python version of the XSTOOLs software for a while now, but I finally got around to making it into a package. Distributing it as a ZIP file was becoming too much of a hassle. Now all you have to do to install it is type:

easy_install xstools


pip install xstools

Accessing the XuLA2 MicroSD Card

When the XuLA2 was released, I still didn't have an easy-to-use controller module to interface the FPGA with the SD Flash card. But now I do and you can get it here.

Here's a block diagram that shows the various control signals and datapaths for the SD card controller module.

FPGA-Based SD Card Controller Block Diagram

2012 OHS Maker's Toolbox

I sponsored the 2011 Open Hardware Summit but didn't take the opportunity to put anything in their goodie bag that year. (Incidentally, does anything sound stupider than the term goodie bag?) When I sponsored again this year, I needed to find something for the bag that would:

  • be cheap to produce,
  • promote my company to potential customers at OHS (because, hey, my ex-wife has to eat),
  • not get thrown away.

Taxonomy upgrade extras:

Mounting a BGA on a PCB Quickly and Cheaply.

Well, the XuLA2 PCBs arrived last week and now they are moving through assembly. But before I could start that, I had to build up one of the boards to make sure it worked. (I wouldn't want to assemble a batch of boards at $60 a pop and then find out the PCB was wacked.)

The XuLA2 board has a 256-ball BGA on it. In the past, I've sent a single board and BGA to my assembler and had it mounted. Then I would assemble the rest of the board and test it. The problem with doing this is the delay:

Monday: I mail a PCB and BGA to the assembler. (They are forty miles away.)

Tuesday: The assembler receives the package and - if they jump right on it - mounts the BGA on the PCB.

Wednesday: The assembler mails the mounted BGA and PCB back to me.

Thursday: I receive it along with a bill for $50.

To avoid a three-day delay and $50 out-of-pocket, I wondered if I could mount the BGA myself. The total cost of the BGA and PCB was less than $35, so the potential loss was minimal if I screwed up. And I could always fall back on my assembler if I failed.

While I didn't have the temperature-controlled convection heater or the X-ray inspection machine like my assembler, I did have a $40 paint stripper that should heat the BGA enough to make it reflow. Surprisingly enough, I was able to successfully mount the BGA to the PCB using very simple tools and procedures. Here's a video that shows how I did it:

The first BGA I mounted was a failure, but every one since then has worked. I wouldn't employ this technique on a board I'd send to a customer or one with a large, expensive BGA, but I would use it for short-term prototypes with mid-size BGAs.

Taxonomy upgrade extras:


You've probably read quite a bit of commentary about Curiosity's landing on Mars last night. Well, here's "Yet Another Mars Science Lab Blog Post".

First off, great job! NASA and JPL made an incredibly complicated job look easy. It took millions of man-hours of mind-numbing effort to get to that point. Now I'm excited to see what Curiosity digs up. It's a great achievement.

OK, that's out of the way. Now I want to respond to some of the dumbass comments I saw on Twitter and the NASA Ustream last night.

Taxonomy upgrade extras:

One from the Junkbox...

When I demoed a few projects at the recent Maker Faire NC, I also brought along a loose box of projects for people to paw through. (The little kids loved 'em. Nothing puts out an eye like an 0.1" header.) Most of the stuff was old XuLAs and StickIt! motherboards and modules. But the one most people asked about was just an unpopulated PCB I'd designed back in 2011 and had never gotten around to doing anything with. (That's one of the unexpected consequences brought on by companies like Itead: you can make a PCB for a project and, because it's so cheap, you don't care if you never finish it.)

It's the Same Size, Only Bigger!

Well, I finally finished testing the XuLA2 prototype a few days ago and released the PCB to manufacturing. When I layed-out the prototype, I butted the microSD socket right up against the FPGA in order to keep the board at 2" x 1". I knew that wasn't going to fly for final production, but I wanted to get it done quick so I could find the other gotchas that typically occur when I move to using a different chip (in this case, the Spartan-6 FPGA).

Taxonomy upgrade extras:


Subscribe to XESS RSS