This is my make-through for the week's assignment. Grab a cup of coffee!

Game controller with PCB

second version

: Make-through

PROCESS MAP

BACKGROUND (introduction about the project )

In our second iteration for module 1, i will continue from the last step i had at the last module, i will design a game controller but through combining 3 things (3d printing_laser cutting_ electronics components) in order to play with the game controller in two different modes( push buttons, Tilt sensor), i will pass through different stages in order to build this game controller


Objective :

The objective of this module is to make the game controller smaller than the last iteration as i will use this time the PCB instead of Arduino Leonardo to control the game controller, this module is more similar to the medium-fidelity prototype

Final design

OBJECTIVE #1: Design pcb (software stage)

Tools that i used at Design pcb (software stage)

Trial #1: Trying to figure out how to start

  • Step 1: figure out what is pcb

  • Step 2: Download eagle software

  • Step 3: Download spark-fun library

  • Step 4: Searching for the foot print of the components on eagle software

  • Step 5: The sechematic

  • Step 6: do the routing

  • Step 7: export the file

  • Step 8: Download grebv software

  • Step 9: Download gimp software

those are the steps that i went through the process of design PCB on eagle software but of course things never goes smooth like this steps, so below i will go through the mistakes that i wen through

video explaining what is PCB

I faced some trouble in knowing the footprint of each components on eagle, and couldn`t decid excalty which one i have to choose, also the symbly of the schematic, i was nevr know about it leke the symbly of led

but this photo helped me

choosing the right one

the first pcb, have some mistakes

sometime through the routing i cannot coonect the track between two components, so i reached between both of them by adding 0 ohm resistor

iin order to know the size of the pcb, i could

when i replaced the place of saving the folder, it appeared in the place that i mentioned, and doesn't appear in eagle software, so don't replace the place to the saved file

i got inspired from this link to design the PCB of the push button

also here

OBJECTIVE #2: Fabrication of the pcb stage

Tools that i used at Fabrication of the pcb stage

cooper

vacuum

Different size of drill bits

double face tape

Tape

brush

cutter

milling machine

tool to change the bits

_A s this the first time for me to fabricate on the milling machine, so the fab lab specialist was with us to be guide in this process, also i didn't used a Linux software so it was unfamiliar for me to start with, so as it was mentioned in the videos of the AMD how to use the fab lab module and the Linux software and with the help of the fab lab specialist, i started to understand more.

_preparing the pcb, as we have to fix the copper well on the bed of the milling machine but without harm the pcb, so i started to cover the whole copper with the yellow tape then put another layer from the double face tape to let this layer stick with the bed of the machine.

_choose the right bits for drilling, you have to choose the smaller bit to make the holes and the air wire tracks, and the 3mm bit to make the drills hole, then add the parameters in the fab lab module to prepare the bed, and press on the view button to let z axis go down manually so the machine will start.

_observe well that Evey thing is running smoothly, as sometimes the drill of the machine fall down through the fabrication process, if you didn't attach the bits well from the beginning may be it fall down suddenly and run your pcb.

_clean up after finishing the bed from the remaining copper by the vacuum after finishing.

The fabrication process in 3 stages :

the holes of the component the first stage

the air wire tracks the second stage

the profile lines and holes the last stage

what happen through repeating the fabrication process 3 time:

the first pcb

the second pcb with mi

Finally the last PCB, all

the bits for components holes and tracks

the bush buttons PCB after fabrication

the bit for nail`s hole

i used the brush to remove these little tiny white copper to observe that the machine make the holes well.

OBJECTIVE #3: Soldering and wiring stage

Tools that i used at soldering and wiring stage

3.3 V Zener Diode x2


Diode


22 uF Capacitor


male pen header

femal pen header

USB Connector Type B


female-male jumpers


male female jumpers

different values for restorer

2 tilt sensors module

85 attiny and pin header

6 terminals

Soldering Iron


soldering wire

avo meter

sponge for soldering

LED

_this the second time for me to solder a pcb, the first time when we solder a pcb but with ATmega328P before this iteration, so we could be more acsseable for this process, so for me it was really hard to even see the track and put the solder in the right place, it took from me lots of time to put it in the right way.

_ as i export the desgin file od PCB to a gerb file in order of the milling machine fabricate it, also in soldering i have to flip the image to solder from the edit mode in the pcb, so i export the image from egale, click on file> export> image, then choose a high resolution numbers 2000 pixels then press ok.

_I started by soldering the pcb which has the 85 attiny then the second one which has the buttons, since i repated the fabrication process 3 times, so i was replacing the components from the pcb to the second by using the soldering iron, to took off the components and then soldered it again.

