Introduction

During the fourth week we learnt about electronics production.

It can be a little tricky for someone like me who doesn't know much about electronics to have the production part take place before the theoretical part. I did get to understand on a very elemental basis what we had in front us, however the challenge was to make a PCB (printed circuit board), not to design it. We will design in the future these things and I think I will understand better by then.

Assignment

To make an in-circuit programmer. This is a little board that will let us program other boards in the future. It speaks the language of microchips and the language of whatever I program with my computer! So, the way I understood it, it is a language translator and it gives instructions to other chips so that they can change the fuse configuration in themselves so that they can do specific tasks.

We made the FabISP for which we had already some designs in the format of PNG files in order to start with the milling machine. The milling machine takes these designs and mills a normal FR1 board like these ones:

They have a copper plate on top so that the milling machine, when it drills and cuts, it removes the copper. So the circuits are created by removing and isolating paths. Also, this is an FR1 board which means that it has a grade 1 of fire resistance. So it sholdn't be used in an oven (technique to solder with solder paste).

We then used the provided PNG files to start the process with the milling Roland Modela machine. The PNG files are just black and white maps that show the design of the circuit, they are not instructions for the machine. What is shown in white (left image: traces) is the circuit design per se, made of paths and pads. Where the pads are, the components of the circuit will be on top. The image on the right just shows the border of the machine. We have two files because they are to be converted in two separate instructions to the modela machine. First to cut the traces (with a certain depth, tool, precision) and then to cut the border of the board (with another tool and depth). These are the images:

The one on the left can be found here (traces) and the one on the right here (interior).

With these files we went to the milling machine station here at the Fab Lab. As I said, it is a Roland Modela machine. It has a PC next to it from where we send all the files and instructions. It is a little bit like that with almost every machine here at the lab, I think this a very good thing!

Roland Modela is tiny but very powerful.

From here there's two things we need to do. The first one, to set up all the software and instruction side. The second one, to set up all the hardware and calibration part. In the end, one ends up giving feedback to the other, so it's not first and second but rather an interactive process. However, I started launching the Fab Modules. In this workstation the modules are not online, but they are installed as a software, apparently this is a previous version but it still works perfectly with this machine.

Launch terminal simluator in the computer and then just type in FAB and hit enter to begin in the world of the fab modules.

When the Fab Modules launch the first screen is a tiny little screen that asks you what your input files are and what your output process will be. In our case, we had (already taken to the machine) the PNG files I wrote about before and also we knew that we were going to use the Roland Modela as an output process.

Very easy. PNG and Roland Modela. Then you hit make_png_rml (.rml is the file extension of the files that the milling machine reads> the fab modules is a file converting system in the end).

Then a new window appears where it is important to load the PNG file by hitting the "load .png" button. And then there is a drop-down meny, in the image and what comes as default is "default" but there is an option to select "tracing 1/64" which sets the presets to that tool and some other instructions such as the number of offset paths including the original one. 1/64 refers to the size of the bit so it means that each path will measure that width: 1/64th of an inch. 4 paths means that 4/64 = 1/16th of an inch will be cut to each side of the white border of the image (when possible). This is good enough to isolate the copper paths and pads in order to have a functional circuit. 1/16th of an inch is almost 1.5mm.

So these are the "default" settings, but once it changes to 1/64 tracing the diameter changes and the offset change to 4. Once ready, it is important to hit the button "make path". To view the screen shot with the 1/64 setting click here.

Before creating the .rml file, the machine has to be ready. For that, it is important to put the board on the base. The wooden base in the machine doesn't come with the Roland machine, but is there just in case the bits drill too deep so it damages the board and not the machine's original base. This is not a problem because the Z axis can be set every time. The board can also be positioned anywhere inside the area covered by the wooden board, because the X and Y origin can also be reconfigured every time.

This board was had been already positioned there and since there is still a lot more space to take advantage of, there's no point on throwing it away. It's important that the board is fixed at that point so we have to use some sort of double sided tape, we used the white tape seen in the picture called "carpet tape" but I think any kind of tape is usable. Since there is already a hole, it is important to re-set the X and Y origin.

Before calibrating the X, Y and Z origins, it is important to have the correct bit in the machine. Since we are doing traces only with this PNG image, we need to load the 1/64" bit. In our lab they are located either stuck to one magnet of the machine (see bottom left corner) or in the little drawers down below (new ones). It can be tricky because the bits are not labelled so one has to know only by comparing. Once one has the correct bit in hand. FIRST TURN OFF THE MACHINE. Safety is important and the machine could start moving, especially if someone else is dealing with the computer while another person is dealing with the machine. Another important thing is that one shouldn't let the bit fall down to the base because it is very fragile and it could break. So while unscrewing the screws with the tools the bit has the be held with the other hand. The same when putting the correct one back.

