Table of Contents

Using ATtiny microcontrollers with Arduino on Windows 11

ATtiny microcontrollers such as the ATtiny85 are nice, because they're dirt cheap and can run with no outside components. However, now (in August 2025), there's a lot of outdated docs on programming these on Arduino, so I want to set the record straight: You CAN program these on Arduino IDE 2.x on Windows 11 (as well as other platforms).

Arduino support

Hardware support for a given family of chips on Arduino is called a "core", and the core you want is ATTinyCore. To install it:

Setting up your sketch

Writing the code for the ATtiny series is out of scope, so we'll assume you have a sketch written. If you need one to test, why not the plain "Blink" demo?

Set your "Board" under the "Tools" menu to the appropriate family under "ATTinyCore". You choose not just the chip family, but if it's going to need a "bootloader" (see later on for discussion on that, but for now, I'll assume you're using bare chips with no bootloader, e.g. "ATtiny25/45/85 (No bootloader)").

With that chosen, here are key Arduino settings you'll need. Under the Tools menu:

For the settings marked "Only set on bootloader", these are only configured into the chip if you use the "burn bootloader" option. Some remarks on that: A "bootloader" is special code that helps the device to program itself in the future, e.g. via a native USB connection. I don't mess with bootloaders usually, instead opting to use a separate programmer like the USBasp, since that's much more reliable. HOWEVER, even if you're using a bare chip with no bootloader (e.g. by choosing "ATtiny85 (no bootloader)" as the chip), the "burn bootloader" option will still set low-level settings like those listed above as "fuses" (special permanent registers that set basic operating settings for the chip). Google "attiny fuses" to learn more, or use this ATtiny fuse calculator.

Programming

You can program it several ways. Here's two:

Programming with USBasp

Getting the right USBasp driver

To allow Windows 11 to support USBasp, you need to download Zadig, a tool that associates various open source USB Windows drivers with connected hardware. Hook up your USBasp, run Zadig, select the "USBasp", then set the driver to "libusbK", and hit "install driver".

(Note: In Windows 10, libusb-win32 was recommended, but this doesn't work in Windows 11.)

Hooking up to the chip

If the thing you're programming is a board with a standard 6- or 10-pin programming port, you can just hook it to the USBasp with an appropriate ribbon cable.

If the thing you're programming is a bare ATtiny chip (e.g. on a breadboard), then you should make a breakout cable out of some Dupont wire. You'll need to hook the following signals to your chip based on its pinout. The table below includes my recommended wire colors, plus a mnemonic to remember them.

Signal Color
VCC Red (standard VCC color)
GND Black (standard GND color)
RESET White (reset = blank slate = white)
SCK Yellow (socks, but old and nasty)
MISO Green (miso soup can be green)
MOSI Blue (hey that's a common color we haven't used yet)

(Yeah my mnemonics are dumb/bad, but they work for me)

Initiating programming

In Arduino 2.x, they did a dumb thing, and made the upload button NOT respect the ATtinyCore's setting to use a separate programmer such as USBasp. So you'll need to go to Sketch menu and pick "Upload using programmer" (Ctrl+Shift+U) to initiate programming. If all goes well, your chip should be programmed successfully!