Many of the ATtiny MCUs have no hardware UART limited number of pins. Arduino tiny cores uses the TinyDebugSerial class which is output only, so using serial input requires extra code. I have written a small software serial UART which can share a single pin for Rx & Tx when a simple external circuit is used. To understand the circuit, a tutorial on TTL serial communication may help. When the TTL serial adapter is not transmitting, the voltage from the Tx pin keeps Q1 turned on, and the AVR pin (Tx/Rx) will sense a high voltage, indicating idle state. When the AVR transmits a 0, with Q1 on, Rx will get pulled low indicating a 0. R1 ensures current flow through the base of Q1 is kept below 1mA. When the AVR transmits a 1, Rx will no longer be pulled low, and Rx will return to high state. When the serial adapter is transmitting a 0, D1 will allow it to pull the AVR pin low. With no base current, Q1 will be turned off, and the Rx line on the serial adapter will be disconnected from the transmission. I've written the serial code to work as an Arduino library. Compiled it uses just 62 bytes of flash, and does not require any RAM (there is no buffering). As it is written in AVR assembly, it will support very high baud rates - up to 460.8kbps at 16Mhz. The default baud rate of 115.2kbps is defined in BasicSerial3.h, and can be changed with the BAUD_RATE define. The library defaults to use PB5 for both Tx and Rx. It can be changed with the UART_Tx and UART_Rx defines in BasicSerial3.S. Here's an example sketch to that uses it: #include // sketch to test Serial void setup() { } void serOut(const char* str) { while (*str) TxByte (*str++); } void loop(){ byte c; serOut("Serial echo test\n\r"); while ( c = RxByte() ){ TxByte(c); } delay(1000); } Here's a screen shot of putty running the example: 2020 Update Over the past several years I've written many updated and improved bit-bang UARTs. Instead of the BasicSerial code in this post, I recommend using picoUART. It supports a wider range of baud rates, and the bit timing is accurate to the cycle.