Third Party Branches

This page lists community-maintained branches and forks of Smoothie firmware that provide additional features or optimizations for specific use cases.

Note to developers: Please add links to branches of the Smoothie firmware that others may be interested in.

Available Branches

  • Simulated annealing: Simulated annealing (AI) auto-calibration for Deltas, plus depth-map Z correction & probe calibration (discussion).
  • Least squares levelling: Another auto-calibration method, originally by DC42 in ReprapFirmware.
  • OpenTrons: A custom fork that supports 6-axis movement ( but is not yet stable ) and some opentron-specific features
  • Multiple Grids: Allows use of multiple grids for grid levelling
  • Reprap Morgan: A fork with features optimized for the Reprap Morgan architecture
  • Ditto Printing: A fork with branch features/ditto-printing to enable one or more secondary extruders to duplicate the movements of the primary, using RepRap gcode “M605 S2”
  • Joystick Jogging: A new module to allow jogging with a joystick. Needs testing, so if you are interested by this feature, please help.
  • Dual X, Y, Z, E: Mimics the Dual X, Y or Dual Z feature of Marlin. You will need to add new parameters into your configuration file in order to make it work.
  • Dual motor AND Endstops for homing: Much like the above, but allows you to add a second endstop that stops the second motor independently to square the two motors during the homing operation.
  • FTP server: allows the use of a commodity FTP client (e.g. Filezilla) to manage files on the SD card
  • Motor branch: Adds a new module that allows controlling DC motors with cw/ccw pins, and both homing and “tick count” movement. Useful for some automated tool changers, some powder printing wipers, and some pick and place head mechanisms.
  • Spindle reverse rotation: Adds M4 to the Spindle module to allow counter rotation.
  • Slave Switch: Allows a Switch module ( for a hobby servo typically ), to be controlled exactly like a normal axis ( like your Z axis say ), allowing for example hobby servos to be controlled exactly like normal axes, making them now about to do things like homing or probing, which they couldn’t before just as a switch.

Using a Third-Party Branch in Your Machine

  1. First, go to the link for the GitHub page of that branch
  2. Click the green Clone or Download button
  3. Click on Download ZIP
  4. Decompress the ZIP file
  5. You can now follow the instructions at compiling-smoothie exactly as you would for the edge branch
If you run into any kind of trouble using one of those branches, please make sure you test the normal Smoothie before reporting a problem. If the problem exists only in the third party branch but not in the main Smoothie, please contact the branch's author instead of the main team. Outdated Code Warning Most or all of those branches are not regularly (or ever) updated to the latest Smoothie releases. This means they will probably lack most recent features (possibly a lot of them) and bug fixes. It is also likely that trying to update those branches/forks to the latest version of Smoothie would be a lot of work, or even in some cases close to impossible.

Checking Out Pull Requests

Not everything is a branch or a fork, sometimes code can also be stored/presented in the form of a "Pull request". If you are confused by what that means, you need to read up on git and GitHub (GitHub has extensive documentation on everything. Jim also recommends this simple guide).

Here is for example how you would check out the pull request for the jogger feature:

git checkout -b skaterzero807-feature/Jogger edge
git pull git://github.com/skaterzero807/Smoothieware.git feature/Jogger

Ports to other platforms or MCU

  • SmoothieV2: A port to the LPC43XX microcontroller, used on the Smoothie2 and Smoothie2-pro boards
  • Smoothie STM32: A port to the STM32 microcontroller
  • Smoohieware CHMT: A port to STM32F4 for running smoothieware on CharmHigh pick and place machines.

Ports of other firmwares to Smoothieboard

  • grbl-LPC is a version of GRBL 1.1 that runs on the Smoothieboard

Automated builds

Some branches are automatically built for every new commit to the repository.

You can find these automatic builds below with different possible configurations, in particular the default build (for 3D printers), and the CNC build for different amounts of axes:

Motor branch

This branch adds the “motor” module, that lets you control a DC motor, including and encoder and endstop feature, which is very helpful for DC-motor-controlled “carousel” systems in ATC CNC mills.

If you have an ATC CNC mill and want to use this module, contact wolf.arthur@gmail.com for help setting it up/showing interest in documentation being written for it.

Feature/Motor Branch Builds

This page provides automated builds for the feature/motor branch.

These builds are automatically generated from the latest commits to this experimental branch.

Recent Builds

Most recent builds for the feature/motor branch:

Commit Date Automated Builds Binary File Downloads Author Comment
Commit 534b2867 1 year ago Download default-3dp Download cnc-3axis Download cnc-4axis Download cnc-5axis Download cnc-6axis arthur fixing bugs with the infinite movement
Commit 1325c15e 1 year ago Download default-3dp Download cnc-3axis Download cnc-4axis Download cnc-5axis Download cnc-6axis arthur set default pin states
Commit 03e5ac64 1 year ago Download default-3dp Download cnc-3axis Download cnc-4axis Download cnc-5axis Download cnc-6axis Arthur Wolf removing some more illegal letters

List and binaries automatically generated UTC 2021-02-21T15:47:31.845Z AI