5. Electronics production¶
This week, I created an inexpensive programmer (FabTinyStar) that can be used to program an AtTiny using a milling machine and surface mount soldering tools.
The FabTinyStar is a device/programmer that can be used with an AtTiny and Arduino IDE to code a circuit board. I learned about the FabTinyStar from this website.
I was still confused about this week’s assignment even after reading through this tutorial, so I referenced my physics teacher’s website! (Ms. Mary Fabian’s website)
The programmer mentioned below was created by Brian! Here is his site.
I milled my programmer after working through the group assignment which is explained below. This is what my programmer trace paths looked like.
When milling my programmer, I went through a lot of trials and errors.
Here are a few key mistakes that I made and their outcomes:
Board thickness set too thin (1.55 not 1.80):
Mill Platfrom Layer Uneven:
Wrong tool (1/32 not 1/64):
Wrong File (1/64 calculation instead of 1/32):
File path too deep:
At one point, boards with the same settings and designs would mill differently. I believe this may because of inconsistencies in the milling platform itself or inconsistencies with the adhesive.
For one board, I cut the profile cut on a bandsaw, because I had removed it prematurely. This board was the one that I had broken the bit in, so I had to be careful to avoid the area with the bit. I also had to be careful of the waste created by the board.
Here is a picture of my drawn out profile cut:
This is a picture of a bandsaw cut in the PVC:
Once I had my settings perfected, I started milling multiple boards at once.
Here is one of my successful boards:
Surface Mount Soldering¶
Before soldering, I watched a surface mount soldering YouTube video.
Here is my workflow that I created after watching the mentioned video and this week’s lesson:
Organize circuit components (ex. resistors, capacitors, etc.)
Put on safety gear.
Spread flux on board.
Place a drop of solder on the area you where you will connect the component to act as “glue”.
Melt solder onto the tip of the soldering iron to tin.
Hold component onto board with tweezers while you remelt the solder. (If you are soldering a chip, make sure the prongs are aligned. It may be helpful to solder the corner prongs of the chips first!) (Solder components from in>out, small>big, and bottom>top)
Check the connections under the microscope.
After watching the two videos, I laid out my different components on a piece of paper with labels and gathered my soldering materials. (I also washed by board with soap and water to remove the natural oils and tinned my soldering iron. Tinning removes old solder.)
I coated the area I wanted to solder with flux before attatching the component. Flux helps to clean the metal on the board. To apply the flux onto my board, I used a piece of wire.
When soldering, I first applied solder onto the area I was targeting. Then, I reheated the solder and placed the component on top. This helped me position and hold the component with accuracy and efficiency.
For my first board, my goal was to get an idea about the location of each component and the polarity of the diodes. I also wanted to practice surface mount soldering.
This board did not work because I applied too much flux and soldered components in the wrong location or wrong direction.
When starting my second board, I used a smaller soldering tip so that I could reach a higher level of detail. Additionally. I was less generous with my flux application.
Here are the different components up close.
Solder Bridge - Jumper
Here’s a comparison to my first and second attempts.
This is a video showing the successful soldering of my programmer. I tried to follow the in>out, small>big, and bottom>top rules.
I encased my board in a 3D printed case designed by Mr. Rudolf.
Programming the Programmer¶
To make the programmer a programmer, I had to program it.
To get started I downloaded the Fab Tiny ISP programs with Dr. Harris
Software from website
Windows tools to compile code
The two files I needed were the Main/c file and the Make file.
Communicate over USB
Turns to binary
Hexadecimal numbering system: 0-9, abcdef
After I got all the programs, I connected my board to the computer. For my first board, I used an adafruit programmer to program, but for my second board, I used my first board as a programmer.
Copy firmware adress.
Command (“cd” firmware adress).
Check directory (“dir”).
Make flash (“make flash”).
Make fuses (“make fuses”). Fuses declare how fast the program will run. This is important to USB communication since it is timed specifically.
Check Device Manager to make sure your programmer is being recognized.
This is a video of steps 5-7:
Reset disable (“make rstdisbl”).
Break VCC-Vprog connection.
The files for this week were pre-written (by Brian again!), so after the fuses are burned, you can run the command line. (Type CMD and open the command prompt. Locate folder where files located. Open and copy folder. Flash/download firmware.)
Once my programmer was set up, I programed other chips by connnecting the pin header to a different board! Using my board, I sucessfully programmed my backup board and a classmate’s board.
When programming, I found a few hardware issues that prevented the software from running.
My first mistake was my zener diode was facing the wrong direction! My second mistale was that I was using a USB 3 instead of a USB 2. MY third mistake was not bridging the solder jumper. My fourth mistake was not making the USB solder rows too low. I remedied this by using three pieces of electrical tape. Eventually, I printed out the cases that Mr. Rudolf designed as a permanent solution.
After producing more boards throughout the duration of the Fab Academy Course, I greatly improved my board production skills.
Here are a few of my improved boards from later weeks. I added a few techniques and processes that I learned throughout the class.
Electronics Design Board:¶
This was the second board I produced after this week.
To begin this board production, I created a similar board on TinkerCircuit. This helped me get an idea of where my circuit components would be placed when soldering.
I also learned to clean my board with acetone after I finished soldering to prevent the corrosion of my components and traces. Later, I learned that I could paint my board with clear nail polish to seal in the components.
When milling out this board, I changed the trace clearance. Originally, it was set to 0.15 mm. I changed it to 0.30 mm. This additional clearances helped when soldering. Because I had added in this clearance, I would create less solder bridges, short less boards, and rip less traces!
During this week, I learned how to properly space my components so that I would not have trouble soldering the tiny surface mount parts.
This is a board that was designed in an area that was too small for my soldering skill set. In this board, I also chose to use through hole components. I learned that this choice greatly increased the difficulty of the soldering.
Input / Final Project Board:¶
I fabricated this board in week 11 to work with my force sensitive resistor for my final project. This board is a rendition of Daniele Ingrassia’s Satshakit. I changed a few of the pins so the resistor could be plugged directly into the board.
Group Assignment: Characterize the design rules for your PCB production process¶
For our group assignment this week, we were supposed to mill a test trace and compare it to one created by Proffessor Gershenfeld. This would ensure that our PCB process and resolution was correct!
Our Fab Lab uses Othermills.
Before messing with the milling settings, we measured our material’s length, width, and thickness. The thickness dimension proved to be pivotal as it often dictated the success of a run.
When changing bits, you have to start by loosening the current bit. Once it is removed, you can slip in the new bit and tighten it. For our othermill, we used two wrenches to loosen and tighten.
We switched between two bits for this week.
1/32 (fatter ended - faster)
Both boths had two wings (fluted). While taking a photo of two of our bits, we actually found one was broken!
This is what the broken bit looked like (right):
This is a bit I broke :()
After we had physically changed the bit, we had to re-orientate the z axis. This would make sure the machine knew where the new bit ended, so it would not mill too deeply into the superficial layer.
Before cutting, we previewed to make sure the tool would not cut into the table. Also, we compared to an incorrect example by moving model up and down by a few mm.
To convert the provided png files to a format the milling machines could use, we put it through this website.
We first choose the appropriate input format.
Then, we picked the output format.
Finally, we selected the process. For the trace we used the 1/64 bit, but for the cut, we used the 1/32 bit.
After, we pressed calculate and save.
Here is what was developed: (This is just the trace not the profile cut.)
Once the file was ready to go, we sent it to bantam tools!
This is what the program looks like before uploading any files.
This is what it looked like after we uploaded the test file trace:
This is the test file profile cut: (We milled the trace and cut seperatly because we remembered the cut file after we started milling the trace.)
Fixture (tape entire platform)¶
When milling, we found out that it is important to secure the material to the machine bed. To do this, we used double sided tape. Our tape was actually pretty thick, so we found that we would have to change the file thickness by 14 mm to account for the adhesive.
I believe the quality of this test cut was bad because we may have used the broken bit pictured above by accident. One of my classmates, Maxine, theorized that the poor quality could also be due to a misalignment of the bit and collet.
Here are all my files: Download Files