_in the second pcb, the hole of the capictur deon`t appeared in the PCB, so t took the drill with a small bit to make the hole, it was hard to drill in the copper, but i made a hole in the PCB with nail and hammer so i could control the drill.

super glue

Failed trials: in the second PCB the the two holes of the USB connector doesn't exist, so i took it of this two pins, and it was really bad idea, as the usb was unstable and when i put or took off the cable from it, the solder eroding and the usb move, so i used the super glue to fix it, and it was bad idea more than the first one, the super glue came on the track of the USB and it isolte the middle of the track, so i tried to solder a wire between
these two tracks to be as a bridge.


Note: you have to solder without adding the components that have the pin header, we already put the pin header in order to not harm this components through soldering.

after fliping (the cooper track)

on eagle software

the game controller pcb with 85 attiny (track side)

the game controller PCB with 85 attiny (the side of the components)

first pcb that i solder with ATmega328P

first pcb that i solder ATmega328P

wiring both pcb with each other

OBJECTIVE #4: design the game controller ( software stage )

Tools that i used at design the game controller ( software stage )

i got inspired for the desgin of the game controller from this picture, i imagined that the glass is the base and the bear is the joints and got inspired with the pcb above for the automatic mode to the game controller.

sketch for the game controller

the picture that i got inspired by

i started by drawing a square with a size bigger than the second pcb with 10 mm, then attached a circle below

adding the fillet for each edge, and the the spaces to hold it in your hand

then doing the offset to add the tabes, i diplicate this base to two sides

draw the ball joint, with a have circle, then using revolve so it will be a 3d ball from this axis i did

creating the cabs from the dimensions of the push button

dimension of push button

dimensions of jumpers

extrude the cabs

tip: some component when i extrude them , they extrude without being attached to each other, and i want to to let them one component so i could print it, so i used the combine and mark on them, so they became one component.

As this cabs will be hold in the game controller by fit, so i need to add a widen hold piece to hold the cabs when i press on it, as the it will jump to up if i press on it down, so i draw a two circle with diffrent sizes, then extrude the bigger one with the normal extrude but the smaller, i extrude it with the two side option.

As to add the holes of the two PCB to the acrylic part, i have to import both of them from eagle software to fusion software, so in order to sync both soft-wares with each other, i had to download both of them with the same account and i Luckily it did that.

choose push to fusion 360

project the places of the buttons of the pcb on the acrylic part

the pcb will be in fusion as a component

Assembly the acrylic joint with the 3d ball

Assembly the components with each other

the spacer 3d part, i made an offest that bigger than the acrylic part then extrude this part and added a spacer inside so the two acrylic parts could involve in it.

Inspiration for joints i used in this project:

the joint that i add to my design

define which fit i will use insted of t slot

i found this link that explain diffrent type of joints

An introduction about different joints

Last adding:

I was trying to add a qr could for my portal on the game controller so any one with the it can access my portal, so i generate the link online, and export in a dxf format then import it to fusion but it imported with lots of points and the software was too heavy and cannot draw with it, so delete this file , and export it to the laser work software directly before fabrication

i generate the QR code from here

OBJECTIVE #5: Digital fabrication for mixed materials stage

Tools that i used at Digital fabrication for mixed materials stage

laser cutting machine

cura software

laser work software

Acrylic sheet

3d printer

PLA filemant

_ After i finished the design on fusion 360, i started to export the 3d parts to an stl file with extension binary and the acrylic parts to dxf files.

_upload the stl file to cura, i was having many file for the 3d parts, so the fab lab specialist recommended for me to print each part alone, so the parts don`t ruin each other, before exporting the files to the gcode format, i have to check the setting, and make sure that the temperature of the filament is 215, then upload the files to the sd card and choose it from the printer.

_upload the dxf files to lasr work software, but this time change the speed and the power to cut the acrylic, so i tried those numbers and its worked.

parameters of cutting acrylic in laser work software

through printing the spacer 3d part

parameters in cura

the whole parts

failed trial: the spacer 3d part was printed in wrong way, the space that the acrylic part will go through to placed in wasn't existed, so i expose the cutter to a heat and cut this parted with it, the final result was not pretty but at least it solved the problem instead of repeating the printing process again as it was a big part.

assembly the joints

after remove the support part

the buttons

before moving the support part

Failed trial: as i mentioned above i added the qr code to my portal, but when i fabricate it on the acrylic it desn`t work, it was working on the software, i searched foe the reason, it maybe because i downloaded the qr code in a png format then convert it to a dxf format so maybe it loss something through this converting process.

OBJECTIVE #6: coding stage

Tools that i used at coding stage

  • Arduino software


Arduino UNO

Female cable

My PCB

As usual this stage is always the hardest one, this time in coding is different from the last that, as i fabricate my own PCB, after soldering the whole components on it, it is still a piece of iron and i cannot give it any order, until i programmed it like the Arduino uno, so in order to make the PCB a smart device and programed, i need to go through three steps and succeed in this three one to programmed my PCB:

1_burn boot loader

2_download the driver

3_write the code

As i mentioned above, i created 3 PCB, so will go through these three steps for each PCB and what happen for each one

First PCB

At the first PCB, i didn't go through the coding stage as i mentioned above, i did a schematic mistakes with it, so even the led couldn`t light up with it, i toked off the components to solder it again to the second PCB

