For the other group assignments go to the group assignment page.
This assignment was completely done by me as I am the only student at the Algarve FabFarm this year.
Design files and G-code files @ GitLab Fabcloud project repo

I gave it the name Frankenlaser because many of its parts come from retired machines I once designed and fabricated. It's again a machine, just like my CNC, made with parts I had lying around as well as commercial parts.
I designed the machine with SolidWorks and used the large CNC that I also designed to cut the carbon fiber and the OSB parts.

With the mechanical design ready I started preparing the bits and pieces.

I am using 30x30 aluminum profiles; they came in 3 meter bars and needed to be cut to size.

The most precise way I could cut the profiles was with a wood saw. I know that it is made for wood, but I also know that I can cut aluminum as long as I use it slowly. I then leveled the saw blade to 90 degrees in reference to the table saw.

The cut was perfect.

Next I began with the tracks; they were very dirty, so I started with the cleaning.

And like magic they are clean. First I removed the tracks from the sliders and left them aside. I used WD40, a Scotch-Brite sponge for the rust and acetone to remove oil and dust. Finally, I oiled them with machine oil.

Now the sliders... equally dirty. I disassembled the plastic covers and dropped the little bearing balls into a container.

With the sliders disassembled I used the same cleaning steps with the same products as before.

With a paper towel I dried it all.

And again like magic they are like new.

To have an idea of the final product I placed the parts resting on top of each other. Nice!

A different perspective.

The view from ArtCam.

I then started cutting the carbon fiber. It cuts easily on my CNC, but I was in a hurry, so I did not want to use double-sided tape and have to clean its glue later. This decision will have consequences; watch the next videos for it.

Here I drill the holes.
In this video I cut many of the contours. Because I did not use double-sided tape or tabs, the parts jumped from the stock in a way that they could meet their demise if touched by the bit. So I removed the pieces as the machine spat them out.
All the parts cut and ready for assembly.
With a digital angle finder I made sure the parts were square.

Here is the support for the other side.

Here is the laser head support, assembled.

And now it is assembled.

And the laser head attached. The laser head will hold the focus lens when the laser is ready.

Moving the X axis.
Moving it again.
Here the whole assembly is ready.

Now I test all axes by hand, and part one is done.
The machine is speaking, and with its immature voice it spoke "Hello World".
How did I get there? Let's see the steps:
I designed the frame with SolidWorks, with the techniques already explained in the weeks of Computer aided design and Computer controlled machining.
The design files are here.

Next, using the software Mach3, I started the job. The material used was 19 mm OSB. The milling bit was a 3.175 mm one, and when I chose the tool I offset it by -0.1 mm to compensate for imperfections and allow an easier fit, just like explained in the group assignment Computer controlled Machining.
I split the milling into two jobs: a holes job and a contour job. The feed rate was max 2500 mm/min. G-code here and here.
All the fittings had corresponding holes that were also used as clamps. This way I was sure that there would be no collisions, as I only fitted them after the holes job and before the contour job.
After the milling job, my son and I started sanding the sides and the surface for a better fit and finish.
All sanded here.

The assembly went smoothly, and the only tools we used were a rubber mallet and a screwdriver.

The frame is super sturdy! We were really happy with the result.

The axes were secured with "T" slot nuts; I'm not sure if this is the correct name.

Big mess now, as I was using many more tools, like a caliper, a digital level and a square, so I would have a square machine.

The laser tube was temporarily fitted here just to see if things fit well.

Here is an overview of the machine, almost finished.

The board I'm using for this assignment is an Arduino Uno. Below is the diagram of the UNO GRBL wiring.

I tested 3 methods to burn the GRBL firmware. For the first method I used the incredibly practical software AVRDUDESS; it's a GUI version of AVRDUDE.
The usage was quite simple. Plug the programmer, or the USB directly, into the Arduino. Next, select the programmer, in my case USBasp, or Arduino for USB. Next, select the hex file, downloaded from the GRBL repo, press the button to the right in order to detect the MCU, then press Go to start the firmware burn.

The next method I tried was using the software LaserGRBL: clicking on Tools, Flash GRBL Firmware, then...

A dialog will show up that allows the selection of the target board, in my case Arduino Uno, the firmware version, the port and the baud rate. Next...

The screen will show the successful completion.

The next method I tried was compiling and burning the firmware using the Arduino IDE. For this method I followed the method described in the Gnea/GRBL wiki. First I modified two lines of the configuration in order to enable dual motors for the Y axis. I was not successful so far, and because of lack of time I ended up not using it. Anyway, I documented the method here, as in the future I will try it again with more time.
Another reference for getting a dual axis self-squaring gantry working is found at the Protoneer Product Forum, but again, in the future I will look into that.
Start by downloading the GRBL firmware, then add it as a library to the Arduino IDE.

