FibreCode Docs

Broadway2 Driver & Software Setup

FibreCode USB adapters use the Broadway2 software platform for host communication, register access via SMI/MDIO, and high-performance packet streaming.

  • Standard Network Devices (FC602 / FC621): Implement the standard USB CDC-ECM protocol and appear directly as network cards in your OS.
  • Raw Stream Devices (FC612 / FC631): Utilize the high-throughput Broadway2 raw stream driver for nanosecond hardware-timestamped packet capture and injection.
  • Register & Tool Adapters (FC401): Provide direct SPI/SMI access via the Broadway API.

Download Software Package

Download WSP_Broadway_Vxx-xx-xx.zip and extract the archive.

Directory structure of the extracted Windows package:

WSP_Broadway_Vxx-xx-xx/
├── CDC-ECM/       # Windows CDC-ECM network driver
├── Windows/       # Broadway API DLLs & install scripts
├── Python3/       # Python wheels and application suite
└── doc/           # Documentation

Download LSP_Broadway_Vxx-xx-xx.zip and extract the archive:

unzip LSP_Broadway_Vxx-xx-xx.zip -d LSP_Broadway_Vxx-xx-xx

Directory structure of the extracted Linux package:

LSP_Broadway_Vxx-xx-xx/
├── Linux/         # Pre-compiled .so libraries for Ubuntu & Raspbian
├── Python3/       # Python wheels and application suite
└── doc/           # Documentation

Install Driver & API

Install CDC-ECM Network Driver

Navigate into the CDC-ECM folder:

CDC-ECM/
└── Vx.xx.x/
    └── FibreCode_Broadway_xxxx.setup.exe

Run FibreCode_Broadway_xxxx.setup.exe to install the Windows network driver.

Install Broadway API DLLs

Navigate to the Windows folder:

Windows/
├── bin/
│   ├── Win32/broadway2_api.dll
│   └── x64/broadway2_api.dll
└── install.cmd

Open Command Prompt or PowerShell with Administrator rights and run:

install.cmd

Expected output:

copy bin\Win32\broadway2_api.dll C:\WINDOWS\SYSWOW64
        1 file(s) copied.
copy bin\x64\broadway2_api.dll C:\WINDOWS\SYSTEM32
        1 file(s) copied.

Network Driver

On Linux distributions (Ubuntu, Debian, Raspberry Pi OS), standard kernel modules natively recognize FC602 and FC621 as standard USB CDC-ECM network devices. No proprietary kernel driver is needed.

Install Broadway API Shared Library

Navigate to the architecture folder matching your system:

Linux/
├── Raspbian/
│   └── armhf/
└── Ubuntu/
    ├── arm64/
    └── x64/
        ├── bin/linux/broadway2_sample
        ├── install.sh
        └── libbroadway2_api.so

Execute install.sh to copy the shared library to /usr/local/lib and update the dynamic linker cache:

sudo chmod +x install.sh
sudo ./install.sh

Alternative manual installation:

sudo cp libbroadway2_api.so /usr/local/lib
sudo ldconfig /usr/local/lib

Verify Hardware Connection

Plug in your FibreCode device and run the Broadway verification sample to confirm the host detects the hardware properly:

Open Command Prompt and navigate to Windows\bin\x64:

broadway2_sample.exe info

Navigate to your architecture's binary directory (e.g. Linux/Ubuntu/x64/bin/linux/):

chmod +x broadway2_sample
sudo ./broadway2_sample info

Expected terminal output:

Compile Time Oct 13 2021 19:20:32
Broadway library API Version 2.20
Enumerate available devices...
Found 1 Broadway device(s)
Device information:
  VendorId:         0x152A
  ProductId:        0x857B
  BcdDevice:        0x0230
  Device type:      602
  IN message size:  512 bytes
  OUT message size: 512 bytes
  Manufacturer:     FibreCode
  Product:          FibreCode FC602 Stick
  Serial number:    FC01330000000066
  FWVariantName:    Broadway_FC300105
  FWVersionString:  2.30.0-1
  MAC address:      FC-C2-3D-0B-6B-5B

Install Python 3 Environment

Ensure Python 3 is installed on your system. Navigate to the Python3 directory inside the extracted package:

Install the pre-compiled Python wheel:

pip install broadway2-x.x.xx-py3-none-any.whl
Note

Legacy Broadway packages (V2.3.4 and below): If your package contains broadway2-x.x.x.zip, extract it and run:

python setup.py install

Install the pre-compiled Python wheel:

# Debian / Ubuntu:
sudo pip3 install broadway2-x.x.xx-py3-none-any.whl

# Ubuntu 23.04+ / Debian 12+ (PEP 668 managed environments):
sudo pip3 install broadway2-x.x.xx-py3-none-any.whl --break-system-packages
Note

Legacy Broadway packages (V2.3.4 and below): If your package contains broadway2-x.x.x.zip, extract it and run:

sudo python3 setup.py install

Broadway Python Application Suite

In the Python3/app folder, you will find pre-built Python tools and scripts for control, diagnostics, and testing:

Python3/app/
├── fc_control.py       # Main GUI control tool (MAC address, Friendly Name, PnP)
├── fc_view.py          # Real-time link monitor
├── app_fc.py
├── get_hw_info.py      # Hardware descriptor query
├── get_phy_info.py     # PHY link and status query
├── phy_config.py       # PHY register configuration script
├── net/                # Network test scripts for FC602 / FC621
├── raw/                # Layer-2 raw frame scripts for FC612 / FC631
├── root/               # General utility scripts
└── tool/               # Direct SMI/SPI tools for FC401

To launch an application (for example, the FC-Control GUI):

Run from the command line or double-click fc_control.py in Windows File Explorer:

python fc_control.py
sudo python3 fc_control.py

Next Steps