Building an Selective Laser Melting Machine with Arduino

Hello guys,

I am building an SLM machine and I am thinking about using arduino to control the Axes.

Basically, this needs to happen:

  1. Build Chamber goes down
  2. Powder Deposition unit goes to the left
  3. Powder Container goes up
  4. Powder Deposition unit goes to the right (and creates a powder layer over the building chamber)
  5. Laser melts the powder

And then, the build chamber goes one layer thickness down, and the process continues.

Here's a photo of the process: https://upload.wikimedia.org/wikipedia/commons/3/33/Selective_laser_melting_system_schematic.jp

In my project, I want to: use 2 steppers for each axis (two for the building chamber, two for the powder deposition unit, and two for the powder container).

So, my questions are:

  1. is it possible to control the 6 steppers with only one arduino and six driver boards?
  2. is it possible to integrate a feedback signal from a light sensor to the arduino and use it to begin the code? If so, how can I do it? Will I need another board or something?

I ask this question because here's what I have in mind: after the laser melts the powder, I am thinking about pointing it to a light sensor, so that I will have a clear sign that the lase part of the process has ended and I can safely restart all the movements.

Thank you for your time and I'd love to hear your thoughts on it!

Josdc

  1. You'll only need three motor controllers, depending on the current requirements of the motors. Just wire your pairs of motors together in parallel. This will only work if your controller can supply more than twice the current that one motor needs.

  2. No need for a light sensor. You'll know when the laser has finished because you'll have finished moving it about with your code. Besides, pointing a laser than can melt things at a light sensor is not going to end well :slight_smile:

Gyro_Gearloose:

  1. You'll only need three motor controllers, depending on the current requirements of the motors. Just wire your pairs of motors together in parallel. This will only work if your controller can supply more than twice the current that one motor needs.

There will certainly only need to be three sets of commands. But it may be wise to have a controller for each motor - just send the same commands to the pair of them for each axis.

And if using a single motor controller for two motors I believe the motors need to be connected in series rather than in parallel because the controller needs to control the current and you want the same current in both motors.

...R

Gyro_Gearloose:

  1. You'll only need three motor controllers, depending on the current requirements of the motors. Just wire your pairs of motors together in parallel. This will only work if your controller can supply more than twice the current that one motor needs.

  2. No need for a light sensor. You'll know when the laser has finished because you'll have finished moving it about with your code. Besides, pointing a laser than can melt things at a light sensor is not going to end well :slight_smile:

Hey Gyro,

The sensor is needed so the process can start all over again automatically. Do you understand? Sorry if I didn't express myself clearly. Ah, and we will use a mirror and a filter to properly dissipate the laser's energy so that it does melt the sensor hehehe.

Also, thanks for the first comment. It was helpful.

The sensor is needed so the process can start all over again automatically. Do you understand

No we don't understand, do you understand what was said in reply #1?

You do not need a sensor, it will not allow you to do anything that you can not do with just software.

Grumpy_Mike:
No we don't understand, do you understand what was said in reply #1?

You do not need a sensor, it will not allow you to do anything that you can not do with just software.

Hey Mike,

Thank you for your anwser. Yep, I understand what was said in reply 1, but I think that I didn't give you and the other guys all the requirements for the project. Sorry for that.

So...

I am building a SLM machine for ceramics. We don't know which kind of laser will work properly, so we are going to test a lot of parameters AND types of lasers. This means we are going to constantly change the machine that is producing the laser, and also the laser scan speed (velocity of the laser).

With that in mind, I can't just define a time in the Arduino program to move the axes, because this time is not constant and it will vary with the laser parameters.

By move the axes, I mean: deposit one layer of powder above the part that I want to build.

Sometimes it will take 1 second to melt everything, but sometimes it will take 10, or 60.

Well, we are going to change the laser velocity (and the laser itself, sometimes it will be CO2, sometimes green, and so on), so I think it makes sense to use a sensor to let the arduino know that the "melting step" is over and it can move the axis again and deposit one more layer.

The objective is that the only thing I need to do is point the laser to the sensor and all the axes will move again and create one more layer above the part that I am 3d printing.

So as you can see, we do need a sensor, because the arduino can not know when the "melting step" is done for each unique laser and it's easier to connect a light sensor to the arduino than to keep changing the arduino code every time and also integrating it to all the different lasers machines.

Does it make sense to you? I think that I explained better now.

With that said, you still think that I can solve this with programming in a easier way than using the sensor? If so, please let me know because that would be of great help.

Thank you,

Joao.

P.S. regarding the laser power, we have ways to decrease it so that it does not damage the sensor.

Josdc:
With that in mind, I can't just define a time in the Arduino program to move the axes, because this time is not constant and it will vary with the laser parameters.

I think you are still missing the point.

