Logic Sniffer FPGA bitstream/ROM update

in logic analyzer by Ian | 4 comments

This is an old version, see the latest version on the documentation wiki.

The Logic Sniffer stores the FPGA (IC3) bitstream in a flash ROM chip (IC2). The PIC microcontroller (IC1) can update the bitstream from a computer using the multi-platform pump-loader application. This feature lets us release FPGA design updates with new features and bug fixes that can be loaded over the USB connection.

To enter ROM update mode, press the reset button while holding the update button. The ACT LED lights when the board is in ROM update mode. The PIC will also automatically enter ROM update mode if the FPGA doesn’t load correctly after a few seconds because of an error or blank ROM chip.

Update instructions follow the break. You can order the OLS at Seeed Studio for $45, including worldwide shipping. Don’t forget that Seeed now has probe cables for $6 each.

The OLS connects to a computer as a USB virtual serial port in ROM update mode. This is the same connection type used for the normal operating mode. The first time you plug it in, give Windows the .inf file from the project archive to assign the correct drivers to the device.

Stuff you’ll need

  1. pump-loader application for your platform
  2. Logic Sniffer SUMP bitstream HEX (.mcs file) or binary (.bit file)

Grab the latest bitstreams and pump-loader update application from the Gadget Factory download page.

ROM update procedure

1. Connect the Logic Sniffer to a USB port. Hold the update button down and press the reset button once.
2. The ACT LED will light and the OLS will enumerate as a USB virtual serial port.

C:\pump>pump-loader -p:COM4 -status
PUMP loader
Opening serial port 'COM4' @ 921600 ... OK
Found PUMP HW: 1, FW: 0.1, Boot: 1
Found flash: ATMEL AT45DB041D
no input file specified !


3. Run pump-loader with the -status option to verify that the firmware is listening.

Specify the OLS serial port (-p:) for your system. Pump-loader will connect to the OLS and read the OLS hardware/firmware/bootloader version numbers, and verify the ROM flash chip ID.

C:\Perl\eg>pump-loader -p:COM4 -write -wH:pump.mcs -run
PUMP loader
Opening serial port 'COM4' @ 921600 ... OK
Found PUMP HW: 1, FW: 0.1, Boot: 1
Found flash: ATMEL AT45DB041D
Reading HEX file 'pump.mcs' ... OK! (binary size = 169216)
Will write 641 pages
Page 0x0000 write ... OK
Page 0x0280 write ... OK
PUMP switched to RUN mode


4. Use pump-loader to write a SUMP FPGA bitstream to the ROM chip.

Specify a HEX  (-wH:) or binary (-wB:) bitstream file to write (-write) to the OLS. Note that bitstream HEX files actually have the extension .mcs, as shown in the example.

The upload will take a few seconds, but the operation isn’t critical. If it fails or is interrupted nothing will be damaged, just try the update again. If you use the -run flag the OLS will exit update mode and return to normal operating mode when the upload is complete.

Special thanks to Michal Demin, Piotr Pawluczuk, and Uwe Bannow for working on the pump-loader utility. Michal won our developer’s challenge with his lightning-quick coding skills.

There’s also a pump-loader.pl Perl utility that we used while developing the logic sniffer.

This entry was posted in logic analyzer and tagged , , , , .


  1. Crawford says:

    Hey, the only way I could get this to work to (at least with my version of pump-loader) is to add a ‘-write’ to the end of the command line.

    e.g. :
    ..\..\bin\pump-loader -p:COM6 -wH:Logic_Sniffer.mcs -write

  2. Rémi says:

    Since the update to 16k8channels i’ve got a ‘device not found error’ on windows 7 and linux.

    I tried with some ‘extended timout’ analyzer client but still got the same error :(

    I can’t manage to make my OLS work :/

  3. Rémi says:

    Edit: looks like with the test release Version 2.01 the OLS is detected back again.

    I now need to get proper values with it :/

  4. Hi,

    Can you fix the broken links ? They are all around the blog.
    In this page “pump-loader.pl Perl utility”, “Gadget Factory download page” and “project archive” links are broken.

Leave a Comment

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Notify me of followup comments via e-mail. You can also subscribe without commenting.