Skip to main content
Topic: Cheap DIY Usb Blaster compatible programmer (Read 37329 times) previous topic - next topic

Cheap DIY Usb Blaster compatible programmer

Hi there,

I've been trying to get my hands dirty with programmable logic for a while now and naturally at some point I faced with the reality that I needed a programmer. For some semi-random reasons I am inclined towards Altera devices rather than the more popular Xilinx . My choices were; Buy an Altera USB Blaster ($300 !), buy a Terasic USB Blaster clone ($50 + shipping from Asia), get some Chinese clone on ebay ($10 - $30). Actually $10 also includes shipping and looks like a great deal. However I did not want to wait for 2 weeks for shipping.

Anyway while searching online for DIY options, I came across this page which shows a very simple looking one with a PIC18 on it. It is in Japanese but, google translate was my friend :) I was not sure if it would work but I had a 18F2550 laying around (plus I had built a Pickit 2 clone a short while ago) and decided to give it a shot. To my surprise it actually worked.

[attachment=0]

This is sort of an older version. The new one is using a cheaper 18F14K50 (but I did not have that). It is only 3.3V compatible but that can be easily handled by adding some level shifters. It's a simple design with just the micro and some passives but I can share my Eagle files if anyone is interested.

Here's the link to the original page (I am using Chrome so it automatically prompts for translation to English):
http://http://www.sa89a.net/mp.cgi/ele/ub.htm

p.s. The board on the right is my Max V CPLD board which I plan to post about soon (it is a two sided board with non-solder via's, more on that later ;p).

Re: Cheap DIY Usb Blaster compatible programmer

Reply #1
Thanks for sharing, we'll post this up.
Got a question? Please ask in the forum for the fastest answers.

Re: Cheap DIY Usb Blaster compatible programmer

Reply #2
[quote author="somun"]Hi there,

This is sort of an older version. The new one is using a cheaper 18F14K50 (but I did not have that). It is only 3.3V compatible but that can be easily handled by adding some level shifters. It's a simple design with just the micro and some passives but I can share my Eagle files if anyone is interested.

[/quote]

Pretty sure that you can easily do a 5V 14k50 version or even a 5V/3V switchable version. The advantage of the 14K50 is that it can run at 12MIPS @ 3V, the 2550 cannot.

Re: Cheap DIY Usb Blaster compatible programmer

Reply #3
Awesome, can i have the eagle files.
Do you tried the Openocd firmware present on the original website?

Re: Cheap DIY Usb Blaster compatible programmer

Reply #4
waiting eagerly for a scoop on your Max V CPLD board :)

Re: Cheap DIY Usb Blaster compatible programmer

Reply #5
I have a PIC18F14K50 dev board. I downloaded the hex file into it and connected the USB. QuartusII detects it as USB blaster. Wow!!
Thanks
Kiran Jose

Re: Cheap DIY Usb Blaster compatible programmer

Reply #6
[quote author="JTR"][quote author="somun"]Hi there,

This is sort of an older version. The new one is using a cheaper 18F14K50 (but I did not have that). It is only 3.3V compatible but that can be easily handled by adding some level shifters. It's a simple design with just the micro and some passives but I can share my Eagle files if anyone is interested.

[/quote]

Pretty sure that you can easily do a 5V 14k50 version or even a 5V/3V switchable version. The advantage of the 14K50 is that it can run at 12MIPS @ 3V, the 2550 cannot.[/quote]
Good point. If I were to build another one I would definitely take care of the voltage translation part. The jtag header carries the IO voltage of the device to be programmed so a transceiver powered from that would work with all voltage levels.

[quote author="kiranjose"]I have a PIC18F14K50 dev board. I downloaded the hex file into it and connected the USB. QuartusII detects it as USB blaster. Wow!![/quote]
Yep, I was amazed, too.

[quote author="kmmankad"]waiting eagerly for a scoop on your Max V CPLD board :)[/quote]
That one coming up soon :)

[quote author="ginpb"]Awesome, can i have the eagle files.
Do you tried the Openocd firmware present on the original website?[/quote]
I did not see or try the Openocd firmware there.

I attached the Eagle files.

Re: Cheap DIY Usb Blaster compatible programmer

Reply #7
Oh wow, the PCB looks fantastic!
Did you make it using toner transfer or photo resist? How small traces can you go? :P Seems to me those are 8 mil traces.

I like the surface mount headers, and the way some of the resistors are placed at what appears to be 45 degree angles! Did you make this board using eagle or Altium?

Re: Cheap DIY Usb Blaster compatible programmer

Reply #8
[quote author="hak8or"]Oh wow, the PCB looks fantastic!
Did you make it using toner transfer or photo resist? How small traces can you go? :P Seems to me those are 8 mil traces.

I like the surface mount headers, and the way some of the resistors are placed at what appears to be 45 degree angles! Did you make this board using eagle or Altium?[/quote]

