Altera USB-Blaster II (Genuine)

How I got here.

I have really gotten into FPGAs of late.  I find them to be an interesting twist on the reality associated with digital/computing circuits.  Usually you write software to run on a piece of hardware, but with FPGAs, you use software to create hardware.  (Interesting twist, huh?)  However, they are not the easiest and cheapest technology to get into.

FGPAs are not the most hobby friendly devices. They usually require multiple voltages, most don’t have an internal oscillator and tend to use BGA or fine-pitch (0.5mm or less) TFQP packages.  The packaging issue is something most hobbyists are ill equipped to easily handle, including myself.  So, if you are like me, you will turn to FPGA development boards.

FPGA development boards are nice in that they have all of the required power, clocking and even useful peripherals and interfaces on the board, including a programmer. The biggest drawback is that they are usually expensive. ($150 – $300)

Another option is to hop on eBay and pick up a no-name FPGA breakout board.  These are usually fairly inexpensive ($12 – $30) and have the necessary power and clocking circuitry on the board.  They also tend to have standard 0.1-Inch headers that make almost all I/O signals available making then a great way of implementing FPGA technology in your DIY protects.  The down side is they don’t generally come with any on-board JTAG programming capability. So, change a few search terms on eBay and pick yourself up a knock-off JTAG programmer for $12-$15.

The problem.

I bought a generic/knock-off Altera FPGA programmer from eBay for about $12.  The unit almost always worked detecting the FPGA chip but would intermittently fail when trying to write the bit-stream to the chip.

Thinking the programmer was the problem, I bought another knock-off from a more reputable seller just to have the same issue occur in a short time.  That is when I decided to go for the real-deal, an actual genuine Alter programmer.

What do you get?

My unit came packed with the programmer, a nice USB cable and manual.  It doesn’t look like much, but your paying for the quality engineering and not quantity of goodies.

The manual is nice and gives you instructions on how to install the drivers, including Linux (nice touch), device specifications plus signal descriptions and pin-outs.  It’s not a big manual, but is filled with useful, straight-to-the-point information.

The programmer is just a small black box with a “tail” holding the JTAG header connector.  My only complaint is I wish the wires going to the JTAG connector were protected. The wires are very thin and a little snake-skin sleeving would go a long way to protecting them.  After all, it is a $225 unit…not cheap to replace.

So, how does it work?

Like a dream.  Not only has switching to a genuine programmer solved my frustrating, intermittent programming failures, but it is also quick.  I mean, downright fast.  The time it takes to upload the code to my FPGA chips has to be one-tenth the time the knock-off programmer took. (When it worked.)

Is it worth the money?

At $225 it is not cheap and may be out of reach for some hobbyists.  If you are serious about playing with FPGAs and you can scrape that amount of money together, it is definitely worth it.  As of this writing, I have programmed numerous devices an uncountable amount of times and have never had even one hiccup.  My only regret is not buying a genuine unit earlier.  It would have saved me countless hours of aggravation and cursing.

 

 

Getting it to work with Ubuntu 16.04.

I thought I’d drop these instructions on mow to get the USB Blaster series of devices working under Linux Mint 18.3/Ubuntu 16.04.  (Thanks to Carl at fpga-dev.com for info on getting this working.)

With your USB Blaster device connected to your computer, open up a terminal window and issue the following command to list the connected USB devices.

lsusb

Look for the Altera device.  Take note of the ID number, especially the last half of the ID.  This number is dependent on which version of the USB Blaster you have.  We will need this info a little later.  In my case I have a USB Blaster II which has an ID of “6010”.

Bus 003 Device 007: ID 09fb:6010 Altera

Next, create a new rules file. (I used “nano” as my text editor since I was already in a terminal window.)

sudo nano /etc/udev/rules.d/51-usbblaster.rules

Add the following contents to the new file. The “idProduct” number needs to match the number noted above.

# For Altera USB-Blaster permissions.
SUBSYSTEM=="usb",\
ENV{DEVTYPE}=="usb_device",\
ATTR{idVendor}=="09fb",\
ATTR{idProduct}=="6010",\
MODE="0666",\
NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}",\
RUN+="/bin/chmod 0666 %c"

Press “Ctrl+x” and then “y” then “Enter” to save the file.

Finally, reboot the system for the new rules to take effect.