

ATMegaSpin
A LED game where the player has to press a button at the right moment to reach a specific goal. The challenge of the game lies in the speed at which the LEDs blink, the reduction of this speed with each achieved goal, and the necessity to press the button at the right moment to advance in the game.
- Size
- 50.8 × 139 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 31
- Nets
- 41
- Pads
- 91
- Tracks, vias
- 161, 0
- Routed
- Yes
- KiCad
- KiCad 7 (file 20221018)
- Created
- 14 Nov 2023
- Updated
- 26 Jan 2024
Overview
ATMegaSpin is an open-source printed circuit board by MushuDG, from the MushuDG/ATMegaSpin repository on GitHub, published under the AGPL-3.0 licence. It is a 2-layer board of 50.8 × 139 mm with 31 parts on 41 nets, routed with 161 tracks and 0 vias.
It is built around the CF18JT200R, HLMP-4700 and BS-7, with the K220J15C0GF5TL2, ECS-160-18-4X-CKM and ED281DT among its other parts. Its parts include 11 resistors, 10 diodes, 2 capacitors, 2 switches and 2 crystals. It belongs with the AVR (ATmega, ATtiny) boards of this library.
Main components
8CF18JT200R
插件,D1.7xL3.3mm-400ppm/℃~0ppm/℃ -55℃~+155℃ 125mW 200Ω Carbon Film Resistor ±5% 插件,D1.7xL3.3mm Through Hole Resistors ROHSStackpole Electronics (SEI)Through Hole ResistorsHLMP-4700
插件,D=5.1mm-40℃~+85℃ 1.5mcd~2.3mcd 1.7V~2V 14mW 2mA 5.1mm Round Lens 50° 626nm 635nm Red Red Lens 插件,D=5.1mm LED Indication - Discrete ROHSBroadcom LimitedLED Indication - DiscreteBS-7
SMD-55℃~+105℃ SMD Button And Strip Battery Connector ROHSMPDButton And Strip Battery ConnectorK220J15C0GF5TL2
插件,P=2.5mm2.5mm 22pF 50V C0G ±5% Plugin,P=2.5mm Multilayer Ceramic Capacitors MLCC - Leaded ROHSVishay IntertechnologyMultilayer Ceramic Capacitors MLCC - LeadedECS-160-18-4X-CKM
HC-49S-20℃~+70℃ 16MHz 18pF 40Ω ±10ppm ±10ppm HC-49S Crystals ROHSECSCrystalsED281DT
插件7.62mm 插件 IC / Transistor Socket ROHSOn-Shore TechIC / Transistor SocketMFS101D-6-Z
插件-10℃~+70℃ 10V PC Pin Rectangular Columnar SPDT Through Hole 插件 Slide Switches ROHSNidecSlide SwitchesTS02-66-60-BK-160-LCR-D
插件-30℃~+80℃ 1.6N 12V 50mA 80,000 cycles PC Pin Round Button SPST Through Hole 插件 Tactile Switches ROHSCUITactile Switches
README
README.md[!WARNING]
Hey! This project is still a Work in Progress. Files, instructions, and other stuff might change!
Table of contents
- Goal of the game
- PCB Pictures
- Schematics
- GERBER - 3D printed Files - Other Hardware stuff
- Installation
- Contributions
- License
ATMegaSpin
Goal of the game:
A LED game where the player has to press a button at the right moment to reach a specific goal. The challenge of the game lies in the speed at which the LEDs blink, the reduction of this speed with each achieved goal, and the necessity to press the button at the right moment to advance in the game.
PCB Pictures:
Front

Back

