> Complete documentation index: [llms.txt](/llms.txt). Markdown versions of all pages are available by appending `.md` to page URLs.

# RS-485 Bridge Mode

> A transparent half-duplex RS-485 bridge between the virtual COM port and the Pulsar's onboard transceiver. Pulsar only.

**Mode `3` · Pulsar only · Introduced in firmware v4.4.0**

RS-485 Bridge Mode turns the Pulsar into a transparent **virtual COM port ↔
RS-485 half-duplex bridge**. Bytes written to the port are transmitted on the
RS-485 bus through the onboard transceiver, and bus traffic comes back as port
input. The firmware switches the transceiver's direction line automatically, so
from the host it looks like an ordinary serial port.

:::danger
**Not available on Binho Supernova**, which has no RS-485 transceiver. Selecting
this mode on a Supernova is rejected with an invalid-parameter error.

:::

:::tip
Unlike the other exclusive modes, RS-485 runs **alongside** the normal HID
protocol managers. The device keeps servicing I2C, SPI, UART and GPIO commands
over HID while bridging RS-485: the two use independent peripherals and pins, so
they don't contend.

:::

## Quick start

{% stepper %}
{% step %}
### Switch the Pulsar into RS-485 mode

```sh
python device_settings_cli.py --device pulsar set --cdc-mode rs485
```

The tool resets the device to apply the change.
{% endstep %}

{% step %}
### Wire the bus

Connect the transceiver's **A/B** differential pair to the RS-485 segment and
share a common ground. This is 2-wire half-duplex; the direction line is driven
by firmware, so there is nothing to control.
{% endstep %}

{% step %}
### Open the COM port

Opening the port claims the RS-485 line and configures it. Closing the port
releases it and flushes the buffers.
{% endstep %}
{% endstepper %}

## Using the bridge

Set baud rate, data bits, parity and stop bits through the COM port's normal
settings. Changes apply **on the fly**: there is no need to close the port. Before
the host sets anything, the default is 115200 8N1.

| Setting | Supported values |
| --- | --- |
| Baud rate | Any value the host requests |
| Data bits | 7 or 8 |
| Parity | None, odd, or even |
| Stop bits | 1 or 2 |

## Limitations

* **Half-duplex (2-wire) only:** there is a single direction line, so 4-wire
  full-duplex isn't possible.
* **No hardware flow control** (RTS/CTS): not applicable to RS-485.
* **No 9-bit data, mark/space parity, or 5/6 data bits.**
* **No multidrop 9th-bit or automatic address matching.** The bridge is
  byte-transparent; addressing belongs to whatever protocol runs over it.
* **Transmit blocks** until the final stop bit has shifted out, before the driver
  is released. That guarantees no truncation and no bus contention, but transmit
  latency grows with payload length and falls with baud rate.

## Getting back out

```sh
python device_settings_cli.py --device pulsar set --cdc-mode uart_passthrough
```