RDL V2 Stepper Motor Serial Command-Line Utility

Hi,

I am releasing V2 of RDL, my little stepper utility. RDL is a serial-connection command-line stepper motor control program. RDL is interactive purpose-written control program for stepper-motor: tuning, testing, experimental mechanism/axis use, and perhaps coil winding.

New features in this release:

  • Added ability to type up to 2 arguments on the command line, such as type "t 1.5" will now turn the motor 1.5 turns.
  • Built-In LED Wake Indicator.
  • Added "setrpm" and "run" commands for continuous motor running.
  • Divide can now divide in linear mode between Start and End points.
  • Added "setstartat" command.
  • Created seek_absolute and seek_relative movement functions to handle most movement.
  • 4% Less Memory Used.

Features:

  • ? Shows command list.
  • @ Shows position.
  • . Shows settings.
  • Accepts up to 2 arguments after the command, such as "t 1.5" , which will t)urn the motor 1.5 revolutions.
  • Automatically, saves most configuration settings to EEPROM.
  • Most movements use sinusoidal smoothing with time-compensation code.
  • Has optional proportional analog single-axis joystick support for movement and increments.
  • Works with either Step/Dir or Step-Forward/Step-Backward type drivers by using "setdirmode" .
  • Has a "setspeed" to divide the motor speed for testing.
  • Floating-point positioning is used.
  • Fits and runs on most Arduino's--including the Nano and barely the Micro.
  • Supports "sleep" and "wake" to enable and disable the motor by driver, with built-in LED indication.
  • Has a g)oto command to move by absolute movement.
  • Has settable, placeable, and goto-able: s)tart, h)ome, and e)nd positions.
  • Has an "setlimitmode" option to use the n)one, h)ardware s)oftware, or b)oth using the start and end positions.
  • Has linear and rotary modes that can be set set with "setmode".
  • Has a l)inear mode that:
  • Can be set with "setsteps" to move a given physical distance, such as setting it to 1200 per millimeter.
  • Has a m)ove command for relative movement.
  • Can "divide" the distance between user-set Start and End points by a given numner of segments.
  • Can home using multiple revolutions.
  • Has a default r)otary mode that:
  • Can rotate by either t)urn or d)egree.
  • Can "divide" in a one revolution between 0 and 1 by a given number of segments.
  • Can homes to closest angle of a single revolution.
  • Can auto-home "ah" with optional EEPROM optional settable final offset for correcting mechanical misalignments.
  • Can change divisions with "+" or "-" or the joystick, or you can use "/" to choose a particular one.
  • Supports software limits that will not put the motor to sleep.
  • Has preliminary hardware limit-sensor support that will put the motor to sleep if sensor is tripped.
  • Has a "setmicrostep" command to optionaly select microsteps using microstepping pins, after choosing "A4988" or "DRV8825" with "setdriver".
  • Has an option to automatically scale your current steps during a "setmicrostep" microstep change.
  • Has a "run" command that allows continuous motor rotation set with "setrpm".
  • You have already been introduced to 26 of RDL's 42 commands.

Video manual for V1: RDL - Arduino Serial Command-Line Stepper Motor Utility - YouTube

Version 2 Update Video RDL Arduino Stepper Motor Utility - Version 2 Improvements - YouTube

RDL 2 Code Review: [url=https://www.youtube.com/watch?v=RLmfHUZlC-c[/url]RDL 2 Arduino Stepper Motor Utility Code-Review - YouTube

Version:
2.239 Fixed Setend y

RDL_239.ino.ino (63.9 KB)

Brenda thank you for this FANTASTIC WORK ! I've been playing around with a polulu a4988 for months and I painfully managed to build a program to control a DSLR on a slider.... and I just discovered RDL, which is everything I was dreaming of !

The only problem is with the joystick control, it's weird : with the previous version of RDL I can control the direction but the speed is very low and constant, no smoothing at all. I tried with a potentiometer with the same result. I tried changing setspeed and step delay, same thing.

And in RDL V2 it simply doesn't react at all !

The serial commands seem to work fine though, rotary mode, microstepping, etc.

Any idea what could cause the problem ?

Thanks again !!

From the command line, you might try adjusting:
setjoydelay
setjoydelaymax

These directly affect they joystick.

Outside of divided moves initiated with the joystick, there hasn't been any smoothing joystick control.

I am sorry about delay in reply. Real life is happening, in a bad way.

Patched a bug in setend. It wasn't taking a "y" to confirm.

I posted a Version 2 Update Video on youtube: RDL Arduino Stepper Motor Utility - Version 2 Improvements - YouTube

I posted a 1 hour and 56 minute Code Review of RDL 2: [url=https://www.youtube.com/watch?v=RLmfHUZlC-c[/url]RDL 2 Arduino Stepper Motor Utility Code-Review - YouTube