fx2lafw
fx2lafw is an open-source firmware for Cypress FX2 chips which makes them usable as simple logic analyzer hardware.
It is licensed under the terms of the GNU GPL (version 2, or later) and written in C, using sdcc as compiler, and fx2lib as helper library.
Hardware overview
The fx2lafw firmware is meant to work on any FX2-based hardware, including logic analyzers, FX2 eval boards, or other hardware which has this chip on-board.
Here's a quick overview of some of the relevant hardware information we have about the various devices.
The devices marked as Clone are those that clone the USB VID/PID of the original product, and also have no own PC software/firmware, but instead illegally ship the software of the original product/manufacturer.
Device | USB VID:PID | Product type | Probes (pins) | FX2 package | Buffer / ESD-protection | Resistors | I2C EEPROM | Status |
---|---|---|---|---|---|---|---|---|
6-Lab LOGIC-U5 | ? | Clone (Logic) | ? | ? | ? | ? | ? | 100% |
6-Lab LOGIC-U PLUS5 | ? | Clone (AX-Pro) | ? | ? | ? | ? | ? | 95%1 |
6-Lab LOGIC-U PRO5 | ? | Clone (AX-Pro) | ? | ? | ? | ? | ? | 95%1 |
6-Lab LOGIC-U ISL5 | ? | Clone (Logic) | ? | ? | ? | ? | ? | 100% |
ARMFLY AX-Pro | 08a9:0014 | Clone (AX-Pro) | 8 (+1 analog) | 56LTXC (QFN) | ? | 100 Ω | Atmel ATML920 24C02N SU27 D | 95%1 |
ARMFLY Mini-Logic2 | 08a9:0014 | Clone (AX-Pro w/o scope) | 8 | 56LTXC (QFN) | ? | 100 Ω | Atmel ATML920 24C02N SU27 D | 100% |
Braintechnology USB Interface V2.x | 04b4:8613 | Eval board | 8/16 | 56PVXC (SSOP) | none | none | Microchip 24LC64I | 100% |
Braintechnology USB-LPS | 16d0:0498 | Original product | 8/16 | 56PVXC (SSOP) | none | ? 68 Ω | Atmel ATML0816 TINY13 20SU | 100% |
CWAV BusBee | ? | Original product | 4 | ? | ? | ? | ? | TODO |
CWAV USBee AX-Standard | 08a9:0012 | Original product | ? | ? | ? | ? | ? | TODO |
CWAV USBee AX-Plus | 08a9:0013 | Original product | ? | ? | ? | ? | ? | TODO |
CWAV USBee AX-Pro | 08a9:0014 | Original product | 8 (+1 analog) | ? | ? | ? | ? | 95%1 |
CWAV USBee DX | 08a9:0015 | Original product | 16 (+2 analog) | ? | ? | ? | ? | TODO |
CWAV USBee EX2 | ? | Original product | 8 | ? | ? | ? | ? | TODO |
CWAV USBee SX | 08a9:0009 | Original product | 8 | 56PVXC (SSOP) | none | 560 Ω | Microchip 24LC01B | 100% |
CWAV USBee ZX | 08a9:0005 | Original product | 8 | 56PVXC (SSOP) | none | ? | ? | TODO |
EE Electronics ESLA100 | 0925:3881 | Clone (Logic) | 8 | 56LFXC (QFN) | NXP 74HC245D | 100 Ω | Atmel ATMLH911 02B 1 | 100% |
EE Electronics ESLA201A | 08a9:0014 | Clone (AX) | 8 (+1 analog) | 56LFXC (QFN) | none | 100 Ω | Atmel ATMLH113 | 95%1 |
ITead Studio MiniLogic4 | ? | Clone (Logic, AX w/o scope) | ? | ? | ? | ? | ? | 100% |
ITead Studio ITDB01 | ? | Eval board | ? | ? | ? | ? | ? | 100% |
Lcsoft Mini Board | 04b4:8613 | Eval board | 8/16 | 56PVXC (SSOP) | none | none | Shenzhen First-Rank Technology T24C128A | 100% |
MDSO-LA | ? | Clone (SX, AX-Pro) | ? | ? | ? | ? | ? | 100% |
Mollex Logic Analyzer3 | ? | Clone (Logic, AX w/o scope) | ? | ? | ? | ? | ? | 100% |
Noname Saleae Logic clone I | ? | Clone (Logic) | ? | ? | ? | ? | ? | 100% |
Noname Saleae Logic clone II | ? | Clone (Logic) | ? | ? | ? | ? | ? | 100% |
Noname Saleae Logic clone III | ? | Clone (Logic) | ? | ? | ? | ? | ? | 100% |
Noname CWAV USBee AX-Pro clone I2 | 08a9:0014 | Clone (AX-Pro w/o scope) | 8 | 56PVXC (SSOP) | NXP 74HC245 | 100 Ω | Atmel AT24C02 | 100% |
Pandatron PLA8 (S, E) | ? | Clone (Logic) | 8 | 56PVXC (SSOP) | SN74LVC245APWR | 100 Ω | ? | 100% |
picavr Digital USB Analyzer v1 | ? | Clone (Logic, AX w/o scope) | ? | ? | ? | ? | ? | 100% |
picavr A/D USB Analyzer v2 | ? | Clone (Logic, AX) | ? | ? | ? | ? | ? | 95%1 |
picavr A/D USB Analyzer v3 | ? | Clone (Logic, AX) | ? | ? | ? | ? | ? | 95%1 |
picavr A/D USB Analyzer v4 | ? | Clone (Logic, AX) | ? | ? | ? | ? | ? | 95%1 |
Robomotic BugLogic 2 | ? | Clone (Logic, SX/ZX) | ? | ? | ? | ? | ? | 100% |
Robomotic BugLogic 3 | 0925:3881 | Clone (Logic) | 8 | ? | ? | ? | ? | 100% |
Robomotic MiniLogic | 0925:3881 | Clone (Logic, AX w/o scope) | 8 | 56PVXC (SSOP) | 74HC244A | ? | 2x Microchip 24LC02BI, 1x 24LC64I | 100% |
Robomotic XZL0247 | ? | Clone (AX) | ? | ? | ? | ? | ? | 95%1 |
Saleae Logic | 0925:3881 | Original product | 8 | 56PVXC (SSOP) | ST DVIULC6-4SC6 | ? | ? | 100% |
Sysclk Box | ? | Clone (SX, AX-Pro w/o scope) | ? | ? | ? | ? | ? | 100% |
XZL Studio AX | ? | Clone (AX) | ? | ? | ? | ? | ? | 95%1 |
XZL Studio DX6 | 2x 08a9:0015 | Clone (DX) | 8/16 | 56PVXC (SSOP) | ? | ? | Atmel ATML H136 24C02C M Y | TODO |
All devices use a 24MHz crystal. For 8 probes the FX2 pins PB0-PB7 are used, for 16 probes PB0-PB7 and PD0-PD7. For analog support PD0-PD7 (plus additional hardware) is usually used.
1 Analog signal support is not yet implemented.
2 Even though this devices has the same USB VID/PID as the CWAV USBee AX-Pro, it only has 8 channels and no analog support.
3 Clone of the USBee AX and Saleae Logic. "Mollex" is the name of the guy who seems to sell it on some forum.
4 Clone of the USBee AX (SX?) and Saleae Logic, see also here and here. Dissection by a user here. Seems to be the same hardware as the Robomotic MiniLogic.
5 It seems 6-Labs has/had permission from Saleae to distribute the hardware in Ukraine (only)? Various adapters are available, for example RS422/RS232/CAN, galvanic isolation, "BNC divider".
6 There is apparently a post from the author of XZL-Studio DX in some forum.
7 There's an RS232/RS485/RS422/CAN converter board for this.
Download
$ git clone git://sigrok.org/sigrok-firmware-fx2lafw
Usage
Build sigrok
- Build and install a sigrok frontend (CLI or GUI) with libsigrok >= 0.1.1 (or latest git HEAD) for your platform as usual, see e.g. Linux, Mac OS X, FreeBSD, or Windows.
Install the udev rules file
These steps prevent the need to run sigrok as superuser.
- Copy the udev rules file from sigrok/libsigrok/contrib/z60_libsigrok.rules to /etc/udev/rules.d/.
- Restart udev: sudo /etc/init.d/udev restart.
Build fx2lafw
$ cd sigrok-firmware-fx2lafw $ make $ sudo make install
This will install the firmware files into /usr/local/share/sigrok-firmware/, per default.
Cypress FX2 vs. FX2LP
Various devices supported by fx2lafw can use either the older Cypress CY7C68013 (FX2) or the more recent Cypress CY7C68013A (FX2LP).
There are various differences between the two ICs, see AN4078 - Migrating From EZ-USB FX2 to EZ-USB FX2LP (PDF) for the details.
There are known cases of e.g. the CWAV USBee SX having shipped with an FX2 at some point, and more recent units shipping with an FX2LP. Also, it's not too uncommon that some FX2 "eval board" or clone of an existing logic analyser (e.g. CWAV USBee SX or Saleae Logic ones) has "CY7C68013A (FX2LP)" chip markings, but in reality it really is an older "CY7C68013 (FX2)".
Resources
- Browse Source Code
- sdcc (C compiler for 8051 microcontrollers, usable for FX2)
- fx2lib: SF project page, blog article, github repo, mailing list
- Cypress FX2 docs:
- CY7C68013A, CY7C68014A, CY7C68015A, CY7C68016A datasheet (PDF)
- EZ-USB Technical Reference Manual (TRM) (PDF)
- EZ-USB FX2LP appnotes
- EZ-USB FX2LP errata
- GPIF Designer (Windows software, requires login)
- CY3681 EZ-USB FX2 Development Kit (GPIF designer downloadable without login)