Our exercise for this week was designing and fabricate an own ISP programmer. This assignment can be divided into 4 parts:desgining, milling, soldering and programming the board as an ISP programmer. I used Brian Mayton's design and documentation. In addition, my classmates Matthias and Anke finished their homework a bit earlier and prepared really great and detail documentation, which I also used. We also were asked to evaluate our milling machine concerning 'PCB Production Specifications'.Information about this group task can be found here.
This week started with an introduction to electronics, soldering class and example of designing with Eagle from our local instructor.
The most challenging part during the design was finding the correct digital components that represent the desired components on the real world. So I double checked all the components in order to avoid mistakes.
I started with Schematic:
Then I created Board:
Then I moved it all to a proper place and did the connections and dimension:
All the schematic and board files can be found at the very end of this documentation.
Quick instruction and files(.CAM and .drl), that would be needed during this phase could be found here.
This is my step-by-step instruction:Before the board can be milled it needs to be transferred into a LMF file which can be opened by the boardmaster software used by the milling machine. This is instruction for that part:
Our Fab Lab has a LPFK milling machine. With the software "boardmaster" you can control the milling machine. Detailed instructions and recommendations of the milling process can be found here here. Basic for a single-sided board with SMD parts steps is here:
So, here is my ISP:
After that I did the soldering. So, I started with collecting all the needed components:
As you can see in the image bellow, sometimes the SMD resistor stuck to one pad and it is really annoying. However, with more practice ot becomes more easy yo solder properly from the very beginning.
What is more, I soldered Attiny the other way around. That is how I found out the obvious mapping between the board file from eagle and real Attiny. There is a round, that helps to map it properly:
Actually, this was the most challenging part of assignment for me, especially because my program experience is not that good. But in our FabLab people are so supportive, so I got answers and help with all my questions and problems. As well as Anke, for program the board as an ISP I followed Brian's steps. After downloading all libraries and drivers(more info about it can be found here), I connected the Arduino Uno to the laptop and then the FabISP to the Arduino Uno to program it as an ISP. Assure to connect ground to ground Pin etc.
Next step was to change the code to suit our setup (see image below).I highlighted all changes I made in the code .
After that I run the following commands.
* make
* make flash
* make fuses
Here you can see what happened after * make flash.
And the Terminal Output I got:
Afterwards I checked if my FabISP was now recognised as a USB device by my computer. For safety reasons I used an USB cabel, where I connected my FabISP. I checked under 'Apple symbol > About This Mac > System Report > Hardware > USB' if the device is shown.