|
OrCad Cadance |
|
|
arduino IDEArduino
|
Goku PCB Badge V2
Hey everyone what's up!
So here's something SUPER cool, A PCB Board themed after Goku from Dragon Ball!
The idea here was to make a simple PCB badge that includes Goku, I placed a few LEDs on this board in such a way that when it is being driven by an Attiny13A, it glows in a chasing pattern and it creates an illusion of Goku firing his famous Kamehameha wave.
For those who dont know who Goku is or what is Kamehameha wave, well Goku is an alien from outer space who was raised by an earthling and he fights bad guys, basically Japanese superman.
This PCB is a Version 2, I already made V1 back in 2021 and it was pretty functional, the only problem with that version was I used ATtiny84 in that, and right now attiny84 is pretty hard to get because of the chip shortage so I modified my design and used an Attiny13A instead.
https://www.pcbway.com/project/shareproject/Goku_PCB_Badge.html
In this article, I'm gonna show you guys the whole built process of this badge so let's get started
MATERIAL REQUIRED
Here's a shortlist of componenets I used in this built-
- Attiny13A
- Custom PCB
- 8205S Mosfets
- 0603 RED LEDs (Blue would look better)
- Coin Cell Holder (SMD)
- 10K Resistance
- 1K Resistance
- USB Type C port
Why Use Attiny13, Why Not Use Some Other MCU
I selected ATtiny13 for this project for a simple reason, it's powerful enough to run a simple chaser switch that utilizes 5 output pins. it's also cheap and easy to program and widely available.
The ATTINY13-20PU is an 8-bit high-performance low-power AVR RISC-based Microcontroller that combines 1kB ISP flash memory, 64B SRAM, 64B EEPROM, a 32B register file, and a 4-channel 10-bit A/D converter. The device supports a throughput of 20 MIPS at 20MHz and operates between 2.7 to 5.5V.
It's made by Microchip now and it's best for applications like driving a bunch of stuff which is what I'm doing in this project.
https://www.microchip.com/en-us/product/ATtiny13A
As for using some high-power MCU like an Arduino board, it will work better but the problem would be the size and form factor. It would also be overkill to use a full-fleshed MCU just for driving a couple of leds.
DESIGN
Schematic
The design of this PCB Badge is pretty simple and straightforward. To drive LEDs I used Mosfet which is controlled by an Attiny13A.
5 Mosfets are being used and each of them drives Four LEDs that are connected in parallel.
I made this Schematic in my OrCad PCB Suite and then converted it into a Board file.
PCB Design
The main attraction of this project was the Goku Image or silkscreen that I have placed on its top side.
What I did was, i search for a black and white goku image and then converted it into a BMP image as my OrCad PCB Suite only imports images in BMP format.
After importing the image of Goku into my PCB design as a Silkscreen layer, I placed all the componenets around the board and finalize the design.
LEDs were placed in the shape of a ball or an orb that is being fired from GOKU's palm.
Getting PCBs From PCBWAY
After Finalizing the PCB, I sent the Gerber data to PCBWAY for samples.
I choose Yellow Soldermask for this project with a white silkscreen.
I've added graphics on the Topside of the PCB to increase the aesthetic of the PCB, Quality of the PCB I received was just awesome.
I have Been using their service for a while and I have to say, it's pretty decent for getting started.
Checkout PCBWAY from here- https://www.pcbway.com/
PCB ASSEMBLY
PCB Assembly includes the following steps-
- Solder paste dispensing
- Pick & place process
- Hotplate Reflow
- TESTING Process
- Adding SMD Coin Cell Holder
SOLDER PASTE DISPENSING
Now the first step is to add solder paste to each components pad one by one.
To Apply solder paste, I'm using a Solderpaste Dispensing Needle with a Wide syringe, and the solder paste I'm using is a regular solder paste consisting of 63% Tin 37% Lead.
PICK & PLACE PROCESS
After applying Solderpaste we move on to the next step which is to add componenets to their assigned location.
I used an ESD Tweezer to place each component in its place.
HOTPLATE REFLOW
After the "Pick & Place Process", I carefully lifted the whole circuit board and place it on my DIY SMT Hotplate.
the hotplate heats the PCB from below up to the solder paste melting temp, as soon as the PCB reaches that temp, solder paste melts and all the components get soldered to their pads, we lift the PCB and then place it on a cooler surface for a little bit, to cool down the heat of PCB.
Testing!
Now before adding the coin cell holder, I tested whether LEDs were soldered properly or not by using a Multimeter set in Diode checking mode.
I connected the positive probe of the multimeter to the positive of the first column and the negative to its negative.
By doing this I tested all five columns, because LEDs are connected in parallel in each column, all leds will glow.
After testing that each LED is soldered properly, I then move on to the next process which was to add an SMD Coin Cell holder on the backside of the PCB.
ADDING COIN CELL
At last, I added an SMD Coin Cell holder on the backside in its assigned location with a soldering iron.
This SMD coin cell holder is the only component in this PCB that is not being added by solder paste.
After this, we just need to flash the ATtiny13 with the main code and power this board up!
CODE
Here's the code that I used.
I made some changes in it which includes changing the pin number as the previous version had a different pinout because it utilizes attiny84 but now I'm using attiny13A.
int pinsCount=5; // declaring the integer variable pinsCount
int pins[] = {0,1,2,3,4}; // declaring the array pins[]
void setup() {
pinMode(0, OUTPUT);
pinMode(1, OUTPUT);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
}
void loop() {
for (int i=0; i<pinsCount; i=i+1){ // chasing right
digitalWrite(pins[i], HIGH); // switching the LED at index i on
delay(70); // stopping the program for 100 milliseconds
digitalWrite(pins[i], LOW); // switching the LED at index i off
}
for (int i=pinsCount-1; i>0; i=i-1){ // chasing left (except the outer leds)
digitalWrite(pins[i], HIGH); // switching the LED at index i on
delay(70); // stopping the program for 100 milliseconds
digitalWrite(pins[i], LOW); // switching the LED at index i off
}
Programming the Attiny13A
We cannot directly program ATTINY13 through any USB, there's a method for programming the Attiny straight from the USB port but I'm not doing that.
Instead, I'll be using the ISP flashing method which will utilize the SPI Pins of attiny13A to burn the bootloader in it and then Flash.
Getting Attiny13 Core Installed on Arduino IDE
Before starting the Flashing process, we first need to download and install the Attiny13 Core files in Arduino IDE. https://github.com/MCUdude/MicroCore
- Open the Arduino IDE.
- Open the File > Preferences menu item.
- Enter the following URL in Additional Boards Manager URLs: https://mcudude.github.io/MicroCore/package_MCUdu...
- the Tools > Board > Boards Manager... menu item.
- Wait for the platform indexes to finish downloading.
- Scroll down until you see the MicroCore entry and click on it.
- Click Install.
- After installation is complete close the Boards Manager window.
Preparing the Arduino as ISP setup
AVRs chips usually come blank, they need to be set up to be Arduino IDE compatible but to do that you need an AVR programmer do to that, for example, a USBASP.
Fun Fact, you could make your own AVR Programer with an Arduino Uno or a Nano board in a very easy step.
- Connect your Arduino board with com port and select Example>ArduinoISP, upload this sketch onto your board.
- After uploading, go to the tools menu and choose the Arduino as ISP option in the programmer section.
- Now for flashing Attiny13A, we can select the Attiny13A in the Board section.
The programming process uses VCC, GND, RST, MISO, MOSI, and SCK.
- 5V of Arduino to VCC of Attiny
- GND to GND
- D10 of Arduino to RST of Attiny
- D11 of Arduino to MOSI of Attiny
- D12 of Arduino to MISO of Attiny
- D13 of Arduino to SCK of Attiny
Unfortunately, my SOIC8 IC Clip was not working properly (one of its pins got broken down) so I had to manually solder six wires to MCU's SPI Pins and then connect it with the Arduino Nano which was flashed with the Arduino as ISP Sketch.
Here's how I flashed the ATtiny13,
- connect the Board to the Arduino as ISP Setup
- choose the right port, right programmer (Arduino as ISP), and hit Burn Bootloaderwait for a few seconds, you will get done burning the bootloader message.
- Now Open the sketch that you want to upload to this AttinyGo to the Sketch menu and select Upload using the programmer.
- And your Sketch will get uploaded onto the Attiny13.
POWER SOURCE
As for the power source for this project, we can power it up with two methods.
- Use CR2032 Coin Cell
- TYPE C Cable connected with a 5V Smartphone charger
RESULT
With a little bit of creativity, we can convert anything into a PCB which was kinda my goal here.
Goku V2 is working properly as it should and now I can finally say that this version is the final one and it doesn't need any further development.
Special thanks to PCBWAY for supporting this project, you can check them out for getting great PCB Service at less cost!
This is it for today folks, thanks for reading this article.
And I'll be back with a new project pretty soon!
int pinsCount=5; // declaring the integer variable pinsCount
int pins[] = {0,1,2,3,4}; // declaring the array pins[]
void setup() {
pinMode(0, OUTPUT);
pinMode(1, OUTPUT);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
}
void loop() {
for (int i=0; i<pinsCount; i=i+1){ // chasing right
digitalWrite(pins[i], HIGH); // switching the LED at index i on
delay(70); // stopping the program for 100 milliseconds
digitalWrite(pins[i], LOW); // switching the LED at index i off
}
for (int i=pinsCount-1; i>0; i=i-1){ // chasing left (except the outer leds)
digitalWrite(pins[i], HIGH); // switching the LED at index i on
delay(70); // stopping the program for 100 milliseconds
digitalWrite(pins[i], LOW); // switching the LED at index i off
}
}
Goku PCB Badge V2
*PCBWay community is a sharing platform. We are not responsible for any design issues and parameter issues (board thickness, surface finish, etc.) you choose.
- Comments(0)
- Likes(2)
- Engineer Jun 22,2022
- (DIY) C64iSTANBUL Mar 29,2022
- 0 USER VOTES
- YOUR VOTE 0.00 0.00
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
More by Arnov Arnov sharma
- WALKPi PCB Version Greetings everyone and welcome back, This is the WalkPi, a homebrew audio player that plays music fr...
- Delete Button XL Greetings everyone and welcome back, and here's something fun and useful.In essence, the Delete Butt...
- Arduino Retro Game Controller Greetings everyone and welcome back. Here's something fun.The Arduino Retro Game Controller was buil...
- Super Power Buck Converter Greetings everyone and welcome back!Here's something powerful, The SUPER POWER BUCK CONVERTER BOARD ...
- Pocket Temp Meter Greetings and welcome back.So here's something portable and useful: the Pocket TEMP Meter project.As...
- Pico Powered DC Fan Driver Hello everyone and welcome back.So here's something cool: a 5V to 12V DC motor driver based around a...
- Mini Solar Light Project with a Twist Greetings.This is the Cube Light, a Small and compact cube-shaped emergency solar light that boasts ...
- PALPi V5 Handheld Retro Game Console Hey, Guys what's up?So this is PALPi which is a Raspberry Pi Zero W Based Handheld Retro Game Consol...
- DIY Thermometer with TTGO T Display and DS18B20 Greetings.So this is the DIY Thermometer made entirely from scratch using a TTGO T display board and...
- Motion Trigger Circuit with and without Microcontroller GreetingsHere's a tutorial on how to use an HC-SR505 PIR Module with and without a microcontroller t...
- Motor Driver Board Atmega328PU and HC01 Hey, what's up folks here's something super cool and useful if you're making a basic Robot Setup, A ...
- Power Block Hey Everyone what's up!So this is Power block, a DIY UPS that can be used to power a bunch of 5V Ope...
- Goku PCB Badge V2 Hey everyone what's up!So here's something SUPER cool, A PCB Board themed after Goku from Dragon Bal...
- RGB Mixinator V2 Hey Everyone how you doin!So here's a fun little project that utilizes an Arduino Nano, THE MIXINATO...
- Gengar PCB Art Hey guys and how you doing!So this is the GENGAR PCB Badge or a Blinky Board which is based around 5...
- R2D2 Mini Edition So here's something special, A Mini R2D2 PCB that speaks ASTROMECH.Astromech is a fictional language...
- C-3PO Blinky Board Hey guys and how you doing!So this is the C3P0 PCB Badge or a Blinky Board which is based around 555...
- WALKPi Breadboard Version Greetings everyone and welcome back, Here's something loud and musical.Similar to a traditional walk...
-
-
kmMiniSchield MIDI I/O - IN/OUT/THROUGH MIDI extension for kmMidiMini
74 0 0 -
DIY Laser Power Meter with Arduino
87 0 2 -
-
-
Box & Bolt, 3D Printed Cardboard Crafting Tools
121 0 2 -
-
A DIY Soldering Station Perfect for Learning (Floppy Soldering Station 3.0)
418 0 1 -
Custom Mechanic Keyboard - STM32
244 0 3