Use Cases
- Network Equipment: Routers, switches, firewalls (Cisco, Juniper, etc.)
- Embedded Systems: Raspberry Pi, Arduino, IoT devices
- Server Management: Out-of-band console access (IPMI, iLO, iDRAC)
- Console Servers: Terminal servers providing serial-over-network
- Industrial Equipment: PLCs, RTUs, SCADA systems
Serial Configuration
Netcatty uses theSerialConfig interface for serial port settings.
Data Structure
Serial Port Path
Thepath field identifies the serial device:
Linux:
- Open Device Manager → Ports (COM & LPT)
- Look for “USB Serial Port (COMx)“
Baud Rate
Communication speed in bits per second (bps). Common baud rates:- 9600 - Default for many devices, slow but reliable
- 19200 - 2x faster than 9600
- 38400 - 4x faster than 9600
- 57600 - Common for modern devices
- 115200 - Standard high speed (common for Linux consoles, Raspberry Pi)
- 230400 - Very high speed (less reliable over long cables)
- Cisco routers/switches: 9600 (older) or 115200 (newer)
- Raspberry Pi: 115200
- Arduino: 9600 or 115200 (set in sketch)
- Linux serial console: 115200
- Old modems: 2400, 9600
Data Bits
Number of bits in each character.- 8 (default) - Standard for modern devices, supports full ASCII + extended
- 7 - Older systems, 7-bit ASCII only
- 5 - Legacy teletype equipment (Baudot code)
- 6 - Rare, some vintage systems
Stop Bits
Number of stop bits after each character.- 1 (default) - Standard for modern devices
- 2 - Older systems, slow baud rates
- 1.5 - Rare, some legacy equipment
Parity
Error checking mechanism.- none (default) - No parity checking, most common
- even - Even parity bit (sum of 1s is even)
- odd - Odd parity bit (sum of 1s is odd)
- mark - Parity bit always 1 (rare)
- space - Parity bit always 0 (rare)
Flow Control
Prevents data loss when receiver is slower than sender.- none (default) - No flow control
- xon/xoff - Software flow control (send Ctrl+S to pause, Ctrl+Q to resume)
- rts/cts - Hardware flow control (uses RTS/CTS pins)
- none: Short cables, modern devices, interactive terminals
- xon/xoff: Serial file transfers, no hardware flow control pins
- rts/cts: High-speed transfers, devices with hardware flow control support
Local Echo
Controls whether typed characters are displayed locally.- false (default) - Rely on remote echo (device sends back what you type)
- true - Display typed characters locally (use when device doesn’t echo)
- Device is silent when you type
- Device has echo disabled
- You see double characters (try disabling if enabled)
Line Mode
Buffer input until Enter is pressed.- false (default) - Character mode (send each keypress immediately)
- true - Line mode (send only after Enter)
- Device expects line-at-a-time input
- You want to edit commands before sending
- Device can’t handle character-by-character input
Common Configurations
Cisco Router/Switch Console
Standard settings (older devices):baudRate: 115200.
Raspberry Pi Serial Console
/dev/ttyAMA0 (older Pi) or /dev/ttyS0 (Pi 3/4) instead of USB adapter.
Arduino Serial Monitor
Linux Server Serial Console
Juniper Device Console
HP/Aruba Device Console
Legacy Equipment (7-E-1)
Older systems often use “7-E-1” (7 data bits, even parity, 1 stop bit):Setting Up Serial Connections
Create Serial Host
- Click New Host
- Select Protocol: Serial
- Enter Label: Descriptive name (e.g., “Cisco Switch Console”)
- Port Path: Device path (e.g.,
/dev/ttyUSB0,COM3) - Configure serial settings:
- Baud Rate: Match your device (default: 9600)
- Data Bits: Usually 8
- Stop Bits: Usually 1
- Parity: Usually None
- Flow Control: Usually None
- Click Create
Connect to Serial Device
- Double-click the serial host in your hosts list
- Netcatty opens the serial port
- Terminal displays device output
- Type commands to interact with device
- You may need to press Enter to wake the device
- Some devices show a login prompt, others show a command prompt
- If no output appears, check baud rate and cable connection
Disconnect
- Close the terminal tab, or
- Click Disconnect in the connection menu
- Serial port is released for use by other applications
Troubleshooting
No Device Output
Symptoms: Terminal opens but shows no text from device Possible causes:- Wrong baud rate (most common)
- Device is powered off
- Cable not connected properly
- Wrong serial port selected
- Verify device is powered on
- Check cable connections (both ends)
- Try pressing Enter a few times (wake device)
- Try common baud rates: 9600, 115200
- Check device documentation for correct settings
- Use
screenorminicomto test (Linux/macOS):
Garbled Output
Symptoms: Random characters, symbols, or box characters Cause: Baud rate mismatch Solution:- Try different baud rates (9600, 19200, 38400, 57600, 115200)
- Consult device documentation
- For Cisco devices, try 9600 first
- For Linux/Raspberry Pi, try 115200 first
Permission Denied (Linux/macOS)
Symptoms: “Cannot open /dev/ttyUSB0: Permission denied” Cause: User not indialout or uucp group
Solution (Linux):
Device Busy
Symptoms: “Device or resource busy” Cause: Another program has the serial port open Solution:No Serial Device Found
Symptoms: Port path doesn’t exist Possible causes:- USB adapter not connected
- Driver not installed
- Cable fault
- Check physical connection
- Try a different USB port
- Check if device appears:
- Install drivers:
- FTDI: Usually included in OS
- Prolific PL2303: May need driver from prolific.com.tw
- SiLabs CP210x: Install from silabs.com
Double Characters
Symptoms: Typing “hello” shows “hheelllloo” Cause: Both local echo and remote echo are enabled Solution:- Disable Local Echo in Netcatty serial config
- Or disable echo on the device:
- Cisco: (usually no setting)
- Linux:
stty -echo < /dev/ttyS0
No Local Echo
Symptoms: Typing shows nothing, but device responds Cause: Device doesn’t echo, local echo disabled Solution:- Enable Local Echo in Netcatty serial config
- Or enable echo on device (if supported)
Hardware Setup
USB-to-Serial Adapters
Most modern computers lack built-in serial ports. Use a USB adapter: Recommended adapters:- FTDI-based: FT232R, FT234X (best compatibility, genuine only)
- SiLabs CP210x: Good compatibility, lower cost
- Prolific PL2303: Cheap but check for genuine chips (many clones have driver issues)
- Cisco console cable: RJ45-to-DB9 or RJ45-to-USB (includes adapter)
- USB console cable: Direct USB-to-RJ45 (Cisco compatible)
- FTDI cable: Direct USB-to-TTL (3.3V or 5V) for Raspberry Pi, Arduino
Cable Pinouts
Standard RS-232 (DB9):- RS-232: ±3V to ±15V (negative = logic 1)
- TTL 3.3V: 0V = logic 0, 3.3V = logic 1 (Raspberry Pi, modern microcontrollers)
- TTL 5V: 0V = logic 0, 5V = logic 1 (Arduino, older systems)
Connecting Raspberry Pi
GPIO pins:Best Practices
- Label Your Cables: Use labels to identify which device each cable connects to
- Keep Spare Adapters: USB adapters fail; have backups
- Use Genuine Chips: FTDI, SiLabs originals work better than clones
- Document Settings: Note baud rate and settings for each device
- Test Before Deploying: Verify serial access works before racking equipment
- Cable Length Limits: RS-232 reliable up to 15m (50ft), use repeaters for longer distances
- Avoid Ground Loops: Use optically isolated adapters for electrically noisy environments
- Unplug Safely: Don’t disconnect serial cables while device is powered (may damage port)
Comparison with Other Methods
Serial vs SSH
| Feature | Serial Console | SSH |
|---|---|---|
| Requires network | ❌ No | ✅ Yes |
| Boot-time access | ✅ Yes | ❌ No |
| BIOS/bootloader | ✅ Yes | ❌ No |
| Encryption | ❌ No | ✅ Yes |
| Multi-user | ❌ One at a time | ✅ Multiple sessions |
| Speed | ~11.5 KB/s (115200) | Mbps+ |
| Out-of-band | ✅ Yes | ❌ No |
- Setting up a device initially (no network yet)
- Troubleshooting network issues (can’t reach via SSH)
- Accessing bootloader or BIOS
- Recovering from failed OS updates
- Physical access to device
- Device has working network
- Remote administration
- Multiple concurrent sessions needed
- File transfers required
- Secure communication required
