Greg Steiert created an USB Blaster alternative which makes it possible to drag-n-drop an image onto an Altera FPGA:

This project has taken many detours, often due to a lack of time for software development (or my preference for circuit-board design). In any case the latest detour came when I learned about the PICO-DIRTYJTAG project by Patrick Dussud. This project enables the $4 Raspberry Pi RP2040 Pico board to work with openFPGALoader to program a wide variety of FPGAs. This would save me quite a bit of time with software development, or so I thought.

Getting PICO-DIRTYJTAG working with openFPGALoader was a breeze. My first test was to load an image into the MAX10 10M08 Evaluation Kit that does not include an integrated loader. openFPGALoader “supports” MAX10 through SVF files, which technically works, but is painfully slow. So slow that I decided to find a better software solution. I had stalled on my previous efforts to implement an SVF interpreter and decided to look for some other options. Altera also provides STAPL JAM and JBC files for programming, and these are a little more embedded friendly. JBC files convert JAM files to byte code and are more space efficient, so I opted to implement a JBC loader.

This new combined UF2 file can be drag-n-dropped onto the Pico board and will immediately program the FPGA through the pico-dirty-blaster adapter. The pico-jbi.uf2 JBC player firmware and the uf2jbc.py generator script are available at the pico-dirty-blaster github repo.


