Attiny Arcade keychain game kit

Attiny Arcade playing UFO EscapeAll the latest code and pcb files are available on github, go make!

If you want to get in touch about the kit please tweet @webboggles, otherwise you might find that it takes me a long time to reply to comments here.

Well you aren’t going to run DOOM on an 8K chip but its still capable enough to run some classics. See the Github repos, there are a few there.

New Board!
I am using OSH Park to manufacture the PCBs and they are doing a great job! Purple solder mask and immersion gold finish, don’t they look good?

You will also notice that I cut a hole to fit the 15mm piezo element flush with the board. This makes it so much neater.

img_3415 img_3416


Dev repos

Ilya’s git repo:
Andy’s git repo:

Other resourses
Assembly step by step .pdf
UFO Escape.ino
Canond DSLR Remote.ino (add 940nm IR LED to piezo pads)
PCB printable .pdf Please note the sck and scl pins in this older design are swapped around, you will need to amend these in the sketch if the screen doesn’t turn on.
3D printable snap case .stl files or on Thingiverse
SSD1306 library courtesy of Tinusaur

Everything above in one Google Drive folder

Update 2017/01/13: Andy Jackson refactored game code to fit two games in one cketch (
Update 2017/01/22: Awesome “Space Attack” game by Andy Jackson:
Update: 2017/02/26: Andy’s repo (Wren Rollercoaster, Space Attack, UFO Stacker, Bat Bonanza)

The kit:

For soldered componenent placement refer to the assembly .pdf

New assembly video using the latest revision board.

DIY pcb assembly video:

Previous posts:
Attiny85 UFO Escape Keychain Game
Attiny85 Breakout Keychain Game

Older instructions that you may find useful:

IMG_0193b The new snap case has been updated to allow enough height for the screen header as well as a factory made CR2032 battery holder.

The buttons have been concealed to prevent spontaneous button presses inside bags and pockets.

Photo of different parts if you are sourcing your own components with descriptions below.


Title Quantity
1. 3D Printed Snap Case 1
2. Printed Circuit Board
download printable pdf
3. SSD1306 OLED Screen 1
4. 4 pin 2.54 female header 1
5. CR2032 Battery 1
6. CR2032 Battery Holder 1
7. Pulldown resistor 2
8. Pushbutton 2
9. Attiny85 1
10. DIP8 socket 1
11. Piezo speaker 1
 12.  10uf capacitor (used with arduino when programming Attiny85)



Please note that if you are sourcing the parts yourself, you will need to program the Attiny85 with the 8 mhz internal clock bootloader and then the game sketch before it will work.

You can download and print the case through 3D Hubs, Shapeways or Sculpteo.

A great guide on programming the Attiny85 with Arduino IDE can be found on the high-low tech group’s website:

To flash the Attiny85 you will need the updated game code linked above
as well as the screen library from the tinusaur project: (put the files into the Arduino Libraries Folder), unless of course you want to write your own game for the device in which case I would love to see what you create!


Some more photos

img_3420 img_3412

Note the case may need extra finishing (ie sanding, filing, a brush with acetone to gloss it up etc. be safe)

img_3436 img_3435 img_3433

32 thoughts on “Attiny Arcade keychain game kit”

  1. Hi Ilya,
    I’m very interested in your project. Congratulations for the hard work you done here. I’m working in a fork of your project in GitHub, trying to refactor some code and inspiring my self to develop new games. All depends in my free time, which is very spare 🙁

    So, looking into your schematic, I think the pull-down resistors are not placed properly. May be they should be placed connecting the input pin to GND through the resistor when the button is inactive, however in the schema they are placed connecting VCC to GND through the resistor.

    1. Thanks for pointing that out Paco, I was playing with KiCAD one day and made the schematic, obviously wasn’t concentrating. I’ve fixed the image.

      I want to make snake next, I think it could be quite fun, but also don’t have much time at the moment…

    1. Call it what you like, send me photos of what you make with it!

      It’s going to be challenging to get the attiny working with more buttons, try analog read with different resistor values for each button.

  2. The interwebs say it’s spelled Ouroboros.

    I had the MCU and display laying around so I rebuilt this on a piece of proto board as soon as I saw it. I’ve lost many hours with UFO Escape already. Great stuff, thanks.

    1. Glad you liked the game! Picked “oroboros” as shorter and less common name. According to wikipedia “A simplified English spelling of oroboros is encountered occasionally in the 20th century.” but who cares right? =)

    1. Thanks Brian, I am sorry but I will not be releasing the final board designs at this point. You can however make your own board using the printable PDF and the laser printer & iron transfer method.

  3. Olá,

    Your project is very good.

    I’m having trouble, any chance of running on the SSD1306 128×64 OLED screen with the following pins?

    OLED_MOSI 9 // => SDA
    OLED_CLK 10 // => SCK = SCL
    OLED_DC 11 // => A0 = D / C
    OLED_CS 12 // => does not use
    OLED_RESET 13 // => Reset

  4. H,

    I’m having trouble, any chance of running on the SSD1306 128×64 OLED screen with the following pins?

    OLED_MOSI 9 // => SDA
    OLED_CLK 10 // => SCK = SCL
    OLED_DC 11 // => A0 = D / C
    OLED_CS 12 // => does not use
    OLED_RESET 13 // => Reset

    Your project is very good.

    1. Hi, not sure what you are trying to do but the 4 pin screen (VCC, GND, SCL, SDA) is I2C protocol however MOSI is an SPI protocol pin so I’m guessing no. What microchip and what screen module are you using?

  5. Hi!
    I need to connect the temperature sensor mlx90614 and the oled 128×32 i2c screen to the attiny85 processor. Could you pleeeeeease help me?

  6. I was getting garbage in my Oled i2d display but I finally succeeded grounding CS pin and connecting a 100nF cap and a 10K ohm resistor between VCC and RES pin. I built a prototype in a breadboard and connected a CR2032 button cell but the game consumes too much juice. I’ve read in the comments that it should last months but how in the world did you managed to do that? ATtiny85 consumes at least 3mA (@2.7V and 8 Mhz) and CR2032 cell is able to deliver 0.2mA continuously (cell is able to supply more current in pulse discharge mode, which is not our case). If we add the display plus the piezo buzzer, cell’s voltage drops fast to the point that the oled shuts down (though connecting a cap in parallel helps). I’m afraid I will have to connect two AA 1.5 batteries for this project (or better a 3.7V li-ion rechargeable battery). Did anyone had the same problem or can shine some light of what I’m doing wrong?

    1. Hi Carlos, it sounds like you are using a different model screen, there is no CS pin on the screens used with this kit (surprised you got it working with an SPI screen)

      The “months” was probably referring to sleep mode, you will probably get a couple of days of continuous operation.

      Please share your schematic and photos of the bradboard.

Leave a Reply

Your email address will not be published. Required fields are marked *