Rust safe wrapper for the [FTDI D2XX drivers].
This takes the [libftd2xx-ffi] C bindings crate and extends it with rust safe wrappers.
Simply add this crate as a dependency in your Cargo.toml
.
```toml [dependencies.libftd2xx] version = "0.32"
features = ["static"] ```
This is a basic example to get your started. Check the source code or documentation for more examples. ```rust use libftd2xx::{Ftdi, FtdiCommon};
let mut ft = Ftdi::new()?; let info = ft.device_info()?; println!("Device information: {:?}", info); ```
This crate is just a wrapper around the FTD2XX driver; I2C, SPI, and GPIO
examples using the [embedded-hal
] traits can be found in
[ftd2xx-embedded-hal
].
To access the FTDI USB device as a regular user on Linux you need to update the [udev] rules.
Create a file called /etc/udev/rules.d/99-ftdi.rules
with:
SUBSYSTEM=="usb", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6010", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6011", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6014", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6015", MODE="0666"
Then, reload the rules:
bash
sudo udevadm control --reload-rules
sudo udevadm trigger
By default this crate with use dynamic linking for the vendor library.
Use the static
feature flag to enable static linking.
The shared object libftd2xx.so
must exist on your system.
See [FTDI Drivers Installation Guide for Linux] for instructions.
The FTD2XX DLL must exist on your system PATH. The easiest way to install this is with the vendor provided [setup executable].
No special considerations are needed, the static library is distributed with permission from FTDI in the [libftd2xx-ffi] crate.
Remove the VCP FTDI driver.
bash
sudo rmmod ftdi_sio
sudo rmmod usbserial
See [FTDI Drivers Installation Guide for Linux] for more details.