A little bit awkward!

After this, it is important to find the X, Y and Z origins. First, the X and Y origin: measuring with a ruler in MM (because the machine is set to MM) we need to measure where we want the bit to start cutting from. Consider 0,0 being the bottom left corner of the wooden base. When we measured, we found that it was something like 65, 60 mm. So we need to input that in the Fab Modules interface.

Every time these numbers change, you can click on move to xmin, ymin and the head will move to that point just in case you want to be sure that is the exact point.

Once the X and Y origin is set, the Z origin has to be set. This is done by pressing on the up and down arrows on the machine panel. Normally the bit will be above the desired level so we can press on the DOWN button, the bit will start rotating and approaching downwards very slowly... One has to be very precise but it can be seen when the bit touches the board because a little bit of dust is generated.

This picture is taken when the machine was had already cut all the traces and it was about to start with the cutting of the boards, but the Z has to be done anyways so the picture still works!

Finally, when one hits the "make .rml" button it is approached to a new interface where one can hit "begin milling" and it will do its job. It takes about ten minutes to do all the traces! And after all the traces are done it's very dusty and Siron advised us never to blow all the dust but to vaccuum it because it can damage the motor! And also, once all the tracing is done, all the steps before have to be repeated but changing the configuration to 1/32 which is a bigger bit and pre-set to cut instead of tracing. The only one thing that one has to remember is the X,Y points from the settings before, especially if many boards were cut!

Ready to begin milling!

We did four boards and, as I explain before, every step is almost the same in order to cut the board. Some configuration changes are needed and always remember the origin points! Once everything is cut you can TURN OFF THE MACHINE and then remove the board and the double sided tape from the bottom and we have a circuit!

It's very tiny :)

Once we have a board ready, the next step is to start looking for the components and to start soldering them. There's many things to bring together before starting to solder. A good light is very important, a comfortable space too. And then, some tools: tweezers, a fine point soldering iron, the heater, a sponge (somewhat wet), some masking tape, solder, a loup, your board and the components. This is the set up I ended having:

Yes! All I needed to solder.

Then you need to start! I started with the resistors, they are very tiny! The heater was up to 700F degrees and after a couple of minutes it was ready to use. Then I positioned the soldering iron on top of one of the pads where the resistor would go and I pushed some solder into it until it melted on the pad. Then I put the resistor on top and I melted it again from the side. The image below shows a resistor already there and another spot where two pads have solder on them waiting for another resistor to land and, then with the iron, fuse them together.

If you don't want your board to move while you work on it, it's good to use some tape.

After working on it patiently, the board was done! The most difficult parts were the micro-controller and the usb header. Using flux helps a lot with the tiny little pads. And if something went wrong it could be undone using some copper thread.

So many little components.

Board is complete! Now the part to program it. We used an AVRispMKii available here at the lab. It is basically what we are making, but you need another one to program it. We need to attach a usb cable to the usb header and then to the computer, and then the head needs to be attached to the AVRispMKii and then to the computer. Something like this:

Green light means that it's good in terms of power.

Next step, once CrossPack was installed in my computer and once I had downloaded the program to be installed and unzipped it, I opened terminal and went through the steps. We got some errors and we needed some time figuring out how to fix it. The boards where functioning well, the problem was in the Makefile (that comes inside the Zip package). We had to add "-B 5" somewhere next to the description of the device we were using AVRispMKii. That would set a slower speed so that it would go and try and read the signature slowly. Otherwise, we would get a different signature every time and this signature didn't match the ATtiny84 chip we were using. Also, when I tried to edit the file with the TextEditor from MacOS and then saved it, apparently it transformed a dash "-" into some RTF format that then produced more errors. I compared a good Makefile with the one I tried to change in my computer and this is what I got:

Never again in my life I will use the MacOS default Text Editor. Also, the speed of the crystal is different.

Finally, when we managed to program the FabISPs we could check if they showed in our computers as a connected device. If you run the command "system_profiler SPUSBDataType" from terminal then you can see what is connected to the usb ports. There, the glorious FabISP was displaying:

Also, once it was programmed I desoldered the 0 resistor and the SB (soldering bridge).

It's alive!

We haven't yet programmed anything with it but it's cool to have it!