From sigrok
Revision as of 20:57, 21 August 2016 by Uwe Hermann (talk | contribs) (Where to place firmware files)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Some devices supported by libsigrok need a firmware to be uploaded before the device can be used.

Please check libsigrok's README.devices file or the respective device's wiki page to find out whether your device needs firmware files.

Getting firmware files

Getting non-distributable firmware files

Most firmware files are non-free and we have no permission to (re-)distribute them.

For these devices, please check the respective device wiki page (see Supported hardware for the full list). Usually there are instructions on how to extract the firmware file(s) from vendor software, vendor webpages, from USB logs, or using other means.

For some firmware files we provide scripts which can extract them from the vendor software for you.

$ git clone git://
$ cd sigrok-util/firmware

Please check the manpages of the scripts provided there for details.

Getting distributable firmware files

For some (but not all) devices there are publically available and redistributable firmware files in the sigrok-firmware git repository (i.e., the vendor was kind enough to allow redistribution):

$ git clone git://

In order to install the firmware files:

$ cd sigrok-firmware
$ ./
$ ./configure
$ make
$ make install (as root or using sudo, if needed)

Getting open-source firmware files

For Cypress FX2 based logic analyzers (and certain other FX2-based devices, such as the Hantek 6022BE or the SainSmart DDS120), we have the fx2lafw firmware (GPL'd) which you can use.

See the fx2lafw page for details.

Where to put the firmware files

The place where you have to put firmware files (so that libsigrok, and thus any frontend such as sigrok-cli or PulseView) can find them, depends on your operating system and/or your sigrok install location.

Linux / FreeBSD / Mac OS X

On Linux, FreeBSD, Mac OS X (and pretty much any UNIX-like OS) place the files in any of the locations where libsigrok will look for them:

  • Inside the XDG_DATA_HOME directory: $HOME/.local/share/sigrok-firmware
  • Inside the libsigrok install prefix, e.g.: $HOME/sr/share/sigrok-firmware (if you installed libsigrok into $HOME/sr)
  • In /usr/local: /usr/local/share/sigrok-firmware
  • In /usr: /usr/share/sigrok-firmware


On Windows place the files into the installation directory of the respective frontend. This depends on where you installed the frontend, of course. Defaults:

  • PulseView: C:\Program Files (x86)\sigrok\PulseView\share\sigrok-firmware
  • sigrok-cli: C:\Program Files (x86)\sigrok\sigrok-cli\share\sigrok-firmware

Some firmware files (those which we're allowed to redistribute) already come with the Windows EXE installers we provide, and don't need to be manually copied.


On Android place the files into the following directory on your device:

  • /sdcard/sigrok-firmware

Some firmware files (those which we're allowed to redistribute) already come with the Android APK we provide, and don't need to be manually copied.