Thanks! It's toner transfer. After I got rid of the clothing iron and modified a cheap laminator for the transfer process I can say it's a whole new experience :) Those traces above were 10-12 mils actually but 8 mils is no problem either. Attached is a snapshot of a board with 8 mil traces - that's a nasty EQFP-64 package there (the issue on the top-right was a careless mistake in etching).
[attachment=0]
Surface mount headers are DIY. I simply took some right angle headers, rotated the longer side pins, cut the pins to size and ta-da :)

I am using Eagle for all my boards. You can place components in any arbitrary angle actually. Simply type in the angle while moving the component (or use the rotate tool ;p).
[attachment=1]

I intend to share some more stuff regarding DIY PCBs, hopefully soon.

Re: Cheap DIY Usb Blaster compatible programmer

Reply #9
[quote author="somun"][quote author="hak8or"]Oh wow, the PCB looks fantastic!
Did you make it using toner transfer or photo resist? How small traces can you go? :P Seems to me those are 8 mil traces.

I like the surface mount headers, and the way some of the resistors are placed at what appears to be 45 degree angles! Did you make this board using eagle or Altium?[/quote]

Thanks! It's toner transfer. After I got rid of the clothing iron and modified a cheap laminator for the transfer process I can say it's a whole new experience :) Those traces above were 10-12 mils actually but 8 mils is no problem either. Attached is a snapshot of a board with 8 mil traces - that's a nasty EQFP-64 package there (the issue on the top-right was a careless mistake in etching).
[attachment=0]
Surface mount headers are DIY. I simply took some right angle headers, rotated the longer side pins, cut the pins to size and ta-da :)

I am using Eagle for all my boards. You can place components in any arbitrary angle actually. Simply type in the angle while moving the component (or use the rotate tool ;p).
[attachment=1]

I intend to share some more stuff regarding DIY PCBs, hopefully soon.[/quote]

Ah, I should have guessed, the traces are similar in size to the pins on the PIC. :P I never thought you could bend those pins on headers without breaking the plastic, they seemed very thick and well, un-bendable, heh. Awesome job there! I think your little header to surface mount trick should deserve a mention! Also, nice job with the trace spacing on the board.
I myself am very interested in seeing how small I can go using photo resist and a printer and a lens! Once I actually complete a project, I will surely try to see how small I can go, and hopefully get boards as nice as yours.

Re: Cheap DIY Usb Blaster compatible programmer

Reply #10
[quote author="hak8or"] myself am very interested in seeing how small I can go using photo resist and a printer and a lens![/quote]

I was doing 4/4 with a photo resist but I used film and not a laser printer. The etching solution is the most important thing when you do anything below 9/9, you need to be sure to have concentration right, to have the acid moving all the time, otherwise you can get lines "undercut" (traces look like trapezoid where a short side is the one glued to the fr4) by the etching solution. With pnp foil (toner transfer) and simple muriatic acid + h2o2 solution I can easily go 6/6, but to go beyond I have to use photo resist

Re: Cheap DIY Usb Blaster compatible programmer

Reply #11
Nice build!

Awhile back I put together a way to program the Altera FPGA's using a cheap RL232RL (USB to UART) breakout board.

My account is too new to post a link, but google "IdleLogic Program Altera FGPA with a FT232RL" and you should be able to find it.

It just does the programming and doesn't give you the JTAG interface. Anyway, just another option to save people from spending tons of money on the Altera Blaster :-)

Re: Cheap DIY Usb Blaster compatible programmer

Reply #12
Hello, I just built a USB blaster clone with a 18f14k50 (v0.7 revision on creator's page) and used it to program a Cyclone II device. Worked really great!! I did not install the 5 * 200ohms resistors. The IO ports on the PIC18f14k50 are already +3.3V and the device I was programming needed 3.3V.

Of course I won't be able to program 2.2V or 1.8V LVTTL devices with this but I guess I'll just buy a real USB blaster then if the situation ever shows up. Anyway great find!!

Re: Cheap DIY Usb Blaster compatible programmer

Reply #13
Quote from: bennyboy
Hello, I just built a USB blaster clone with a 18f14k50 (v0.7 revision on creator's page) and used it to program a Cyclone II device. Worked really great!! I did not install the 5 * 200ohms resistors. The IO ports on the PIC18f14k50 are already +3.3V and the device I was programming needed 3.3V.

Hey bennyboy,

Are you referring to the design that started this topic?  Any further experience with it?  I want a circuit to put onto the board along with the Cyclone 4 FPGA so that it has the USB interface for programming built on.  Does this design seem reasonable for that?  The schematic does not give the crystal frequency but the parts list says 24 MHz.  Is that correct?

Thanks

Re: Cheap DIY Usb Blaster compatible programmer

Reply #14
It seems that a 12mhz xtal is the standard for the pic18f14k50  from the look of the oscilator module I'd say that 12mhz is the only whay you can go, as there is no pre divider before the 4x pll circuit...so to get the 48hz reqired by the USB you need 12Mhz input... I could be wrong though
best regards FIlip.