Even if the time changes for each movement you will know when a movement is finished. Then it will be time to turn off the laser.

Unless of course the purpose of the exercise is to have the laser ON when the motors are stationary? In which case, how do you determine when the laser has completed its job?

...R

Does it make sense to you? I think that I explained better now.

You have said what you want to do but not made a case for the sensor.

The objective is that the only thing I need to do is point the laser to the sensor and all the axes will move again

So what action do you do to point the laser? That same action can just be used to set off the system for the next layer. Their is no need to use a sensor. If that action is a command to "go point at the sensor" then that command could be just interpreted as a "start next layer".

By the way, the real name for the selective melting you are doing, is "sintering".

Robin2:
I think you are still missing the point.

Even if the time changes for each movement you will know when a movement is finished. Then it will be time to turn off the laser.

Unless of course the purpose of the exercise is to have the laser ON when the motors are stationary? In which case, how do you determine when the laser has completed its job?

...R

Hey Robin,

Thank you so much for your answer.

I think I am missing the point, because in my view, the easiest solution is to use a sensor.

Could you help me on that? Because since you and Mike think I am wrong, I think you guys are right.

Here are some other details:

The stepper motors need to deposit one layer of powder into the building chamber (the time to do this is constant, let's call it X). After the layer is deposited, we will manually turn on the laser and it will melt the powder and start to create a part (the time to do this is not constant, because we will vary the power, laser velocity, and other parameters).

After the melting is done, we need to deposit one more powder layer so we can continue the process.

Then, we point the laser to the sensor and restart the movement. Here, the laser algorithm will do this: 1. activate the light sensor and wait for the time X, 2. as soon as X seconds is passed, the laser will melt the powder again. Then, this process happens until the part gets built.

With this configuration, it does not matter how long the laser melting time is, because the axis will only move as soon as they receive the signal from the sensor.

Okay, I know that we could integrate the arduino into the laser so that everytime the laser finishes lasing, the axis movement starts again.

But don't you think that it is easier to integrate only one sensor into the arduino than it is to integrate all the diffent types of laser machines we will be using into the arduino?

I think that may be the main question.

Grumpy_Mike:
You have said what you want to do but not made a case for the sensor.
So what action do you do to point the laser? That same action can just be used to set off the system for the next layer. Their is no need to use a sensor. If that action is a command to "go point at the sensor" then that command could be just interpreted as a "start next layer".

By the way, the real name for the selective melting you are doing, is "sintering".

Hey Mike,

Thank you for your answer. As I wrote to Robin, I think it is easier to integrate one sensor to the arduino then it is to integrate all the lasers to the arduino. Don't you think that?

Also, saying the SLM is SLS is like saying that Milling is Machining. But the Additive Manufacturing Community uses SLM for the process that I am talking about (the one in the picture).

Robin and Mike, thank you for your time and your help, and if I you think I am out of my mind and it's easier to integrate the lasers to the arduino or I don't need any of that, please say so, because I am completely new to stepper motors.

Josdc:
we will manually turn on the laser and it will melt the powder and start to create a part

I have been assuming the stepper motors are moving the laser?
Or else that they are moving the base-plate containing the powder so that the laser shines on different places?

Is that correct?

...R

Robin2:
I have been assuming the stepper motors are moving the laser?
Or else that they are moving the base-plate containing the powder so that the laser shines on different places?

Is that correct?

…R

Hello Robin,

Thank you for your answer.

The stepper motors will only be doing the mechanical movement of the table. Basically, the objective of the steppers is just to deposit one more layer of powder into the building chamber, and nothing more.

In the attachments you can see a figure of the process, and I included a red “2 steppers” indicating that 2 steppers will be used to move that particular axis.

The laser movement will be made using a commercial scanner system.

EDIT: thank your for your stepper basics post. Very helpful!

Josdc:
The laser movement will be made using a commercial scanner system.

Now he tells us .... :slight_smile:

I think we have all been assuming that the stepper motors will be moving the laser and when the stepper motors stopped moving it would be time to turn the laser off - without needing any separate detection system.

I can now understand why you need some sort of detection system so you know when the laser action is finished - but I don't have any suggestions about how to do it.

...R

Doesn't your laser scanner system have some kind of "I'm finished" signal available? Either directly, or from the controlling software or so.

Another possible way to detect the laser being finished is to add a mechanical switch which is pressed by the laser head returning to its home position.

wvmarle:
Doesn't your laser scanner system have some kind of "I'm finished" signal available? Either directly, or from the controlling software or so.

Another possible way to detect the laser being finished is to add a mechanical switch which is pressed by the laser head returning to its home position.

Hmm this mechanical system could work. The laser nozzle does not move though, a scanner system moves the laser beam with mirrors. But thanks, that gave me some idea!

Thank you all for your ideas.