Third party branches

Note to devs: Please list pointers to branches to the smoothie firmware that others may be interested in.

  • 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 ), allowng for example hobby servos to be controlled exactly like normal axes, making them now about to do thins 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

These are unsupported

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.

Not up to date

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, it's very impressive. Jim also recommends http://rogerdudler.github.io/git-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

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.

Most recent builds for the feature/motor branch:

Commit Date Automated Builds Binary File Downloads [] Author Comment
534b2867 1 year ago default-3dp   cnc-3axis   cnc-4axis   cnc-5axis   cnc-6axis   arthur
fixing bugs with the infinite movement
1325c15e 1 year ago default-3dp   cnc-3axis   cnc-4axis   cnc-5axis   cnc-6axis   arthur
set default pin states
03e5ac64 1 year ago default-3dp   cnc-3axis   cnc-4axis   cnc-5axis   cnc-6axis   Arthur Wolf
removing some more illegal letters
802aea2a 1 year ago default-3dp   cnc-3axis   cnc-4axis   cnc-5axis   cnc-6axis   Arthur Wolf
using ABC was illegal, moving to RST for M-code parameters to comply
a80635b2 1 year ago default-3dp   cnc-3axis   cnc-4axis   cnc-5axis   cnc-6axis   Arthur Wolf
adding a command that reads the current status and related values
2db11a54 1 year ago default-3dp   cnc-3axis   cnc-4axis   cnc-5axis   cnc-6axis   Arthur Wolf
create a first naive version of the "move forever" feature
f6693a29 1 year ago default-3dp   cnc-3axis   cnc-4axis   cnc-5axis   cnc-6axis   Arthur Wolf
create a first naive version of the absolute and relative tick-counting movement
8c17404c 1 year ago default-3dp   cnc-3axis   cnc-4axis   cnc-5axis   cnc-6axis   Arthur Wolf
first basic homing command and functions
468aa1d4 1 year ago default-3dp   cnc-3axis   cnc-4axis   cnc-5axis   cnc-6axis   Arthur Wolf
added all pin configuration options config reading
263c6544 1 year ago default-3dp   cnc-3axis   cnc-4axis   cnc-5axis   cnc-6axis   Arthur Wolf
adding the first pin config reading
List and binaries automatically generated UTC 2021-02-21T15:47:31.845Z

2021/02/17 18:15