Skip to content

Communication modes

André Wagner edited this page Mar 26, 2023 · 6 revisions

UART

This is the simplest communication mode. It connects the terminal to the computer via a pair of TX/RX wires. Options such speed or parity can be set on the terminal. The speed can be up to 1 Mbps (1000000 bps).

SPI

Connects via MOSI/MISO/SCK/CS wires.

The terminal always acts as a master. This means that the computer needs to store the data to be sent in a buffer, and be ready to send at the terminal request.

The process starts with the terminal sending its own buffer. During this exchange, the computer can also send its buffer. Anyone that finishes sending their buffer can keep sending 0xff until the other has also finished. The communication only ends when both are sending 0xff.

The communication is started by the terminal at every VSYNC.

I²C

Connects via a pair of SCA/SDL wires.

The terminal always acts as a master. This means that the computer needs to store the data to be sent in a buffer, and be ready to send at the terminal request.

The process starts with the terminal all of it's buffer, finalized by a STOP condition. After that, the terminal opens the connection once again, and the computer sends first the size (16-bits) and then the whole buffer. This ends the conversation.

The communication is started by the terminal at every VSYNC.

TCP/IP

Allows other computers to connect to the terminal remotely. Supports communication via Wi-Fi. The terminal acts as a server, and only one client can connect to the terminal each time.

When the VSYNC signal is enabled (ESC * V), the terminal will send a byte 0xfe at every VSYNC.

Pipes

Allows for communication within the same computer using stdin and stdout. When the VSYNC signal is enabled (ESC * V), the terminal will send a byte 0xfe at every VSYNC.

PTY

PTY - opens a connection to the Linux terminal underneath.

Echo

Echo - it'll just reply the events that it receives. Used for debugging and for sanity checking.

Clone this wiki locally