

Mage is my handheld ATTiny85 gaming project
- Size
- 77 × 37 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 26
- Nets
- 16
- Pads
- 79
- Tracks, vias
- 79, 0
- Pours
- 2
- Routed
- Yes
- KiCad
- KiCad 5 (file 20171130)
- Created
- 15 May 2018
- Updated
- 14 Nov 2018
Overview
Mage is an open-source printed circuit board by MalphasWats, from the MalphasWats/Mage repository on GitHub. It is a 2-layer board of 77 × 37 mm with 26 parts on 16 nets, routed with 79 tracks and 0 vias.
It is built around the ATTINY85-15M. Its parts include 9 resistors, 9 switches, 3 capacitors, 2 ICs and 1 diode. It belongs with the AVR (ATmega, ATtiny) boards of this library.
Main components
1README
README.mdMage
Mage is my handheld ATTiny85 gaming project.
I've had this project bouncing around in my head for probably about 3 years now. Initially, I wasn't sure I could get an ATTiny85 to drive an OLED, but then a little while ago I worked out how I could use a set of 8x8 tiles and an index map to keep the SRAM requirements down.
After some furious breadboarding I produced a simple prototype which I transferred to protoboard

This turned out to be an immensely frustrating exercise. I thought I would be happy with a simple little protoboard device that I could make a little case for with acrylic or my 3D printer. I was wrong - this thing only worked for about 30 seconds at a time before one connection or other wobbled and broke. The screen was really flaky and I nearly got put off entirely.

Enter KiCAD - I vaguely remembered a Hackaday series on making a PCB in everything. I downloaded KiCAD and promptly wept for a few days. The learning curve on creating a PCB, not just from scratch, but with absolutely no idea how to even use the software was steep. But after a few days, I took another stab and came up with something not half bad. In the end, one of the hardest parts was getting a board outline imported from a vector app - I used a photo of a GameBoy Advance and drew around it!
I sent the files off to OSH Park and waited.

I was so very pleased with what I'd created, I immediately set off to create a demo game - that's the game contained in this repository. My ambitions grew a little faster than my knowledge of C and I've almost squeezed as much as possible out of the ATTiny85, which is quite satisfying.
The board itself wasn't quite what I had imagined way back when I first had the idea - I'd seen things like the Gamebuino, which are really neat (and small). So I fired up KiCAD again and had another crack.

The second revision was much smaller - I used OpenSCAD to design the outline (3 octagons and a rectangle), which imported straight into KiCAD without any issue. The whole thing is smaller and I decided to use a CR2032 cell to power it, instead of the 3.7v Lipo & charger that I originally put on the board.

There were a few small issues, my first effort at soldering one nuked some of the traces and it took me a while to realise what had caused the problems. I also discovered that the springiness of the battery clip was too much for the small solder pads I'd defined and the battery clip pinged off taking the copper pad with it!
I'm not entirely sure why it still works, but after a bit of hot glue action, the board was working again! I wasn't happy with the layout - the screen overlapped awkwardly and the CR2023 was nice, but didn't actually make it any thinner or smaller than a Lipo, so I returned to the drawing board and produced a Final Version for which I am currently awaiting delivery.

Parts
26| Qty | Value | Footprint | References |
|---|---|---|---|
| 2 | 103 | Capacitors_THT:C_Rect_L7.0mm_W2.5mm_P5.00mm | C1, C2 |
| 1 | 100K | Resistors_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | R9 |
| 1 | 100k | Resistors_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | R5 |
| 1 | 105 | Capacitors_THT:C_Rect_L7.0mm_W2.5mm_P5.00mm | C0 |
| 1 | 10K | Resistors_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | R10 |
| 1 | 10k | Resistors_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | R3 |
| 1 | 20k | Resistors_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | R2 |
| 1 | 220k | Resistors_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | R6 |
| 1 | 3.7v Lipo | Custom Footprints:LiPo_Pads | BT1 |
| 1 | 300k | Resistors_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | R7 |
| 1 | 47k | Resistors_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | R1 |
| 1 | 68k | Resistors_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | R4 |
| 1 | A | Buttons_Switches_THT:SW_PUSH_6mm_h5mm | SW5 |
| 1 | ATTiny85 | Housings_DIP:DIP-8_W7.62mm_Socket | U1 |
| 1 | B | Buttons_Switches_THT:SW_PUSH_6mm_h5mm | SW6 |
| 1 | C | Buttons_Switches_THT:SW_PUSH_6mm_h5mm | SW7 |
| 1 | D_ALT | Diodes_THT:D_A-405_P7.62mm_Horizontal | D0 |
| 1 | Down | Buttons_Switches_THT:SW_PUSH_6mm_h5mm | SW2 |
| 1 | Left | Buttons_Switches_THT:SW_PUSH_6mm_h5mm | SW3 |
| 1 | POWER | Buttons_Switches_THT:SW_DIP_x1_W7.62mm_Slide | SW8 |
| 1 | Reset | Buttons_Switches_THT:SW_PUSH_6mm_h5mm | SW0 |
| 1 | Right | Buttons_Switches_THT:SW_PUSH_6mm_h5mm | SW4 |
| 1 | SSD1306_OLED | Connectors:Wafer_Vertical20x5.8x7RM2.5-7 | U2 |
| 1 | Speaker | Custom Footprints:Generic_Speaker | LS1 |
| 1 | Up | Buttons_Switches_THT:SW_PUSH_6mm_h5mm | SW1 |
Questions
How big is the Mage PCB?
It measures 77 × 37 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Mage use?
26 parts, built around the ATTINY85-15M. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
Where can I download the Mage KiCad files?
From the MalphasWats/Mage repository on GitHub, at the commit this page was made from: the board is board/Mage.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.
Can I use the Mage design in my own project?
Its repository states no licence, so its author keeps all rights: ask MalphasWats before reusing the design.
More from MalphasWats/Mage
2- 2 layers15.5 × 21 mm

- 2 layers23 × 13 mm

Similar boards
- 2 layers50 × 50 mm

T85-with driver and poe
cnlohr/ethertiny
A firmware-only half-duplex 10Base-T implementation for AVRs
41 parts133 - 2 layers23 × 45 mm

- 2 layers41.1 × 110.7 mm

- 2 layers

- 2 layers40 × 30 mm

Test board
Guiimartinho/routeai
LLM-Powered Electronic Design Automation Platform for PCB Design
4 parts13 - 2 layers78.3 × 78.5 mm

50x70 tiny
rallekralle11/Tinyreflow
Inspired by afterearthltd's reflow plate, but using fewer and simpler components.
23 parts10 - 2 layers

MIDIMonkey
aleh/MIDIMonkey
Listens to MIDI messages on one pin and triggers drums on the others
8 parts9MIT - 2 layers46.9 × 41.4 mm
