Serial Console

The console

The console of a computer is the interface where boot messages and error messages are displayed.

History

When microcomputers first became a thing, the first kits used lights for output and switches for input. This was similar to early mainframe/minicomputer I/O. These 'front panel' setups typically used LEDs and switches connected to the data and address busses. You loaded address and data manually, pressed a button to store your data, and reapeated until you had loaded your program. When you ran your program the LEDs would flash showing the address and data busses as the program ran. The famous 'blinken lights'.

It is relatively easy to attach a UART to a microcomputer, and very easy to use this for I/O. It was very common in the days before microcomputers came with video out and keyboard input to use a serial console. This would normally be connected to a dumb terminal.

Early microprocessors were not very powerful or fast. The UARTs had small buffers (if they had a buffer), so it was easy to send data faster than the processor could process it. UARTs had hardware handshake to stop senders from transmitting data when the receiving processor was not ready to process it. There were also a bunch of control pins mosty related to modems, largely not used for consoles. The main hardware handshake pins are CTS (clear to send) and RTS (request to send).

Early home microcomputers moved quickly to video output, but business systems continued to use serial consoles for some time.

Servers

Until X86 servers became a thing most servers had no video output but had a serial console. In particular the proprietary Unix systems in the 80s and 90s used serial consoles for their servers and even on their graphical workstations. Often the workstation firmware had a configuration option to select between serial console or graphic console. Sun would default to serial console if no keyboard was detected.

When X86 servers became a thing, the BIOS they used expected a screen and keyboard and had no serial support. There was X86 BIOS firmware with serial support, but it was not common.

Embedded devices

Routers, smart switches, industrial devices commonly retained serial console.

Now with the Arduino and similar embedded devices the serial console is very common. Because even the low power AVR processors have much better performance than the old microcomputers most of them work without handshake and often at high speed.

Most of the small microcomputers aimed at the hobbyist and industrial using ARM CPUs have a 'debug header' that is a serial console, typically using TTL level signals not RS232. The Raspberry Pi is an exception to this. The Pi supports serial console, but it is on the GPIO connector not on a seperate header.

Many Arm based devices, set top boxes, networking devices, tablets, etc, have a debug port accessable. Often this is an unpopulated header. Open up one of these devices and look for four plate through holes. If there is a header like this (sometimes just three holes) it is likely the debug port. Hooking up a TTL serial connection at 115200bps has a good chance of getting a console connection.