Schematics
Electrical schematic:
PCB schematic:
Mechanical schematic:
ATMega328P Pinout:
| Arduino Pinout | Electrical Part | ATMega328 Pinout | ATMega328 Pinout | Electrical Part | Arduino Pinout |
|---|---|---|---|---|---|
| Reset | Not used | 1 | 28 | Not used | A5 |
| D0 RX | Not used | 2 | 27 | Not used | A4 |
| D1 TX | Not used | 3 | 26 | Not used | A3 |
| D2 | LED 1 | 4 | 25 | Not used | A2 |
| D3 | Button Pin 4 | 5 | 24 | Not used | A1 |
| D4 | LED 2 | 6 | 23 | Not used | A0 |
| VCC | +5V | 7 | 22 | GND | GND |
| GND | GND | 8 | 21 | Not used | Aref |
| Crystal | Crystal | 9 | 20 | Not used | Avcc |
| Crystal | Crystal | 10 | 19 | LED 10 | D13 |
| D5 | Not used | 11 | 18 | LED 9 | D12 |
| D6 | LED 3 | 12 | 17 | LED 8 | D11 |
| D7 | LED 4 | 13 | 16 | LED 7 | D10 |
| D8 | LED 5 | 14 | 15 | LED 6 | D9 |
GERBER - 3D printed Files - Other Hardware stuff
3D Printed parts:
PCB GERBER File:
Electrical parts:
| N° | PRODUCTS DETAILS | SUPPLIER | QUANTITY | PRICE | TOTAL |
|---|---|---|---|---|---|
| 1 | ED3050-5-ND ED281DT CONN IC DIP SOCKET 28POS TIN | Digikey | 5 | Fr. 0.40000 | Fr. 2.00000 |
| 2 | ATMEGA328P-PU-ND ATMEGA328P-PU IC MCU 8BIT 32KB FLASH 28DIP | Digikey | 5 | Fr. 2.60000 | Fr. 13.00000 |
| 3 | 2223-TS02-66-60-BK-160-SCR-D-ND TS02-66-60-BK-160-SCR-D 6 X 6 MM, 6 MM ACTUATOR HEIGHT, | Digikey | 5 | Fr. 0.09000 | Fr. 0.45000 |
| 4 | 50-ECS-160-18-4X-CKM-ND ECS-160-18-4X-CKM CRYSTAL 16.0000MHZ 18PF TH | Digikey | 5 | Fr. 0.41000 | Fr. 2.05000 |
| 5 | BC1005CT-ND K220J15C0GF5TL2 CAP CER 22PF 50V C0G/NP0 RADIAL | Digikey | 10 | Fr. 0.15500 | Fr. 1.55000 |
| 6 | BS-7-ND BS-7 BATT HLDR COIN 20MM 1 CEL PC PIN | Digikey | 10 | Fr. 0.84100 | Fr. 8.41000 |
| 7 | CF18JT200RCT-ND CF18JT200R RES 200 OHM 5% 1/8W AXIAL | Digikey | 50 | Fr. 0.02260 | Fr. 1.13000 |
| 8 | 516-1325-ND HLMP-4700 LED RED DIFFUSED T-1 3/4 T/H | Digikey | 50 | Fr. 0.34600 | Fr. 17.30000 |
| 9 | MFS101D-6-Z | Digikey | 5 | Fr. 1.52000 | Fr. 7.60000 |
| 10 | PCB JLCPCB | JLCPCB | 5 | Fr. 1.84000 | Fr. 9.20000 |
| Aprox. Total | Fr. 62.69 | ||||
| Aprox. Total/pcs | Fr. 12.54 |
Prototype

Installation
Before you can connect the ATMega328P microcontroller to the circuit, it's necessary to burn the bootloader of the chip. Once the bootloader is burned, the program can be uploaded to it.
"To program the bootloader and provide to the microcontroller the compatibility with the Arduino Software (IDE) you need to use an In-circuit Serial Programmer (ISP) that is the device that connects to a specific set of pins of the microcontroller to perform the programming of the whole flash memory of the microcontroller, bootloader included. The ISP programming procedure also includes the writing of fuses: a special set of bits that define how the microcontroller works under specific circumstances."
The Memory Map of an ATmega328P
[!IMPORTANT]
The preceding paragraph and illustration were taken from this documentation: Arduino as ISP and Arduino Bootloaders - Accessed on 2023-11-22
Burn bootloader
Needed tools
To burn the bootloader on the microcontroller you need 2 arduino (In this case I use Arduino UNO) cards. The first will be used as an ISP programmer.
Circuit

