USBee AX Pro reprogramming

I bought a MCU123 USBee AX Pro clone on dx.com which is very similar to a Saleae Logic.

usbee_ax_clone

To use it with the Saleae software, the VID/PID need to be reprogrammed.

The procedure is well explained here if you have a windows. If you have a Linux, continue to read.

As explained in the windows version of this tutorial, you have to flash the device with a special firmware that enables to read/write the eeprom where the VID/PID are stored.

  • Install and compile some tools
$ sudo aptitude install fxload
$ sudo aptitude install libusb-1.0-0-dev
$ git clone https://github.com/ribalda/fx2eeprom.git
$ cd fx2eeprom
$ make
  • Identify the USB bus and device numbers
$ lsusb
...
Bus 001 Device 017: ID 08a9:0014 CWAV Inc. USBee AX-Pro
...
  •   Flash the device
sudo fxload -D /dev/bus/usb/001/017 -t fx2lp -I vend_ax.hex
  • Read the first 8 bytes from the eeprom
sudo ./fx2eeprom r 0x08a9 0x0014 8 > eeprom.dat
  •  Edit the VID/PID from the dump with your favorite hex editor
    • Before edition
$ hexdump -C eeprom.dat.bak 
00000000  c0 a9 08 14 00 00 1b 00                           |........|
00000008
    •  After edition
$ hexdump -C eeprom.dat
00000000  c0 25 09 81 38 00 1b 00                           |.%..8...|
00000008
  • Write the new eeprom
cat eeprom.dat | sudo ./fx2eeprom w 0x08a9 0x0014 8
  • unplug&plug your device and enjoy
$ lsusb
...
Bus 001 Device 019: ID 0925:3881 Lakeview Research Saleae Logic
...

In case it doesn't work, your next step is probable there.

As a side note and without surprise: cheap hardware => cheap results. Don't expected to have a perfect sampling above 1Mhz. It's fine for general debugging with an Arduino or Raspberry Pi but otherwise, I'm personally waiting for Saleae to ship their new Logic Pro 8.

 

7 thoughts on “USBee AX Pro reprogramming

  1. Following your instructions using Ubuntu I encountered two issues:
    1. the "make" command did not work. The cc-command line should read
    "cc -Wall fx2eeprom.c -lsusb-1.0 -o fx2eeprom". Apparently some issue with the order of the main program and the library.
    2. the command "lspci" should read "lsusb".
    With these two modifications it worked like a charm.

    1. 2) thanks for notice about the lspci/lsusb error 😉
      1) about the failing make, what was the error ? Maybe an old version of cc ?

  2. Thank you VERY MUCH!! That really worked! Ger Koper is right, the make command did not work, I had to use the command "cc -Wall fx2eeprom.c -lsusb-1.0 -o fx2eeprom" directly on the command line (without using make). Again, thank you both!

  3. Thank you very much for these clear instructions.
    To make it work I had to put a copy of libusb-1.0 (/usr/lib/x86_64-linux-gnu/libusb-1.0.so) in my working directory. I think there is a typo in the command Ger Koper suggested: "lsusb-1.0" should be "libusb-1.0".
    $ gcc -L./ -Wall fx2eeprom.c libusb-1.0.so -o fx2eeprom
    I didn't flash yet, I had write-protected my clone's EEPROM by connecting pin 7 to Vcc. I first have to reconnect it to ground. Reading worked however.

  4. Thanks for the great tutorial. I bought a cheap LHT00SU1 a couple of months back but never got around to using it, when i finally tried it was a hassle (no drivers for windows and limited software for linux). So i decided to try this. I got it working after 3 tries (baffled when it wouldn't change), my problem was a jumper on my circuit board preventing writes. So if anyone else has the same problem, open up the plastic cover and remove the jumper! (I can't take all the credit, eeklhorns comment turned me to the idea)

Leave a Reply

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.