Finally I have overcome my programation error and managed to reproduce the FabISP programming with my computer. The error was entirely mine: partially because of my lack of knowledge with Ubuntu and partially because of my lack of soldering skills. It turned out that the micro USB connector wasn’t soldered well to the board: there were times when made contact and there were times when didn’t. For this reason I haven’t noticed the poorly soldered USB joints when was checking for continuity. Re-soldered the pins of the connector and everything was ok. The second issue came of my lack of knowledge in Ubuntu. Since I didn’t knew that I have to mount manually any USB device in a virtual machine for Ubuntu to recognize it I haven’t done it. Since the software didn’t had any USB device to work with my programation was failing continuously. When I have mounted manually the devices onto virtual drive (progamable and programed) the software ran smoothly and everything went well. Leason learned: triple check every soldering and use more often Ubuntu.
I have reproduced the FabISP at the University, soldered all the components (thank you Nuria for all the spear electronics) and I have tried to reproduce the programation using Ubuntu from a Virtual Machine. Unfortunately, I have encountered the same errors as from Windows: the OS doesn't recognize the device, but make clean and make hex can run correctly. With make fuse and make program I have problems. I have checked the continuity of all the pathways, checked if everything was soldered correctly and in place, and I haven't figured out where the problem can be. Of course, from Ubuntu (and from Windows also) I have all the drivers installed, but in the end I'm missing something important and can't figure it out what. Anyways, will have to keep try and hopefully in the end I'll figure it out.
During the electronics production week we had to fabricate the FabISP programmer. Everything was already documented, designed and described step-by-step and we had to follow those steps without having too much idea of what was really going on. I don’t have any idea of electronics (yet) and all the help from my FabLab mentor (FabLab León) and all the online documentations where more than welcome.
First of all, I had to fabricate the actual PCB using the Modela milling machine available in the FabLab. Using the FabModules for configurations and with different end-mills (1/64” for etching and 1/32” for cutting) the milling machine did a great job. To set up the machine for these results, I had to pay attention to set up correctly the x, y points and of course, the z depth. The other important step is to be sure that the PCB is double taped to the bed with a sacrifice layer and is perfectly flat! The sacrifice layer is needed for not cutting the milling plate when the cutting tool is cutting out the board. The x, y points where easy to set up: knowing the actual 0, 0 of the machine all was needed to measure the right dimensions for shifting the home point. The z depth was a little bit trickier. The steps to follow were to fix the correspondent end-mill in the spindle, paying great attention not to damage the tip by dropping it accidentally on the board; temporarily fix the correspondent end-mill; lower the head till it will be close enough to the bed and manually adjust the end-mill. The tip of the mill should only touch the PCB. From here, we have to check all the values from the FabModules configuration windows and send it to milling, firstly the circuits design and then the cut out part.
When the milled PCB was ready (cleaned and washed) I prepared all the necessary components for soldering. Since I have a steady pulse I thought I won’t have any problems soldering those tiny SMD elements to the board. Well, I was wrong! The SMD components are really small and I had only 0,6 mm of margin in couple of pathways, so as I was bringing the solder tip closer to the board my pulse was going crazy. It took me an eternity to solder all the components in place, but in the end I had it all. I don’t think it is a really great job, but I’m really proud if it!
After the soldering part we have checked for short circuits and everything seemed just fine. When connected to a PC for programming we started to load all the necessary commands to clean / hex / fuse / program the board in question. Everything went well and the FabISP was programmed from a mac computer. Since I´m using normally windows, I have installed the necessary drivers, firmware and WinAVR packages and tried to reproduce the FabISP programming. Unfortunately, I have encountered with fuse errors and couldn´t overcome the problem. None the less, I´ll keep trying and will have to figure out where seems to be the trick. Since the board could be programmed from a mac I understand that everything should be ok and the problem is with my windows drivers / software / configuration. Anyway, will keep trying with other computer and I hope will figure it out in the end.