The HW-274 / CY7C68013A Field Manual

A practical, plain-English guide to the HW-274 FX2LP breakout — the Cypress EZ-USB FX2LP board sold as a cheap USB logic analyzer. Pins, ports, real silkscreen, and what it can actually do.

COMMUNITY EDITION · v1.1 · HW-274
This manual is verified against a real HW-274 board (mini-USB, 24 MHz crystal, marked HW-274 on the lower silkscreen). Other FX2LP clones share the same chip but may relabel or reorder header pins — always cross-check your own board's silkscreen against the photo and tables below.
HW-274 CY7C68013A FX2LP board with silkscreen labels visible
The HW-274 board this manual documents. Two pin headers (left & right), mini-USB, 24 MHz crystal, two buttons.

1. What this thing is

The CY7C68013A is a USB 2.0 High-Speed (480 Mbps) microcontroller built around an enhanced 8051 core with a fast parallel "GPIF/Slave-FIFO" interface. It is the heart of the inexpensive blue/black breakout boards sold as "24 MHz 8-channel USB logic analyzers" and as "EZ-USB FX2LP development boards."

Out of the box, with no EEPROM image programmed, it enumerates on a host PC as:

04b4:8613   Cypress Semiconductor Corp. CY7C68013 EZ-USB FX2 USB 2.0 Development Kit

That default identity is a blank slate. The board becomes whatever firmware is loaded into it — either permanently (written to the on-board I²C EEPROM) or temporarily (uploaded into RAM over USB at runtime):

Firmware loadedThe board becomes…
fx2lafw (sigrok)A logic analyzer — 8 channels, up to 24 MS/s. The most common use.
Vendor / custom 8051 codeA USB-to-SPI / I²C / JTAG bridge, or a general 8051 dev board.
NoneThe raw 04b4:8613 device, awaiting an upload.
Key point: sigrok/PulseView can upload fx2lafw into the chip's RAM on the fly every time you scan — you do not have to permanently flash anything to use it as a logic analyzer.

2. The HW-274 board layout

The HW-274 routes the FX2's I/O ports to two pin headers — one on each side of the chip — rather than four separate port blocks. Below is the silkscreen as printed on the board (read directly from the photo above). Pins are listed top → bottom as the board sits with the USB connector at top.

Read this from your own board too. The labels below were transcribed from a photographed HW-274; a few silk characters sit under header pins and are hard to read. Where a label was uncertain it is marked (?). Confirm against your unit before wiring — and if yours differs, that's useful feedback for this repo.

Left header (outer / inner columns)

outer   inner
PD5     PD6
PD7     GND
CLK     GND
RDY1    RDY0
GND     VCC
GND     IFCLK
SCL     SDA
PB0     PB1
PB2     PB3
GND     VCC

Right header (inner / outer columns)

inner   outer
PD3     PD2
PD1     PD0
PD0(?)  PA7
PA6     PA5
PA4     PA3
PA2     PA1
PA0     PB6
PB7     CTL1(?)
CTL0    PB5
PB5(?)  PB4

The HW-274 exposes Port A (PA0–PA7), Port B (PB0–PB7), Port D (PD0–PD7), the I²C bus (SCL/SDA, to the EEPROM), clock/ready lines (CLK, IFCLK, RDY0/RDY1), GPIF control (CTL0/CTL1), and power (VCC = 3.3 V, GND). Note Port C is not broken out on this board.

The generic FX2LP port model (for reference)

Underneath the HW-274's labels, the FX2's four 8-bit ports map to the standard roles below — useful for understanding what each pin does electrically.

┌─────────────────────────────────────────┐ │ ┌───┐ │ USB ───┤ │FX2│ CY7C68013A [EEPROM] │ (mini/ │ └───┘ │ micro) │ │ │ PA0..PA7 PB0..PB7 PC0..PC7 PD0..PD7 │ │ ○○○○○○○○ ○○○○○○○○ ○○○○○○○○ ○○○○○○○○ │ │ (ctrl/IO) (DATA L) (gpio) (DATA H) │ │ │ │ 3V3 5V GND GND SCL SDA RST WAKEUP │ └─────────────────────────────────────────┘

Full header reference