Pinout
| Arduino Programmer Pin | Arduino Target Pin |
|---|---|
| +5 [V] | +5 [V] |
| GND | GND |
| D10 | Reset |
| 11 | 11 |
| 12 | 12 |
| 13 | 13 |
Upload ISP sketch
Once the circuit is connected, follow the following instructions to apply the ISP programming sketch on the Arduino programmer:
- Open the Arduino IDE and from the menu File > Examples > 11.ArduinoISP > ArduinoISP, load the sketch.
- Select the proper board (I.E.: Arduino Uno) and upload the sketch
Burn bootloader
Installing Mini-core
- Open up the Arduino IDE and navigate to the preferences (or press ctrl+,). Copy the following URL into the empty field labelled ‘Additional Boards Manager URLs’: https://mcudude.github.io/MiniCore/package_MCUdude_MiniCore_index.json
- Go to the boards manager, which can be found under Tools > Board > Boards Manager. Type ‘minicore’ into the search bar and the relevant entry will appear. Select the latest version and click ‘install’. Once the installation is complete, close the boards manager window.
Select your device, crystal and programmer and burn bootloader
- Select the relevant device, crystal and programmer options under the ‘tools’ menu.
- Under board, select ‘ATmega328’ (or whichever chip you’re using).
- Under clock, select the frequency of your external clock. It should be written in block capitals on the top of the crystal’s casing.
- Set your programmer as ‘Arduino as ISP’
- Burn the bootloader using the ‘Burn Bootloader’ option at the bottom of the Tools menu.
Upload sketch from programmer
Once the bootloader is burned, open up the Spin.ino sketch. From the menu Sketch use the Upload Using Programmer tool to Upload the sketch to the ATMega328P Target.
Then, you can disconnect the MCU from the Arduino target and clip it to your circuit.
Contributions
Contributions to this project are welcome! If you have ideas for improvements or bug fixes, please follow the contribution guidelines.
- Fork the project.
- Create your feature branch:
git checkout -b feature/AmazingFeature. - Commit your changes:
git commit -m 'Add some amazing feature'. - Push to the branch:
git push origin feature/AmazingFeature. - Open a pull request.
License
This project is licensed under the AGPL-3.0 license - see the LICENSE file for details.
Parts
31| Qty | Value | Footprint | References |
|---|---|---|---|
| 11 | CF18JT200R | CF18JT200R:STA_CF18_STP | R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11 |
| 10 | HLMP-4700 | HLMP_4700:LED_HLMP-47XX_BRA | LED1, LED2, LED3, LED4, LED5, LED6, LED7, LED8, LED9, LED10 |
| 2 | BS-7 | BS_7:BS-7_MPD | B1, B2 |
| 2 | K220J15C0GF5TL2 | K220J15C0GF5TL2:CAP_K-SERIES_15-L2_VIS | C1, C2 |
| 2 | MountingHole_2.2mm_M2 | MountingHole:MountingHole_2.2mm_M2 | H, h2 |
| 1 | ECS-160-18-4X-CKM | ECS_160_18_4X_CKM:XTAL_ECS-160-18-4X-CKM | Y1 |
| 1 | ED281DT | ED2181DT:OST_ED281DT | X1 |
| 1 | MFS101D-6-Z | Library:MFS101D-6-Z_NDC | SW1 |
| 1 | TS02-66-60-BK-160-LCR-D | TS02:SW_TS02-66-60-BK-160-LCR-D | S1 |
Similar boards
- 2 layers140 × 90 mm

- 2 layers140 × 90 mm

- 2 layers99 × 99 mm

2nd mainboard pcb
Fiberprinter/fiberprinter-electronics
Fiberelectronics Control every pulse, master every micron
132 parts4 - 2 layers80 × 70 mm

- 2 layers50.1 × 61 mm

- 4 layers103.6 × 114 mm

- 2 layers29.8 × 46.2 mm

Daisy Board Display
williamthayer/DaisyBoards
A full repo of all the design files for each DaisyBoard
52 parts1 - 2 layers55 × 86 mm

LED Matrix Display Badge
0xlama/ATtiny_LED_Matrix_Display_Badge
An ATtiny85 based badge size PCB that can display alphabets and numbers .
32 parts18MIT
Questions
How big is the ATMegaSpin PCB?
It measures 50.8 × 139 mm and has 2 copper layers, 1.6 mm thick.
What parts does the ATMegaSpin use?
31 parts, built around the CF18JT200R, HLMP-4700, BS-7 and K220J15C0GF5TL2. 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 ATMegaSpin KiCad files?
From the MushuDG/ATMegaSpin repository on GitHub, at the commit this page was made from: the board is KiCad/ATMegaSpin/ATMegaSpin.kicad_pcb and its schematic KiCad/ATMegaSpin/ATMegaSpin.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the ATMegaSpin design in my own project?
Its repository publishes it under the AGPL-3.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).