The ATtiny85 is a small 8-bit microcontroller designed for simple control tasks where space and power use matter. It combines memory, timers, analog input, and serial communication in an 8-pin package. This article provides detailed information on its specifications, pinout, internal structure, power and clock settings, programming, circuits, and common issues.

ATtiny85 Overview
The ATtiny85 is a compact 8-bit microcontroller designed for simple control tasks where space, power consumption, and component count must be kept low. Its 8-pin form factor helps reduce circuit size, wiring complexity, and system cost while still providing basic control functionality.
Despite its long presence in the market, the ATtiny85 remains widely used due to its stability, strong documentation, and compatibility with common development tools. It operates across a broad voltage range and supports multiple clock options, making it suitable for compact, low-power designs that require reliable and predictable behavior.
ATtiny85 Technical Specifications
| No. of Pins | 8 |
|---|---|
| CPU | RISC 8-Bit AVR |
| Operating Voltage | 1.8 to 5.5 V |
| Program Memory | 8K |
| Program Memory Type | Flash |
| RAM | 512 Bytes |
| EEPROM | 512 Bytes |
| ADC Number of ADC Channels | 10-Bit 4 |
| Comparator | 1 |
| Packages | PDIP (8-Pin) SOIC (8-Pin) TSSOP (8-Pin) QFN/MLF (20-Pin) |
| Oscillator | up to 20 MHz |
| Timer (2) | 8-Bit Timers |
| Enhanced Power on Reset | Yes |
| Power Up Timer | Yes |
| I/O Pins | 6 |
| Manufacturer | Microchip |
| SPI | Yes |
| I2C | Yes |
| Watchdog Timer | Yes |
| Brown out detect (BOD) | Yes |
| Reset | Yes |
| USI (Universal Serial Interface) | Yes |
| Minimum Operating Temperature | -40 C |
| Maximum Operating Temperature | 125 C |
ATtiny85 Pinout Configuration

| Pin | Name | Main Functions |
|---|---|---|
| 1 | PB5 | RESET, GPIO (if fuse changed) |
| 2 | PB3 | GPIO, ADC |
| 3 | PB4 | GPIO, ADC |
| 4 | GND | Ground |
| 5 | PB0 | GPIO, PWM, MOSI |
| 6 | PB1 | GPIO, PWM, MISO |
| 7 | PB2 | GPIO, ADC, SCK |
| 8 | VCC | Power supply |
The ATtiny85 is available in PDIP-8 and QFN/MLF-20 packages. Both share the same internal circuitry, but the pin arrangement differs. The PDIP-8 package exposes only basic pins and is easier to use in basic circuits, while the QFN/MLF-20 package includes additional pins marked as not connected.
Most pins support multiple functions. A single pin can act as a digital input or output, read analog signals, generate PWM output, or support serial communication. This multifunction design allows the ATtiny85 to remain small while offering flexibility. The RESET pin can also be configured as a pin by changing fuse settings, though this removes external reset capability.
ATtiny85 Block Diagram

