Close
0%
0%

Custom PCB with a Festive Feel

This project is a simple introduction to designing, building and coding a simple custom PCB with a festive feel.

Similar projects worth following
The PCB was designed to be built up at a Norwich Hackspace Festive gathering (https://norwichhackspace.org) to give members with a desire to learn about electronics, soldering and Arduino some practical experience with guidance from more experienced members.

This write-up will detail how the custom PCB shape was designed and then will detail how to assemble the components and program the microcontroller.

The Arduino UNO has an ATmega328 microcontroller at it's heart with a variety of components added to the PCB to make it very user friendly. This festive PCB in essence is a very stripped down Arduino UNO with many of the components removed such as the Crystal Oscillator, Power Jack, USB programming connectors, voltage regulators etc.... But don't worry it can still be programmed as an Arduino as I will explain later.

I tried to keep this project really simple to execute because it needed to be accessible to all the members of our hackspace.  I have shared how I built the custom shaped PCB using simple to use open source software packages. This stage is no necessary is you just want to order the PCB and solder in all the components and program the microcontroller.

The PCB can be used as a desk or table decoration with the 2 x AAA battery pack or as a piece of festive jewellery with the smaller lighter 2 x CR2032 battery pack.

XmasBlink5.ino

Another example

ino - 1.25 kB - 12/01/2023 at 19:16

Download

XmasBlink.ino

Massively over simplified example

ino - 866.00 bytes - 12/01/2023 at 19:16

Download

XmasBlink4.ino

Example blinking LEDs

ino - 1.13 kB - 12/01/2023 at 19:15

Download

xmas_pcb_rev1.zip

x-zip-compressed - 82.73 kB - 12/01/2023 at 19:11

Download

Breadboard1-5-x.zip

Hardware config file

x-zip-compressed - 1.03 kB - 12/01/2023 at 19:06

Download

View all 7 files

  • 1 × Custom PCB
  • 1 × ATMega328P Microcontroller
  • 7 × 5mm LEDs
  • 7 × 470 ohm Resistors
  • 1 × 10k ohm Resistor For reset pull up

View all 7 components

  • 1
    Designing the Custom PCB

    To design the PCB I used two software packages, Inkscape and Fritzing. Inkscape was used to design the custom shape of the PCB and Fritzing was used add the components and connecting wire traces.

    I have embedded a YouTube video explaining in detail how to go from creating a custom shape in Inkscape to a final PCB design in Fritzing.

    I've included the files of the completed PCB so you can order from a company such as JLC PCB or PCBway.

  • 2
    Adding The Barebones ATmega328 To The Arduino IDE

    Because we are using the absolute bare minimum of components to run the Atmega328 microcontroller it is not included in the Arduino IDE as standard. If you are using the Arduino IDE to upload your code then you will need to add this board to your IDE called ATmega328 on a breadboard (8MHz Internal Clock). This is because to run the ATmega328 microprocessor without an external clock signal the microprocessor needs a different "bootloader" to that of the Arduino UNO. Basically it sets up the internal fuses inside the microcontroller in a different way and tells it to use the it's internal 8MHz clock as opposed to the external clock signal.

    The hardest part of this project for most people is adding the ATmega328 on a breadboard (8MHz Internal Clock) to your Arduino IDE.

    There is a fantastic Arduino tutorial on how to add the ATmega328 on a breadboard (8MHz Internal Clock) to your Arduino IDE on this link - From Arduino to a Microcontroller on a Breadboard | Arduino Documentation.

    The instructions for adding the ATmega328 on a breadboard (8MHz Internal Clock) are as follows:

    1. Download (from the link above) the hardware configuration for the IDE version you are using: breadboard-1-6-x.zip, Breadboard1-5-x.zip or Breadboard1-0-x.zip. The configuration you use will depend on which IDE you use, I use 1.8.13 and found breadboard-1-6-x.zip worked for me.
    2. Create a "hardware" sub-folder in your Arduino sketchbook folder (whose location you can find in the Arduino preferences dialog). If you've previously installed support for additional hardware configuration, you may already have a "hardware" folder in your sketchbook.
    3. NOTE: I found I actually had a hardware folder in C:\Program Files (x86)\Arduino which was different to the Arduino tutorial and I added and unzipped breadboard-1-6-x.zip to this location.
    4. If you created a "hardware" folder in your sketch book move the breadboard folder from the zip archive to the "hardware" folder of your Arduino sketchbook.
    5. Restart the Arduino software.

    Once you have completed the above steps you should see "ATmega328 on a breadboard (8 MHz internal clock)" in the Tools > Board menu. You will need to select this option to upload your code.

  • 3
    Adding The Components & Soldering

    When I solder the components to a PCB I usually start with the lowest components (such as the resistors) and then work up to the highest components (the LEDs) as it makes it easier. The order I soldered the components was:

    1. 7 x 470 ohm LED resistors on the front.
    2. 7 LEDs on the from.
    3. 1 x 10k ohm resistor on the back.
    4. The Microcontroller socket on the back.
    5. The battery pack power leads.

    On the front of the PCB all the resistors are 470 ohm and need to be positioned in there holes. Once I've pulled the leads through I bend them outwards at 45 degrees to stop the resistor falling out of the PCB. I then solder all the leads in place and trim off the excess lead.

    To solder the connection remember to heat the connection of the PCB and the lead and then feed in just enough solder to make a neat joint. Then pull the soldering iron away and let the joint cool making sure not to move it.

    The resistors were designed into the PCB to look like little candy canes :) The resistors are there to limit the current going to the LEDs and prevent it from becoming damaged and failing. They also mean your battery can last longer. When you place the resistors on the PCB in doesn't matter which way round they go. The 10k ohm resistor on the back is to prevent the microcontroller resetting by holding pin 1 high.

    The LEDs are a diode which means current can only go through them in one direction so it's very important they are put in the correct way round. An LED has two wires from it, usually called legs, and one is longer than the other. the Long leg goes to the positive and the short leg goes to the negative. If you look carefully you will see that the LEDs are mounted in the semi-circles on the PCB. The flat part of the semi-circle marks the position of the short LED leg.

    After I soldered in all the LEDs I then flipped the PCB over and soldered in the 10k ohm resistor.

    A really useful tip for soldering components to a PCB is to place them in the correct position and then hold them there temporarily with blue tack. This enables you to turn the PCB upside-down without all the components falling out. This is how I soldered the microcontroller socket.

    When you finally solder the battery pack power leads ensure the red wire goes to the positive terminal and the black wire goes to the negative terminal.

View all 6 instructions

Enjoy this project?

Share

Discussions

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates