Skip to content
firepick1 (localhost) edited this page Sep 17, 2016 · 31 revisions

FireStep Stepper Library

Stepper motion control with Pythogorean Hodograph Curves

FireStep is an Arduino stepper library for FirePick Delta. FireStep is tested with Arduino Mega2560 (with RAMPS1.4 or Tin Whiskers FPD EMC02 breakout boards). It has also been ported to faster CPUs such as MotionBoard. FireStep relies on analytic Pythagorean Hodographic Quintic curves (PH5Curves) for precise and smooth motion.

Here are some videos of FireStep that demonstrate how smoothly, gently and quickly it moves without any special motion board hardware, using open-loop steppers with no feedback:

FireStep is targeted at pick and place (PnP) operations on a FirePick Delta CNC machine, but it can also be used for cheap, smooth and fast 4-axis CNC control.

NOTE: FireStep is optimized for low-accelaration, high-speed curvilinear PnP motion and is currently not suited to 3D printer control.

JSON Command structure

FireStep requests and responses use JSON syntax:

Why not GCODE?

FireStep devotes precious memory for smooth path traversal of complicated paths. Unfortunately, no memory is left for GCODE interpretation. Instead of GCODE, FireStep relies entirely on a versatile two-level JSON command structure inspired by TinyG.

FireStep is primarily designed to support continuously accelerating rapid pick and place (PnP) operations and should not be used for 3D printing, which requires a highly chatty GCODE protocol and constant feedrates.

However, future versions of FireStep may support GCODE and/or 3D printing.

Installation

  1. Download and install the AdaFruit NeoPixel library. Since NeoPixel is GPL, it must be listed separately for installation.
  2. Download the latest FireStep release
  3. Unzip release into your Arduino workspace folder. The zip file contains the FireStep Arduino sketch.
  4. Connect to your Arduino Mega2560 or Due board via USB (shorter is better, but 16-foot can work)
  5. Install Arduino IDE 1.6.11 (please note the EXACT version number) as a normal user (do not install as super user)
  6. Launch Arduino IDE 1.6.11 and open FireStep/FireStep.ino`
  7. Compile and run your sketch
  8. Use the Serial Monitor at 19200 baud with Newline. Faster baud rates are not supported at this time, although you can get faster rates with shorter USB cables. The Newline is required for handshakes.
  9. [Calibrate your steppers](Stepper Calibration)
  10. If your are using FireStep with FirePick Delta, proceed to Delta-Calibration
Troubleshooting: It doesn't build on my Arduino IDE

Arduino IDE's are very idiosyncratic. Version numbers matter!

Arduino IDE FireStep compatible
1.6.11
1.6.7
1.6.5
Troubleshooting: cannot access Linux serial port

Linux serial ports typically show up as:

  • /dev/ttyACM0
  • /dev/ttyUSB0
  • etc.

If you have trouble accessing those ports, you may need to give your user permission to access the serial ports by putting them in the dialout group. For example:

sudo usermod -a -G dialout $USER