Skip to the content
2 layers50.8 × 139 mmATMegaSpin, the printed circuit board in 3D

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

8

README

README.md

[!WARNING]
Hey! This project is still a Work in Progress. Files, instructions, and other stuff might change!

Table of contents

  1. Goal of the game
  2. PCB Pictures
    1. Front
    2. Back
  3. Schematics
    1. Electrical schematic
    2. PCB schematic
    3. Mechanical schematic
    4. ATMega328P Pinout
  4. GERBER - 3D printed Files - Other Hardware stuff
    1. 3D Printed parts
    2. PCB GERBER File
    3. Electrical parts
  5. Installation
    1. Burn bootloader
      1. Needed tools
      2. Circuit
      3. Pinout
      4. Upload ISP sketch
      5. Burn bootloader
        1. Installing Mini-core
        2. Select your device, crystal and programmer and burn bootloader
    2. Upload sketch from programmer
  6. Contributions
  7. 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

Front PCB view

Back

Back PCB view

Schematics

Electrical schematic:

Electrical schematic

PCB schematic:

PCB schematic

Mechanical schematic:

Mechanical schematic

ATMega328P Pinout:

Arduino PinoutElectrical PartATMega328 PinoutATMega328 PinoutElectrical PartArduino Pinout
ResetNot used128Not usedA5
D0 RXNot used227Not usedA4
D1 TXNot used326Not usedA3
D2LED 1425Not usedA2
D3Button Pin 4524Not usedA1
D4LED 2623Not usedA0
VCC+5V722GNDGND
GNDGND821Not usedAref
CrystalCrystal920Not usedAvcc
CrystalCrystal1019LED 10D13
D5Not used1118LED 9D12
D6LED 31217LED 8D11
D7LED 41316LED 7D10
D8LED 51415LED 6D9

GERBER - 3D printed Files - Other Hardware stuff

3D Printed parts:

3D Printed parts

PCB GERBER File:

PCB GERBER File

Electrical parts:

N°PRODUCTS DETAILSSUPPLIERQUANTITYPRICETOTAL
1ED3050-5-ND‎
ED281DT‎
CONN IC DIP SOCKET 28POS TIN
Digikey5Fr. 0.40000Fr. 2.00000
2ATMEGA328P-PU-ND‎‎
ATMEGA328P-PU‎
IC MCU 8BIT 32KB FLASH 28DIP
Digikey5Fr. 2.60000Fr. 13.00000
32223-TS02-66-60-BK-160-SCR-D-ND‎
TS02-66-60-BK-160-SCR-D‎
6 X 6 MM, 6 MM ACTUATOR HEIGHT,
Digikey5Fr. 0.09000Fr. 0.45000
450-ECS-160-18-4X-CKM-ND‎
ECS-160-18-4X-CKM‎
CRYSTAL 16.0000MHZ 18PF TH
Digikey5Fr. 0.41000Fr. 2.05000
5BC1005CT-ND‎
‎K220J15C0GF5TL2‎
CAP CER 22PF 50V C0G/NP0 RADIAL
Digikey10Fr. 0.15500Fr. 1.55000
6BS-7-ND‎
BS-7‎
BATT HLDR COIN 20MM 1 CEL PC PIN
Digikey10Fr. 0.84100Fr. 8.41000
7CF18JT200RCT-ND‎
‎CF18JT200R‎
RES 200 OHM 5% 1/8W AXIAL
Digikey50Fr. 0.02260Fr. 1.13000
8‎516-1325-ND‎
‎HLMP-4700‎
LED RED DIFFUSED T-1 3/4 T/H
Digikey50Fr. 0.34600Fr. 17.30000
9MFS101D-6-ZDigikey5Fr. 1.52000Fr. 7.60000
10PCB JLCPCBJLCPCB5Fr. 1.84000Fr. 9.20000
Aprox. TotalFr. 62.69
Aprox. Total/pcsFr. 12.54

Prototype

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."

Memory Map 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

Arduino ISP Programmer circuit

Pinout

Arduino Programmer PinArduino Target Pin
+5 [V]+5 [V]
GNDGND
D10Reset
1111
1212
1313

Upload ISP sketch

Once the circuit is connected, follow the following instructions to apply the ISP programming sketch on the Arduino programmer:

  1. Open the Arduino IDE and from the menu File > Examples > 11.ArduinoISP > ArduinoISP, load the sketch.
  2. Select the proper board (I.E.: Arduino Uno) and upload the sketch

Burn bootloader

Installing Mini-core
  1. 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
  2. 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
  1. Select the relevant device, crystal and programmer options under the ‘tools’ menu.
  2. Under board, select ‘ATmega328’ (or whichever chip you’re using).
  3. Under clock, select the frequency of your external clock. It should be written in block capitals on the top of the crystal’s casing.
  4. Set your programmer as ‘Arduino as ISP’
  5. 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.

  1. Fork the project.
  2. Create your feature branch: git checkout -b feature/AmazingFeature.
  3. Commit your changes: git commit -m 'Add some amazing feature'.
  4. Push to the branch: git push origin feature/AmazingFeature.
  5. Open a pull request.

License

This project is licensed under the AGPL-3.0 license - see the LICENSE file for details.

Parts

31
QtyValueFootprintReferences
11CF18JT200RCF18JT200R:STA_CF18_STPR1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11
10HLMP-4700HLMP_4700:LED_HLMP-47XX_BRALED1, LED2, LED3, LED4, LED5, LED6, LED7, LED8, LED9, LED10
2BS-7BS_7:BS-7_MPDB1, B2
2K220J15C0GF5TL2K220J15C0GF5TL2:CAP_K-SERIES_15-L2_VISC1, C2
2MountingHole_2.2mm_M2MountingHole:MountingHole_2.2mm_M2H, h2
1ECS-160-18-4X-CKMECS_160_18_4X_CKM:XTAL_ECS-160-18-4X-CKMY1
1ED281DTED2181DT:OST_ED281DTX1
1MFS101D-6-ZLibrary:MFS101D-6-Z_NDCSW1
1TS02-66-60-BK-160-LCR-DTS02:SW_TS02-66-60-BK-160-LCR-DS1

Similar boards

  • 2 layers140 × 90 mmJulio cool clock, the printed circuit board in 3D

    Julio cool clock

    jaramirez10/jramirez-clock

    My custom PCB clock!

    60 parts
  • 2 layers99 × 99 mm2nd mainboard pcb, the printed circuit board in 3D

    2nd mainboard pcb

    Fiberprinter/fiberprinter-electronics

    Fiberelectronics Control every pulse, master every micron

    132 parts4
  • 2 layers80 × 70 mmJli2555-tin can, the printed circuit board in 3D

    Jli2555-tin can

    anauseam/JLI-2555-tin-can-mic

    JLI-2555 Microphone preamplifier

    26 partsCERN-OHL-P-2.0
  • 2 layers50.1 × 61 mmDiseño v2, the printed circuit board in 3D

    Diseño v2

    javierlopezfraile/iot_alfa

    42 parts
  • 2 layers29.8 × 46.2 mmDaisy Board Display, the printed circuit board in 3D

    Daisy Board Display

    williamthayer/DaisyBoards

    A full repo of all the design files for each DaisyBoard

    52 parts1
  • 2 layers55 × 86 mmLED Matrix Display Badge, the printed circuit board in 3D

    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).