Skip to content
Back to top
View this page

# Geschwister Schneider and candleLight

Windows/Linux/Mac CAN driver based on usbfs or WinUSB WCID for Geschwister Schneider USB/CAN devices and candleLight USB CAN interfaces.

Install: `pip install "python-can[gs-usb]"`

Usage: pass device `index` or `channel` (starting from 0) if using automatic device detection:

    import can
    import usb
    dev = usb.core.find(idVendor=0x1D50, idProduct=0x606F)

    bus = can.Bus(interface="gs_usb", channel=dev.product, index=0, bitrate=250000)
    bus = can.Bus(interface="gs_usb", channel=0, bitrate=250000)  # same

Alternatively, pass `bus` and `address` to open a specific device. The parameters can be got by `pyusb` as shown below:

    import usb
    import can

    dev = usb.core.find(idVendor=0x1D50, idProduct=0x606F)
    bus = can.Bus(
        interface="gs_usb",
        channel=dev.product,
        bus=dev.bus,
        address=dev.address,
        bitrate=250000
    )

## Supported devices

Geschwister Schneider USB/CAN devices and bytewerk.org candleLight USB CAN interfaces such as candleLight, canable, cantact, etc.

## Supported platform

Windows, Linux and Mac.

Note

The backend driver depends on pyusb so a `pyusb` backend driver library such as `libusb` must be installed.

On Windows a tool such as Zadig can be used to set the USB device driver to `libusbK`.

## Supplementary Info

The firmware implementation for Geschwister Schneider USB/CAN devices and candleLight USB CAN can be found in candle-usb/candleLight_fw. The Linux kernel driver can be found in linux/drivers/net/can/usb/gs_usb.c.

The `gs_usb` interface in `python-can` relies on upstream `gs_usb` package, which can be found in https://pypi.org/project/gs-usb/ or https://github.com/jxltom/gs_usb.

The `gs_usb` package uses `pyusb` as backend, which brings better cross-platform compatibility.

Note: The bitrate `10K`, `20K`, `50K`, `83.333K`, `100K`, `125K`, `250K`, `500K`, `800K` and `1M` are supported in this interface, as implemented in the upstream `gs_usb` package’s `set_bitrate` method.

Warning

Message filtering is not supported in Geschwister Schneider USB/CAN devices and bytewerk.org candleLight USB CAN interfaces.

## Bus