Header / PinCountWhat it isLogic-analyzer role
PB0–PB78Port B — FIFO data byte 0Capture channels CH0–CH7 (the 8 inputs you probe with)
PD0–PD78Port D — FIFO data byte 1Channels 8–15, only with 16-ch firmware. Default fx2lafw = 8 ch on PB.
PA0–PA78Port A — control / GPIO. Several pins double as FIFO control (FLAGA, SLOE, SLRD, SLWR, PKTEND).General I/O; not used by basic capture.
PC0–PC78Port C — general-purpose I/OUnused by basic logic analyzer.
GND2+GroundCommon ground to the target — mandatory.
3V3 / VCC1+3.3 V rail, regulated on-board from USB 5 VVoltage reference only. Do not back-feed.
5V / VBUS1USB bus 5 V inRarely needed externally.
CTL0–2, RDY0/1fewGPIF / Slave-FIFO handshake linesUnused for capture.
SCL / SDA2I²C bus to the configuration EEPROMFirmware / EEPROM programming only.
RESET / WAKEUP1–28051 reset / USB remote-wakeLeave alone.

3. Electrical specs (the numbers that matter)

Logic levels

  • I/O is 3.3 V CMOS.
  • Inputs are NOT 5 V tolerant — do not feed 5 V signals in.
  • VIH ≈ 2.0 V, VIL ≈ 0.8 V.
  • Reads 1.8 V signals fine as a passive listener (1.8 V > VIH threshold for "high" is marginal — verify per target).

Capture limits (as fx2lafw LA)

  • Channels: 8 (on PB), 16 with special firmware.
  • Max sample rate: 24 MS/s (8-ch). Higher rates reduce channel count.
  • No on-board sample memory — streams live over USB, so sustained rate is USB-bound.
  • No analog, no protocol triggering in hardware (PulseView does software decode).
Rule of thumb: sample at least (ideally 8–10×) your signal's fastest clock. For a 3 MHz SPI bus, 24 MS/s gives 8× — clean decode.

4. Using it as a logic analyzer

Software setup (Linux)

sudo apt install sigrok pulseview sigrok-firmware-fx2lafw

# Plug the board in, then confirm it is seen and fx2lafw uploads:
sigrok-cli --scan
#   expected:  fx2lafw - 8 channels: D0 D1 D2 D3 D4 D5 D6 D7

If --scan shows fx2lafw with 8 channels, you're ready. Open PulseView, select the device, set the sample rate and count, and hit Run. Add a protocol decoder (SPI, I²C, UART, etc.) from the toolbar to turn raw traces into decoded bytes.

Wiring example — sniffing an SPI bus

FX2 pinConnect to target signal
PB0SCLK (SPI clock)
PB1MOSI (controller → peripheral)
PB2MISO (peripheral → controller)
PB3CS / SS (chip select)
GNDTarget ground — connect this first
Assign the PulseView SPI decoder's CLK / MOSI / MISO / CS inputs to D0–D3 to match the wiring above, and decoded hex appears directly on the timeline.

5. Safety & gotchas

Not 5 V tolerant. Driving a 5 V signal into any port pin can damage the chip. Level-shift or divide anything above 3.3 V.
Passive sniffing means inputs only. When listening to a bus another device is driving, never let the FX2 also drive that line — contention can damage one or both devices. fx2lafw keeps the pins as high-impedance inputs by default.
Ground first, signal second. Always establish common ground before clipping any data line, and remove data lines before ground when finished.
Don't back-feed the 3V3 pin. It is an output of the on-board regulator. Use it only as a reference, not to power the board from outside.

6. Quick troubleshooting

SymptomLikely cause / fix
Shows as 04b4:8613 but sigrok-cli --scan finds nothingMissing sigrok-firmware-fx2lafw package — install it, replug.
Not detected at allBad/charge-only USB cable, or a permissions issue — try with sudo or add a udev rule.
Captured traces are all flat / all highNo common ground with target, or probing the wrong pins.
Decoder output is garbageSample rate too low (raise to ≥4× signal clock) or decoder channel mapping is wrong.
Want it permanentWrite fx2lafw to the I²C EEPROM with cycfx2prog / fxload (advanced; not required).