SEEED STUDIO Themed PCB Keychain

by Arnov Sharma in Circuits > USB

400 Views, 3 Favorites, 0 Comments

SEEED STUDIO Themed PCB Keychain

18 (45).gif
19 (42).gif
Capture.PNG
IMG_20220522_213724.jpg

Hey everyone what's up!

So this is the SEEED Studio Themed PCB Keychain that I made, It basically a Blinky board that looks cool when lit up in dark.

I've prepared this project in order to check the Seeed Studio PCB Service, more about that later.

This project contains 12 white LEDs that are all driven by an 8205S mosfet IC and this mosfet IC is controlled by an Attiny13A MCU.

I used Attiny13A in this project because of its cost and availability, it has five usable IO Ports and is available in the SOIC8 Package which was perfect for my application as I wanted to make a small and compact keychain without using any THT component.

As for the Design for this badge, I used SEEED Studio's official logo in it by uploading it to my PCB Cad software and preparing a custom layer with it.

This Instructables is about the whole built process of this keychain so let's get started!

Supplies

05 (60).gif

I've used the following things in this project-

  • Custom PCB Provided by Seeed studio
  • White LEDs 0805 Package x 12
  • 8205S Mosfet IC x 1
  • 10K Resistor 0603 package x 4
  • RED LED 0603 package x 1
  • 1K Resistor 0603 package x 1
  • Attiny13A SOIC8 package x 1
  • 3R6 Resistor 1206 Package x 1
  • Attiny programmer

PCB Designing Process

1.bmp
download (2).png
Capture2.PNG

This project is totally an Art Based project, so for preparing a good-looking PCB Art Keychain we need a cool concept idea which in my case was a glowing logo.

My idea here was to put LEDs in an Upside-down position, their glow would be visible from the TOP side through the soldermask opening I will leave in the shape of seeed logo.

To prepare a custom Soldermask layer from a black and white image of the SEEED Logo, I first converted it into a BMP image and resize it to keep it nice and small.

I then imported it into my OrCad Suite, I had to convert it into BMP as my PCB suit only let BMP image import.

After getting the image imported as a soldermask opening layer, I then move on to preparing the schematic for this project.

SCHEMATIC

SCH_page-0001.jpg
Capture.PNG

Here's what i made.

In total, there are 12 LEDs all connected in parallel with each other, they are all driven by an 8205S Mosfet IC.

This Mosfet IC is then controlled by an Attiny13A, overall power is delivered by a USB Port.

USB PORT on PCB

04 (63).gif
17 (47).gif
16 (49).gif

Here's something super interesting, we can directly prepare a USB on PCB by making four rectangular pads and then add solder wire to each pad in order to increase its thickness as USB Port needs at least a 2mm thick board for conductivity.

Getting PCBs From SEEED Studio

01 (63).gif
02 (64).gif
03 (60).gif

After finalizing the PCB and generating its Gerber data, I send it to SEEED STUDIO for samples.

I received PCBs in a week and their quality was super good considering the rate which was also pretty low.

Seeed Fusion PCB Service offers one-stop prototyping for PCB manufacture and PCB assembly and as a result, they produce superior quality PCBs and Fast Turnkey PCBA within 7 working days.

PCB Quality of this joystick PCB WAS SUPER!

When you prototype with Seeed Fusion, they can definitely provide Free DFA and Free functional tests for you!

Check out their website to know about their manufacturing capabilities and service.

https://www.seeedstudio.com/prototype-pcb-assembly.html

PCB Assembly Process

These are the steps for the main assembly of the SEEED Keychain

  • Solder paste Dispensing Process
  • Pick & Place Process
  • Hotplate Reflow
  • LED Upside down Placement

SOLDER PASTE DISPENSING

06 (59).gif
IMG_0679.JPG

Now the first step is to add solder paste to each component 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 and37% Lead.

Pick & Place Process

IMG_0681.JPG
07 (63).gif

After applying Solderpaste we move on to the next step which is to add components to their assigned location.

I used an ESD Tweezer to place each component in its place.

Hotplate Reflow

08 (59).gif
09 (56).gif
IMG_0682.JPG

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.

LED Upside Down Placement

11 (63).gif
12 (58).gif
13 (58).gif
14 (51).gif
IMG_0683.JPG
  • To solder each led, I first added solder to one side.
  • then we pick and place the LED in its place and melt the solder we just placed and it will hold the led in its place from one side.
  • we then add solder to the other pad and this will secure the led from both sides and the LED will be completely held down on its pad.
  • Now we solder the rest of the LEDs one by one by following the same method.

Precaution here is to not overheat the LED or it will melt, just be quick and use a lower temp like 280 degrees to melt the solder paste or solder wire.

LED Testing

20 (42).gif

After Soldering all the LEDs, we test their continuity with a multimeter set on the Diode checking mode.

we place the probe of the multimeter onto the anode and cathode of any LED.

Because all LEDs are connected in parallel, all LEDs should glow, if any led is not glowing, this means there's a connection error, correct that error and move on to the next step which is to upload code in Attiny13A.

ATTINY13A Programming

wiring_of_attiny_0IUAFuS4D1.PNG.jpeg
IMG_0685.JPG
IMG_0686.JPG

This is the code that I used in this project, it's a Fade sketch that fades D0 of Attiny13 from the least value to the max which is 0-255.

CODE

int led = 0;    //D0     
int brightness = 0;  
int fadeAmount = 5;   

void setup() {
  pinMode(led, OUTPUT);
}

void loop() {
  analogWrite(led, brightness);
  brightness = brightness + fadeAmount;
  if (brightness <= 0 || brightness >= 255) {
    fadeAmount = -fadeAmount;
  }
  delay(100);
}


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_MCUdude_MicroCore_index.json
  • Open 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 straightforward 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

Wire the Attiny13 with Arduino in the above way. (also right after uploading ISP Sketch to your Arduino, do not forget to add a 10uf Cap between Reset and GND pins of your Arduino board)

Instead of using an Arduino Nano and a breadboard for this job, I will use my DIY Attiny Programmer which I made for flashing the Attiny or Atmega MCUs.

Check out more about this Programmer here- https://www.instructables.com/Multiple-ATtiny8513A-Programmer/

  • connect the Board to the Arduino as ISP Setup in the above wiring config
  • choose the right port, right programmer (Arduino as ISP), and hit Burn Bootloader
  • wait for a few seconds, you will get done burning the bootloader message.
  • Now Open the sketch that you want to upload to this Attiny
  • Go to the Sketch menu and select Upload using the programmer.
  • and your Sketch will get uploaded onto the attiny13.


RESULT

21 (38).gif
18 (45).gif
19 (42).gif

Here's the result of this built and the keychain is working.

This PCB has a hole in the upper section for adding a keychain or we can even add a chain to it and wear it as a fashion accessory.

It can be powered by any USB Port so we can use a power bank or any wall adaptor.

This is it for today guys, thanks Seeed Studio for supporting this project, do check them out for getting PCBs for your projects!

Peace out