Open the GrblUpload Arduino example file, then compile and upload just like described in the Embedded Programming week, changing the MCU to the Arduino UNO board.

Here I test the motor, its strength and temperature (by touch and with a thermometer). I do that in order to properly set the DIP switches.
After the tests I decided to use 2 amps. The motor is rated for 1.5 amps, but during all the tests the motor would never pass more than 1 amp and the temperature remained under 45 degrees.

The setting is done by selecting the DIP switches: 4 - ON (down), 5 - OFF (UP), 6 - OFF (UP).

Here I try moving the motors for the first time using the computer. The X axis moved well but the Y axis didn't. I believe this was due to wiring, so I reviewed it all over again. I ended up disabling the double motor on the Y axis (sparsely documented) and wired the two motors in the Y axis in parallel.
Here I measured the effective movement against the commanded movement. I take a note and then use the rule of three, basically a/b=c/d.
Where, in my test, a=118.8 (real movement), b=25 (desired movement), c=250 (current steps per mm) and d=X.
After doing the math I get the result 52.609, which I put in the GRBL settings $100 and $101.

Below is the screenshot of the settings I used for the machine so far. This wiki shows all the configurations of Gnea/GRBL.

Because this assignment requires that I show control over the machine I made, I present here a "Hello World". I am running out of time. I would love to come back to this documentation later and finish the laser cutter, but now I need to focus on the other assignments. So for now it's a Sharpie attached with tape.
The machine is not finished yet. It will become a laser cutter by the end of the cycle. I will post its updates here. So far I have the following issues to solve:
Wear safety glasses, make sure you know where the fire extinguisher is and how to operate it, never leave the laser unattended!
The laser cutter is a machine that wants to catch fire. If everything is working it won't, but if there is a failure and the laser stays in the same place, or if the air assist stops working, there is a high risk of fire. For this reason, never leave the laser unattended.


The laser beam can blind you or burn your skin in nanoseconds. For this reason, never operate it with the lid open, and always wear the safety glasses for the type of laser you are using.

CO2 laser cutters typically have a 10600 nm wavelength; in our lab these are the correct glasses.

Diode laser cutters are typically in the range of 200-550 nm wavelength; in our lab these are the correct glasses.

The machine week was completed with actuation and automation of my machine as far as the requirements in the assessments page for this week, but that is not stopping me from making my machine become a laser cutter! I just can't do it and, at the same time, finish the other assignments that I have due.
Well, that is not stopping me from improving the machine in any free time that I will have.

I found this info on this GRBL issue page:
As for the laser tube itself I found a beautiful diagram here that I copied below.

Made my own diagram as well.

Here I show the soldering I did from the anode wire to a crocodile connector. The terminals of the laser tube should not be soldered, as the heat differences could crack the CO2 laser tube.

This photo shows the anode wire connected to its terminal, as well as the water tube at the exit point of the coolant.

Here I fit the water protection sensor switch to the laser power supply. This will prevent the laser from shooting without coolant.

To keep the laser tube cool, I fitted a small water fountain in a plastic container filled with automotive antifreeze. I used plain water in the past, but bacterial growth always bugged me. In the future I hope to make this a closed system with an automotive radiator.
In this video you can see the laser tube being filled with antifreeze, sorry it gets upside down... At least you can see the coolant flowing.
Here I test the water protection. As I remove the water pump power plug, the LED turns off on the laser power supply.
In this test I show the laser beam without the mirrors, aiming it at a piece of wood. It works, quite a display of power!
The mirror alignment is the trickiest part.
I already had experience with laser alignment before, but here are some good tutorials on how to do it:
The way I have done it is documented below.
The first issue was that the Y axis stopped moving, for a reason I still don't get. I tested a different stepper controller and also rewired everything so I could debug it.
In the end I decided it was not the wiring, so I recompiled GRBL like I explained earlier, switching the Y direction bit (pin) 6 for 7 in the file cpu_map.h, and it worked. Not sure what really caused it.

The next issue was that the scale of the X axis was completely off. I had created a simple 10 mm square and had it cut, but instead it made a long rectangle.
I solved the issue simply by reapplying the steps per mm to the GRBL controller EEPROM, and it started working, as I can show in these pics.
The inside measurement of the square is 10.2 mm.

The outside measurement of the square is 9.9 mm.

Calculating from the inside and outside measurements gives a kerf size of 0.15 mm, not too bad for first tests, but it can be improved with better focus. But I will leave that for Computer controlled cutting week.
← (May 13) Interface and Application Programming · all weeks · Wildcard Week (May 27) →