/* This file is part of Repetier-Firmware. Repetier-Firmware is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Repetier-Firmware is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Repetier-Firmware. If not, see . This firmware is a nearly complete rewrite of the sprinter firmware by kliment (https://github.com/kliment/Sprinter) which based on Tonokip RepRap firmware rewrite based off of Hydra-mmm firmware. Main author: repetier */ /** \mainpage Repetier-Firmware for Arduino based RepRaps
Copyright © 2011-2013 by repetier
\section Intro Introduction \section GCodes Implemented GCodes look here for descriptions of gcodes: http://linuxcnc.org/handbook/gcode/g-code.html and http://objects.reprap.org/wiki/Mendel_User_Manual:_RepRapGCodes Implemented Codes - G0 -> G1 - G1 - Coordinated Movement X Y Z E, S1 disables boundary check, S0 enables it - G4 - Dwell S or P - G10 S<1 = long retract, 0 = short retract = default> retracts filament accoridng to stored setting - G11 S<1 = long retract, 0 = short retract = default> = Undo retraction according to stored setting - G20 - Units for G0/G1 are inches. - G21 - Units for G0/G1 are mm. - G28 - Home all axis or named axis. - G29 - SeeMeCNC modded probing code to execute endstop offset>z height>printer radius autocal routine - G30 - Single z-probe at center S2 stores new z height - G31 - Write signal of probe sensor - G32 S<1 or 2> Autolevel print bed. S = 1 measure zLength, S = 2 Measue and store new zLength NOT USED ON ERIS - G68 - Horizontal Radius calibration NO S1 or S2 needed at all - G69 - S<1 or 2> Endstop offset probing S1 displays and S2 stores - G90 - Use absolute coordinates - G91 - Use relative coordinates - G92 - Set current position to cordinates given - G131 - set extruder offset position to 0 - needed for calibration with G132 - G132 - calibrate endstop positions. Call this, after calling G131 and after centering the extruder holder. RepRap M Codes - M104 - Set extruder target temp - M105 - Read current temp - M106 - Fan on - M107 - Fan off - M109 - Wait for extruder current temp to reach target temp. - M114 - Display current position Custom M Codes - M20 - List SD card - M21 - Init SD card - M22 - Release SD card - M23 - Select SD file (M23 filename.g) - M24 - Start/resume SD print - M25 - Pause SD print - M26 - Set SD position in bytes (M26 S12345) - M27 - Report SD print status - M28 - Start SD write (M28 filename.g) - M29 - Stop SD write - M30 - Delete file on sd card - M32 create subdirectory - M42 P S - Change output of pin P to S. Does not work on most important pins. - M80 - Turn on power supply - M81 - Turn off power supply - M82 - Set E codes absolute (default) - M83 - Set E codes relative while in Absolute Coordinates (G90) mode - M84 - Disable steppers until next move, or use S to specify an inactivity timeout, after which the steppers will be disabled. S0 to disable the timeout. - M85 - Set inactivity shutdown timer with parameter S. To disable set zero (default) - M92 - Set axisStepsPerMM - same syntax as G92 - M99 S X0 Y0 Z0 - Disable motors for S seconds (default 10) for given axis. - M104 S T P1 F1 - Set temperature without wait. P1 = wait for moves to finish, F1 = beep when temp. reached first time - M105 X0 - Get temperatures. If X0 is added, the raw analog values are also written. - M112 - Emergency kill - M115- Capabilities string - M116 - Wait for all temperatures in a +/- 1 degree range - M117 - Write message in status row on lcd - M119 - Report endstop status - M140 S F1 - Set bed target temp, F1 makes a beep when temperature is reached the first time - M163 S P - Set weight for this mixing extruder drive - M164 S P<0 = dont store eeprom,1 = store to eeprom> - Store weights as virtual extruder S - M190 - Wait for bed current temp to reach target temp. - M200 T D - Use volumetric extrusion. Set D0 or omit D to disable volumetric extr. Omit T for current extruder. - M201 - Set max acceleration in units/s^2 for print moves (M201 X1000 Y1000) - M202 - Set max acceleration in units/s^2 for travel moves (M202 X1000 Y1000) - M203 - Set temperture monitor to Sx - M204 - Set PID parameter X => Kp Y => Ki Z => Kd S Default is current extruder. NUM_EXTRUDER=Heated bed - M205 - Output EEPROM settings - M206 - Set EEPROM value - M207 X Z E - Changes current jerk values, but do not store them in eeprom. - M209 S<0/1> - Enable/disable autoretraction - M220 S - Increase/decrease given feedrate - M221 S - Increase/decrease given flow rate - M231 S X Y Z F - Set OPS parameter - M232 - Read and reset max. advance values - M233 X Y - Set temporary advance K-value to X and linear term advanceL to Y - M251 Measure Z steps from homing stop (Delta printers). S0 - Reset, S1 - Print, S2 - Store to Z length (also EEPROM if enabled) - M261 read status of interrupt PROBE pin - M262 read threshold for probe i2c pin if you add S and a value that sets a new value for the interrupt (0-126 7 bit value) - M280 S - Set ditto printing mode. mode: 0 = off, 1 = 1 extra extruder, 2 = 2 extra extruder, 3 = 3 extra extruders - M281 Test if watchdog is running and working. - M300 S P play frequency - M302 S<0 or 1> - allow cold extrusion. Without S parameter it will allow. S1 will disallow. - M303 P S X0 - Autodetect pid values. Use P for heated bed. X0 saves result in EEPROM. - M320 - Activate autolevel - M321 - Deactivate autolevel - M322 - Reset autolevel matrix - M323 S0/S1 enable disable distortion correction P0 = not permanent, P1 = permanent = default - M340 P S : servoID = 0..3, Servos are controlled by a pulse with normally between 500 and 2500 with 1500ms in center position. 0 turns servo off. - M350 S X Y Z E P : Set microstepping on RAMBO board - M355 S<0/1> - Turn case light on/off, no S = report status - M360 - show configuration - M400 - Wait until move buffers empty. - M401 - Store x, y and z position. - M402 - Go to stored position. If X, Y or Z is specified, only these coordinates are used. F changes feedrate fo rthat move. - M500 Store settings to EEPROM - M501 Load settings from EEPROM - M502 Reset settings to the one in configuration.h. Does not store values in EEPROM! - M600 Change filament - M908 P
S : Set stepper current for digipot (RAMBO board) */ #include "Repetier.h" #include #include #if UI_DISPLAY_TYPE == DISPLAY_ARDUINO_LIB //#include // Uncomment this if you are using liquid crystal library #endif void accelerometer_init(); void setup() { Printer::setup(); accelerometer_init(); } void loop() { Commands::commandLoop(); }