FFBeast Wheel WebHID API
    Preparing search index...

    FFBeast Wheel WebHID API

    Build Status Documentation NPM Version License

    A TypeScript WebHID-based API for communicating with FFBeast force feedback wheel controllers directly from the browser.

    This library is a TypeScript rewrite of the original C/C++ API, adapted to use the WebHID API for browser-based applications. The original C/C++ source code is available in the reference_cpp directory for reference.

    Note: This API includes additional helper methods and properties not present in the original C/C++ implementation, such as readAllSettings(), positionDegrees, torqueNormalized, and more for convenience.

    • 🎮 Direct wheel communication via WebHID (no drivers or native apps required)
    • 📊 Real-time device state - position, torque, firmware version
    • ⚙️ Full settings control - effect settings, hardware settings, GPIO, ADC configurations
    • 🔧 Direct force feedback control - spring, constant, and periodic forces
    • 📡 Event-driven architecture - subscribe to device state changes
    • 🔒 Type-safe - full TypeScript support with comprehensive types

    📚 Full API Documentation

    Note: Supported in all modern Chromium-based browsers (e.g., Chrome, Edge, Opera, Brave, etc).

    Browser Supported
    Chromium-based
    Firefox
    Safari
    npm i @shubham0x13/ffbeast-wheel-webhid-api
    
    import { WheelApi } from "@shubham0x13/ffbeast-wheel-webhid-api";

    const wheel = new WheelApi();

    wheel.on("stateReceived", (state) => {
    console.log("Position:", state.positionDegrees);
    console.log("Torque:", state.torqueNormalized);
    });

    wheel.on("deviceConnected", (device) => {
    console.log("Connected to:", device.productName);
    });

    // Connect to the wheel (opens browser device picker)
    await wheel.connect();

    // Cleanup when done
    await wheel.disconnect();
    wheel.destroy();
    • Node.js >= 20.19.0
    • A Chromium-based browser with WebHID support
    • An FFBeast wheel controller

    This project is licensed under the MIT License