Third Party Branches

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

The branches and ports listed here are primarily for Smoothieware V1. If you’re using V1, you can explore community features below.

Important: Most branches listed here are for Smoothieware V1 only and are not compatible with V2.

V2 has a significantly different codebase and architecture. If you’re looking for V2-specific features or branches, see the SmoothieV2 section below.

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.
  • OpenPNP branch: A branch by Mark Maker with features specific for OpenPNP, recommended by the OpenPNP project to be able to use it to the fullest extent.

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

Note: These instructions are for V1 branches. If you’re using V2, you won’t need to compile third-party V1 branches. Instead, explore official V2 features or contact the SmoothieV2 development team about porting specific features.

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 and V2 Ports

  • SmoothieV2: The official port of Smoothieware V2 to the LPC43XX microcontroller. Used on Smoothie2 and Smoothie2-pro boards. This is a complete rewrite with a different codebase from V1 branches.
  • SmoothieV2: This is YOUR firmware repository. SmoothieV2 is the official Smoothieware V2 firmware running on the Smoothie2 and Smoothie2-pro boards (LPC43XX microcontroller). For V2-specific features and developments, check the main SmoothieV2 repository.

V1 Community Ports to Other Hardware

If you want to run Smoothieware V1 on different hardware, these community ports may be of interest:

  • Smoothie STM32: A community port to the STM32 microcontroller
  • Smoothieware CHMT: A community port to STM32F4 for running Smoothieware V1 on CharmHigh pick and place machines

These are community ports of Smoothieware V1 to other hardware. They are not recommended for V2 users, as V2 has its own dedicated ports and hardware support.

  • Smoothie STM32: A community port of V1 to the STM32 microcontroller
  • Smoothieware CHMT: A community port of V1 to STM32F4 for 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

This is a wiki! If you'd like to improve this page, you can edit it on GitHub.