Arduino UNO Q RS422
Use RS422 serial communication with the Arduino UNO Q and a TTL-to-RS422 module. RS422 uses differential signaling over two twisted pairs — one pair for transmit, one for receive — enabling full-duplex, long-distance communication up to 1200m with high noise immunity. With Bridge and Telegram, you can send and receive RS422 data remotely from Python or your phone.
In this tutorial, you will learn:
- How RS422 communication works and why a TTL-to-RS422 module is needed
- How to wire the TTL-to-RS422 module to the Arduino UNO Q
- How to send and receive data over RS422 on Arduino UNO Q
- How to use Bridge to control RS422 communication from Python on Arduino UNO Q
- How to send and receive RS422 data via Telegram on Arduino UNO Q
- How to use OpenClaw on Arduino UNO Q with RS422

Hardware Preparation
Or you can buy the following kits:
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Additionally, some of these links are for products from our own brand, DIYables .
Overview of the TTL to RS422 Module
The Arduino UNO Q MCU communicates over UART using TTL logic levels (3.3V). To communicate with RS422-compatible industrial devices, cameras, or CNC controllers over long distances, you need to convert TTL to the RS422 differential standard. The TTL-to-RS422 module performs this conversion in both directions.
RS422 key characteristics:
- Full-duplex communication (separate TX and RX pairs)
- Long distance: up to 1200 meters
- High noise immunity due to differential signaling
- Point-to-point or limited multi-drop (up to 10 receivers per driver)

Pinout
- TTL interface (connects to Arduino UNO Q MCU):
- VCC: Power — connect to 3.3V
- GND: Ground
- RXD: Data input — connect to MCU TX pin (D6)
- TXD: Data output — connect to MCU RX pin (D7)
- RS422 interface:
- A (R+): RX+ — connect to remote TX+ (T+/Y pin)
- B (R-): RX− — connect to remote TX- (T-/Z pin)
- Y (T+): TX+ — connect to remote RX+ (R+/A pin)
- Z (T-): TX− — connect to remote RX- (R-/B pin)
Wiring Diagram

This image is created using Fritzing. Click to enlarge image
| TTL-to-RS422 Module Pin | Arduino UNO Q MCU Pin | Note |
|---|---|---|
| VCC | 3.3V | |
| GND | GND | |
| RXD | D6 (MCU TX) | |
| TXD | D7 (MCU RX) |
Connect A/B (R+/R-) and Y/Z (T+/T-) to the corresponding pins of your RS422 device or a USB-to-RS422 adapter for PC testing.
How To Program For RS422
- Include SoftwareSerial and create an RS422 serial object:
- Read incoming RS422 data:
- Send data over RS422:
Arduino UNO Q Code
Detailed Instructions
First time with Arduino UNO Q? Follow the Getting Started with Arduino UNO Q tutorial before proceeding.
- Connect: Wire the TTL-to-RS422 module to the Arduino UNO Q MCU as shown in the wiring diagram.
- Open Arduino App Lab: Launch Arduino App Lab and wait until it detects your Arduino UNO Q.
- Create a new App: Click the Create New App button.

- Give the App a name, for example: RS422
- Click Create to confirm.

- Paste the sketch: Copy the MCU code above and paste it into sketch/sketch.ino.
- Upload: Click the Run button in Arduino App Lab.

Testing
To test RS422 communication:
- Connect the T+/T- and R+/R- pins to a USB-to-RS422 adapter:

- Set the baud rate to 9600, select the correct COM port.
- Type any text and send it. The Arduino UNO Q will echo it back — you should see the echoed data in the terminal.
Bridge: Linux + MCU
This section shows how to send and receive RS422 data from the Linux side (Python) via Bridge:
- The TTL-to-RS422 module is connected to the MCU via SoftwareSerial — the MCU handles all serial I/O
- The MPU cannot use SoftwareSerial directly — it calls Bridge functions to send/receive RS422 data
- The MPU has Wi-Fi — running full Debian Linux, it can relay RS422 data to Telegram or web services
- Arduino_RouterBridge enables RPC communication between the two processors
- ⚠️ /dev/ttyHS1 (Linux) and Serial1 (MCU) are RESERVED by the router — never open them in user code
MCU Code (Bridge)
Python Code (Bridge)
Detailed Instructions
- Connect: Wire the TTL-to-RS422 module to the Arduino UNO Q as shown above.
- Open Arduino App Lab and create a new App named RS422Bridge.
- Paste the MCU sketch into sketch/sketch.ino.
- Paste the Python code into the Python file.
- Install the library: Click the Add sketch library button (the open book icon with a + sign) in the left sidebar.

- Search for Arduino_RouterBridge created by Arduino and click the Install button.
- Upload: Click the Run button. Python will send a message via RS422 and read back any echoed data.

App Lab Console Output
Telegram
Send and receive RS422 data through Telegram — forward messages from precision industrial equipment to your phone or send commands from Telegram to an RS422 device.
MCU sketch: Keep the same MCU sketch from the previous Bridge section.
Python Code (Telegram)
Detailed Instructions
- Replace YOUR_TELEGRAM_BOT_TOKEN with your actual bot token from BotFather.
- Replace YOUR_CHAT_ID with your Telegram chat ID.
- Paste the Python code into your App's Python file (keep the same MCU sketch).
- Click the Run button — send /send Hello in Telegram to transmit data over RS422.
App Lab Console Output
ArduinoBot
OpenClaw
...OPENCLAW
OpenClaw support for Arduino UNO Q RS422 is coming soon.
...OPENCLAW
Project Ideas
You can build many useful projects with RS422 communication and Arduino UNO Q:
- CNC Machine Monitor: Connect the Arduino UNO Q to a CNC controller via RS422; the MCU reads position and status messages, and Python sends real-time updates to Telegram when machining starts, pauses, or completes
- High-Speed Camera Trigger: Use RS422 to send precise trigger signals to industrial cameras; Python determines the trigger timing via Bridge and sends the command to the MCU, which transmits the trigger pulse over the RS422 differential pair
- Long-Distance Sensor Array: Wire RS422 over 500m to a remote environmental sensor station; the MCU reads sensor data over RS422 and Python logs readings and sends Telegram alerts when values cross thresholds
- PLC Status Dashboard: Connect to a PLC's RS422 programming port to read diagnostic data; Python formats the data as a status report and sends it to Telegram on a scheduled interval
- Precision Motion Controller: Send position commands from Telegram via Bridge to the MCU, which forwards them over RS422 to a servo driver — enabling remote, full-duplex control of a precision actuator
Challenge Yourself
Ready to go further with RS422 on Arduino UNO Q? Try these challenges:
- Easy: Add a /ping Telegram command that sends a fixed string PING\n via RS422 and immediately reads the reply with get_received — useful for testing whether the connected RS422 device is responsive.
- Medium: Implement a message log: Python stores the last 10 received RS422 messages in a Python list; a /history Telegram command returns all stored messages as a numbered list — giving you a recent communication history from your phone.
- Advanced: Build a full-duplex RS422 relay: Python maintains a loop that sends a heartbeat string via send_rs422 every 10 seconds, reads any incoming data with get_received, and forwards it to Telegram — while also listening for Telegram commands to send custom messages, creating a complete bidirectional RS422-to-Telegram gateway.