Follow how I converted the FabTinyISP design file in Inkscape for Fab Modules, learned how to mill a PCB board, soldered the electronic components for my programmer, and programmed my board.
Our goals this week were to mill an in-circuit programmer by milling PCB, and then to complete the programmer by soldering the necessary components and programming the board.
# | References | Links/ Files | |
---|---|---|---|
1 | Fab Academy Weekly Assignment- Electronics Production | LINK | |
2 | Building the FabTinyISP - Brian's Page | LINK | |
3 | Programming Your Board - Fab Academy Archive | LINK | |
4 | Building the FabTinyISP - Traces file | LINK | |
5 | Building the FabTinyISP - Outline file | LINK | |
6 | Building the FabTinyISP - PCB Board Schematic | LINK | |
7 | CrossPack for AVR Development - Download | LINK | |
8 | Xcode - Download | LINK | |
9 | Traces file - PNG / RML | PNG FILE | RML FILE |
10 | Outline file - PNG / RML | PNG FILE | RML FILE |
# | Component |
---|---|
1 | 1x ATtiny45 or ATtiny85 |
2 | 2x 1kΩ resistors |
3 | 2x 499Ω resistors |
4 | 2x 49Ω resistors |
5 | 2x 3.3v zener diodes |
6 | 1x red LED |
7 | 1x green LED |
8 | 1x 100nF capacitor |
9 | 1x 2x3 pin header |
We used Brian's FabTinyISP tutorial and circuit board designs as a guide, and first had to use Inkscape and Fab Modules to prepare the trace and outline files for milling.
Tool | Lesson Learned |
---|---|
InkScape | When duplicating file, make sure to use "duplicate" command and not "copy/paste" otherwise the file is flipped. The file must be in the same orientation each time. (See image InkScape Step 1) |
InkScape | Don't forget to add a third layer of a black rectangle to eliminate white boarder around trace/ outline files, otherwise it will show up in Fab Modules as another cutline. |
InkScape | The resolution should be set to 1000 dpi, not 300 or 72. This can only be changed in Inkscape while exporting your file, not in Fab Modules, otherwise it will alter the dimensions of your file. |
Fab Modules | Make sure the X, Y, Z axis are all set to 0 before sending / exporting your file as .rml. Otherwise, the mill will use this location and possibly cut into your circuit board in the wrong area. |
Fab Modules | Note that for the Outline File the cut depth should be 0.6 mm, and the stock thickness should be 1.7 mm |
# | Reference | File | |
---|---|---|---|
9 | Traces file - PNG / RML | PNG FILE | RML FILE |
10 | Outline file - PNG / RML | PNG FILE | RML FILE |
The first step is duplicating the trace file four times in a grid to optimize the layout of the desigfor the milling job, and to create multiple boards to practice with. Next, import and duplicate the outline file directly above the trace file in order to ensure the mill cuts out the outline of the circuit board correctly. Also, make sure to create a third layer of a black rectangle to avoid having the white lines between the four design show (see error 2 in Fab Modules Steps). Make sure to assign the trace, outline, and black rectangle to different layers as you will export each layer as a different file to upload in Fab Modules.
Notice that the resolution in this file is too low, this is due to not changing the dpi in Inkscpae when exporting the file. We made this mistake several times, first forgetting to change the dpi (so the default was 72), then by changing it to 300 (which was still too low), and finally getting it right by setting the dpi to 1000.
Here we changed the dpi to 300 to increase the resolution before exporting from Inkscape. Note that the resolution needed is actually 1000, not 300.
First, open Fab Modules and input your exporting .png file from Inkscape.
Next, select the machine used for the milling job, for us it was the Roland Mill.
Next, open your trace file and select the router bit size 1/64.
Select the machine SRM20 for the pre-set tool/ cut information.
Note- we had to change the tool diameter to 0.1 since we did not yet have the 1/64 bit.
Note- the X, Y, Z axis should be set to 0, not 10. This caused the mill to cut into the trace file once we ran the outline file with the same coordinates set at 10, not 0.
Calculate your file and if it looks good, send it / export it as an .rml file to send to the mill.
We eventually realized the axis was set incorrectly to 10, so we went back and changed it to 0.
Next, upload your Outline file, select Roland Mill again, and the choose the PCB outline file at 1/32.
Note that the cut depth should be 0.6 mm, and the stock thickness should be 1.7 mm.
Note the low resolution as a result of not increasing the dpi in Inkscape before exporting the .png. We evenutally tried 300 dpi, and finally settled with 1000 as the correct resolution in the end.
Note the white lines between the four board designs. This is an error from not initially adding the third layer in Inkscape of the black rectangle underneath the trace and outline layers.
We used the Roland Mill SRM-20 to engrave and cut the trace and outline files for our circuit board into copper plated PCB.
Tool | Lesson Learned |
---|---|
Roland SRM-20 | When changing the router bit, make sure to keep the cap on and hold the bit in place when unscrewing or tightening the joints, since the bits are very fragile and can break easily. |
Roland SRM-20 | Make sure the double-sided tape on the sacrificial board and PCB board are perfectly aligned and not overlapping as this can cause either board to be unstable and possibly damage the cutting job. |
Roland SRM-20 | Also, make sure to firmly press the sacrificial board and PCB board into the base of the mill, otherwise it may also become unstable and dmamage the cutting job. |
Roland SRM-20 | Use the 'paper test' to ensure that the Z axis is well defined, otherwise the router may not cut all the way through the copper coating. |
Clean off sacrificial board of dust and old PCB.
Ensuring well aligned taping of sacrificial board. Make sure the double-sided tape on the sacrificial board and PCB board are perfectly aligned and not overlapping as this can cause either board to be unstable and possibly damage the cutting job.
Double-Sided tape PDB board- flatten with sharp edge.
Firmly press and flatten the sacrificial board into the base of the mill, and the PCB board into the sacrificial board, otherwise both may become unstable and dmamage the cutting job.
Unscrew old router bit- When removing / changing the router bit, make sure to keep the cap on and hold the bit in place when unscrewing or tightening the joints, since the bits are very fragile and can break easily.
Change router bit.
Router bits for trace and outline.
Set Z axis - Do 'paper test' by slowly lowering the router down onto the PCB board while holding a piece of paper just underneath and moving slightly side-to-side until the bit pierces the paper and firmly stops it from moving.
VPanel Set Z axis.
Set XY axis.
VPanel Set XY axis
VPanel Set XYZ axis
Close Machine cover
VPanel Select Cut
VPanel Select RML trace file first
VPanel Select Outprint to start milling job
We used Brian's FabTinyISP tutorial and the schematic design as a guide to solder the electronic components to our circuit boards.
# | Component |
---|---|
1 | 1x ATtiny45 or ATtiny85 |
2 | 2x 1kΩ resistors |
3 | 2x 499Ω resistors |
4 | 2x 49Ω resistors |
5 | 2x 3.3v zener diodes |
6 | 1x red LED |
7 | 1x green LED |
8 | 1x 100nF capacitor |
9 | 1x 2x3 pin header |
Follow this schematic to understand where each component is placed.
Follow this schematic to determine the direction of certain component's positive / negative ends based on the flow of current.
Before beginning to solder, make sure to wash the circuit board with soap and water to get rid of any oil from your hands. This will lengthen the life of your board since oil can break down the copper traces over time.
I ruined my first board when I used the braid to remove some extra solder, since there was not enough solder for the wire to remove and it melted into the copper trace instead. Beware!
I ruined my second board because it was difficult to solder the Atiny 45 without also deposting solder between the nearby traces, thereby mistakenly creating a short.
My third board looked okay, until I realized I read the schematic in correctly and the LEDs and Zener Diodes were placed in the opposite positive/ negative directions.
I removed the Zener Diodes and LEDs to inspect more closely for signs of their positive / negative ends. For the Zener Diodes the line denotes the negative end.
I also tested the zener diodes with a Velleman DVM 1200 multimeter to understand which end was positive / negative. To set up the Multimeter you need to switch it on to the "audible continuity" symbol.
Next, you need to press the blue "select" button to switch to the "diode" measuring mode.
You will know that the multimeter is set up correctly when the diode symbol appears on the screen where the "audible continuity" symbol once appeared.
I re-soldered the zener diodes and LEDs in the correct direction, and finally had my first finished board!
I attempted to program the board using the Git Terminal, AVRDude, and the firmware downloaded to program our board, but was unsuccessful in the end. Roman attempted to program the board remotely as well, but also could not.
Step # | Command |
---|---|
1 | make clean |
2 | make hex |
3 | make fuse |
4 | make program |
I followed the steps to download the necessary firmware and connect my circuit board to Thomas's programmer and then into my computer's USB drive. The red LED light of my board lit up, which was supposedly a good sign, however after two days of trial and error with Roman's help, we still could not program my board.
This was the error that I continually got via the Git Terminal when running the final command "make fuse".
This was the terminal output when Roman remotely tried to help program my board.
Roman then helped me troubleshoot what could be wrong with my board, the cable, or the programmer.