Skip to content

kostasl/SmoothiewareOT

 
 

Repository files navigation

Overview

SmoothiewareOT is the Opentrons' fork of the Smoothieware project's Smoothie firmware. The primary difference is the ability to use three additional axes, A B and C, in straight line movements (G0 and G1), and an option to automatically send position and machine state data in JSON format (roughly 3x/sec) using "M62" (on) and "M63" (off) commands.

!!IMPORTANT The code is still being developed and it is important that certain configuration settings be set correctly. Check the Opentrons folder within the ConfigSamples folder for recommended config files to use.

!!IMPORTANT v1.0.5 is NOT yet compatible with robot, use v1.0.4 for now

Quick Start

Copy the file FirmwareBin/firmware.bin and ConfigSamples/Opentrons/config to the sdcard and reset.

Smoothieware documentation can be found here : http://smoothieware.org/

Opentrons Commands - list of some command changes

feedback.cpp

  • M62 (Pn Sn): Start feedback. Optional Pn and Sn are not used and unlikely to be used, so they will be removed soon
  • M63: Stop feedback

robot.cpp

  • M114: Show current position of all axes, XYZABC will be the last requested position, whereas xyzabc is actual current position of the actuators.

Change from Smoothieware: Added ABC axes, actual current position of the actuators now lower case of axis letter, JSON format

  • M198 (Sn An Bn Cn): Set feed rate.

Sn => X, Y, Z feed rate, n float An => A feed rate, n float Bn => A feed rate, n float Cn => A feed rate, n float

  • M199 (Sn An Bn Cn): Set seek rate.

Sn => X, Y, Z seek rate, n float An => A seek rate, n float Bn => A seek rate, n float Cn => A seek rate, n float

  • M203 (Xn Yn Zn An Bn Cn): Set max feedrates. Same as Smoothieware but adjusted to output in JSON format and include A, B, C.
  • M204 (Xn Yn Zn An Bn Cn): Set acceleration. Same as Smoothieware but adjusted to output in JSON format and include A, B, C.

endstops.cpp

  • M28 XYZABC: Changed to include ABC axes and can be interrupted with M112
  • M119: Show limit switch status. Same as Smoothieware but adjusted to output in JSON format
  • M120 (Xn Yn Zn xn yn zn An Bn Cn an bn en): Show endstop pins with option to set endstop pin for given axis as min (upper case letter) or max (lower case letter). This is useful for enabling or disabling homing on a given axis. Note: e is used for c max because “nc” is the value to set endstop when the pin is not used. This could possibly be changed, but max c is not expected to be used for a long time.
  • M206 (Xn Yn Zn An Bn Cn): Show homing offsets with the option to set the offset for each axis.
  • M210 (Xn Yn Zn An Bn Cn xn yn zn an bn cn): Show homing fast rates and slow rates with the option to set the rate for each axis. Upper case corresponds to fast rate and lower case corresponds to slow rate.

currentcontrol.cpp

  • M907 (Xn Yn Zn An Bn Cn Dn En): Show current control for each axis with the option to set current for each axis. Same as Smoothieware but adjusted to output in JSON format.

simpleshell.cpp

  • ot_get <settings>: Similar to config-get but for showing settings as they are, not from config file. List of settings available to show not done yet, command not fully implemented. M-code commands listed in this document have priority.
  • ot_set <setting> <value>: Similar to config-set but for changing settings on the fly, not in config file. List of settings available to change not done yet, command not fully implemented. M-code commands listed in this document have priority.

About

Opentrons' fork of the modular, opensource, high performance G-code interpreter and CNC controller written in Object-Oriented C++

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 49.7%
  • C 46.9%
  • HTML 1.1%
  • Makefile 1.1%
  • Ruby 0.3%
  • Shell 0.3%
  • Other 0.6%