Probe Setup
How to set up your debug probe to work with probe-rs.
Platform specifics
probe-rs supports multiple probes out of the box.
Most of them require little to no setup. For linux, udev rules are required for non admin access.
Linux: udev rules
By default, the debug probes are only accessible by users with root privileges on Linux based systems. It is recommend to use appropriate udev rules to allow users without root privileges access to the debug probes as well.
- Download the rules file and place it in /etc/udev/rules.d.
- Run
udevadm control --reload
to ensure the new rules are used. - Run
udevadm trigger
to ensure the new rules are applied to already added devices.
If you're still unable to access the debug probes after following these steps, try adding your user to the plugdev group.
[^1]: The file needs to have an initial number lower than 73, otherwise the udev rules do not get applied properly. See this Github discussion for more information.
If you are using WSL, you may need to enable the
udev
service. To check if the service is running, runservice udev status
. If the service is not started, edit/etc/wsl.conf
(with sudo) and make sure the following is included:
[boot]
command="service udev start"
Windows: WinUSB drivers
Some of the probe implementations are implemented using nusb which uses the WinUSB drivers on Windows. For these devices you will need to download Zadig and select WinUSB as the driver for your probe. This will uninstall any official drivers, which means that the official tools will most likely not work anymore after this.
CMSIS-DAP
CMSIS-DAP is a standard for debug probes which is managed by ARM. All probes implementing this standard are supported by probe-rs.
Setup
Linux
No additional drivers are required to use CMSIS-DAP based probes on Linux systems. To ensure that users without root privileges can use the debug probe, it is recommended to configure udev as described in udev rules.
Windows, macOS
No driver installation required.
ST-Link
The ST-Link is a debug probe from ST Microelectronics. It is commonly found on their evaluation boards, such as the Discovery and Nucleo boards.
Supported Versions
The following versions of the ST-Link are supported:
- ST-Link V2, Firmware version 2.26 or higher
- ST-Link V3, Firmware version 3.2 or higher
If you get an error message indicating that the firmware is outdated, please use the official ST tools to update the firmware. The update tool can be found on the ST website.
Setup
Linux
No additional drivers are required to use a ST-Link debug probe on Linux systems. To ensure that users without root privileges can use the debug probe, it is recommended to configure udev as described in udev rules.
Windows
To use the ST-Link on Windows, you need to install the official drivers, which can be found on the ST website.
macOS
No driver installation required.
SEGGER J-Link
The J-Link is a debug probe from Segger. It is available as a stand-alone product, but also integrated into some evaluation boards directly.
Due to the proprietary nature of the J-Link, probe-rs will not achieve the same speed as the official J-Link tools.
Setup
Linux
No additional drivers are required to use a J-Link debug probe on Linux systems. To ensure that users without root privileges can use the debug probe, it is recommended to configure udev as described in udev rules.
Windows
Unfortunately, probe-rs doesn't work with the official drivers on Windows. To use probe-rs it is necessary to install a generic WinUSB driver. The recommended way of doing this is by using the J-Link Configurator tool. To install the generic WinUSB driver with the J-Link Configurator tool:
- Download the J-Link Configurator tool
- Connect the J-Link probe you wish to update
- Start the J-Link Configurator tool
- Right click the entry in the overview where your probe is listed, and select Configure
- Under USB Driver (Windows) select WinUSB
- Click OK
Some J-Link probes will have the option to select WinUSB in the configuration dialog disabled. In this case, use Zadig to install the generic WinUSB driver for your probe.
macOS
No driver installation required.
FTDI
FTDI refers to a family of debug probes built using USB-JTAG bridges from FTDI. probe-rs supports the following chips:
- FT232H
- FT2232C, FT2232D, FT2232H
- FT4232H
Due to the configurable nature of these chips, not every probe may be picked up by probe-rs. If you have a probe that you know contains an FTDI chip, but probe-rs does not recognise it, please open a ticket on GitHub!
The following devices are known to work with probe-rs:
- esp-prog
- The debug interface of ESP32-Ethernet-Kit V1.2
- Adafruit FT232H Breakout
- Olimex ARM-USB devices:
Setup
Linux
No additional drivers are required to use a FTDI-based debug probe on Linux systems. To ensure that users without root privileges can use the debug probe, it is recommended to configure udev as described in udev rules.
Windows
Unfortunately, probe-rs doesn't work with the official (VCP or D2xx) drivers on Windows. To use probe-rs it is necessary to install a generic WinUSB driver. The recommended way of doing this is by using Zadig.
macOS
No driver installation required.
ESP32 devices with built-in USB-JTAG interface
Some ESP32 devices come with built-in debug probes. The availability of this interface varies,
but usually, if your device includes two USB ports, one labelled USB
, the other UART
, then
there's a good chance the one marked as USB
can act as a debug probe.
Setup
Linux
No additional drivers are required to use an ESP32 built-in debug interface on Linux systems. To ensure that users without root privileges can use the debug probe, it is recommended to configure udev as described in udev rules.
Windows, macOS
No driver installation required.