Second PCB

At the second time, i tried to learn about the footprint and the circuit schematic so to not repeat again the same mistake, this time the led is light up, and i could connect the wires of (mosi_miso_reset_sck) from Arduino uno the the pin header of the 85 attiny on mu PCB in order to program my PCB like the arduino.

mistake i was connected the pcb with arduino uno without 10 capacitor

at this moment i was smelling a burning smell, but i couldn't`t recognize from where

before connected the wire from Arduino to the PCB, i have to connect the Arduino the laptop , and opened the Arduino software, choose example from the the file panel, then check which com i am connected with then upload this ISP cod, then go to the burn bot loader step, then connect the between them again.

_through the step of burning the boot loader,I faced some troubles, as i downloaded the Arduino software in (D) folder in my PC, and couldn`t found where is the right place to include the 85 attiny file, so i included one time in the document- library folder, and another time in the folder that downloaded in the (d)_library, and tried the (icluded icon liberary )from the above icon in arduino software but also it couldn`t be applicable, the software couldn`t read the zip folder, so when i tried to burn the loader nothing happend.

_I decided to skip this step, and download the Digistump Drivers , i downloaded from this link, and choose the folder for 64 bit to right click on it to make it run as adminsterator, then Opened the Device Manager from the search bar in my pc, disconnected the cable then reternued back again, i found the lbusb-win32 device under keyboard, but when i opened the show hidden devices from the view panel, then installed the AVR from the manager board in Arduino software, added this link(http://digistump.com/package_digistump_index.json) in preferences , still couldn`t even recognize where is the problem come from.


At end, after all of this mistakes in the schematic and didnot put the 10 capacitor during programming the Arduino, the PCB was still working from the circuit side but not from the coding side, but i thought instead of consuming more time in trying to test where is the error come from , i created another one.

Third PCB


before starting to fabricate the third PCB, i checked that my schematic was right and don`t has any mistake

in order to not go through the hassle of including the library in the right place, i decided to follow this video to in the burn boot loader, after finishing the whole steps it shown for me done burn bootloader in in arduino softeware not in the message like my collages.

the led is lighten up

Adding the 10 capcstre

this message was appearing for me when i tried to upload the ISP to the Arduino, as i was connected the Arduino with the capcatur and the PCB, and that`s was an error.

done burn boot loader

as i already was installed the driver from the last pcb, i though that`s done, but when i upload the code on arduino this message was appeared for me, and that`s mean that i have an erroe in downloding the drive, so i repeated agin the same steps for downloding the driver



and when i tried to search for the pcb in the divece manager, i couldn`t find it even in the hidden deceives.

Amany the fab lab specialist recommended that we could burn the boot loader for the 85 attiny without the pcb in order to know if the attiny have an error, it doesnot burn, so we replaced it by another one and it burned, but when i returned back to the pcb the same error appered agin, the device manger couldn`t recognize it.

i felt disappointed after trying for the third time, so someone suggested for me that maybe my soldering was not fine, so i soldered again, but this time i made a short circuit without taking care of that, so the led burnt, this time i felt nothing.

The solution: I could solder again the components for the second PCB, as it was the only one that was shown in the device manger at my laptop, but with changing the places of the zenor and resister in order to take care of this mistake in the schematic or maybe i could repeat it for the fourth time or i could take the trace of Thomas edison`s quote“I have not failed 10,000 times—I've successfully found 10,000 ways that will not work.” and try to found 10,000 way to make the PCB work.

How i came up with all of this steps and i don`t have any background before in putting a code on PCB:

_I checked my colleges at ADM7 portal

_My instructor (Ahmed Ibrahim`s) PORTAL

_Searching on the intent inscrutable and you tube

As i didn't reach the writing code stage, i was already prepared it, and tried to understand what each sentence refer to in order if i could burn the boot loader i will countuine

CONCLUSION: The project Almost done......

What I Learned in this module.........

  • Struggling with new software which is eagle software in order to create the PCB

  • Fabricate the PCB for more than 3 times and using a New machine called (milling machine) in order

  • I couldn't succeed with the objective of this module which is to make the game controller smaller than the last module but i made it bigger as i couldn't handle the routing of the pcb in a right way but at least i learnt how to fix it next time.

  • getting out of the box through using different materials in design stage.