Getting Started, Drivers & Test Tools. Everything you need to set up, run, and troubleshoot the Model 3411 — from first power-up to USB-IF compliance testing. Ref: Engineering Reports 950001616 Rev O · 950001629 Rev B.
1. What is the Model 3411 and Who Is It For?
The MCCI® Model 3411 "Merganser" is a professional-grade USB test device that plugs into any USB-C host port and runs at the full speed of the bus — from Full Speed (12 Mbps) all the way up to SuperSpeed Plus Gen2 (10 Gbps). It loops back whatever data the host sends, letting you measure throughput, verify data integrity, and validate USB host behavior without needing custom firmware or a real peripheral.
If any of these describe you, this device is built for your workflow:
Host Stack / xHCI Developer
Validating your USB host stack or xHCI controller IP? Use Loopback mode for throughput regression and Compliance mode for USB-IF certification with XHCICV.
→ Modes 0 & 1
System / Hub Integrator
Benchmarking USB-C port throughput on a new motherboard, hub design, or USB4/Thunderbolt fabric? The 3411 saturates the bus to expose bottlenecks.
→ Modes 1 & 2
Manufacturing / QA Engineer
Building a production test station? USBIOTEST is a scriptable CLI tool that runs on Linux and Windows — no GUI needed. Serial-number-based device selection supports multi-device fixtures.
→ USBIOTEST + Mode 1 or 2
Storage Stack Developer
Testing UAS/UASP vs BOT performance? UASP mode presents a 750 MB RAM disk for benchmarking with CrystalDiskMark or fio — no real storage media needed.
→ Mode 3 (UASP)
Silicon / IP Vendor
Bringing up a new xHCI IP block? The 3411 is SuperMUTT-compatible in Compliance mode, and the MCCI USB host stack was used by multiple vendors to certify xHCI silicon at the USB-IF PIL.
→ Mode 0 + XHCICV/xHSETT
Evaluating / Considering Purchase
Researching USB test devices? Scroll down for specs, modes, and capabilities. Purchase directly from the MCCI store. See the datasheet for full specifications.
PCB Front: Micro-B control port (top) · OLED display (center) · MA2085 processor · USB-C data port (bottom)
PCB Back: Serial number label (center, format: 00-02-CC-xx-xx-xx) · FTDI FT2232H chip (top) · Micro-B connector (bottom)
How a test runs — signal path through the 3411
Control PCShell / test host
→
Micro-BControl port
→
FT2232HUSB ↔ UART / JTAG
→
MA2085Movidius VPU
(test engine)
→
USB-CData port
→
Host Under TestDUT
Control path (commands & status) On-board test engine Data path under test
1.1 Key Specifications
8 Gbps
Bidirectional Bulk (Gen2)
1 GBps sustained
4 Gbps
Bidirectional Bulk (Gen1)
500 MBps sustained
320 Mbps
Unidirectional (High Speed)
40 MBps sustained
96K Isoch
High-BW Isochronous (Gen2)
48K at Gen1
| Component | Detail |
|---|
| Processor | 800 MHz Intel Movidius MA2085 VPU |
| RAM | 1 GiB LPDDR4 |
| Flash | 16 MiB (firmware storage) |
| EEPROM | 4 KiB (settings & mode persistence) |
| Data Port | USB-C — USB 3.2 Gen2 / Gen1 / HS / FS |
| Control Port | Micro-B — FTDI FT2232H (serial console + JTAG) |
| Display | 128×64 OLED (SSD1306B) — real-time status |
| Sensors | Accelerometer, thermal, power |
| Firmware | MCCI USB DataPump, RTEMS-based, field-upgradable via DFU |
| Enclosure | Rugged polycarbonate plastic |
2. Your First 5 Minutes
Quickstart: Confirm Your 3411 Is Working
This gets you from unboxing to a confirmed working test in under 5 minutes.
Step 1 — Power up via Micro-B. Connect the included Micro-B cable from the Model 3411 to your PC. The OLED display will show the MCCI logo, then the status screen.
Step 2 — Check the serial console. Open a terminal (Tera Term on Windows, minicom on Linux) at 115200/8N1 on the assigned COM port. Type:
SHLL [/] # getdevicemode Current device mode is loopback ← if this says "compliance", run: setdevicemode 1
Step 3 — Connect USB-C. Plug the included Gen2 USB-C cable from the 3411's USB-C port to the host system you want to test. The OLED will update to show the connection speed (e.g., G2(G2) for Gen2).
Step 4 — Run your first test.
# Linux: sudo ./usbiotest -i 0/0/1/0 -o 0/0/1/1 -N 100 -T benchmark -b 1048576 -F 100 040e:f645 # Windows: .\usbiotest.exe -i 0/0/1/0 -o 0/0/1/1 -N 100 -T benchmark -b 1048576 -F 100 040e:f645
Step 5 — Read the result. You should see throughput numbers like:
WRITE: 104.9 Mbytes 0.4 sec (0 ms overhead): 245.4 Mbytes/sec 1.963 Gbits/sec
READ: 104.9 Mbytes 0.4 sec (0 ms overhead): 241.7 Mbytes/sec 1.934 Gbits/sec
TOTAL: 209.7 Mbytes 0.4 sec (0 ms overhead): 483.3 Mbytes/sec 3.867 Gbits/sec
If you see throughput numbers — your 3411 is working. Read on to learn about the different modes, tools, and advanced testing options.
Don't have USBIOTEST yet? Download mcci_usbiotest-v2.0.0.zip from the attachments at the bottom of this page. Extract and navigate to the bin directory. On Linux, first run install.sh from the rules.d folder.
3. What's in the Box
The standard kit from the MCCI store includes:
- Model 3411 board in polycarbonate enclosure
- 1m USB-C to USB-C cable — Gen2 rated (use this for data testing)
- 3-foot USB-A to Micro-B cable — for the control/power port
Bulk pack note: Accessories may differ if purchased in bulk or as part of a larger equipment set.
4. Powering & Control Port Setup
4.1 Power Options
The Model 3411 can be powered three ways:
- USB-C port — from the host system under test
- Micro-B port — from a control computer (takes priority over USB-C)
- USB charger on Micro-B — 5V/0.5A, regulated 4.5–5.25V, ≤100 mV ripple
Best practice for testing: Power via Micro-B so the device doesn't depend on the host's power supply. This is especially important when testing hosts that may have marginal VBUS.
4.2 Control Port (Serial Console)
The Micro-B port presents a composite USB device via an FTDI FT2232H chip: one function is a serial console (COM port), the other is JTAG (not used in normal operation). The control port is identified by VID 0x0403, PID 0x6010, product string MCCI Model 3411 Control.
Host driver: Install FTDI VCP drivers from ftdichip.com/drivers/vcp-drivers.
| Platform | Terminal Tool | Connection Example |
|---|
| Windows | Tera Term | Select COM port → Serial → 115200 |
| macOS | screen | screen /dev/tty.usbserial-FTxyz 115200 |
| Linux | minicom | May need udev rules or sudo |
Settings: 115200 baud · 8-bit · No parity · 1 stop bit · No local echo
4.3 OLED Display
The 128×64 OLED provides real-time feedback without needing a serial connection. The photos below show the display fields with numbered callouts.
Status screen: Fields ①–⑩ shown during normal operation (mLOOP mode, Gen1 connected)
Loopback active: Field ⑪ appears during a running loopback test (LOOP mode, Gen2, showing rx/tx byte counts)
OLED Field Reference
① Model
"3411"
② Serial Number
6-char hex (00XXXX)
③ Device Mode
LOOP / COMP / mLOOP / UASP
④ Firmware Ver.
vX.Y.Z
⑤ Voltage
Supply voltage (V)
⑥ Temperature
Device temp (°C)
⑦ Speed XX(YY)
XX=current, YY=max. G1/G2/FS/HS. E.g., G1(G2) = connected at Gen1 on Gen2-capable device — check cable.
⑧ Device Address
USB address from host (hex)
⑨ Link State
U0–U3 (SS) or L1–L2 (HS). 'r' = remote wakeup.
⑩ Device State
"Configured" = USB-C active, ready for operation. "Attached" = Micro-B powered only, no USB-C host connected.
⑪ Loopback Counters
LB(AA:BB) rx XX tx YY — AA=interface, BB=alt setting, XX=bytes received, YY=bytes transmitted. Live during active loopback test.
Reading the OLED during problems: If the device fails to enumerate, the OLED will show "Attached" (not "Configured") and the speed field will be blank. This confirms the USB-C link did not come up — check your cable, port, or host controller. If you see G1(G2), your device supports Gen2 but the host/cable only negotiated Gen1.
5. Which Mode Should I Use?
The Model 3411 has four firmware personalities. Modes are switched via setdevicemode on the serial console and stored in EEPROM (persists across power cycles).
5.1 Decision Tree
| Your Goal | Mode | Command |
|---|
| Run USB-IF XHCICV/USB4CV certification tests | 0 — Compliance | setdevicemode 0 |
| xHCI HS electrical test with xHSETT | 0 — Compliance (+ setvidpid) | setdevicemode 0 |
| Measure max throughput on a host port/hub/fabric | 1 — Loopback | setdevicemode 1 |
| Verify data integrity through a USB path | 1 — Loopback (integrity test) | setdevicemode 1 |
| Test isochronous or interrupt transfer types | 1 — Loopback | setdevicemode 1 |
| Stress-test concurrent bulk streams through a hub | 2 — Multi-Bulk | setdevicemode 2 |
| Benchmark UAS/UASP storage protocol performance | 3 — UASP | setdevicemode 3 |
| Compare UASP vs BOT throughput | 3 — UASP | setdevicemode 3 |
5.2 Mode Details
Model 3411 Device Mode Map
Mode 0 — Compliance
xHCI compliance test device. SuperMUTT-compatible. Use with XHCICV, xHSETT, USB4CV, or Microsoft MUTT test tools. No MCCI driver needed.
VID: 040E · PID: F644
setdevicemode 0
Mode 1 — Loopback
Bulk, interrupt, isochronous loopback. Optimized for max bandwidth. OUT→IN data loopback across all transfer types. Test with USBIOTEST or USBIOEx.
VID: 040E · PID: F645
setdevicemode 1
Mode 2 — Multi-Bulk
3 interfaces, each with independent bulk IN/OUT streams. For concurrent multi-stream stress testing.
VID: 040E · PID: 020C
setdevicemode 2
Mode 3 — UASP
USB Attached SCSI Protocol. Presents 750 MB RAM disk. Enumerates as "USB Attached SCSI (UAS) Mass Storage Device." Test with CrystalDiskMark or fio.
VID: 040E · PID: 020D
setdevicemode 3
Switching Modes
SHLL [/] # getdevicemode Current device mode is compliance
SHLL [/] # setdevicemode 1 Setting loopback device mode # Disconnect and reconnect the USB-C cable after switching. # The mode is stored in EEPROM — it persists across power cycles.
| USBIOTEST | USBIOEx |
|---|
| Type | Command-line (CLI) | Windows GUI |
| Platforms | Linux (x86_64, AARCH64) · Windows (i386, x64) | Windows only |
| Requires MCCI 3411 Driver? | No — works directly via OS USB stack | Yes — requires driver install |
| Best For | Throughput benchmarks, scripted tests, headless/CI environments, Linux workflows | Interactive exploration, visual descriptor browsing, vendor command testing |
| Loopback Test | ✔ benchmark, integrity, view | ✔ Benchmark, Data Integrity, Data View |
| Vendor Commands | — | ✔ via Control Test with vendor request file |
| Modes Supported | Loopback (PID F645) · Multi-Bulk (PID 020C) | Loopback · Multi-Bulk (with driver installed) |
| Download | mcci_usbiotest-v2.0.0.zip | usbioex-V5_19c.zip |
Quick decision: On Linux? → USBIOTEST. Need a GUI? → USBIOEx. Need automation? → USBIOTEST. Need to send vendor commands interactively? → USBIOEx. Both tools can test Loopback and Multi-Bulk modes.
7. Downloads
All files are available as attachments at the bottom of this page.
Available Downloads
USBIOTEST v2.0.0
CLI test tool. Linux x86_64 + AARCH64 + Windows i386/x64. No driver needed.
mcci_usbiotest-v2.0.0.zip (3 MB)
USBIOEx v5.19c
Windows GUI test tool. Requires MCCI 3411 Driver.
usbioex-V5_19c.zip (238 KB)
MCCI 3411 Driver
Windows driver for USBIOEx. Checked + Free variants.
MCCI-3411-driver-V5_38_17_1-release.zip (324 KB)
DFU Firmware Installer v2.6.0
Windows, Linux, macOS packages.
model3411-compliance-dfu-installer-v260-*.zip
Vendor Request File
For USBIOEx vendor command testing.
model3411-vendor-request.txt (3 KB)
User's Manual (PDF)
Complete reference: 950001616 Rev O.
950001616o_Model-3411-Users-Guide.pdf
8.1 Setup
Linux
- Extract
mcci_usbiotest-v2.0.0.zip - Install udev rules:
cd rules.d && sudo ./install.sh - Navigate to
bin/ — choose Release (no debug logs) or Debug (verbose logging) - Connect Model 3411 via USB-C
- If you see "Couldn't open device": run with
sudo or verify udev rules are installed
Windows
- Extract
mcci_usbiotest-v2.0.0.zip - Choose
i386 (32-bit) or x64 (64-bit), then Debug or Release - Open Command Prompt → navigate to
bin\ - Connect Model 3411 via USB-C
8.2 Command Syntax
usbiotest [options] <deviceId> # Full form: ./usbiotest -i <IN_PIPE> -o <OUT_PIPE> -N <COUNT> -T <TESTTYPE> \
-m <MODE> -b <BUFFERSIZE> -v -F <FREQ> -t <TIMEOUT> <VID>:<PID>
Options
| Option | Description |
|---|
| -i <pipe> | IN endpoint pipe (c/i/a/p notation). -i - resets. |
| -o <pipe> | OUT endpoint pipe. -o - resets. |
| -N <n> | Number of iterations. 0 = indefinite. |
| -T <type> | benchmark · integrity · view |
| -m <mode> | normal · random · sweep |
| -b <bytes> | Buffer size. Must match device buffer — see Section 8.5. |
| -v | Verbose. Lists all pipes when run without test options. |
| -F <freq> | Report every N iterations. 0 disables display. |
| -t <ms> | Timeout in milliseconds. |
| -I <n> | Max isoch packets per transfer. -I 0 = default. |
| -z | Enable Zero Length Packet. |
| -D <mask> | Debug mask. 0x10 = dump trace at end. 0xffffffff = all. |
| -h | Print full help. |
Test Types
| Type | What It Does | Speed | When to Use |
|---|
| benchmark | Measures raw throughput, no data validation | Fastest | Maximum speed measurement, throughput regression |
| integrity | Validates received data byte-by-byte against expected values | Slower | Verify data correctness after a path (hub, cable, fabric) |
| view | Displays received data in hex | Slowest | Debugging data corruption — inspect actual bytes |
Test Variations
| Variation | Options | Device Behavior |
|---|
| Loopback | Both -o and -i | Device loops OUT data back on IN |
| Write-only | Only -o | Data sink test (device consumes data) |
| Read-only | Only -i | Data source test (device generates data matching what -o would send) |
8.3 Understanding Pipes (c/i/a/p)
Pipes are addressed as C/I/A/P: Configuration / Interface / Alternate Setting / Pipe index. Run usbiotest -v <VID>:<PID> to list all pipes on your device.
Loopback Mode Pipe Map (v2.0.0+) — What to Use for Each Test
| What You're Testing | Pipe IN | Pipe OUT | Type | MaxPacketSize | Notes |
|---|
| Bulk throughput (primary) | 0/0/1/0 | 0/0/1/1 | Bulk | 1024 | Main benchmark path |
| Interrupt (small packet) | 0/0/2/0 | 0/0/2/1 | Interrupt | 64 | Low-bandwidth periodic |
| Interrupt (large packet) | 0/0/3/0 | 0/0/3/1 | Interrupt | 16384 | High-bandwidth periodic |
| Isochronous (low BW) | 0/0/4/0 | 0/0/4/1 | Isoch | 512 | Interval=8 |
| Isochronous 48K (high BW) | 0/0/5/0 | 0/0/5/1 | Isoch | 49152 | Interval=1 |
| Isochronous 96K (max BW) | 0/0/6/0 | 0/0/6/1 | Isoch | 98304 | Interval=1 · Driver limitation — see note |
| Bulk write-only (sink) | — | 0/0/7/0 | Bulk OUT | 1024 | OUT-only, no loopback |
| Bulk read-only (source) | 0/0/8/0 | — | Bulk IN | 1024 | IN-only, no loopback |
Firmware version note: Pipe addresses changed between v1.25.0 and v2.0.0. In v1.25.0 and below, the primary bulk pair is 0/0/0/0 + 0/0/0/1. Always run usbiotest -v <VID>:<PID> to confirm your device's actual pipe layout. Check firmware version with appversion on the serial console.
8.4 Target Device Selection (Multiple Devices)
| Syntax | What It Selects | When to Use |
|---|
| 040e:f645 | First matching device | Single device on host |
| 040e:f645/1 | Second device (0-indexed) | Multiple same-VID/PID devices |
| 040e:f645::0002CC003355 | Match by serial number | Manufacturing fixtures, stable identification |
| 040e:f645:2000 | Match VID + PID + revision | Mixed firmware versions |
| 040e:f645:2000:0002CC003355 | Match VID + PID + revision + serial | Most specific selection |
Finding identifiers:
# Linux — list devices and find serial/revision: lsusb -v -d 040e:f645 | grep -E "iSerial|bcdDevice" # Serial console: SHLL [/] # getserialnum
Device serial number is 0002CC003355 # Windows — Device Manager → Properties → Details → Hardware Ids (revision) or Device Instance Path (instance number)
8.5 Buffer Sizes — Getting This Right
Critical: The -b buffer size must be an integral multiple of the device's internal buffer. Mismatched sizes cause stale data on the IN pipe, apparent device hangs, or incomplete transfers. USBIOTEST does not reset the device or drain queues at startup.
| Pipe Type | Formula | Example |
|---|
| Bulk | MaxPacketSize × MaxPacketSize | 1024 × 1024 = 1,048,576 |
| Isochronous | MaxPacketSize × (8 ÷ Interval) × 20 | 49152 × (8÷1) × 20 = 7,864,320 |
Verify device-side buffer sizes with the serial console:
SHLL [/] # getbuffersize Bulk endpoint buffer size 100000
Interrupt endpoint buffer size 4000
Isochronous endpoint buffer size 180000
8.6 Recommended Test Settings (Loopback, v2.0.0+)
| Pipe (IN/OUT) | Type | MaxPkt | Interval | Buffer -b | -N | -F | Expected Throughput |
|---|
| 0/0/1/0 · 0/0/1/1 | Bulk | 1024 | — | 1048576 | 1000 | 1000 | 2 GBps, 16 Gbps |
| 0/0/4/0 · 0/0/4/1 | Isoch | 512 | 8 | 10240 | 100 | 100 | 1.0 MBps, 8.2 Mbps |
| 0/0/5/0 · 0/0/5/1 | Isoch 48K | 49152 | 1 | 7864320 | 100 | 100 | 786 MBps, 6.3 Gbps |
| 0/0/6/0 · 0/0/6/1 | Isoch 96K | 98304 | 1 | 15728640 | 100 | 100 | Driver limitation |
Known limitations: (1) 96K isochronous loopback is limited by a host-side driver issue — will be addressed in a future update. (2) High-speed isochronous loopback tests do not work on some Intel processors.
Interpreting Your Results
USBIOTEST reports WRITE (OUT) and READ (IN) throughput separately, plus a TOTAL. Here's how to read them:
| What You See | What It Means |
|---|
| TOTAL matches expected (e.g., ~16 Gbps for Gen2 bulk) | Your host and path are performing optimally |
| TOTAL is roughly half expected | Likely a unidirectional bottleneck — check if WRITE and READ are balanced |
| Gen2 device but throughput matches Gen1 levels | Check the OLED — if it shows G1(G2), the link trained at Gen1. Try a different cable or port. |
| Throughput degrades over time | Possible thermal throttling on the host xHCI controller. Check host system thermals. |
| Integrity test reports errors | Data corruption on the path. Try a different cable, port, or hub. Check for EMI sources. |
8.7 Multi-Bulk Loopback Settings (Mode 2, PID 020C, v2.0.0+)
| Pipe (IN/OUT) | Interface | Buffer -b | Expected Throughput |
|---|
| 0/0/1/0 · 0/0/1/1 | 0 | 1048576 | 2 GBps, 16 Gbps |
| 0/1/1/0 · 0/1/1/1 | 1 | 1048576 | 2 GBps, 16 Gbps |
| 0/2/1/0 · 0/2/1/1 | 2 | 1048576 | 2 GBps, 16 Gbps |
# Multi-bulk test (note the PID is 020C, not F645) sudo ./usbiotest -i 0/0/1/0 -o 0/0/1/1 -N 1000 -T benchmark -b 1048576 -F 1000 040e:020c
8.8 Tracing & Diagnostics
USBIOTEST has a built-in "flight recorder" trace subsystem for diagnosing hangs or unusual behavior:
- During a test: Press
Ctrl+\ (sends SIGQUIT) to dump the current trace buffer. Useful when the device appears hung. - After a test: Set
-D 0x10 (bit 4 of debug mask) to dump the trace buffer at the end of the run.
USBIOEx is a Windows GUI for interactive testing. It requires the MCCI 3411 driver.
9.1 Installing the Driver
- Download
MCCI-3411-driver-V5_38_17_1-release.zip. The package has checked (debug logs) and free (no debug logs) versions — use free for normal testing. - Ensure the 3411 is in Loopback or Multi-Bulk mode. Connect via USB-C.
- Device Manager → find "Model 3411 USB Loopback Device" under Universal Serial Bus devices.
- Right-click → Update driver → Browse my computer → Let me pick from a list.
- Click Have Disk… → Browse → select
3411gen.inf from the extracted driver folder → OK. - Select "MCCI USB Model 3411 in Loopback Mode" → Next → Close.
The driver is digitally signed. No test signing mode required.
9.2 Running a Loopback Test
- Launch USBIOEx → Test → Open Device…
- Test → Run Loopback Test…
- Configure: Test Type, Input/Output Pipe (c/i/a/p), Buffer Sizes, Loop Mode, Iterations
- Click OK → results display in the main window
Use the recommended settings from Section 8.6 (same pipe addresses and buffer sizes apply).
9.3 Vendor Commands
- Place
model3411-vendor-request.txt in the USBIOEx application directory - Test → Run Control Test… → Browse → load the vendor request file
- Select a command (e.g.,
GET_DEVICE_SERIAL_NUMBER, SET_DEVICE_MODE_LOOPBACK) → Send
10. Compliance Mode (Mode 0)
In Compliance mode, the 3411 is SuperMUTT-compatible and works with USB-IF test tools. No MCCI driver is needed — the USB-IF/Microsoft tools use their own drivers.
Direct Run Mode (v2.0.0+, Bootloader v1.1.0+)
Bypasses bootloader enumeration, directly launching the compliance app:
SHLL [/] # dfu # halt before compliance mode starts SHLL [/] # run 1 # enable direct run (bypass bootloader) enable direct run mode # Disconnect and reconnect to activate
xHSETT Setup
Set VID/PID for xHSETT using the serial console. Use VID 0x1a0a and a PID from this table:
| PID | Test Mode | Description |
|---|
| 0x0101 | TEST_SE0_NAK | SE0 state continuously |
| 0x0102 | TEST_J | J state (D+ high, D− low) |
| 0x0103 | TEST_K | K state (D+ low, D− high) |
| 0x0104 | TEST_PACKET | Standard test packets for eye diagram |
| 0x0107 | SINGLE_STEP_GET_DEV_DESC | 15s SOFs then GetDescriptor(Device) |
| 0x0106 | SUSPEND / RESUME / RESET | 15s SOFs then suspend, resume, or reset |
SHLL [/] # setvidpid 0x1a0a 0x0101 Setting vid=1a0a pid=0101
11. UASP Mode (Mode 3)
Presents a 750 MB RAM disk over USB Attached SCSI Protocol. Enumerates as "USB Attached SCSI (UAS) Mass Storage Device."
CrystalDiskMark (Windows)
Download CrystalDiskMark → Test size: 512 MiB → Profile: Peak Performance → Queue Depth: 64 → Click "All".
fio (Linux)
# Random R/W benchmark fio --name=rand-rw --filename=/mnt/usb/testfile --size=1G \
--rw=randrw --bs=4k --ioengine=libaio --numjobs=4 \
--runtime=30 --time_based --group_reporting # Latency test fio --name=latency --filename=/mnt/usb/testfile --size=1G \
--rw=randrw --bs=4k --iodepth=32 --ioengine=libaio \
--numjobs=4 --runtime=30 --time_based --group_reporting
12. Firmware Update (DFU)
DFU requires firmware v1.24.3+. Older units must be sent to MCCI for update.
Contact support.
The DFU process has 3 stages, each requiring a cable disconnect/reconnect:
- Download
model3411-compliance-dfu-installer-v260-<OS>.zip - Connect 3411 via Type-C. On Linux, also connect Micro-B.
- Run:
model3411-compliance-dfu-installer - Stage 1: Bootloader app downloads → "Please disconnect and reconnect" → unplug/replug Type-C within 10 seconds
- Stage 2: Bootloader firmware downloads → unplug/replug again within 10 seconds
- Stage 3: Production firmware downloads → unplug/replug one final time
- Verify:
appversion on serial console
If you miss the timing: If the device isn't reconnected within the 10-second window, the installer exits. Restart the process from Step 3.
13. Shell Command Quick Reference
| Command | Description |
|---|
| getdevicemode | Current mode (compliance / loopback / multi-bulk / uasp) |
| setdevicemode <0|1|2|3> | 0=Compliance, 1=Loopback, 2=Multi-bulk, 3=UASP |
| getdevicespeed | Current USB speed |
| setdevicespeed <spd> <disc> <conn> | 0=nochange 1=FS 2=HS 3=Gen1 4=Gen2 + delays in sec |
| getbuffersize | Show buffer sizes (bulk / interrupt / isochronous) |
| setbuffersize <0|1|2> <hex> | Set buffer: 0=bulk 1=interrupt 2=isochronous |
| appversion | Firmware version strings |
| getserialnum | Device serial number |
| controlssc <0|1> | Disable/enable Spread Spectrum Clocking |
| setvidpid <vid> <pid> | Override VID/PID (for xHSETT) |
| dfu | Halt at bootloader |
| run <0|1> | Disable/enable direct run mode |
| help all | List all commands |
14. Troubleshooting
! Common Mistakes — Check These First
- Changing mode without a power cycle. A new mode only takes effect after you disconnect and reconnect the USB-C cable. Confirm with
getdevicemode. - Using a non-certified USB cable. Many USB-C cables are Gen1-only or charge-only. Use the Gen2-rated cable supplied with the 3411.
- Testing through a hub. Always connect the 3411 directly to a host port. Hubs cap the link speed and distort throughput results.
- Wrong driver installed. Each mode binds to a specific PID/driver (see Section 9.1). A mode/driver mismatch shows as “Unknown Device.”
- Compliance mode selected accidentally. Mode 0 enumerates as a SuperMUTT, not a loopback device, so USBIOTEST can’t open it. Switch back with
setdevicemode.
Device shows "Unknown Device" or yellow bang in Device Manager▼
Wrong mode: The MCCI 3411 driver only matches PIDs F645 (Loopback) and 020C (Multi-Bulk). Compliance (F644) and UASP (020D) use different drivers. Check with getdevicemode.
Driver not installed: The driver is not auto-installed — follow Section 9.1 to manually install via 3411gen.inf.
USBIOTEST: "Couldn't open device" on Linux▼
Permissions: Run sudo ./usbiotest ... or install udev rules: cd rules.d && sudo ./install.sh
Stale data, device hangs, or incomplete transfers during loopback▼
Buffer mismatch: The -b value must be an integral multiple of the device's internal buffer. See Section 8.5 for formulas. Verify with getbuffersize.
Interrupted previous test: USBIOTEST does not reset queues on startup. Stale data from an interrupted test can cause the next test to read old data. Disconnect and reconnect USB-C to clear device state.
Device enumerates at Gen1 instead of Gen2▼
OLED check: If it shows G1(G2), the device supports Gen2 but the link negotiated Gen1 — the problem is the cable, port, or host.
Cable: Many USB-C cables are Gen1-only. Use the cable included with the 3411 (rated for Gen2).
Port: Verify the host port supports Gen2. Thunderbolt 3/4 and USB4 ports always do.
Force speed: setdevicespeed 4 1 1 forces Gen2 with 1-second connect/disconnect delays.
USBIOTEST shows wrong pipes or "can't find pipe for (null)"▼
Firmware version: Pipe addresses changed between v1.25.0 and v2.0.0. Run usbiotest -v <VID>:<PID> to see your device's actual layout. Check firmware with appversion.
Wrong PID: Multi-bulk uses 040e:020c, not 040e:f645. Match the PID to the device mode.
High-speed isochronous test fails or hangs▼
Known platform issue: HS isochronous loopback does not work on some Intel processors. Try an AMD system or a different Intel platform.
DFU firmware update fails or times out▼
Timing: You must disconnect and reconnect the Type-C cable within the 10-second window after each stage. If you miss it, the installer exits — restart from the beginning.
Linux: Both Micro-B and Type-C must be connected during bootloader download.
Old firmware: DFU requires v1.24.3+. Older units must be sent to MCCI for update.
15. Filing a Support Ticket — What to Include
? When Should I Open a Support Ticket?
You’ve worked through the troubleshooting steps above but still hit one of these. Open a ticket if:
- The device does not enumerate — no entry appears in Device Manager /
lsusb on any port or cable. - The driver installs but a test cannot start — correct mode and driver, yet USBIOTEST/USBIOEx fails to open the device.
- Throughput is below 50% of the expected value — confirmed Gen2 link, direct connection, correct buffer sizes.
- A firmware update fails — DFU repeatedly times out or the unit won’t boot afterward.
When contacting [email protected] or opening a portal ticket, please include all of the following to help us diagnose your issue quickly:
Support Ticket Checklist
- Serial number — from the OLED, or
getserialnum, or the label on the underside (format: 00-02-CC-xx-xx-xx) - Firmware version — from
appversion output (all 3 lines) - Current device mode — from
getdevicemode - Connection speed — from
getdevicespeed or OLED display - Buffer sizes — from
getbuffersize - OLED display contents — a photo or description of all fields
- Host system details — OS, xHCI controller (Intel/AMD/ASMedia), USB port type
- The exact USBIOTEST command you ran and its full output
- Steps to reproduce the problem
16. Firmware Version History
| Version | Key Changes |
|---|
| v2.6.0 | UASP mode. Direct run mode (bootloader bypass). Additional isoch endpoints. Lost/corrupt packet identification. |
| v2.0.0 | Vendor control commands. getserialnum. Changed pipe ordering (breaking change from v1.x). |
| v1.25.0 | OLED display with device/operational info. |
| v1.24.3 | Multi-bulk loopback. DFU update support. |
| v1.24.0 | appversion shell command. |
| v1.23.0 | SSC control. |
| v1.22.0 | GetDeviceVersion. Endpoint order change in loopback. |
| v1.20.0 | Unified compliance+loopback app. Mode switching. EEPROM. Isoch+bulk loopback. |
| v1.12.0 | OLED driver. Device test application. |
| v1.10.0 | EEPROM. OLED logo. Sensors. |
| v1.06.0 | Initial loopback application. |
Have a USB test challenge?
MCCI has built and licensed USB host and device stacks for over 20 years. Talk to our engineers about the Model 3411, custom firmware variants, or volume & manufacturing-fixture pricing.
17. Additional Resources
MCCI®, TrueTask®, MCCI USB DataPump® are registered trademarks of MCCI Corporation. USB4®, USB-C®, USB Type-C® are registered trademarks of USB Implementers Forum, Inc. All other trademarks are property of their respective owners. Copyright © 2026 MCCI Corporation. Engineering Reports 950001616 Rev O, 950001629 Rev B.