Logic Sniffer FPGA bitstream/ROM update

Posted on Thursday, May 20th, 2010 in logic analyzer by Ian

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 Perl utility that we used while developing the logic sniffer.

This entry was posted on Thursday, May 20th, 2010 at 4:46 pm and is filed under logic analyzer. You can follow any responses to this entry through the RSS 2.0 feed. You can skip to the end and leave a response. Pinging is currently not allowed.

4 Responses to “Logic Sniffer FPGA bitstream/ROM update”

  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 “ Perl utility”, “Gadget Factory download page” and “project archive” links are broken.

Leave a Reply

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

Recent Comments

  • hli: Sunday++
  • Max: Jolly good stuff, although the "include 100 W resistors in series with the inputs and outputs" part is quite hilarious until one realizes* they meant...
  • Admir: Me
  • Mego: me
  • Geoff: Yes please!