> ## Documentation Index
> Fetch the complete documentation index at: https://docs.embedder.com/llms.txt
> Use this file to discover all available pages before exploring further.

# SLCAN adapters

> Configure classic CAN monitoring and test frames through a compatible USB serial adapter.

Use the SLCAN path for an adapter running compatible Lawicel-style serial firmware, such as compatible CANable, CANtact, or CANUSB firmware. The adapter's firmware matters: a product name alone does not establish this protocol.

This integration handles classic CAN with standard or extended IDs and up to eight payload bytes. Use [fdcanusb](/debug-mode/fdcanusb) for the separate CAN-FD integration.

## Prepare

1. Install the adapter's serial driver if required by the hardware host's operating system and confirm its USB serial port appears.
2. Connect CAN H, CAN L, and the required reference ground. Follow the adapter and bus requirements for termination and voltage.
3. Close any competing serial application.
4. Select the adapter's port in a Monitor Serial tab and switch to **CAN**.
5. Set the actual CAN bus bitrate before connecting.

Supported bus rates are 10, 20, 50, 100, 125, 250, 500, and 800 kbit/s, plus 1 Mbit/s. The Monitor defaults to 500 kbit/s. If your adapter requires a particular USB serial baud rate, set it in UART mode before switching to CAN; the serial baud and CAN bus bitrate are different settings.

Connecting closes and reopens the adapter's CAN channel at the selected bitrate. Disconnecting closes that channel. This is an adapter configuration action, even if you only plan to read frames.

## Read frames

```text theme={"system"}
Open the selected SLCAN-compatible CANable in CAN mode at 500 kbit/s.
Read for five seconds without sending test frames. Report IDs, payloads,
and any adapter errors or bus status messages.
```

The Monitor shows each frame's ID, payload length, and bytes. It identifies remote requests and displays adapter errors and reported bus-status flags. No traffic may mean the bus is idle; confirm activity before changing settings.

Use [CAN Monitor decoding](/debug-mode/can#decode-signals) to select a prepared database profile and interpret payloads.

## Send a deliberate test frame

Identify the receiver, expected effect, and safe test conditions before sending. In the CAN send input, use hexadecimal `id#data`:

```text theme={"system"}
123#DEADBEEF
```

This format describes ID `0x123` with four payload bytes. Replace the ID and data with the reviewed test frame for your bus. Spaces or periods may separate byte pairs; the total payload must not exceed eight bytes.

IDs longer than three hexadecimal digits, or values above `0x7FF`, select extended format. The maximum ID is `0x1FFFFFFF`. For example, `00000123#DEADBEEF` requests an extended frame with numeric ID `0x123`.

A remote request uses `R` followed by a requested length from 0 to 8:

```text theme={"system"}
123#R8
```

Check the observed response and bus status after a send; submitting a frame does not establish that the receiving application acted on it.

## Troubleshoot

* **No port:** check the USB cable, serial driver, and host permissions.
* **Adapter rejects commands:** confirm that the selected firmware implements SLCAN and accepts the chosen rate.
* **No frames or repeated bus errors:** verify bitrate, wiring, termination, and bus activity.
* **Payload rejected:** use hexadecimal byte pairs and no more than eight bytes.
* **Unexpected extended ID:** remove leading zeros that make a standard ID longer than three digits.
* **CAN-FD required:** this SLCAN integration accepts classic CAN frames; select the [fdcanusb path](/debug-mode/fdcanusb) for CAN-FD.
