no message
This commit is contained in:
parent
7474a6e633
commit
e159e15327
@ -1,2 +1,5 @@
|
||||
# The-Legend-of-Delta
|
||||
# Firmware
|
||||
Repetier firmware for all RAMBo controlled SeeMeCNC 3D Printers. One firmware, configuarable for all RAMBo deltas.
|
||||
|
||||
This firmware is based off of Repetier Firmware, through many years and versions, as well as some integration with features of marlin and others work.
|
||||
|
||||
|
2738
Repetier Firmware/Repetier/Commands.cpp
Normal file
2738
Repetier Firmware/Repetier/Commands.cpp
Normal file
File diff suppressed because it is too large
Load Diff
53
Repetier Firmware/Repetier/Commands.h
Normal file
53
Repetier Firmware/Repetier/Commands.h
Normal file
@ -0,0 +1,53 @@
|
||||
/*
|
||||
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 <http://www.gnu.org/licenses/>.
|
||||
|
||||
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.
|
||||
|
||||
Functions in this file are used to communicate using ascii or repetier protocol.
|
||||
*/
|
||||
|
||||
#ifndef COMMANDS_H_INCLUDED
|
||||
#define COMMANDS_H_INCLUDED
|
||||
|
||||
class Commands
|
||||
{
|
||||
public:
|
||||
static void commandLoop();
|
||||
static void checkForPeriodicalActions(bool allowNewMoves);
|
||||
static void processArc(GCode *com);
|
||||
static void processGCode(GCode *com);
|
||||
static void processMCode(GCode *com);
|
||||
static void executeGCode(GCode *com);
|
||||
static void waitUntilEndOfAllMoves();
|
||||
static void waitUntilEndOfAllBuffers();
|
||||
static void printCurrentPosition(FSTRINGPARAM(s));
|
||||
static void printTemperatures(bool showRaw = false);
|
||||
static void setFanSpeed(int speed,bool wait); /// Set fan speed 0..255
|
||||
static void changeFeedrateMultiply(int factorInPercent);
|
||||
static void changeFlowrateMultiply(int factorInPercent);
|
||||
static void changeHorizontalRadius(float hradius);
|
||||
static void reportPrinterUsage();
|
||||
static void emergencyStop();
|
||||
static void checkFreeMemory();
|
||||
static void writeLowestFreeRAM();
|
||||
private:
|
||||
static int lowestRAMValue;
|
||||
static int lowestRAMValueSend;
|
||||
};
|
||||
|
||||
#endif // COMMANDS_H_INCLUDED
|
583
Repetier Firmware/Repetier/Communication.cpp
Normal file
583
Repetier Firmware/Repetier/Communication.cpp
Normal file
@ -0,0 +1,583 @@
|
||||
/*
|
||||
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 <http://www.gnu.org/licenses/>.
|
||||
|
||||
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.
|
||||
*/
|
||||
|
||||
#include "Repetier.h"
|
||||
|
||||
#if DRIVE_SYSTEM == DELTA
|
||||
FSTRINGVALUE(Com::tFirmware,"FIRMWARE_NAME:Repetier_"REPETIER_VERSION" FIRMWARE_DATE:"FIRMWARE_DATE" MACHINE_TYPE:"UI_TEXT_PRINTER_READY" ")
|
||||
#else
|
||||
#if DRIVE_SYSTEM == CARTESIAN
|
||||
FSTRINGVALUE(Com::tFirmware,"FIRMWARE_NAME:Repetier_" REPETIER_VERSION " FIRMWARE_URL:https://github.com/repetier/Repetier-Firmware/ PROTOCOL_VERSION:1.0 MACHINE_TYPE:Mendel EXTRUDER_COUNT:" XSTR(NUM_EXTRUDER) " REPETIER_PROTOCOL:3")
|
||||
#else
|
||||
FSTRINGVALUE(Com::tFirmware,"FIRMWARE_NAME:Repetier_" REPETIER_VERSION " FIRMWARE_URL:https://github.com/repetier/Repetier-Firmware/ PROTOCOL_VERSION:1.0 MACHINE_TYPE:Core_XY EXTRUDER_COUNT:" XSTR(NUM_EXTRUDER) " REPETIER_PROTOCOL:3")
|
||||
#endif
|
||||
#endif
|
||||
FSTRINGVALUE(Com::tDebug,"Debug:")
|
||||
FSTRINGVALUE(Com::tOk,"ok")
|
||||
FSTRINGVALUE(Com::tNewline,"\r\n")
|
||||
FSTRINGVALUE(Com::tNAN,"NAN")
|
||||
FSTRINGVALUE(Com::tINF,"INF")
|
||||
FSTRINGVALUE(Com::tError,"Error:")
|
||||
FSTRINGVALUE(Com::tInfo,"Info:")
|
||||
FSTRINGVALUE(Com::tWarning,"Warning:")
|
||||
FSTRINGVALUE(Com::tResend,"Resend:")
|
||||
FSTRINGVALUE(Com::tEcho,"Echo:")
|
||||
FSTRINGVALUE(Com::tOkSpace,"ok ")
|
||||
FSTRINGVALUE(Com::tWrongChecksum,"Wrong checksum")
|
||||
FSTRINGVALUE(Com::tMissingChecksum,"Missing checksum")
|
||||
FSTRINGVALUE(Com::tFormatError,"Format error")
|
||||
FSTRINGVALUE(Com::tDonePrinting,"Done printing file")
|
||||
FSTRINGVALUE(Com::tX," X")
|
||||
FSTRINGVALUE(Com::tY," Y")
|
||||
FSTRINGVALUE(Com::tZ," Z")
|
||||
FSTRINGVALUE(Com::tE," E")
|
||||
FSTRINGVALUE(Com::tF," F")
|
||||
FSTRINGVALUE(Com::tS," S")
|
||||
FSTRINGVALUE(Com::tP," P")
|
||||
FSTRINGVALUE(Com::tI," I")
|
||||
FSTRINGVALUE(Com::tJ," J")
|
||||
FSTRINGVALUE(Com::tR," R")
|
||||
FSTRINGVALUE(Com::tSDReadError,"SD read error")
|
||||
FSTRINGVALUE(Com::tExpectedLine,"Error:expected line ")
|
||||
FSTRINGVALUE(Com::tGot," got ")
|
||||
FSTRINGVALUE(Com::tSkip,"skip ")
|
||||
FSTRINGVALUE(Com::tBLK,"BLK ")
|
||||
FSTRINGVALUE(Com::tStart,"start")
|
||||
FSTRINGVALUE(Com::tPowerUp,"PowerUp")
|
||||
FSTRINGVALUE(Com::tExternalReset,"External Reset")
|
||||
FSTRINGVALUE(Com::tBrownOut,"Brown out Reset")
|
||||
FSTRINGVALUE(Com::tWatchdog,"Watchdog Reset")
|
||||
FSTRINGVALUE(Com::tSoftwareReset,"Software Reset")
|
||||
FSTRINGVALUE(Com::tUnknownCommand,"Unknown command:")
|
||||
FSTRINGVALUE(Com::tFreeRAM,"Free RAM:")
|
||||
FSTRINGVALUE(Com::tXColon,"X:")
|
||||
FSTRINGVALUE(Com::tSpaceXColon," X:")
|
||||
FSTRINGVALUE(Com::tSpaceYColon," Y:")
|
||||
FSTRINGVALUE(Com::tSpaceZColon," Z:")
|
||||
FSTRINGVALUE(Com::tSpaceEColon," E:")
|
||||
FSTRINGVALUE(Com::tTColon,"T:")
|
||||
FSTRINGVALUE(Com::tSpaceBColon," B:")
|
||||
FSTRINGVALUE(Com::tSpaceAtColon," @:")
|
||||
FSTRINGVALUE(Com::tSpaceT," T")
|
||||
FSTRINGVALUE(Com::tSpaceAt," @")
|
||||
FSTRINGVALUE(Com::tSpaceBAtColon," B@:")
|
||||
FSTRINGVALUE(Com::tSpaceRaw," RAW")
|
||||
FSTRINGVALUE(Com::tColon,":")
|
||||
FSTRINGVALUE(Com::tSlash,"/")
|
||||
FSTRINGVALUE(Com::tSpaceSlash," /")
|
||||
FSTRINGVALUE(Com::tSpeedMultiply,"SpeedMultiply:")
|
||||
FSTRINGVALUE(Com::tFlowMultiply,"FlowMultiply:")
|
||||
FSTRINGVALUE(Com::tHorizontalRadius,"H. Radius:")
|
||||
FSTRINGVALUE(Com::tFanspeed,"Fanspeed:")
|
||||
FSTRINGVALUE(Com::tPrintedFilament,"Printed filament:")
|
||||
FSTRINGVALUE(Com::tPrintingTime,"Printing time:")
|
||||
FSTRINGVALUE(Com::tSpacem,"m ")
|
||||
FSTRINGVALUE(Com::tSpaceDaysSpace," days ")
|
||||
FSTRINGVALUE(Com::tSpaceHoursSpace," hours ")
|
||||
FSTRINGVALUE(Com::tSpaceMin," min")
|
||||
FSTRINGVALUE(Com::tInvalidArc,"Invalid arc")
|
||||
FSTRINGVALUE(Com::tComma,",")
|
||||
FSTRINGVALUE(Com::tSpace," ")
|
||||
FSTRINGVALUE(Com::tYColon,"Y:")
|
||||
FSTRINGVALUE(Com::tZColon,"Z:")
|
||||
FSTRINGVALUE(Com::tE0Colon,"E0:")
|
||||
FSTRINGVALUE(Com::tE1Colon,"E1:")
|
||||
FSTRINGVALUE(Com::tMS1MS2Pins,"MS1,MS2 Pins")
|
||||
FSTRINGVALUE(Com::tSetOutputSpace,"Set output: ")
|
||||
FSTRINGVALUE(Com::tGetInputSpace,"Get Input: ")
|
||||
FSTRINGVALUE(Com::tSpaceToSpace," to ")
|
||||
FSTRINGVALUE(Com::tSpaceIsSpace," is ")
|
||||
FSTRINGVALUE(Com::tHSpace,"H ")
|
||||
FSTRINGVALUE(Com::tLSpace,"L ")
|
||||
FSTRINGVALUE(Com::tXMinColon,"x_min:")
|
||||
FSTRINGVALUE(Com::tXMaxColon,"x_max:")
|
||||
FSTRINGVALUE(Com::tYMinColon,"y_min:")
|
||||
FSTRINGVALUE(Com::tYMaxColon,"y_max:")
|
||||
FSTRINGVALUE(Com::tZMinColon,"z_min:")
|
||||
FSTRINGVALUE(Com::tZMaxColon,"z_max:")
|
||||
FSTRINGVALUE(Com::tJerkColon,"Jerk:")
|
||||
FSTRINGVALUE(Com::tZJerkColon," ZJerk:")
|
||||
FSTRINGVALUE(Com::tLinearStepsColon," linear steps:")
|
||||
FSTRINGVALUE(Com::tQuadraticStepsColon," quadratic steps:")
|
||||
FSTRINGVALUE(Com::tCommaSpeedEqual,", speed=")
|
||||
FSTRINGVALUE(Com::tEEPROMUpdated,"EEPROM updated")
|
||||
|
||||
FSTRINGVALUE(Com::tLinearLColon,"linear L:")
|
||||
FSTRINGVALUE(Com::tQuadraticKColon," quadratic K:")
|
||||
#if DRIVE_SYSTEM==DELTA
|
||||
FSTRINGVALUE(Com::tMeasurementReset,"Measurement reset.")
|
||||
FSTRINGVALUE(Com::tMeasureDeltaSteps,"Measure/delta (Steps) =")
|
||||
FSTRINGVALUE(Com::tMeasureDelta,"Measure/delta =")
|
||||
FSTRINGVALUE(Com::tMeasureOriginReset,"Measured origin set. Measurement reset.")
|
||||
FSTRINGVALUE(Com::tMeasurementAbortedOrigin,"Origin measurement cannot be set. Use only Z-Cartesian (straight up and down) movements and try again.")
|
||||
FSTRINGVALUE(Com::tInvalidDeltaCoordinate,"Invalid delta coordinate - move ignored")
|
||||
FSTRINGVALUE(Com::tLevelingCalc,"Leveling calc:")
|
||||
FSTRINGVALUE(Com::tTower1,"Tower 1:")
|
||||
FSTRINGVALUE(Com::tTower2,"Tower 2:")
|
||||
FSTRINGVALUE(Com::tTower3,"Tower 3:")
|
||||
FSTRINGVALUE(Com::tDeltaAlphaA,"Alpha A(210):")
|
||||
FSTRINGVALUE(Com::tDeltaAlphaB,"Alpha B(330):")
|
||||
FSTRINGVALUE(Com::tDeltaAlphaC,"Alpha C(90):")
|
||||
FSTRINGVALUE(Com::tDeltaRadiusCorrectionA,"Delta Radius A(0):")
|
||||
FSTRINGVALUE(Com::tDeltaRadiusCorrectionB,"Delta Radius B(0):")
|
||||
FSTRINGVALUE(Com::tDeltaRadiusCorrectionC,"Delta Radius C(0):")
|
||||
FSTRINGVALUE(Com::tDBGDeltaNoMoveinDSegment,"No move in delta segment with > 1 segment. This should never happen and may cause a problem!")
|
||||
#endif // DRIVE_SYSTEM
|
||||
#if DRIVE_SYSTEM==TUGA
|
||||
FSTRINGVALUE(Com::tInvalidDeltaCoordinate,"Invalid coordinate - move ignored")
|
||||
FSTRINGVALUE(Com::tDBGDeltaNoMoveinDSegment,"No move in delta segment with > 1 segment. This should never happen and may cause a problem!")
|
||||
FSTRINGVALUE(Com::tEPRDiagonalRodLength,"Long arm length [mm]")
|
||||
#endif // DRIVE_SYSTEM
|
||||
#ifdef DEBUG_GENERIC
|
||||
FSTRINGVALUE(Com::tGenTemp,"GenTemp:")
|
||||
#endif // DEBUG_GENERICFSTRINGVALUE(Com::,"")
|
||||
FSTRINGVALUE(Com::tTargetExtr,"TargetExtr")
|
||||
FSTRINGVALUE(Com::tTargetBedColon,"TargetBed:")
|
||||
FSTRINGVALUE(Com::tPIDAutotuneStart,"PID Autotune start")
|
||||
FSTRINGVALUE(Com::tAPIDBias," bias: ")
|
||||
FSTRINGVALUE(Com::tAPIDD," d: ")
|
||||
FSTRINGVALUE(Com::tAPIDMin," min: ")
|
||||
FSTRINGVALUE(Com::tAPIDMax," max: ")
|
||||
FSTRINGVALUE(Com::tAPIDKu," Ku: ")
|
||||
FSTRINGVALUE(Com::tAPIDTu," Tu: ")
|
||||
FSTRINGVALUE(Com::tAPIDClassic," Classic PID")
|
||||
FSTRINGVALUE(Com::tAPIDKp," Kp: ")
|
||||
FSTRINGVALUE(Com::tAPIDKi," Ki: ")
|
||||
FSTRINGVALUE(Com::tAPIDKd," Kd: ")
|
||||
FSTRINGVALUE(Com::tAPIDFailedHigh,"PID Autotune failed! Temperature to high")
|
||||
FSTRINGVALUE(Com::tAPIDFailedTimeout,"PID Autotune failed! timeout")
|
||||
FSTRINGVALUE(Com::tAPIDFinished,"PID Autotune finished ! Place the Kp, Ki and Kd constants in the Configuration.h or EEPROM")
|
||||
FSTRINGVALUE(Com::tMTEMPColon,"MTEMP:")
|
||||
FSTRINGVALUE(Com::tHeatedBed,"heated bed")
|
||||
FSTRINGVALUE(Com::tExtruderSpace,"extruder ")
|
||||
FSTRINGVALUE(Com::tTempSensorDefect,": temp sensor defect")
|
||||
FSTRINGVALUE(Com::tTempSensorWorking,": working")
|
||||
FSTRINGVALUE(Com::tDryModeUntilRestart,"Printer set into dry run mode until restart!")
|
||||
#ifdef DEBUG_QUEUE_MOVE
|
||||
FSTRINGVALUE(Com::tDBGId,"ID:")
|
||||
FSTRINGVALUE(Com::tDBGVStartEnd,"vStart/End:")
|
||||
FSTRINGVALUE(Com::tDBAccelSteps,"accel/decel steps:")
|
||||
FSTRINGVALUE(Com::tDBGStartEndSpeed,"st./end speed:")
|
||||
FSTRINGVALUE(Com::tDBGFlags,"Flags:")
|
||||
FSTRINGVALUE(Com::tDBGJoinFlags,"joinFlags:")
|
||||
FSTRINGVALUE(Com::tDBGDelta,"Delta")
|
||||
FSTRINGVALUE(Com::tDBGDir,"Dir:")
|
||||
FSTRINGVALUE(Com::tDBGFullSpeed,"fullSpeed:")
|
||||
FSTRINGVALUE(Com::tDBGVMax,"vMax:")
|
||||
FSTRINGVALUE(Com::tDBGAcceleration,"Acceleration:")
|
||||
FSTRINGVALUE(Com::tDBGAccelerationPrim,"Acceleration Prim:")
|
||||
FSTRINGVALUE(Com::tDBGRemainingSteps,"Remaining steps:")
|
||||
FSTRINGVALUE(Com::tDBGAdvanceFull,"advanceFull:")
|
||||
FSTRINGVALUE(Com::tDBGAdvanceRate,"advanceRate:")
|
||||
FSTRINGVALUE(Com::tDBGLimitInterval,"LimitInterval:")
|
||||
FSTRINGVALUE(Com::tDBGMoveDistance,"Move distance on the XYZ space:")
|
||||
FSTRINGVALUE(Com::tDBGCommandedFeedrate,"Commanded feedrate:")
|
||||
FSTRINGVALUE(Com::tDBGConstFullSpeedMoveTime,"Constant full speed move time:")
|
||||
#endif // DEBUG_QUEUE_MOVEFSTRINGVALUE(Com::,"")
|
||||
#ifdef DEBUG_DELTA_OVERFLOW
|
||||
FSTRINGVALUE(Com::tDBGDeltaOverflow,"Delta overflow:")
|
||||
#endif // DEBUG_DELTA_OVERFLOW
|
||||
#ifdef DEBUG_SPLIT
|
||||
FSTRINGVALUE(Com::tDBGDeltaSeconds,"Seconds:")
|
||||
FSTRINGVALUE(Com::tDBGDeltaZDelta,"Z delta:")
|
||||
FSTRINGVALUE(Com::tDBGDeltaSegments,"Segments:")
|
||||
FSTRINGVALUE(Com::tDBGDeltaNumLines,"Num lines:")
|
||||
FSTRINGVALUE(Com::tDBGDeltaSegmentsPerLine,"segments_per_line:")
|
||||
FSTRINGVALUE(Com::tDBGDeltaMaxDS,"Max DS:")
|
||||
FSTRINGVALUE(Com::tDBGDeltaStepsPerSegment,"Steps Per Segment:")
|
||||
FSTRINGVALUE(Com::tDBGDeltaVirtualAxisSteps,"Virtual axis steps:")
|
||||
#endif
|
||||
#ifdef DEBUG_STEPCOUNT
|
||||
FSTRINGVALUE(Com::tDBGMissedSteps,"Missed steps:")
|
||||
#endif // DEBUG_STEPCOUNT
|
||||
#if FEATURE_Z_PROBE
|
||||
FSTRINGVALUE(Com::tZProbe,"Z-probe:")
|
||||
FSTRINGVALUE(Com::tZProbeSteps," Step Variation from Probe to bed Distance:")
|
||||
FSTRINGVALUE(Com::tZProbeAverage,"Z-probe average height:")
|
||||
FSTRINGVALUE(Com::tZProbeZReset,"Reset Z height")
|
||||
FSTRINGVALUE(Com::tZProbeState,"Z-probe state:")
|
||||
FSTRINGVALUE(Com::tZProbeStartScript,Z_PROBE_START_SCRIPT)
|
||||
FSTRINGVALUE(Com::tZProbeEndScript,Z_PROBE_FINISHED_SCRIPT)
|
||||
FSTRINGVALUE(Com::tHitZProbe,"Hit z-probe")
|
||||
#endif
|
||||
FSTRINGVALUE(Com::tAutolevelReset,"Autolevel matrix reset")
|
||||
FSTRINGVALUE(Com::tAutolevelEnabled,"Autoleveling enabled")
|
||||
FSTRINGVALUE(Com::tAutolevelDisabled,"Autoleveling disabled")
|
||||
FSTRINGVALUE(Com::tTransformationMatrix,"Transformation matrix:")
|
||||
FSTRINGVALUE(Com::tZProbeFailed,"Z-probe failed")
|
||||
FSTRINGVALUE(Com::tZProbeMax,"Z-probe max:")
|
||||
FSTRINGVALUE(Com::tZProbePrinterHeight,"Printer height:")
|
||||
//FSTRINGVALUE(Com::,"")
|
||||
#ifdef WAITING_IDENTIFIER
|
||||
FSTRINGVALUE(Com::tWait,WAITING_IDENTIFIER)
|
||||
#endif // WAITING_IDENTIFIER
|
||||
#if EEPROM_MODE == 0
|
||||
FSTRINGVALUE(Com::tNoEEPROMSupport,"No EEPROM support compiled.\r\n")
|
||||
#else
|
||||
#if FEATURE_Z_PROBE
|
||||
FSTRINGVALUE(Com::tZProbeHeight,"Z-probe height [mm]")
|
||||
FSTRINGVALUE(Com::tZProbeBedDitance,"Max. z-probe - bed dist. [mm]")
|
||||
FSTRINGVALUE(Com::tZProbeOffsetX,"Z-probe offset x [mm]")
|
||||
FSTRINGVALUE(Com::tZProbeOffsetY,"Z-probe offset y [mm]")
|
||||
FSTRINGVALUE(Com::tZProbeSpeed,"Z-probe speed [mm/s]")
|
||||
FSTRINGVALUE(Com::tZProbeSpeedXY,"Z-probe x-y-speed [mm/s]")
|
||||
FSTRINGVALUE(Com::tZProbeX1,"Z-probe X1")
|
||||
FSTRINGVALUE(Com::tZProbeY1,"Z-probe Y1")
|
||||
FSTRINGVALUE(Com::tZProbeX2,"Z-probe X2")
|
||||
FSTRINGVALUE(Com::tZProbeY2,"Z-probe Y2")
|
||||
FSTRINGVALUE(Com::tZProbeX3,"Z-probe X3")
|
||||
FSTRINGVALUE(Com::tZProbeY3,"Z-probe Y3")
|
||||
#endif
|
||||
#if FEATURE_AXISCOMP
|
||||
FSTRINGVALUE(Com::tAxisCompTanXY,"tanXY Axis Compensation")
|
||||
FSTRINGVALUE(Com::tAxisCompTanYZ,"tanYZ Axis Compensation")
|
||||
FSTRINGVALUE(Com::tAxisCompTanXZ,"tanXZ Axis Compensation")
|
||||
#endif
|
||||
|
||||
#if FEATURE_AUTOLEVEL
|
||||
FSTRINGVALUE(Com::tAutolevelActive,"Autolevel active (1/0)")
|
||||
#endif
|
||||
FSTRINGVALUE(Com::tConfigStoredEEPROM,"Configuration stored to EEPROM.")
|
||||
FSTRINGVALUE(Com::tConfigLoadedEEPROM,"Configuration loaded from EEPROM.")
|
||||
FSTRINGVALUE(Com::tEPRConfigResetDefaults,"Configuration reset to defaults.")
|
||||
FSTRINGVALUE(Com::tEPRProtocolChanged,"Protocol version changed, upgrading")
|
||||
FSTRINGVALUE(Com::tEPR0,"EPR:0 ")
|
||||
FSTRINGVALUE(Com::tEPR1,"EPR:1 ")
|
||||
FSTRINGVALUE(Com::tEPR2,"EPR:2 ")
|
||||
FSTRINGVALUE(Com::tEPR3,"EPR:3 ")
|
||||
FSTRINGVALUE(Com::tEPRBaudrate,"Baudrate")
|
||||
FSTRINGVALUE(Com::tEPRAdvancedUser, "Advanced User")
|
||||
FSTRINGVALUE(Com::tEPRFilamentPrinted,"Filament printed [m]")
|
||||
FSTRINGVALUE(Com::tEPRPrinterActive,"Printer active [s]")
|
||||
FSTRINGVALUE(Com::tEPRMaxInactiveTime,"Max. inactive time [ms,0=off]")
|
||||
FSTRINGVALUE(Com::tEPRStopAfterInactivty,"Stop stepper after inactivity [ms,0=off]")
|
||||
FSTRINGVALUE(Com::tEPRXHomePos,"X home pos [mm]")
|
||||
FSTRINGVALUE(Com::tEPRYHomePos,"Y home pos [mm]")
|
||||
FSTRINGVALUE(Com::tEPRZHomePos,"Z home pos [mm]")
|
||||
FSTRINGVALUE(Com::tEPRXMaxLength,"X max length [mm]")
|
||||
FSTRINGVALUE(Com::tEPRYMaxLength,"Y max length [mm]")
|
||||
FSTRINGVALUE(Com::tEPRZMaxLength,"Z max length [mm]")
|
||||
FSTRINGVALUE(Com::tEPRXBacklash,"X backlash [mm]")
|
||||
FSTRINGVALUE(Com::tEPRYBacklash,"Y backlash [mm]")
|
||||
FSTRINGVALUE(Com::tEPRZBacklash,"Z backlash [mm]")
|
||||
FSTRINGVALUE(Com::tEPRMaxJerk,"Max. jerk [mm/s]")
|
||||
#if DRIVE_SYSTEM==DELTA
|
||||
FSTRINGVALUE(Com::tEPRZAcceleration,"Acceleration [mm/s^2]")
|
||||
FSTRINGVALUE(Com::tEPRZTravelAcceleration,"Travel acceleration [mm/s^2]")
|
||||
FSTRINGVALUE(Com::tEPRZStepsPerMM,"Steps per mm")
|
||||
FSTRINGVALUE(Com::tEPRZMaxFeedrate,"Max. feedrate [mm/s]")
|
||||
FSTRINGVALUE(Com::tEPRZHomingFeedrate,"Homing feedrate [mm/s]")
|
||||
|
||||
FSTRINGVALUE(Com::tEPRDiagonalRodLength,"Diagonal rod length [mm]")
|
||||
FSTRINGVALUE(Com::tEPRHorizontalRadius,"Horizontal rod radius at 0,0 [mm]")
|
||||
FSTRINGVALUE(Com::tEPRSegmentsPerSecondPrint,"Segments/s for printing")
|
||||
FSTRINGVALUE(Com::tEPRSegmentsPerSecondTravel,"Segments/s for travel")
|
||||
|
||||
FSTRINGVALUE(Com::tEPRTowerXOffset,"Tower X endstop offset [steps]")
|
||||
FSTRINGVALUE(Com::tEPRTowerYOffset,"Tower Y endstop offset [steps]")
|
||||
FSTRINGVALUE(Com::tEPRTowerZOffset,"Tower Z endstop offset [steps]")
|
||||
|
||||
FSTRINGVALUE(Com::tEPRDeltaMaxRadius,"Max printable radius [mm]")
|
||||
FSTRINGVALUE(Com::tDeltaDiagonalCorrectionA,"Corr. diagonal A [mm]")
|
||||
FSTRINGVALUE(Com::tDeltaDiagonalCorrectionB,"Corr. diagonal B [mm]")
|
||||
FSTRINGVALUE(Com::tDeltaDiagonalCorrectionC,"Corr. diagonal C [mm]")
|
||||
|
||||
#else
|
||||
FSTRINGVALUE(Com::tEPRMaxZJerk,"Max. Z-jerk [mm/s]")
|
||||
FSTRINGVALUE(Com::tEPRXStepsPerMM,"X-axis steps per mm")
|
||||
FSTRINGVALUE(Com::tEPRYStepsPerMM,"Y-axis steps per mm")
|
||||
FSTRINGVALUE(Com::tEPRZStepsPerMM,"Z-axis steps per mm")
|
||||
FSTRINGVALUE(Com::tEPRXMaxFeedrate,"X-axis max. feedrate [mm/s]")
|
||||
FSTRINGVALUE(Com::tEPRYMaxFeedrate,"Y-axis max. feedrate [mm/s]")
|
||||
FSTRINGVALUE(Com::tEPRZMaxFeedrate,"Z-axis max. feedrate [mm/s]")
|
||||
FSTRINGVALUE(Com::tEPRXHomingFeedrate,"X-axis homing feedrate [mm/s]")
|
||||
FSTRINGVALUE(Com::tEPRYHomingFeedrate,"Y-axis homing feedrate [mm/s]")
|
||||
FSTRINGVALUE(Com::tEPRZHomingFeedrate,"Z-axis homing feedrate [mm/s]")
|
||||
FSTRINGVALUE(Com::tEPRXAcceleration,"X-axis acceleration [mm/s^2]")
|
||||
FSTRINGVALUE(Com::tEPRYAcceleration,"Y-axis acceleration [mm/s^2]")
|
||||
FSTRINGVALUE(Com::tEPRZAcceleration,"Z-axis acceleration [mm/s^2]")
|
||||
FSTRINGVALUE(Com::tEPRXTravelAcceleration,"X-axis travel acceleration [mm/s^2]")
|
||||
FSTRINGVALUE(Com::tEPRYTravelAcceleration,"Y-axis travel acceleration [mm/s^2]")
|
||||
FSTRINGVALUE(Com::tEPRZTravelAcceleration,"Z-axis travel acceleration [mm/s^2]")
|
||||
#endif
|
||||
FSTRINGVALUE(Com::tEPROPSMode,"OPS operation mode [0=Off,1=Classic,2=Fast]")
|
||||
FSTRINGVALUE(Com::tEPROPSMoveAfter,"OPS move after x% retract [%]")
|
||||
FSTRINGVALUE(Com::tEPROPSMinDistance,"OPS min. distance for fil. retraction [mm]")
|
||||
FSTRINGVALUE(Com::tEPROPSRetractionLength,"OPS retraction length [mm]")
|
||||
FSTRINGVALUE(Com::tEPROPSRetractionBacklash,"OPS retraction backlash [mm]")
|
||||
FSTRINGVALUE(Com::tEPRBedHeatManager,"Bed Heat Manager [0-3]")
|
||||
FSTRINGVALUE(Com::tEPRBedPIDDriveMax,"Bed PID drive max")
|
||||
FSTRINGVALUE(Com::tEPRBedPIDDriveMin,"Bed PID drive min")
|
||||
FSTRINGVALUE(Com::tEPRBedPGain,"Bed PID P-gain")
|
||||
FSTRINGVALUE(Com::tEPRBedIGain,"Bed PID I-gain")
|
||||
FSTRINGVALUE(Com::tEPRBedDGain,"Bed PID D-gain")
|
||||
FSTRINGVALUE(Com::tEPRBedPISMaxValue,"Bed PID max value [0-255]")
|
||||
FSTRINGVALUE(Com::tEPRStepsPerMM,"steps per mm")
|
||||
FSTRINGVALUE(Com::tEPRMaxFeedrate,"max. feedrate [mm/s]")
|
||||
FSTRINGVALUE(Com::tEPRStartFeedrate,"start feedrate [mm/s]")
|
||||
FSTRINGVALUE(Com::tEPRAcceleration,"acceleration [mm/s^2]")
|
||||
FSTRINGVALUE(Com::tEPRHeatManager,"heat manager [0-3]")
|
||||
FSTRINGVALUE(Com::tEPRDriveMax,"PID drive max")
|
||||
FSTRINGVALUE(Com::tEPRDriveMin,"PID drive min")
|
||||
FSTRINGVALUE(Com::tEPRPGain,"PID P-gain/dead-time")
|
||||
FSTRINGVALUE(Com::tEPRDead,"Heater dead-time")
|
||||
FSTRINGVALUE(Com::tEPRUnused,"na for dead time ctrl")
|
||||
FSTRINGVALUE(Com::tEPRIGain,"PID I-gain")
|
||||
FSTRINGVALUE(Com::tEPRDGain,"PID D-gain")
|
||||
FSTRINGVALUE(Com::tEPRPIDMaxValue,"PID max value [0-255]")
|
||||
FSTRINGVALUE(Com::tEPRXOffset,"X-offset [steps]")
|
||||
FSTRINGVALUE(Com::tEPRYOffset,"Y-offset [steps]")
|
||||
FSTRINGVALUE(Com::tEPRStabilizeTime,"temp. stabilize time [s]")
|
||||
FSTRINGVALUE(Com::tEPRRetractionWhenHeating,"temp. for retraction when heating [C]")
|
||||
FSTRINGVALUE(Com::tEPRDistanceRetractHeating,"distance to retract when heating [mm]")
|
||||
FSTRINGVALUE(Com::tEPRExtruderCoolerSpeed,"extruder cooler speed [0-255]")
|
||||
FSTRINGVALUE(Com::tEPRAdvanceK,"advance K [0=off]")
|
||||
FSTRINGVALUE(Com::tEPRAdvanceL,"advance L [0=off]")
|
||||
|
||||
#endif
|
||||
#if SDSUPPORT
|
||||
FSTRINGVALUE(Com::tSDRemoved,UI_TEXT_SD_REMOVED)
|
||||
FSTRINGVALUE(Com::tSDInserted,UI_TEXT_SD_INSERTED)
|
||||
FSTRINGVALUE(Com::tSDInitFail,"SD init fail")
|
||||
FSTRINGVALUE(Com::tErrorWritingToFile,"error writing to file")
|
||||
FSTRINGVALUE(Com::tBeginFileList,"Begin file list")
|
||||
FSTRINGVALUE(Com::tEndFileList,"End file list")
|
||||
FSTRINGVALUE(Com::tFileOpened,"File opened:")
|
||||
FSTRINGVALUE(Com::tSpaceSizeColon," Size:")
|
||||
FSTRINGVALUE(Com::tFileSelected,"File selected")
|
||||
FSTRINGVALUE(Com::tFileOpenFailed,"file.open failed")
|
||||
FSTRINGVALUE(Com::tSDPrintingByte,"SD printing byte ")
|
||||
FSTRINGVALUE(Com::tNotSDPrinting,"Not SD printing")
|
||||
FSTRINGVALUE(Com::tOpenFailedFile,"open failed, File: ")
|
||||
FSTRINGVALUE(Com::tWritingToFile,"Writing to file: ")
|
||||
FSTRINGVALUE(Com::tDoneSavingFile,"Done saving file.")
|
||||
FSTRINGVALUE(Com::tFileDeleted,"File deleted")
|
||||
FSTRINGVALUE(Com::tDeletionFailed,"Deletion failed")
|
||||
FSTRINGVALUE(Com::tDirectoryCreated,"Directory created")
|
||||
FSTRINGVALUE(Com::tCreationFailed,"Creation failed")
|
||||
FSTRINGVALUE(Com::tSDErrorCode,"SD errorCode:")
|
||||
#endif // SDSUPPORT
|
||||
FSTRINGVALUE(Com::tHeaterDecoupled,"Heater decoupled")
|
||||
FSTRINGVALUE(Com::tHeaterDecoupledWarning,"One heater seems decoupled from thermistor - disabling all for safety!")
|
||||
#if DISTORTION_CORRECTION
|
||||
FSTRINGVALUE(Com::tZCorrectionEnabled,"Z correction enabled")
|
||||
FSTRINGVALUE(Com::tZCorrectionDisabled,"Z correction disabled")
|
||||
#endif
|
||||
#if FEATURE_RETRACTION
|
||||
FSTRINGVALUE(Com::tEPRAutoretractEnabled,"Enable retraction conversion [0/1]")
|
||||
FSTRINGVALUE(Com::tEPRRetractionLength,"Retraction length [mm]")
|
||||
FSTRINGVALUE(Com::tEPRRetractionLongLength,"Retraction length extruder switch [mm]")
|
||||
FSTRINGVALUE(Com::tEPRRetractionSpeed,"Retraction speed [mm/s]")
|
||||
FSTRINGVALUE(Com::tEPRRetractionZLift,"Retraction z-lift [mm]")
|
||||
FSTRINGVALUE(Com::tEPRRetractionUndoExtraLength,"Extra extrusion on undo retract [mm]")
|
||||
FSTRINGVALUE(Com::tEPRRetractionUndoExtraLongLength,"Extra extrusion on undo switch retract [mm]")
|
||||
FSTRINGVALUE(Com::tEPRRetractionUndoSpeed,"Retraction undo speed")
|
||||
#endif
|
||||
FSTRINGVALUE(Com::tConfig,"Config:")
|
||||
FSTRINGVALUE(Com::tExtrDot,"Extr.")
|
||||
|
||||
void Com::config(FSTRINGPARAM(text)) {
|
||||
printF(tConfig);
|
||||
printFLN(text);
|
||||
}
|
||||
void Com::config(FSTRINGPARAM(text),int value) {
|
||||
printF(tConfig);
|
||||
printFLN(text,value);
|
||||
}
|
||||
void Com::config(FSTRINGPARAM(text),const char *msg) {
|
||||
printF(tConfig);
|
||||
printF(text);
|
||||
print(msg);
|
||||
println();
|
||||
}
|
||||
void Com::config(FSTRINGPARAM(text),int32_t value){
|
||||
printF(tConfig);
|
||||
printFLN(text,value);
|
||||
}
|
||||
void Com::config(FSTRINGPARAM(text),uint32_t value){
|
||||
printF(tConfig);
|
||||
printFLN(text,value);
|
||||
}
|
||||
void Com::config(FSTRINGPARAM(text),float value,uint8_t digits){
|
||||
printF(tConfig);
|
||||
printFLN(text,value,digits);
|
||||
}
|
||||
void Com::printWarningF(FSTRINGPARAM(text)) {
|
||||
printF(tWarning);
|
||||
printF(text);
|
||||
}
|
||||
void Com::printWarningFLN(FSTRINGPARAM(text)) {
|
||||
printF(tWarning);
|
||||
printFLN(text);
|
||||
}
|
||||
void Com::printInfoF(FSTRINGPARAM(text)) {
|
||||
printF(tInfo);
|
||||
printF(text);
|
||||
}
|
||||
void Com::printInfoFLN(FSTRINGPARAM(text)) {
|
||||
printF(tInfo);
|
||||
printFLN(text);
|
||||
}
|
||||
|
||||
void Com::printErrorF(FSTRINGPARAM(text)) {
|
||||
printF(tError);
|
||||
printF(text);
|
||||
}
|
||||
void Com::printErrorFLN(FSTRINGPARAM(text)) {
|
||||
printF(tError);
|
||||
printFLN(text);
|
||||
}
|
||||
void Com::printFLN(FSTRINGPARAM(text)) {
|
||||
printF(text);
|
||||
println();
|
||||
}
|
||||
void Com::printFLN(FSTRINGPARAM(text),const char *msg) {
|
||||
printF(text);
|
||||
print(msg);
|
||||
println();
|
||||
}
|
||||
|
||||
void Com::printF(FSTRINGPARAM(ptr)) {
|
||||
char c;
|
||||
while ((c=HAL::readFlashByte(ptr++)) != 0)
|
||||
HAL::serialWriteByte(c);
|
||||
}
|
||||
void Com::printF(FSTRINGPARAM(text),const char *msg) {
|
||||
printF(text);
|
||||
print(msg);
|
||||
}
|
||||
|
||||
void Com::printF(FSTRINGPARAM(text),int value) {
|
||||
printF(text);
|
||||
print(value);
|
||||
}
|
||||
void Com::printF(FSTRINGPARAM(text),int32_t value) {
|
||||
printF(text);
|
||||
print(value);
|
||||
}
|
||||
void Com::printF(FSTRINGPARAM(text),uint32_t value) {
|
||||
printF(text);
|
||||
printNumber(value);
|
||||
}
|
||||
void Com::printFLN(FSTRINGPARAM(text),int value) {
|
||||
printF(text);
|
||||
print(value);
|
||||
println();
|
||||
}
|
||||
void Com::printFLN(FSTRINGPARAM(text),int32_t value) {
|
||||
printF(text);
|
||||
print(value);
|
||||
println();
|
||||
}
|
||||
void Com::printFLN(FSTRINGPARAM(text),uint32_t value) {
|
||||
printF(text);
|
||||
printNumber(value);
|
||||
println();
|
||||
}
|
||||
void Com::printFLN(FSTRINGPARAM(text),float value,uint8_t digits) {
|
||||
printF(text);
|
||||
printFloat(value,digits);
|
||||
println();
|
||||
}
|
||||
void Com::printF(FSTRINGPARAM(text),float value,uint8_t digits) {
|
||||
printF(text);
|
||||
printFloat(value,digits);
|
||||
}
|
||||
|
||||
void Com::print(const char *text) {
|
||||
while(*text) {
|
||||
HAL::serialWriteByte(*text++);
|
||||
}
|
||||
}
|
||||
void Com::print(long value) {
|
||||
if(value<0) {
|
||||
HAL::serialWriteByte('-');
|
||||
value = -value;
|
||||
}
|
||||
printNumber(value);
|
||||
}
|
||||
|
||||
void Com::printNumber(uint32_t n) {
|
||||
char buf[11]; // Assumes 8-bit chars plus zero byte.
|
||||
char *str = &buf[10];
|
||||
*str = '\0';
|
||||
do {
|
||||
unsigned long m = n;
|
||||
n /= 10;
|
||||
*--str = '0'+(m - 10 * n);
|
||||
} while(n);
|
||||
|
||||
print(str);
|
||||
}
|
||||
void Com::printArrayFLN(FSTRINGPARAM(text),float *arr,uint8_t n,uint8_t digits) {
|
||||
printF(text);
|
||||
for(uint8_t i=0; i<n; i++)
|
||||
printF(Com::tSpace,arr[i],digits);
|
||||
println();
|
||||
}
|
||||
void Com::printArrayFLN(FSTRINGPARAM(text),int32_t *arr,uint8_t n) {
|
||||
printF(text);
|
||||
for(uint8_t i=0; i<n; i++)
|
||||
printF(Com::tSpace,arr[i]);
|
||||
println();
|
||||
}
|
||||
|
||||
void Com::printFloat(float number, uint8_t digits)
|
||||
{
|
||||
if (isnan(number)) {
|
||||
printF(tNAN);
|
||||
return;
|
||||
}
|
||||
if (isinf(number)) {
|
||||
printF(tINF);
|
||||
return;
|
||||
}
|
||||
// Handle negative numbers
|
||||
if (number < 0.0)
|
||||
{
|
||||
print('-');
|
||||
number = -number;
|
||||
}
|
||||
// Round correctly so that print(1.999, 2) prints as "2.00"
|
||||
float rounding = 0.5;
|
||||
for (uint8_t i=0; i<digits; ++i)
|
||||
rounding /= 10.0;
|
||||
|
||||
number += rounding;
|
||||
|
||||
// Extract the integer part of the number and print it
|
||||
unsigned long int_part = (unsigned long)number;
|
||||
float remainder = number - (float)int_part;
|
||||
printNumber(int_part);
|
||||
|
||||
// Print the decimal point, but only if there are digits beyond
|
||||
if (digits > 0)
|
||||
print('.');
|
||||
|
||||
// Extract digits from the remainder one at a time
|
||||
while (digits-- > 0)
|
||||
{
|
||||
remainder *= 10.0;
|
||||
int toPrint = int(remainder);
|
||||
print(toPrint);
|
||||
remainder -= toPrint;
|
||||
}
|
||||
}
|
439
Repetier Firmware/Repetier/Communication.h
Normal file
439
Repetier Firmware/Repetier/Communication.h
Normal file
@ -0,0 +1,439 @@
|
||||
/*
|
||||
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 <http://www.gnu.org/licenses/>.
|
||||
|
||||
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.
|
||||
*/
|
||||
|
||||
#ifndef COMMUNICATION_H
|
||||
#define COMMUNICATION_H
|
||||
|
||||
class Com
|
||||
{
|
||||
public:
|
||||
FSTRINGVAR(tDebug)
|
||||
FSTRINGVAR(tFirmware)
|
||||
FSTRINGVAR(tOk)
|
||||
FSTRINGVAR(tNewline)
|
||||
FSTRINGVAR(tNAN)
|
||||
FSTRINGVAR(tINF)
|
||||
FSTRINGVAR(tError)
|
||||
FSTRINGVAR(tInfo)
|
||||
FSTRINGVAR(tWarning)
|
||||
FSTRINGVAR(tResend)
|
||||
FSTRINGVAR(tEcho)
|
||||
FSTRINGVAR(tOkSpace)
|
||||
FSTRINGVAR(tWrongChecksum)
|
||||
FSTRINGVAR(tMissingChecksum)
|
||||
FSTRINGVAR(tFormatError)
|
||||
FSTRINGVAR(tDonePrinting)
|
||||
FSTRINGVAR(tX)
|
||||
FSTRINGVAR(tY)
|
||||
FSTRINGVAR(tZ)
|
||||
FSTRINGVAR(tE)
|
||||
FSTRINGVAR(tF)
|
||||
FSTRINGVAR(tS)
|
||||
FSTRINGVAR(tP)
|
||||
FSTRINGVAR(tI)
|
||||
FSTRINGVAR(tJ)
|
||||
FSTRINGVAR(tR)
|
||||
FSTRINGVAR(tSDReadError)
|
||||
FSTRINGVAR(tExpectedLine)
|
||||
FSTRINGVAR(tGot)
|
||||
FSTRINGVAR(tSkip)
|
||||
FSTRINGVAR(tBLK)
|
||||
FSTRINGVAR(tStart)
|
||||
FSTRINGVAR(tPowerUp)
|
||||
FSTRINGVAR(tExternalReset)
|
||||
FSTRINGVAR(tBrownOut)
|
||||
FSTRINGVAR(tWatchdog)
|
||||
FSTRINGVAR(tSoftwareReset)
|
||||
FSTRINGVAR(tUnknownCommand)
|
||||
FSTRINGVAR(tFreeRAM)
|
||||
FSTRINGVAR(tXColon)
|
||||
FSTRINGVAR(tSlash)
|
||||
FSTRINGVAR(tSpaceSlash)
|
||||
FSTRINGVAR(tSpaceXColon)
|
||||
FSTRINGVAR(tSpaceYColon)
|
||||
FSTRINGVAR(tSpaceZColon)
|
||||
FSTRINGVAR(tSpaceEColon)
|
||||
FSTRINGVAR(tTColon)
|
||||
FSTRINGVAR(tSpaceBColon)
|
||||
FSTRINGVAR(tSpaceAtColon)
|
||||
FSTRINGVAR(tSpaceT)
|
||||
FSTRINGVAR(tSpaceRaw)
|
||||
FSTRINGVAR(tSpaceAt)
|
||||
FSTRINGVAR(tSpaceBAtColon)
|
||||
FSTRINGVAR(tColon)
|
||||
FSTRINGVAR(tSpeedMultiply)
|
||||
FSTRINGVAR(tFlowMultiply)
|
||||
FSTRINGVAR(tHorizontalRadius)
|
||||
FSTRINGVAR(tFanspeed)
|
||||
FSTRINGVAR(tPrintedFilament)
|
||||
FSTRINGVAR(tPrintingTime)
|
||||
FSTRINGVAR(tSpacem)
|
||||
FSTRINGVAR(tSpaceDaysSpace)
|
||||
FSTRINGVAR(tSpaceHoursSpace)
|
||||
FSTRINGVAR(tSpaceMin)
|
||||
FSTRINGVAR(tInvalidArc)
|
||||
FSTRINGVAR(tComma)
|
||||
FSTRINGVAR(tSpace)
|
||||
FSTRINGVAR(tYColon)
|
||||
FSTRINGVAR(tZColon)
|
||||
FSTRINGVAR(tE0Colon)
|
||||
FSTRINGVAR(tE1Colon)
|
||||
FSTRINGVAR(tMS1MS2Pins)
|
||||
FSTRINGVAR(tSetOutputSpace)
|
||||
FSTRINGVAR(tGetInputSpace)
|
||||
FSTRINGVAR(tSpaceToSpace)
|
||||
FSTRINGVAR(tSpaceIsSpace)
|
||||
FSTRINGVAR(tHSpace)
|
||||
FSTRINGVAR(tLSpace)
|
||||
FSTRINGVAR(tXMinColon)
|
||||
FSTRINGVAR(tXMaxColon)
|
||||
FSTRINGVAR(tYMinColon)
|
||||
FSTRINGVAR(tYMaxColon)
|
||||
FSTRINGVAR(tZMinColon)
|
||||
FSTRINGVAR(tZMaxColon)
|
||||
FSTRINGVAR(tJerkColon)
|
||||
FSTRINGVAR(tZJerkColon)
|
||||
FSTRINGVAR(tLinearStepsColon)
|
||||
FSTRINGVAR(tQuadraticStepsColon)
|
||||
FSTRINGVAR(tCommaSpeedEqual)
|
||||
FSTRINGVAR(tLinearLColon)
|
||||
FSTRINGVAR(tQuadraticKColon)
|
||||
FSTRINGVAR(tEEPROMUpdated)
|
||||
|
||||
#if DRIVE_SYSTEM==DELTA
|
||||
FSTRINGVAR(tMeasurementReset)
|
||||
FSTRINGVAR(tMeasureDeltaSteps)
|
||||
FSTRINGVAR(tMeasureDelta)
|
||||
FSTRINGVAR(tMeasureOriginReset)
|
||||
FSTRINGVAR(tMeasurementAbortedOrigin)
|
||||
FSTRINGVAR(tInvalidDeltaCoordinate)
|
||||
FSTRINGVAR(tLevelingCalc)
|
||||
FSTRINGVAR(tTower1)
|
||||
FSTRINGVAR(tTower2)
|
||||
FSTRINGVAR(tTower3)
|
||||
FSTRINGVAR(tDeltaAlphaA)
|
||||
FSTRINGVAR(tDeltaAlphaB)
|
||||
FSTRINGVAR(tDeltaAlphaC)
|
||||
FSTRINGVAR(tDeltaRadiusCorrectionA)
|
||||
FSTRINGVAR(tDeltaRadiusCorrectionB)
|
||||
FSTRINGVAR(tDeltaRadiusCorrectionC)
|
||||
FSTRINGVAR(tDeltaDiagonalCorrectionA)
|
||||
FSTRINGVAR(tDeltaDiagonalCorrectionB)
|
||||
FSTRINGVAR(tDeltaDiagonalCorrectionC)
|
||||
FSTRINGVAR(tDBGDeltaNoMoveinDSegment)
|
||||
FSTRINGVAR(tEPRDeltaMaxRadius)
|
||||
#endif // DRIVE_SYSTEM
|
||||
#if DRIVE_SYSTEM==TUGA
|
||||
FSTRINGVAR(tInvalidDeltaCoordinate)
|
||||
FSTRINGVAR(tDBGDeltaNoMoveinDSegment)
|
||||
FSTRINGVAR(tEPRDiagonalRodLength)
|
||||
#endif
|
||||
#ifdef DEBUG_GENERIC
|
||||
FSTRINGVAR(tGenTemp)
|
||||
#endif // DEBUG_GENERICFSTRINGVALUE(Com::,"")
|
||||
FSTRINGVAR(tTargetExtr)
|
||||
FSTRINGVAR(tTargetBedColon)
|
||||
FSTRINGVAR(tPIDAutotuneStart)
|
||||
FSTRINGVAR(tAPIDBias)
|
||||
FSTRINGVAR(tAPIDD)
|
||||
FSTRINGVAR(tAPIDMin)
|
||||
FSTRINGVAR(tAPIDMax)
|
||||
FSTRINGVAR(tAPIDKu)
|
||||
FSTRINGVAR(tAPIDTu)
|
||||
FSTRINGVAR(tAPIDClassic)
|
||||
FSTRINGVAR(tAPIDKp)
|
||||
FSTRINGVAR(tAPIDKi)
|
||||
FSTRINGVAR(tAPIDKd)
|
||||
FSTRINGVAR(tAPIDFailedHigh)
|
||||
FSTRINGVAR(tAPIDFailedTimeout)
|
||||
FSTRINGVAR(tAPIDFinished)
|
||||
FSTRINGVAR(tMTEMPColon)
|
||||
FSTRINGVAR(tHeatedBed)
|
||||
FSTRINGVAR(tExtruderSpace)
|
||||
FSTRINGVAR(tTempSensorDefect)
|
||||
FSTRINGVAR(tTempSensorWorking)
|
||||
FSTRINGVAR(tDryModeUntilRestart)
|
||||
#ifdef DEBUG_QUEUE_MOVE
|
||||
FSTRINGVAR(tDBGId)
|
||||
FSTRINGVAR(tDBGVStartEnd)
|
||||
FSTRINGVAR(tDBAccelSteps)
|
||||
FSTRINGVAR(tDBGStartEndSpeed)
|
||||
FSTRINGVAR(tDBGFlags)
|
||||
FSTRINGVAR(tDBGJoinFlags)
|
||||
FSTRINGVAR(tDBGDelta)
|
||||
FSTRINGVAR(tDBGDir)
|
||||
FSTRINGVAR(tDBGFullSpeed)
|
||||
FSTRINGVAR(tDBGVMax)
|
||||
FSTRINGVAR(tDBGAcceleration)
|
||||
FSTRINGVAR(tDBGAccelerationPrim)
|
||||
FSTRINGVAR(tDBGRemainingSteps)
|
||||
FSTRINGVAR(tDBGAdvanceFull)
|
||||
FSTRINGVAR(tDBGAdvanceRate)
|
||||
FSTRINGVAR(tDBGLimitInterval)
|
||||
FSTRINGVAR(tDBGMoveDistance)
|
||||
FSTRINGVAR(tDBGCommandedFeedrate)
|
||||
FSTRINGVAR(tDBGConstFullSpeedMoveTime)
|
||||
#endif // DEBUG_QUEUE_MOVEFSTRINGVALUE(Com::,"")
|
||||
#ifdef DEBUG_DELTA_OVERFLOW
|
||||
FSTRINGVAR(tDBGDeltaOverflow)
|
||||
#endif // DEBUG_DELTA_OVERFLOW
|
||||
#ifdef DEBUG_SPLIT
|
||||
FSTRINGVAR(tDBGDeltaSeconds)
|
||||
FSTRINGVAR(tDBGDeltaZDelta)
|
||||
FSTRINGVAR(tDBGDeltaSegments)
|
||||
FSTRINGVAR(tDBGDeltaNumLines)
|
||||
FSTRINGVAR(tDBGDeltaSegmentsPerLine)
|
||||
FSTRINGVAR(tDBGDeltaMaxDS)
|
||||
FSTRINGVAR(tDBGDeltaStepsPerSegment)
|
||||
FSTRINGVAR(tDBGDeltaVirtualAxisSteps)
|
||||
#endif
|
||||
#ifdef DEBUG_STEPCOUNT
|
||||
FSTRINGVAR(tDBGMissedSteps)
|
||||
#endif
|
||||
#if FEATURE_Z_PROBE
|
||||
FSTRINGVAR(tZProbe)
|
||||
FSTRINGVAR(tZProbeSteps)
|
||||
FSTRINGVAR(tZProbeState)
|
||||
FSTRINGVAR(tZProbeStartScript)
|
||||
FSTRINGVAR(tZProbeEndScript)
|
||||
FSTRINGVAR(tHitZProbe)
|
||||
FSTRINGVAR(tZProbeAverage)
|
||||
FSTRINGVAR(tZProbeZReset)
|
||||
FSTRINGVAR(tZProbeBedDitance)
|
||||
#endif
|
||||
FSTRINGVAR(tAutolevelReset)
|
||||
FSTRINGVAR(tAutolevelEnabled)
|
||||
FSTRINGVAR(tAutolevelDisabled)
|
||||
FSTRINGVAR(tTransformationMatrix)
|
||||
FSTRINGVAR(tZProbeFailed)
|
||||
FSTRINGVAR(tZProbeMax)
|
||||
FSTRINGVAR(tZProbePrinterHeight)
|
||||
|
||||
#ifdef WAITING_IDENTIFIER
|
||||
FSTRINGVAR(tWait)
|
||||
#endif // WAITING_IDENTIFIER
|
||||
|
||||
#if EEPROM_MODE==0
|
||||
FSTRINGVAR(tNoEEPROMSupport)
|
||||
#else
|
||||
#if FEATURE_Z_PROBE
|
||||
FSTRINGVAR(tZProbeHeight)
|
||||
FSTRINGVAR(tZProbeOffsetX)
|
||||
FSTRINGVAR(tZProbeOffsetY)
|
||||
FSTRINGVAR(tZProbeSpeed)
|
||||
FSTRINGVAR(tZProbeSpeedXY)
|
||||
FSTRINGVAR(tZProbeX1)
|
||||
FSTRINGVAR(tZProbeY1)
|
||||
FSTRINGVAR(tZProbeX2)
|
||||
FSTRINGVAR(tZProbeY2)
|
||||
FSTRINGVAR(tZProbeX3)
|
||||
FSTRINGVAR(tZProbeY3)
|
||||
#endif
|
||||
#if FEATURE_AUTOLEVEL
|
||||
FSTRINGVAR(tAutolevelActive)
|
||||
#endif
|
||||
#if FEATURE_AXISCOMP
|
||||
FSTRINGVAR(tAxisCompTanXY)
|
||||
FSTRINGVAR(tAxisCompTanYZ)
|
||||
FSTRINGVAR(tAxisCompTanXZ)
|
||||
#endif
|
||||
FSTRINGVAR(tConfigStoredEEPROM)
|
||||
FSTRINGVAR(tConfigLoadedEEPROM)
|
||||
FSTRINGVAR(tEPRConfigResetDefaults)
|
||||
FSTRINGVAR(tEPRProtocolChanged)
|
||||
FSTRINGVAR(tEPR0)
|
||||
FSTRINGVAR(tEPR1)
|
||||
FSTRINGVAR(tEPR2)
|
||||
FSTRINGVAR(tEPR3)
|
||||
FSTRINGVAR(tEPRBaudrate)
|
||||
FSTRINGVAR(tEPRAdvancedUser)
|
||||
FSTRINGVAR(tEPRFilamentPrinted)
|
||||
FSTRINGVAR(tEPRPrinterActive)
|
||||
FSTRINGVAR(tEPRMaxInactiveTime)
|
||||
FSTRINGVAR(tEPRStopAfterInactivty)
|
||||
FSTRINGVAR(tEPRMaxJerk)
|
||||
FSTRINGVAR(tEPRXHomePos)
|
||||
FSTRINGVAR(tEPRYHomePos)
|
||||
FSTRINGVAR(tEPRZHomePos)
|
||||
FSTRINGVAR(tEPRXMaxLength)
|
||||
FSTRINGVAR(tEPRYMaxLength)
|
||||
FSTRINGVAR(tEPRZMaxLength)
|
||||
FSTRINGVAR(tEPRXBacklash)
|
||||
FSTRINGVAR(tEPRYBacklash)
|
||||
FSTRINGVAR(tEPRZBacklash)
|
||||
FSTRINGVAR(tEPRZAcceleration)
|
||||
FSTRINGVAR(tEPRZTravelAcceleration)
|
||||
FSTRINGVAR(tEPRZStepsPerMM)
|
||||
FSTRINGVAR(tEPRZMaxFeedrate)
|
||||
FSTRINGVAR(tEPRZHomingFeedrate)
|
||||
#if DRIVE_SYSTEM!=DELTA
|
||||
FSTRINGVAR(tEPRMaxZJerk)
|
||||
FSTRINGVAR(tEPRXStepsPerMM)
|
||||
FSTRINGVAR(tEPRYStepsPerMM)
|
||||
FSTRINGVAR(tEPRXMaxFeedrate)
|
||||
FSTRINGVAR(tEPRYMaxFeedrate)
|
||||
FSTRINGVAR(tEPRXHomingFeedrate)
|
||||
FSTRINGVAR(tEPRYHomingFeedrate)
|
||||
FSTRINGVAR(tEPRXAcceleration)
|
||||
FSTRINGVAR(tEPRYAcceleration)
|
||||
FSTRINGVAR(tEPRXTravelAcceleration)
|
||||
FSTRINGVAR(tEPRYTravelAcceleration)
|
||||
#else
|
||||
FSTRINGVAR(tEPRDiagonalRodLength)
|
||||
FSTRINGVAR(tEPRHorizontalRadius)
|
||||
FSTRINGVAR(tEPRSegmentsPerSecondPrint)
|
||||
FSTRINGVAR(tEPRSegmentsPerSecondTravel)
|
||||
FSTRINGVAR(tEPRTowerXOffset)
|
||||
FSTRINGVAR(tEPRTowerYOffset)
|
||||
FSTRINGVAR(tEPRTowerZOffset)
|
||||
#endif
|
||||
FSTRINGVAR(tEPROPSMode)
|
||||
FSTRINGVAR(tEPROPSMoveAfter)
|
||||
FSTRINGVAR(tEPROPSMinDistance)
|
||||
FSTRINGVAR(tEPROPSRetractionLength)
|
||||
FSTRINGVAR(tEPROPSRetractionBacklash)
|
||||
FSTRINGVAR(tEPRBedHeatManager)
|
||||
FSTRINGVAR(tEPRBedPIDDriveMax)
|
||||
FSTRINGVAR(tEPRBedPIDDriveMin)
|
||||
FSTRINGVAR(tEPRBedPGain)
|
||||
FSTRINGVAR(tEPRBedIGain)
|
||||
FSTRINGVAR(tEPRBedDGain)
|
||||
FSTRINGVAR(tEPRBedPISMaxValue)
|
||||
FSTRINGVAR(tEPRStepsPerMM)
|
||||
FSTRINGVAR(tEPRMaxFeedrate)
|
||||
FSTRINGVAR(tEPRStartFeedrate)
|
||||
FSTRINGVAR(tEPRAcceleration)
|
||||
FSTRINGVAR(tEPRHeatManager)
|
||||
FSTRINGVAR(tEPRDriveMax)
|
||||
FSTRINGVAR(tEPRDriveMin)
|
||||
FSTRINGVAR(tEPRPGain)
|
||||
FSTRINGVAR(tEPRDead)
|
||||
FSTRINGVAR(tEPRUnused)
|
||||
FSTRINGVAR(tEPRIGain)
|
||||
FSTRINGVAR(tEPRDGain)
|
||||
FSTRINGVAR(tEPRPIDMaxValue)
|
||||
FSTRINGVAR(tEPRXOffset)
|
||||
FSTRINGVAR(tEPRYOffset)
|
||||
FSTRINGVAR(tEPRStabilizeTime)
|
||||
FSTRINGVAR(tEPRRetractionWhenHeating)
|
||||
FSTRINGVAR(tEPRDistanceRetractHeating)
|
||||
FSTRINGVAR(tEPRExtruderCoolerSpeed)
|
||||
FSTRINGVAR(tEPRAdvanceK)
|
||||
FSTRINGVAR(tEPRAdvanceL)
|
||||
#endif
|
||||
#if SDSUPPORT
|
||||
FSTRINGVAR(tSDRemoved)
|
||||
FSTRINGVAR(tSDInserted)
|
||||
FSTRINGVAR(tSDInitFail)
|
||||
FSTRINGVAR(tErrorWritingToFile)
|
||||
FSTRINGVAR(tBeginFileList)
|
||||
FSTRINGVAR(tEndFileList)
|
||||
FSTRINGVAR(tFileOpened)
|
||||
FSTRINGVAR(tSpaceSizeColon)
|
||||
FSTRINGVAR(tFileSelected)
|
||||
FSTRINGVAR(tFileOpenFailed)
|
||||
FSTRINGVAR(tSDPrintingByte)
|
||||
FSTRINGVAR(tNotSDPrinting)
|
||||
FSTRINGVAR(tOpenFailedFile)
|
||||
FSTRINGVAR(tWritingToFile)
|
||||
FSTRINGVAR(tDoneSavingFile)
|
||||
FSTRINGVAR(tFileDeleted)
|
||||
FSTRINGVAR(tDeletionFailed)
|
||||
FSTRINGVAR(tDirectoryCreated)
|
||||
FSTRINGVAR(tCreationFailed)
|
||||
FSTRINGVAR(tSDErrorCode)
|
||||
#endif // SDSUPPORT
|
||||
FSTRINGVAR(tHeaterDecoupled)
|
||||
FSTRINGVAR(tHeaterDecoupledWarning)
|
||||
#if DISTORTION_CORRECTION
|
||||
FSTRINGVAR(tZCorrectionEnabled)
|
||||
FSTRINGVAR(tZCorrectionDisabled)
|
||||
#endif
|
||||
#if FEATURE_RETRACTION
|
||||
FSTRINGVAR(tEPRAutoretractEnabled)
|
||||
FSTRINGVAR(tEPRRetractionLength)
|
||||
FSTRINGVAR(tEPRRetractionLongLength)
|
||||
FSTRINGVAR(tEPRRetractionSpeed)
|
||||
FSTRINGVAR(tEPRRetractionZLift)
|
||||
FSTRINGVAR(tEPRRetractionUndoExtraLength)
|
||||
FSTRINGVAR(tEPRRetractionUndoExtraLongLength)
|
||||
FSTRINGVAR(tEPRRetractionUndoSpeed)
|
||||
#endif
|
||||
FSTRINGVAR(tConfig)
|
||||
FSTRINGVAR(tExtrDot)
|
||||
|
||||
static void config(FSTRINGPARAM(text));
|
||||
static void config(FSTRINGPARAM(text),int value);
|
||||
static void config(FSTRINGPARAM(text),const char *msg);
|
||||
static void config(FSTRINGPARAM(text),int32_t value);
|
||||
static void config(FSTRINGPARAM(text),uint32_t value);
|
||||
static void config(FSTRINGPARAM(text),float value,uint8_t digits=2);
|
||||
static void printNumber(uint32_t n);
|
||||
static void printWarningF(FSTRINGPARAM(text));
|
||||
static void printInfoF(FSTRINGPARAM(text));
|
||||
static void printErrorF(FSTRINGPARAM(text));
|
||||
static void printWarningFLN(FSTRINGPARAM(text));
|
||||
static void printInfoFLN(FSTRINGPARAM(text));
|
||||
static void printErrorFLN(FSTRINGPARAM(text));
|
||||
static void printFLN(FSTRINGPARAM(text));
|
||||
static void printF(FSTRINGPARAM(text));
|
||||
static void printF(FSTRINGPARAM(text),int value);
|
||||
static void printF(FSTRINGPARAM(text),const char *msg);
|
||||
static void printF(FSTRINGPARAM(text),int32_t value);
|
||||
static void printF(FSTRINGPARAM(text),uint32_t value);
|
||||
static void printF(FSTRINGPARAM(text),float value,uint8_t digits=2);
|
||||
static void printFLN(FSTRINGPARAM(text),int value);
|
||||
static void printFLN(FSTRINGPARAM(text),int32_t value);
|
||||
static void printFLN(FSTRINGPARAM(text),uint32_t value);
|
||||
static void printFLN(FSTRINGPARAM(text),const char *msg);
|
||||
static void printFLN(FSTRINGPARAM(text),float value,uint8_t digits=2);
|
||||
static void printArrayFLN(FSTRINGPARAM(text),float *arr,uint8_t n=4,uint8_t digits=2);
|
||||
static void printArrayFLN(FSTRINGPARAM(text),long *arr,uint8_t n=4);
|
||||
static void print(long value);
|
||||
static inline void print(uint32_t value) {printNumber(value);}
|
||||
static inline void print(int value) {print((int32_t)value);}
|
||||
static void print(const char *text);
|
||||
static inline void print(char c) {HAL::serialWriteByte(c);}
|
||||
static void printFloat(float number, uint8_t digits);
|
||||
static inline void print(float number) {printFloat(number, 6);}
|
||||
static inline void println() {HAL::serialWriteByte('\r');HAL::serialWriteByte('\n');}
|
||||
protected:
|
||||
private:
|
||||
};
|
||||
|
||||
#ifdef DEBUG
|
||||
#define SHOW(x) {Com::printF(PSTR(" " #x "=")); Com::print(x); Com::println();}
|
||||
#define SHOWS(x) {Com::printF(PSTR(" " #x "=")); Com::print(x); Com::print(" steps "); Com::print(x/80); Com::printFLN(PSTR(" mm"));}
|
||||
#define SHOWM(x) {Com::printF(PSTR(" " #x "=")); Com::print((long)x*80); Com::print(" steps "); Com::print(x); Com::printFLN(PSTR(" mm"));}
|
||||
#define SHOT(x) Com::printF(PSTR(x " "))
|
||||
#define SHOWA(t,a,n) {SHOT(t); for (int i=0;i<n;i++) SHOWS(a[i]);}
|
||||
#define SHOWAM(t,a,n) {SHOT(t); for (int i=0;i<n;i++) SHOWM(a[i]);}
|
||||
|
||||
#else
|
||||
#define SHOW(x)
|
||||
#define SHOT(x)
|
||||
#define SHOWS(x)
|
||||
#define SHOWM(x)
|
||||
#define SHOWA(t,a,n)
|
||||
#define SHOWAM(t,a,n)
|
||||
#endif
|
||||
|
||||
#endif // COMMUNICATION_H
|
816
Repetier Firmware/Repetier/Configuration.h
Normal file
816
Repetier Firmware/Repetier/Configuration.h
Normal file
@ -0,0 +1,816 @@
|
||||
/*
|
||||
Printer Model List as used throughout this firmware
|
||||
Orion = 1
|
||||
Rostock Max V2 = 2
|
||||
ERIS = 3
|
||||
Rostock MAX v3 = 5
|
||||
Hacker H2 = 6
|
||||
*/
|
||||
// ### Define your Printer Model here! ###
|
||||
#define PRINTER 5
|
||||
|
||||
// SeeMeCNC Bowden w/PEEK barrel = 1
|
||||
// HE240 on ERIS w/accel probe = 2
|
||||
// HE280 w/accel probe = 3
|
||||
#define HOTEND 3
|
||||
|
||||
// ### Define your motherboard here! ###
|
||||
// 301 = RAMBo 302 = MINI RAMBo
|
||||
#define MOTHERBOARD 301
|
||||
|
||||
// ##### Older Orions w/ATX had Y inverted and NEW PSU on orions needs opposite ###
|
||||
// 1 = ATX on older machines 2 = Rail style PSU on newer machines ############################
|
||||
#define POWER_SUPPLY 2
|
||||
|
||||
// ### Number of active extruders
|
||||
// 1 is standard, 2 is with the Y coupler for dual filament input
|
||||
//
|
||||
// WARNING: There is a known bug in Repetier that causes random tool changes when using dual
|
||||
// extrusion if you have the USB cable connected. In order to avoid this, only print from
|
||||
// the SD card if you are running two extruders.
|
||||
#define NUM_EXTRUDER 1
|
||||
|
||||
|
||||
// ############################################################################################
|
||||
// ################# BASIC CONFIGURATION IS ALL DONE ABOVE HERE ###############################
|
||||
// ########### ONLY ADVANCCED USERS SHOULD MODIFY ANYTHING BELOW THIS LINE ####################
|
||||
// ############################################################################################
|
||||
|
||||
|
||||
// ############################################################################################
|
||||
// ############ FW version info and build date for LCD and M115 string! #######################
|
||||
// ############################################################################################
|
||||
#define REPETIER_VERSION "0.92.2"
|
||||
#define FIRMWARE_DATE "20171204" // in date format yyyymmdd
|
||||
|
||||
#ifndef CONFIGURATION_H
|
||||
#define CONFIGURATION_H
|
||||
#define ADVANCED_USER 1 // Change to 1 to unlock full menus
|
||||
|
||||
#include "pins.h"
|
||||
|
||||
// Microstepping mode of your stepper drivers
|
||||
#define MICROSTEP_MODES {16,16,16,16,16} // 1,2,4,8,16
|
||||
#if MOTHERBOARD == 301 // RAMBo
|
||||
#define STEPPER_CURRENT_CONTROL CURRENT_CONTROL_DIGIPOT
|
||||
#elif MOTHERBOARD == 302 // Mini RAMBo
|
||||
#define STEPPER_CURRENT_CONTROL CURRENT_CONTROL_PWM
|
||||
#define MOTOR_CURRENT_PWM_RANGE 2000
|
||||
#endif
|
||||
|
||||
#define Z_LIFT_ON_PAUSE 20 // Amount to lift the head (mm) when pausing from the LCD screen
|
||||
#define MIN_DEFECT_TEMPERATURE 16 // this is the min temp that will allow the hotend to start heating. Below this it will show as defective to help identify bad thermistors
|
||||
#define MAX_DEFECT_TEMPERATURE 300 // this is the max temp that wthe printer will throw errors about defective thermistors
|
||||
|
||||
#define MIXING_EXTRUDER 0
|
||||
#define DRIVE_SYSTEM 3
|
||||
#define BELT_PITCH 2
|
||||
#define PULLEY_TEETH 20
|
||||
#define PULLEY_CIRCUMFERENCE (BELT_PITCH * PULLEY_TEETH)
|
||||
#define PULLEY_DIAMETER 10
|
||||
//#define PULLEY_CIRCUMFERENCE (PULLEY_DIAMETER * 3.1415927)
|
||||
#define STEPS_PER_ROTATION 200
|
||||
#define MICRO_STEPS 16
|
||||
#define AXIS_STEPS_PER_MM ((float)(MICRO_STEPS * STEPS_PER_ROTATION) / PULLEY_CIRCUMFERENCE) // for deltas with 1.8 deg. steppers and 20 tooth GT2 pulleys
|
||||
#define XAXIS_STEPS_PER_MM AXIS_STEPS_PER_MM
|
||||
#define YAXIS_STEPS_PER_MM AXIS_STEPS_PER_MM
|
||||
#define ZAXIS_STEPS_PER_MM AXIS_STEPS_PER_MM
|
||||
|
||||
// ### Hotend and Extruder configuration
|
||||
#define MIN_EXTRUDER_TEMP 150
|
||||
#if HOTEND == 1
|
||||
#define MAXTEMP 240
|
||||
#define UI_SET_MAX_EXTRUDER_TEMP 240
|
||||
#define EXT0_PID_INTEGRAL_DRIVE_MAX 180
|
||||
#define EXT0_PID_INTEGRAL_DRIVE_MIN 80
|
||||
#define EXT0_PID_PGAIN_OR_DEAD_TIME 14.50
|
||||
#define EXT0_PID_I 0.73
|
||||
#define EXT0_PID_D 53.41
|
||||
#define EXT0_PID_MAX 235
|
||||
#define EXT1_PID_INTEGRAL_DRIVE_MAX 180
|
||||
#define EXT1_PID_INTEGRAL_DRIVE_MIN 80
|
||||
#define EXT1_PID_PGAIN_OR_DEAD_TIME 14.50
|
||||
#define EXT1_PID_I 0.73
|
||||
#define EXT1_PID_D 53.41
|
||||
#define EXT1_PID_MAX 235
|
||||
#elif HOTEND == 2
|
||||
#define MAXTEMP 240
|
||||
#define UI_SET_MAX_EXTRUDER_TEMP 240
|
||||
#define EXT0_PID_INTEGRAL_DRIVE_MAX 200
|
||||
#define EXT0_PID_INTEGRAL_DRIVE_MIN 120
|
||||
#define EXT0_PID_PGAIN_OR_DEAD_TIME 25.0
|
||||
#define EXT0_PID_I 0.85
|
||||
#define EXT0_PID_D 176.0
|
||||
#define EXT0_PID_MAX 210
|
||||
#elif HOTEND == 3
|
||||
#define MAXTEMP 290
|
||||
#define UI_SET_MAX_EXTRUDER_TEMP 280
|
||||
#define EXT0_PID_INTEGRAL_DRIVE_MAX 230
|
||||
#define EXT0_PID_INTEGRAL_DRIVE_MIN 80
|
||||
#define EXT0_PID_PGAIN_OR_DEAD_TIME 48.3
|
||||
#define EXT0_PID_I 9.7
|
||||
#define EXT0_PID_D 60.0
|
||||
#define EXT0_PID_MAX 255
|
||||
#define EXT1_PID_INTEGRAL_DRIVE_MAX 230
|
||||
#define EXT1_PID_INTEGRAL_DRIVE_MIN 80
|
||||
#define EXT1_PID_PGAIN_OR_DEAD_TIME 48.3
|
||||
#define EXT1_PID_I 9.7
|
||||
#define EXT1_PID_D 60.0
|
||||
#define EXT1_PID_MAX 255
|
||||
#endif
|
||||
// using PWM not PDM
|
||||
#define PDM_FOR_EXTRUDER 0
|
||||
#define PDM_FOR_COOLER 0
|
||||
#define FEATURE_WATCHDOG 1
|
||||
#define DECOUPLING_TEST_MAX_HOLD_VARIANCE 20
|
||||
#define DECOUPLING_TEST_MIN_TEMP_RISE 1
|
||||
#define RETRACT_ON_PAUSE 2
|
||||
#define PAUSE_START_COMMANDS "G91/nG1 Z10.0 E-5.0 F1500/nG90/n"
|
||||
#define PAUSE_END_COMMANDS "G91/nG1 Z-10.0 E5.1 F1500/nG90/n"
|
||||
|
||||
// ### EXT0 Setup ###
|
||||
#define EXT0_X_OFFSET 0
|
||||
#define EXT0_Y_OFFSET 0
|
||||
#define EXT0_STEPS_PER_MM 92.4
|
||||
#define EXT0_TEMPSENSOR_TYPE 97 //97
|
||||
#define EXT0_TEMPSENSOR_PIN TEMP_0_PIN
|
||||
#define EXT0_HEATER_PIN HEATER_0_PIN
|
||||
#define EXT0_STEP_PIN ORIG_E0_STEP_PIN
|
||||
#define EXT0_DIR_PIN ORIG_E0_DIR_PIN
|
||||
#define EXT0_INVERSE 1
|
||||
#define EXT0_ENABLE_PIN E0_ENABLE_PIN
|
||||
#define EXT0_ENABLE_ON 0
|
||||
#define EXT0_MAX_FEEDRATE 100
|
||||
#define EXT0_MAX_START_FEEDRATE 45
|
||||
#define EXT0_MAX_ACCELERATION 6500
|
||||
#define EXT0_HEAT_MANAGER 1
|
||||
#define EXT0_WATCHPERIOD 3
|
||||
#define EXT0_ADVANCE_K 0
|
||||
#define EXT0_ADVANCE_L 0
|
||||
#define EXT0_ADVANCE_BACKLASH_STEPS 0
|
||||
#define EXT0_WAIT_RETRACT_TEMP 150
|
||||
#define EXT0_WAIT_RETRACT_UNITS 0
|
||||
#define EXT0_SELECT_COMMANDS "M117 Extruder 0\nT0\nM84 P4\nG91\nG1E172F6000\nG1E5F500\nG90"
|
||||
#define EXT0_DESELECT_COMMANDS "G91\nG1E-180F6000\nG90"
|
||||
#if MOTHERBOARD == 301
|
||||
#define EXT0_EXTRUDER_COOLER_PIN 7
|
||||
#elif MOTHERBOARD == 302
|
||||
#define EXT0_EXTRUDER_COOLER_PIN -1
|
||||
#endif
|
||||
#define EXTRUDER_FAN_COOL_TEMP 40
|
||||
#define EXT0_EXTRUDER_COOLER_SPEED 200
|
||||
#define EXT0_DECOUPLE_TEST_PERIOD 45000
|
||||
|
||||
// ### EXT1 Setup ###
|
||||
#define EXT1_X_OFFSET 0
|
||||
#define EXT1_Y_OFFSET 0
|
||||
#define EXT1_STEPS_PER_MM 92.4
|
||||
#define EXT1_TEMPSENSOR_TYPE 97 //97
|
||||
#define EXT1_TEMPSENSOR_PIN TEMP_1_PIN
|
||||
#define EXT1_HEATER_PIN HEATER_1_PIN
|
||||
#define EXT1_STEP_PIN ORIG_E1_STEP_PIN
|
||||
#define EXT1_DIR_PIN ORIG_E1_DIR_PIN
|
||||
#define EXT1_INVERSE 1
|
||||
#define EXT1_ENABLE_PIN E1_ENABLE_PIN
|
||||
#define EXT1_ENABLE_ON 0
|
||||
#define EXT1_MAX_FEEDRATE 100
|
||||
#define EXT1_MAX_START_FEEDRATE 45
|
||||
#define EXT1_MAX_ACCELERATION 6500
|
||||
#define EXT1_HEAT_MANAGER 1
|
||||
#define EXT1_WATCHPERIOD 3
|
||||
#define EXT1_ADVANCE_K 0
|
||||
#define EXT1_ADVANCE_L 0
|
||||
#define EXT1_ADVANCE_BACKLASH_STEPS 0
|
||||
#define EXT1_WAIT_RETRACT_TEMP 150
|
||||
#define EXT1_WAIT_RETRACT_UNITS 0
|
||||
#define EXT1_SELECT_COMMANDS "M117 Extruder 1\nT1\nM84 P4\nG91\nG1E172F6000\nG1E5F500\nG90"
|
||||
#define EXT1_DESELECT_COMMANDS "G91\nG1E-180F6000\nG90"
|
||||
#if MOTHERBOARD == 301
|
||||
#define EXT1_EXTRUDER_COOLER_PIN 7
|
||||
#elif MOTHERBOARD == 302
|
||||
#define EXT1_EXTRUDER_COOLER_PIN -1
|
||||
#endif
|
||||
#define EXTRUDER_FAN_COOL_TEMP 40
|
||||
#define EXT1_EXTRUDER_COOLER_SPEED 200
|
||||
#define EXT1_DECOUPLE_TEST_PERIOD 45000
|
||||
|
||||
// ############# Heated bed configuration ########################
|
||||
#define HEATED_BED_MAX_TEMP 120
|
||||
#define SKIP_M190_IF_WITHIN 5
|
||||
#define HEATED_BED_SENSOR_TYPE 97 //97
|
||||
#define HEATED_BED_SENSOR_PIN TEMP_BED_PIN
|
||||
#define HEATED_BED_HEATER_PIN HEATER_BED_PIN
|
||||
#define HEATED_BED_SET_INTERVAL 5000
|
||||
#define HEATED_BED_HEAT_MANAGER 1
|
||||
#define HEATED_BED_PID_INTEGRAL_DRIVE_MAX 255
|
||||
#define HEATED_BED_PID_INTEGRAL_DRIVE_MIN 80
|
||||
#define HEATED_BED_PID_PGAIN_OR_DEAD_TIME 87.86
|
||||
#define HEATED_BED_PID_IGAIN 3.01
|
||||
#define HEATED_BED_PID_DGAIN 641.82
|
||||
#define HEATED_BED_PID_MAX 255
|
||||
#define HEATED_BED_DECOUPLE_TEST_PERIOD 300000
|
||||
|
||||
|
||||
|
||||
// #################################
|
||||
// ### PRINTER SPECIFIC SETTINGS ###
|
||||
// #################################
|
||||
|
||||
#if PRINTER == 1 // Orion Delta
|
||||
#if MOTHERBOARD == 301
|
||||
#if NUM_EXTRUDER == 1
|
||||
#define MOTOR_CURRENT {140,140,140,130,0}
|
||||
#elif NUM_EXTRUDER == 2
|
||||
#define MOTOR_CURRENT {140,140,140,145,145}
|
||||
#endif
|
||||
#elif MOTHERBOARD == 302
|
||||
#define MOTOR_CURRENT_PWM {60, 60, 130}
|
||||
#endif
|
||||
#define HAVE_HEATED_BED 1
|
||||
#define INVERT_X_DIR 1
|
||||
#if POWER_SUPPLY == 2
|
||||
#define INVERT_Y_DIR 1
|
||||
#else
|
||||
#define INVERT_Y_DIR 0
|
||||
#endif
|
||||
#define INVERT_Z_DIR 1
|
||||
#define DELTA_DIAGONAL_ROD 178.0 // ball cup arms
|
||||
#define DELTA_MAX_RADIUS 90.0
|
||||
#define PRINTER_RADIUS 145.7
|
||||
#define Z_MAX_LENGTH 230.0
|
||||
#define END_EFFECTOR_HORIZONTAL_OFFSET 30.22
|
||||
#define CARRIAGE_HORIZONTAL_OFFSET 26.5 // molded cheapskates
|
||||
#define DELTASEGMENTS_PER_PRINTLINE 22
|
||||
#define STEPPER_INACTIVE_TIME 600L
|
||||
#define MAX_INACTIVE_TIME 900L
|
||||
#define MAX_FEEDRATE_X 250
|
||||
#define MAX_FEEDRATE_Y 250
|
||||
#define MAX_FEEDRATE_Z 250
|
||||
#define HOMING_FEEDRATE_X 80
|
||||
#define HOMING_FEEDRATE_Y 80
|
||||
#define HOMING_FEEDRATE_Z 80
|
||||
#define MAX_ACCELERATION_UNITS_PER_SQ_SECOND_X 1650
|
||||
#define MAX_ACCELERATION_UNITS_PER_SQ_SECOND_Y 1650
|
||||
#define MAX_ACCELERATION_UNITS_PER_SQ_SECOND_Z 1650
|
||||
#define MAX_TRAVEL_ACCELERATION_UNITS_PER_SQ_SECOND_X 2800
|
||||
#define MAX_TRAVEL_ACCELERATION_UNITS_PER_SQ_SECOND_Y 2800
|
||||
#define MAX_TRAVEL_ACCELERATION_UNITS_PER_SQ_SECOND_Z 2800
|
||||
#define MAX_JERK 28
|
||||
#define MAX_ZJERK 28
|
||||
#if HOTEND == 3
|
||||
#define FEATURE_Z_PROBE 1
|
||||
#else
|
||||
#define FEATURE_Z_PROBE 0
|
||||
#endif
|
||||
#define Z_PROBE_SENSITIVITY 20 // 0-126 7 bit value
|
||||
#define Z_PROBE_BED_DISTANCE 20
|
||||
#define Z_PROBE_PULLUP 1 //0
|
||||
#define Z_PROBE_ON_HIGH 0 //1
|
||||
#define Z_PROBE_X_OFFSET 0
|
||||
#define Z_PROBE_Y_OFFSET 0
|
||||
#define Z_PROBE_WAIT_BEFORE_TEST 0
|
||||
#define Z_PROBE_SPEED 60
|
||||
#define Z_PROBE_XY_SPEED 50
|
||||
#define Z_PROBE_SWITCHING_DISTANCE 10
|
||||
#define Z_PROBE_REPETITIONS 1
|
||||
#define Z_PROBE_HEIGHT -0.1
|
||||
#define Z_PROBE_START_SCRIPT "G28/nG1Z25/n"
|
||||
//#define Z_PROBE_START_SCRIPT "M117 Probe Started/n"
|
||||
#define Z_PROBE_FINISHED_SCRIPT ""
|
||||
#define FEATURE_AUTOLEVEL 1
|
||||
#define Z_PROBE_X1 -75.933
|
||||
#define Z_PROBE_Y1 -43.84
|
||||
#define Z_PROBE_X2 75.933
|
||||
#define Z_PROBE_Y2 -43.84
|
||||
#define Z_PROBE_X3 0
|
||||
#define Z_PROBE_Y3 87.69
|
||||
#define SDSUPPORT 1
|
||||
#define SDCARDDETECT 81
|
||||
#define SDCARDDETECTINVERTED 0
|
||||
#define FEATURE_CONTROLLER 13
|
||||
#define UI_PRINTER_NAME "ORION Delta"
|
||||
#define SDSUPPORT 1
|
||||
#define SDCARDDETECT 81
|
||||
#define SDCARDDETECTINVERTED 0
|
||||
|
||||
#elif PRINTER == 2 // Rostock MAX v2
|
||||
#if NUM_EXTRUDER == 1
|
||||
#define MOTOR_CURRENT {140,140,140,130,0}
|
||||
#elif NUM_EXTRUDER == 2
|
||||
#define MOTOR_CURRENT {140,140,140,130,130}
|
||||
#endif
|
||||
#define HAVE_HEATED_BED 1
|
||||
#define INVERT_X_DIR 1
|
||||
#define INVERT_Y_DIR 0
|
||||
#define INVERT_Z_DIR 1
|
||||
#define DELTA_DIAGONAL_ROD 291.06 // ball cup arms
|
||||
#define DELTA_MAX_RADIUS 145.0
|
||||
#define PRINTER_RADIUS 200.0
|
||||
#define Z_MAX_LENGTH 350
|
||||
#define END_EFFECTOR_HORIZONTAL_OFFSET 30.22
|
||||
#define CARRIAGE_HORIZONTAL_OFFSET 26.5 // molded cheapskates
|
||||
#define DELTASEGMENTS_PER_PRINTLINE 22
|
||||
#define STEPPER_INACTIVE_TIME 600L
|
||||
#define MAX_INACTIVE_TIME 900L
|
||||
#define MAX_FEEDRATE_X 250
|
||||
#define MAX_FEEDRATE_Y 250
|
||||
#define MAX_FEEDRATE_Z 250
|
||||
#define HOMING_FEEDRATE_X 80
|
||||
#define HOMING_FEEDRATE_Y 80
|
||||
#define HOMING_FEEDRATE_Z 80
|
||||
#define MAX_ACCELERATION_UNITS_PER_SQ_SECOND_X 1850
|
||||
#define MAX_ACCELERATION_UNITS_PER_SQ_SECOND_Y 1850
|
||||
#define MAX_ACCELERATION_UNITS_PER_SQ_SECOND_Z 1850
|
||||
#define MAX_TRAVEL_ACCELERATION_UNITS_PER_SQ_SECOND_X 3000
|
||||
#define MAX_TRAVEL_ACCELERATION_UNITS_PER_SQ_SECOND_Y 3000
|
||||
#define MAX_TRAVEL_ACCELERATION_UNITS_PER_SQ_SECOND_Z 3000
|
||||
#define MAX_JERK 32
|
||||
#define MAX_ZJERK 32
|
||||
#if HOTEND == 3
|
||||
#define FEATURE_Z_PROBE 1
|
||||
#else
|
||||
#define FEATURE_Z_PROBE 0
|
||||
#endif
|
||||
#define Z_PROBE_SENSITIVITY 20 // 0-126 7 bit value
|
||||
#define Z_PROBE_BED_DISTANCE 20
|
||||
#define Z_PROBE_PULLUP 1
|
||||
#define Z_PROBE_ON_HIGH 0
|
||||
#define Z_PROBE_X_OFFSET 0
|
||||
#define Z_PROBE_Y_OFFSET 0
|
||||
#define Z_PROBE_WAIT_BEFORE_TEST 0
|
||||
#define Z_PROBE_SPEED 60
|
||||
#define Z_PROBE_XY_SPEED 50
|
||||
#define Z_PROBE_SWITCHING_DISTANCE 10
|
||||
#define Z_PROBE_REPETITIONS 1
|
||||
#define Z_PROBE_HEIGHT -0.1
|
||||
#define Z_PROBE_START_SCRIPT "G28/nG1Z25/n"
|
||||
#define Z_PROBE_FINISHED_SCRIPT ""
|
||||
#define FEATURE_AUTOLEVEL 1
|
||||
#define Z_PROBE_X1 -123.565
|
||||
#define Z_PROBE_Y1 -71.34
|
||||
#define Z_PROBE_X2 123.565
|
||||
#define Z_PROBE_Y2 -71.340
|
||||
#define Z_PROBE_X3 0
|
||||
#define Z_PROBE_Y3 142.68
|
||||
#define SDSUPPORT 1
|
||||
#define SDCARDDETECT 81
|
||||
#define SDCARDDETECTINVERTED 0
|
||||
#define FEATURE_CONTROLLER 13
|
||||
#define UI_PRINTER_NAME "RostockMAXv2"
|
||||
|
||||
|
||||
#elif PRINTER == 3 // ERIS Delta
|
||||
#define MOTOR_CURRENT_PWM {20, 20, 130}
|
||||
#define INVERT_X_DIR 0
|
||||
#define INVERT_Y_DIR 0
|
||||
#define INVERT_Z_DIR 0
|
||||
#define DELTA_DIAGONAL_ROD 134.9 // 134.58 early measurement
|
||||
#define DELTA_MAX_RADIUS 65 // max printable area allowed by firmware
|
||||
#define PRINTER_RADIUS 98.38 //PRINTER_RADIUS-END_EFFECTOR_HORIZONTAL_OFFSET-CARRIAGE_HORIZONTAL_OFFSET
|
||||
#define Z_MAX_LENGTH 175.0
|
||||
#define END_EFFECTOR_HORIZONTAL_OFFSET 23.38
|
||||
#define CARRIAGE_HORIZONTAL_OFFSET 10
|
||||
#define DELTASEGMENTS_PER_PRINTLINE 22
|
||||
#define STEPPER_INACTIVE_TIME 600L
|
||||
#define MAX_INACTIVE_TIME 900L
|
||||