The ATtiny85 is built around an AVR processing core that executes instructions stored in Flash memory. SRAM is used for temporary data during operation, while EEPROM stores non-volatile data that must be retained when power is removed. The program counter, stack pointer, and registers manage instruction flow and data processing.
Timing functions are handled by two internal 8-bit timers and a watchdog timer. The watchdog improves reliability by resetting the device if normal program execution stops. An internal oscillator provides the clock signal, and centralized timing control synchronizes all internal modules.
Input and output operations are managed through port registers connected directly to the external pins. The device also integrates analog circuitry such as the ADC and comparator. All internal blocks are linked through shared data paths, allowing efficient communication between memory, processing logic, and I/O.
ATtiny85 Power, Clock, and Fuse Settings
• The ATtiny85 includes an internal RC oscillator, allowing operation without external clock components.
• External clock sources or crystals may be used when higher timing accuracy is required.
• Fuse settings control the clock source, startup delay, brown-out detection level, and RESET pin behavior.
• Operating at lower clock speeds reduces power consumption and electrical noise.
• Brown-out detection improves stability at low supply voltages but slightly increases current draw.
ATtiny85 GPIO Limits and Safe Operation
• GPIO pins are intended for signal control and must not supply power to external loads.
• LEDs connected to GPIO pins require current-limiting resistors to prevent damage.
• Motors, relays, and other high-current devices must be controlled using external transistors or MOSFETs.
• Internal pull-up resistors can be enabled to simplify button and switch connections.
• All GPIO voltages must remain within specified limits to avoid permanent damage.
ATtiny85 ADC and Analog Capabilities
| Feature | Description |
|---|---|
| ADC resolution | 10-bit |
| Input channels | Up to 4 |
| Reference options | VCC or internal reference |
| Special mode | ADC Noise Reduction sleep |
The ATtiny85 features a built-in analog-to-digital converter that measures changing voltage levels and converts them into digital values. Measurement quality depends on a stable reference voltage, clean power connections, and proper signal routing. Using the ADC Noise Reduction sleep mode helps lower internal noise during conversion, which improves reading consistency and overall reliability.
ATtiny85 Serial Communication with the USI
The ATtiny85 supports serial communication through a Universal Serial Interface (USI). This flexible interface can be configured through firmware to operate in SPI mode or support I²C-style communication. By using a single shared hardware block, the device maintains a compact size while still enabling basic data exchange.
Because the USI relies heavily on software control, careful timing management is required. It is suitable for simple and low-speed communication tasks but offers fewer automation features than dedicated SPI or I²C peripherals found in larger microcontrollers.
ATtiny85 Programming Through the Arduino IDE

• The ATtiny85 can be programmed in the Arduino IDE after installing an ATtiny-compatible core.
• Programming is done using a USB programmer or an Arduino set up as an ISP.
• Board settings in the Arduino IDE must match the selected clock speed and operating voltage of the ATtiny85.
• PINs used in code are different from the physical pin layout, so they must be checked carefully before wiring.
Minimal Reliable ATtiny85 Circuit

This circuit uses only the basic components required for stable operation. The VCC and GND pins supply power, allowing the internal logic to function correctly. The internal oscillator controls timing, so no external clock components are required.
An LED connected through a 47 Ω resistor demonstrates output control while protecting both the LED and the GPIO pin. The RESET pin remains accessible for reprogramming or restarting the device. With very few external components, this setup provides a simple and reliable foundation for basic applications.
ATtiny85 Common Issues and Quick Checks
| Problem | What to Check or Fix? |
|---|---|
| Code upload fails | Check ISP wiring and confirm the RESET fuse setting |
| Incorrect timing | Verify the selected clock source and fuse configuration |
| Unstable ADC readings | Improve grounding and add proper decoupling capacitors |
| Communication errors | Review USI setup and timing settings |
| Overheating pins | Lower load current and use external driver components |
Conclusion
The ATtiny85 brings together core control features in a very compact form. Its specifications, pin functions, internal blocks, and power settings explain how it operates in real circuits. With proper GPIO handling, ADC use, serial setup, and a minimal circuit, the ATtiny85 can be understood clearly and applied in stable, low-power designs.
Frequently Asked Questions [FAQ]
How much power does the ATtiny85 use?
Power use depends on the supply voltage, clock speed, and active features. Lower clock speeds and disabling unused peripherals reduce current consumption.
Does the ATtiny85 need an external clock?
No. The ATtiny85 has an internal RC oscillator and can operate without external clock components. An external clock is only needed for higher timing accuracy.
Can the RESET pin be used as a normal I/O pin?
Yes. The RESET pin can be configured as a GPIO using fuse settings. This disables standard ISP programming and requires high-voltage programming to reprogram the device.
Can the ATtiny85 drive motors or relays directly?
No. ATtiny85 GPIO pins are for signal control only. Motors and relays must be driven using external transistors or MOSFETs.
Why are ATtiny85 ADC readings unstable?
Unstable ADC readings are usually caused by power noise or poor grounding. Adding proper decoupling capacitors and using ADC Noise Reduction mode improves stability.