Skip to content

Serial Setup

Full control of the RS-UV3A requires a serial connection. This guide covers the various ways to connect and configure serial communication.

The RS-UV3A provides three serial connection methods:

MethodConnectorBest For
On-board USBMicro USBMost users—single cable for power and control
JP1 Header0.1” headerArduino and microcontroller projects
JP2 Header6-pin headerFTDI cable or Raspberry Pi
DE-9 I/ODE-9 pins 7/8External serial devices

The RS-UV3A Rev A includes an FTDI FT230X USB-serial chip that works without drivers on most modern operating systems.

  1. Connect a micro USB cable to the RS-UV3A
  2. Connect the other end to your computer
  3. The board powers on and enumerates as a serial port

Linux:

Terminal window
ls /dev/ttyUSB*
# or
dmesg | grep tty

macOS:

Terminal window
ls /dev/tty.usbserial*

Windows:

  • Open Device Manager
  • Look under “Ports (COM & LPT)”
  • Note the COM port number (e.g., COM3)

Use any serial terminal program to communicate with the RS-UV3A:

PlatformOptions
Linuxminicom, screen, picocom, putty
macOSscreen, CoolTerm, Serial
WindowsPuTTY, Tera Term, RealTerm
Cross-platformArduino Serial Monitor, VS Code Serial Monitor
ParameterValue
Baud Rate19200 (default)
Data Bits8
ParityNone
Stop Bits1
Flow ControlNone
Line EndingCarriage Return (CR)
Terminal window
screen /dev/ttyUSB0 19200

To exit: Ctrl-A then K, confirm with Y

Terminal window
minicom -D /dev/ttyUSB0 -b 19200

Configure: Ctrl-A then O → Serial port setup → Hardware flow control: No

Send a command to verify communication:

FW

Expected response:

FW: 2.4A

(Version number may vary)

Try a few more commands:

F? # Query frequency
SS # Read signal strength
VT # Read voltage
TP # Read temperature

The RS-UV3A supports multiple baud rates:

CodeBaud Rate
01200
14800
29600
319200 (default)
438400
557600
B13 # Set to 19200 (default)
B15 # Set to 57600
B23 # Set to 19200 (default)
B25 # Set to 57600

To connect the RS-UV3A to an Arduino:

  1. Install headers on JP1 (see Connections)

  2. Connect:

    • RS-UV3A RXD → Arduino TX pin
    • RS-UV3A TXD → Arduino RX pin
    • RS-UV3A GND → Arduino GND
  3. Use SoftwareSerial or hardware UART at 19200 baud

#include <SoftwareSerial.h>
SoftwareSerial radio(10, 11); // RX, TX
void setup() {
Serial.begin(9600);
radio.begin(19200);
delay(100);
radio.println("F?"); // Query frequency
}
void loop() {
if (radio.available()) {
Serial.write(radio.read());
}
}

The RS-UV3A accepts 3.3V or 5V logic inputs. Output voltage depends on the VIO pin:

  • If Arduino VIN powers the RS-UV3A: outputs match Arduino logic
  • For 3.3V devices (like Raspberry Pi): jumper JP1 3.3V to JP2 VIO

Connect directly to GPIO UART:

RS-UV3A (JP1/JP2)Raspberry Pi
TXDGPIO 15 (RXD)
RXDGPIO 14 (TXD)
GNDGND
3.3V → VIO(jumper on RS-UV3A)

Enable UART on Raspberry Pi:

Terminal window
sudo raspi-config
# → Interface Options → Serial Port
# → Login shell: No
# → Serial hardware: Yes

All RS-UV3A commands follow these rules:

  • Not case sensitivefs146520 equals FS146520
  • Terminated by CR — Carriage return (ASCII 13)
  • Fixed digit counts — Some parameters require all digits (e.g., FS146520 not FS14652)
  • Query with ? — Most commands accept ? to query current value
FS146520 # Set frequency to 146.520 MHz
F? # Query current frequency
SQ5 # Set squelch to level 5
TX1 # Transmit for 1 minute max
TX0 # Stop transmitting

See the Command Reference for the complete command list.

  1. Check USB cable is data-capable (not charge-only)
  2. Verify correct COM port
  3. Confirm baud rate is 19200
  4. Ensure line ending is CR (not LF or CRLF)
  5. Check for loose connections
  • Wrong baud rate — try 19200, then other rates
  • Line ending issues — try CR only
  • Noise on serial line — use shorter cables, add bypass capacitors
  • Try a different USB cable
  • Try a different USB port
  • On Windows, install FTDI drivers if needed
  • Check dmesg output on Linux for errors