Page tree


Overview

The Serial Console and Terminal are tools, used to communicate with devices and other systems that are interconnected via serial port. The serial terminal may be used to monitor and configure many devices - including modems, network devices (including MikroTik routers), and any device that can be connected to a serial (asynchronous) port.

The Serial Console feature is for configuring direct-access configuration facilities (monitor/keyboard and serial port) that are mostly used for initial or recovery configuration. A special null-modem cable is needed to connect two hosts (like, two PCs, or two routers; not modems). Note that a terminal emulation program (e.g., HyperTerminal on Windows or minicom on linux) is required to access the serial console from another computer. Default settings of the router's serial port are 115200 bits/s (for x86 default is 9600 bits/s), 8 data bits, 1 stop bit, no parity, hardware (RTS/CTS) flow control. 

Several customers have described situations where the Serial Terminal (managing side) feature would be useful:

  • on a mountaintop, where a MikroTik wireless installation sits next to equipment (including switches and Cisco routers) that can not be managed in-band (by telnet through an IP network)
  • monitoring weather-reporting equipment through a serial port
  • connection to a high-speed microwave modem that needed to be monitored and managed by a serial connection

With the serial-terminal feature of the MikroTik, up to 132 (and, maybe, even more) devices can be monitored and controlled.

Serial Console Connections

Serial communications between devices is done with RS232, it is one of the oldest and most widely spread communication methods in computer world. It was used for communication with the modems or other peripheral devices DTE/DCE. In modern world main use of serial communication is DTE/DTE communication (Data Terminal Equipment) e.g. using null modem cable. There are several types of null modem cables and some of them may not work with RouterBoards at all.

Null Modem Without Handshake

This cable does not utilize handshake pins at all:

Side1 (DB9f)Side2 (DB9f)Function
23

Rx ← Tx

32Tx → Rx
55GND

It allows data-only traffic on the cross connected Rx/Tx lines. Hardware flow control is not possible with this type of cable. The only way to perform flow control is with software flow control using the XOFF and XON characters.

Null Modem With Loop Back Handshake

The problem with first cable is when connected to device on which hardware flow control is enabled software may hang when checking modem signal lines. 

Null modem cable with loop back handshake fixes the problem, its main purpose is to fool well defined software into thinking there is a handshaking available:

Side1 (DB9f)Side2 (DB9f)Function
23

Rx ← Tx

32Tx → Rx
55

GND

1+4+6-DTR → CD + DSR
-1+4+6DTR → CD + DSR
7+8-RTS → CTS
-7+8RTS → CTS

Hardware flow control is not possible with this cable. Also if remote software does not send its own ready signal to DTR output communication will hang.

Null Modem With Partial Handshake

This cable can be used when flow control enabled without being incompatible with the original way flow control was used with DTE/DCE communication.

This type of cable is not recommended for use with RouterOS.

Side1 (DB9f)Side2 (DB9f)Function
17+8

RTS2 → CTS2 + CD1

23Rx ← Tx
32

Tx → Rx

46DTR → DSR
55GND
64DSR ← DTR
7+81RTS1 → CTS1 + CD2

Null Modem With Full Handshake

Used with special software and should not be used with RouterOS.

Side1 (DB9f)Side2 (DB9f)Function
23Rx ← Tx
32

Tx → Rx

46DTR → DSR
55GND
64DSR ← DTR
78RTS → CTS
87CTS ← RTS

Null Modem Compatibility

Summary tables below will allow you to choose proper cable for your application.


No handshake

Loop back
handshake

Partial
handshake

Full
handshake
RouterBoards
with limited port functionality
YYN*N
RouterBoards
with full functionality
YYYN

* - may work only when hardware flow control is disabled



No handshake

Loop back
handshake

Partial
handshake

Full
handshake
Software flow
control only
YY*Y**Y**
Low speed DTE/DCE compatible
hardware flow control
NYY*N
High speed DTE/DCE compatible
hardware flow control
NYY**N
High speed
communication
using special software
NNY*Y

* - will work as an alternative

** - will work but not recommended

RJ45 Type Serial Port

This type of port is used on RouterBOARD 2011, 3011, 4011, CCR1072, CCR1036 r2 and CRS series devices, sometimes called "Cisco style" serial port.

RJ45 to DB9 Cable Pinout:



SignalConsole Port (DTE)
RJ-45
RJ-45 Rolled Cable
RJ-45 Pin
Adapter DB-9 PinAdapter DB-25 PinSignal
RTS1885CTS
DTR2766DSR
TxD3623RxD
Ground4557Ground
Ground5457Ground
RxD6332TxD
DSR72420DTR
CTS8174RTS

RB M33G Additional Serial Header

For RBM33G additional serial header can be attached on GPIO pins U3_RXD, GND, U3_TXD, and 3V3

RouterOS 6.45.1+ and firmware are required!


CCR Serial Header

The Cloud Core Router series devices have a serial header on the PCB board, called J402 or 100

Here is the pin-out of that connector:

Serial Console Usage

TODO:

Serial Terminal Usage

RouterOS allows to communicate with devices and other systems that are connected to the router via serial port using /system serial-terminal  command. All keyboard input will be forwarded to the serial port and all data from the port is output to the connected device.

First you have to have a free serial port, if device has only one serial port (like all RouterBoards, WRAP/ALIX boards etc.) you will have to disable the system console on this serial port to be able to use it as Serial Terminal for connection to other equipment (switches, modems, etc):

/system console disable 0

Be sure to just disable the console rather than removing it, as RouterOS will recreate the console after the next reboot when you really remove it.

Note that there are some caveats you should be aware of! Take your time understanding those limits to avoid strange things to happen when connecting a device to a serial port on a RouterBoard:

  • By re-configuring port Serial0 on a RouterBoard as seen above, you will loose your serial console access to RouterOS. This means, that if you cannot access your RouterBoard over the network anymore, you might even have to reset the whole configuration of it to gain access again.
  • When rebooting a RouterBoard the boot loader (RouterBOOT) will always use the serial console (Serial0 on RouterBoards) to send out some startup messages and offer access to the RouterBOOT menu.

    Having text coming out of the serial port to the connected device might confuse your attached device. Furthermore in standard config you can enter RouterBOOT menu by pressing ANY key. So if your serial device sends any character to the serial port of your RouterBoard during boot time, the RouterBoard will enter the RouterBOOT menu and will NOT boot RouterOS unless you manually intervene!

    You can reconfigure RouterBOOT to enter the RouterBOOT menu only when a DEL character is received - use this to reduce the chance to get a router that's stuck when rebooting!

    Or if newer versions are used "Silent boot" feature can be used to suppress any output on the serial interface, including removal of booting sounds.



Next you will have to configure your serial port according to the serial port settings of the connected device. Using the following command you will set your serial port to 19200 Baud 8N1. What settings you need to use depends on the device you connect:

/port set serial0 baud-rate=19200 data-bits=8 parity=none stop-bits=1

You can also try to let RouterOS guess the needed baud rate by setting

/port set serial0 baud-rate=auto

Now's the time to connect your device if not already done. Usually you will have to use a null modem cable (the same thing as a cross-over-cable for Ethernet). Now we're ready to go:

/system serial-terminal serial0

This will give you access to the device you connected to port Serial0. Ctrl-A is the prefix key, which means that you will enter a small "menu". If you need to send Ctrl-A character to remote device, press Ctrl-A twice.

If you want to exit the connection to the serial device type Ctrl-A, then Q. This will return you to your RouterOS console.

Do not connect to devices at an incorrect speed and avoid dumping binary data.


  • No labels