Attiny Arcade keychain game kit

Attiny Arcade playing UFO EscapeThere has been a lot of updates to the Attiny Arcade keychain game project most notably the production of kits. I will add all the relevant information to this post and make it sticky.

Buy via webboggles store or ebay.


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.

New games
Well you aren’t going to run DOOM on an 8K chip but its still capable enough to run some classics.

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

30 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?

Leave a Reply

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