• 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5

TLSMC using a lead screw instead of a belt

#1 ramigrafx
Hi Sheba,
I have built a slider which has a movement range of 150 mm and a lead screw drive from a NEMA 17 with no gearbox. For one revolution of the lead screw the gantry moves 2mm forward.

I am at a bit of a loss to know what values to enter in the Arduino code for the lead screw as the software is written for a belt drive. Any suggestions please?
#2 Sheeba
Hi Richard,
in my formula is calculated how many steps are needed to move the slider 0.1 mm. And this depending on the used gear and the belt.
In your case with a lead screw it behaves differently.
With a motor without gear, the stepping resolution of the motor controller is set to 1/16 step
#ifdef nogearMotor
   setsteppresolution(steppResS); // 1/16 step

This requires 200 * 16 = 3200 stepps for one revolution. This corresponds in your case a movement of the slider of 2mm. To calculate the number of stepps for a distance of 0.1 mm, the following formula results:

3200 steps = 2mm; Stepps for 0.1 mm> (3200 / (2.0 / 0.1)) = 160 stepps for 0.1mm

For a quick test, change the code:
   steppsP01m = (SPR * SR) / (TEETH * BELT * 10);
steppsP01m = 160;

I hope, that i could helped you!!

Regards, Hans

Update !!
To speed up the movement you can also try the following setting!

#ifdef nogear engine
   setsteppresolution (steppResF); // 1/1 step

That will give you 200 stepps / revolution

steppsP01m = 20;
This only requires 20 steps for 0.1mm movement !!

Regards, Hans
#3 ramigrafx
Hi Hans,
These settings did not really work.
The settings that I had adjusted already were as follows, which gave me the best results

#ifdef nogearMotor
const int SPR = 200; // Stepps per revolution of motor NEMA17 = 200
const int SR = 1; // Stepp resolution set for Motor controller 1,2,4,8,16 "setsteppresolution()"
const int TEETH = 1.5; // Number of teeth of the gear 8,12,20...
const int BELT = 1; // pitch of the toothbelt 2,2.5,5 mm …

After reading your instructions I have altered this setting directly

steppsP01m = 20; //(SPR * SR) / (TEETH * BELT * 10);

Now the motor takes 32 steps to make a complete revolution for the smallest movements over the shortest distance. It does bigger movements when it has to travel the full distance. This is fine as it is for doing focus stacking at the moment. I have the Arduino mounted directly above the TLSMC and it takes it's 5v supply directly from it, so cutting down on a battery.
The display is a yellow one. This has the advantage that the text on it is black and so it can still be read when the back light is turned off, which will help to conserve the battery.
#4 Sheeba
Hello Richard,
with your last settings steppsP01m is calculated with 13.3
I made a mistake in specifying
steppsP01m = 20;
Since your motor makes 200 steps per revolution, and thus a distance of 2mm
he needs for 0.1mm 10 stepps !!
So steppsP01m = 10!!
So very similar to your setting
Try if that is better !!

Greetings Hans
#5 ramigrafx
Hi Hans,
I am using this short rail successfully for focus stacking, and small scale timelapse, though the display is pretty meaningless. I have tried other hardware and software to try achieve focus stacking on my setup. and none work as well as using your TLSMC. Just one modification would be useful. My rail has limiting switches at either end which if they were wired up could be used to stop the carriage over running when setting the limits of travel. Would it be possible to connect this to the Arduino nano so that if the circuit is broken the motor stops, or goes into reverse for a few mm.

ps. I have tried to attach a photo of my equipment, but it is not accepted?
#6 Sheeba
Hi Richard,
Thanks for your feedback. I'm glad that the TLSMC works better than the others. Which did you test in comparison?
As far as the limit switches are concerned, you do not really need them because you can set the start and end position with my TLSMC software !! If set correctly, the slider will never go over it. Check the manual here:
4. Reply
It describes how to set the start and end position!

P.S. the maximum size for attached photos is 500kB !!

Regards, Hans
#7 ramigrafx
Hi Hans,
I tried Stackduino.
I accept your point that when the system is running the TLSMC remembers the start and end positions of the carriage. So no problem there.It would be handy when setting the start and end positions so as not to hit the ends of the slider.
My image is only 78.2KB
#8 Sheeba
Hi Richard,
did you try to adjust the start and end position with your track?
You can also email me the picture!
Regards, Hans
#9 ramigrafx
Hi Hans,
There is no problem once setup. If I want to alter the distance to travel, which occurs with focus stacking, I press both buttons when I switch on and reset the start position and the end position. It would be handy to have this new function just in case I hit the end of the rail with the carriage during the setup.
I cannot find any means of sending my picture by email on this site.
#10 Sheeba
Hi Richard,
yes that would be a kind of security. Since I'm working on extensions to the TLSMC firmware, I'll look at that.
bottom left of the window is a button to send an e-mail !!
Regards, Hans

...also check out: