|
@@ -2,14 +2,7 @@
|
2
|
2
|
Marlin 3D Printer Firmware
|
3
|
3
|
==========================
|
4
|
4
|
|
5
|
|
-Notes:
|
6
|
|
------
|
7
|
|
-
|
8
|
|
-The configuration is now split in two files:
|
9
|
|
- Configuration.h for the normal settings
|
10
|
|
- Configuration_adv.h for the advanced settings
|
11
|
|
-
|
12
|
|
-Gen7T is not supported.
|
|
5
|
+[![Flattr this git repo](http://api.flattr.com/button/flattr-badge-large.png)](https://flattr.com/submit/auto?user_id=ErikZalm&url=https://github.com/ErikZalm/Marlin&title=Marlin&language=&tags=github&category=software)
|
13
|
6
|
|
14
|
7
|
Quick Information
|
15
|
8
|
===================
|
|
@@ -133,57 +126,98 @@ necessary for backwards compatibility.
|
133
|
126
|
An interrupt is used to manage ADC conversions, and enforce checking for critical temperatures.
|
134
|
127
|
This leads to less blocking in the heater management routine.
|
135
|
128
|
|
|
129
|
+Implemented G Codes:
|
|
130
|
+====================
|
|
131
|
+
|
|
132
|
+* G0 -> G1
|
|
133
|
+* G1 - Coordinated Movement X Y Z E
|
|
134
|
+* G2 - CW ARC
|
|
135
|
+* G3 - CCW ARC
|
|
136
|
+* G4 - Dwell S<seconds> or P<milliseconds>
|
|
137
|
+* G10 - retract filament according to settings of M207
|
|
138
|
+* G11 - retract recover filament according to settings of M208
|
|
139
|
+* G28 - Home all Axis
|
|
140
|
+* G90 - Use Absolute Coordinates
|
|
141
|
+* G91 - Use Relative Coordinates
|
|
142
|
+* G92 - Set current position to cordinates given
|
|
143
|
+
|
|
144
|
+RepRap M Codes
|
|
145
|
+* M0 - Unconditional stop - Wait for user to press a button on the LCD (Only if ULTRA_LCD is enabled)
|
|
146
|
+* M1 - Same as M0
|
|
147
|
+* M104 - Set extruder target temp
|
|
148
|
+* M105 - Read current temp
|
|
149
|
+* M106 - Fan on
|
|
150
|
+* M107 - Fan off
|
|
151
|
+* M109 - Wait for extruder current temp to reach target temp.
|
|
152
|
+* M114 - Display current position
|
|
153
|
+
|
|
154
|
+Custom M Codes
|
|
155
|
+* M17 - Enable/Power all stepper motors
|
|
156
|
+* M18 - Disable all stepper motors; same as M84
|
|
157
|
+* M20 - List SD card
|
|
158
|
+* M21 - Init SD card
|
|
159
|
+* M22 - Release SD card
|
|
160
|
+* M23 - Select SD file (M23 filename.g)
|
|
161
|
+* M24 - Start/resume SD print
|
|
162
|
+* M25 - Pause SD print
|
|
163
|
+* M26 - Set SD position in bytes (M26 S12345)
|
|
164
|
+* M27 - Report SD print status
|
|
165
|
+* M28 - Start SD write (M28 filename.g)
|
|
166
|
+* M29 - Stop SD write
|
|
167
|
+* M30 - Delete file from SD (M30 filename.g)
|
|
168
|
+* M31 - Output time since last M109 or SD card start to serial
|
|
169
|
+* M42 - Change pin status via gcode Use M42 Px Sy to set pin x to value y, when omitting Px the onboard led will be used.
|
|
170
|
+* M80 - Turn on Power Supply
|
|
171
|
+* M81 - Turn off Power Supply
|
|
172
|
+* M82 - Set E codes absolute (default)
|
|
173
|
+* M83 - Set E codes relative while in Absolute Coordinates (G90) mode
|
|
174
|
+* M84 - Disable steppers until next move, or use S<seconds> to specify an inactivity timeout, after which the steppers will be disabled. S0 to disable the timeout.
|
|
175
|
+* M85 - Set inactivity shutdown timer with parameter S<seconds>. To disable set zero (default)
|
|
176
|
+* M92 - Set axis_steps_per_unit - same syntax as G92
|
|
177
|
+* M114 - Output current position to serial port
|
|
178
|
+* M115 - Capabilities string
|
|
179
|
+* M117 - display message
|
|
180
|
+* M119 - Output Endstop status to serial port
|
|
181
|
+* M126 - Solenoid Air Valve Open (BariCUDA support by jmil)
|
|
182
|
+* M127 - Solenoid Air Valve Closed (BariCUDA vent to atmospheric pressure by jmil)
|
|
183
|
+* M128 - EtoP Open (BariCUDA EtoP = electricity to air pressure transducer by jmil)
|
|
184
|
+* M129 - EtoP Closed (BariCUDA EtoP = electricity to air pressure transducer by jmil)
|
|
185
|
+* M140 - Set bed target temp
|
|
186
|
+* M190 - Wait for bed current temp to reach target temp.
|
|
187
|
+* M200 - Set filament diameter
|
|
188
|
+* M201 - Set max acceleration in units/s^2 for print moves (M201 X1000 Y1000)
|
|
189
|
+* M202 - Set max acceleration in units/s^2 for travel moves (M202 X1000 Y1000) Unused in Marlin!!
|
|
190
|
+* M203 - Set maximum feedrate that your machine can sustain (M203 X200 Y200 Z300 E10000) in mm/sec
|
|
191
|
+* M204 - Set default acceleration: S normal moves T filament only moves (M204 S3000 T7000) im mm/sec^2 also sets minimum segment time in ms (B20000) to prevent buffer underruns and M20 minimum feedrate
|
|
192
|
+* M205 - advanced settings: minimum travel speed S=while printing T=travel only, B=minimum segment time X= maximum xy jerk, Z=maximum Z jerk, E=maximum E jerk
|
|
193
|
+* M206 - set additional homeing offset
|
|
194
|
+* M207 - set retract length S[positive mm] F[feedrate mm/sec] Z[additional zlift/hop]
|
|
195
|
+* M208 - set recover=unretract length S[positive mm surplus to the M207 S*] F[feedrate mm/sec]
|
|
196
|
+* M209 - S<1=true/0=false> enable automatic retract detect if the slicer did not support G10/11: every normal extrude-only move will be classified as retract depending on the direction.
|
|
197
|
+* M218 - set hotend offset (in mm): T<extruder_number> X<offset_on_X> Y<offset_on_Y>
|
|
198
|
+* M220 S<factor in percent>- set speed factor override percentage
|
|
199
|
+* M221 S<factor in percent>- set extrude factor override percentage
|
|
200
|
+* M240 - Trigger a camera to take a photograph
|
|
201
|
+* M280 - set servo position absolute. P: servo index, S: angle or microseconds
|
|
202
|
+* M300 - Play beepsound S<frequency Hz> P<duration ms>
|
|
203
|
+* M301 - Set PID parameters P I and D
|
|
204
|
+* M302 - Allow cold extrudes
|
|
205
|
+* M303 - PID relay autotune S<temperature> sets the target temperature. (default target temperature = 150C)
|
|
206
|
+* M304 - Set bed PID parameters P I and D
|
|
207
|
+* M400 - Finish all moves
|
|
208
|
+* M500 - stores paramters in EEPROM
|
|
209
|
+* M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily).
|
|
210
|
+* M502 - reverts to the default "factory settings". You still need to store them in EEPROM afterwards if you want to.
|
|
211
|
+* M503 - print the current settings (from memory not from eeprom)
|
|
212
|
+* M540 - Use S[0|1] to enable or disable the stop SD card print on endstop hit (requires ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED)
|
|
213
|
+* M600 - Pause for filament change X[pos] Y[pos] Z[relative lift] E[initial retract] L[later retract distance for removal]
|
|
214
|
+* M907 - Set digital trimpot motor current using axis codes.
|
|
215
|
+* M908 - Control digital trimpot directly.
|
|
216
|
+* M350 - Set microstepping mode.
|
|
217
|
+* M351 - Toggle MS1 MS2 pins directly.
|
|
218
|
+* M928 - Start SD logging (M928 filename.g) - ended by M29
|
|
219
|
+* M999 - Restart after being stopped by error
|
136
|
220
|
|
137
|
|
-Non-standard M-Codes, different to an old version of sprinter:
|
138
|
|
-==============================================================
|
139
|
|
-Movement:
|
140
|
|
-
|
141
|
|
-* G2 - CW ARC
|
142
|
|
-* G3 - CCW ARC
|
143
|
|
-
|
144
|
|
-General:
|
145
|
|
-
|
146
|
|
-* M17 - Enable/Power all stepper motors. Compatibility to ReplicatorG.
|
147
|
|
-* M18 - Disable all stepper motors; same as M84.Compatibility to ReplicatorG.
|
148
|
|
-* M30 - Print time since last M109 or SD card start to serial
|
149
|
|
-* M42 - Change pin status via gcode
|
150
|
|
-* M80 - Turn on Power Supply
|
151
|
|
-* M81 - Turn off Power Supply
|
152
|
|
-* M114 - Output current position to serial port
|
153
|
|
-* M119 - Output Endstop status to serial port
|
154
|
|
-
|
155
|
|
-Movement variables:
|
156
|
|
-
|
157
|
|
-* M202 - Set max acceleration in units/s^2 for travel moves (M202 X1000 Y1000) Unused in Marlin!!
|
158
|
|
-* M203 - Set maximum feedrate that your machine can sustain (M203 X200 Y200 Z300 E10000) in mm/sec
|
159
|
|
-* M204 - Set default acceleration: S normal moves T filament only moves (M204 S3000 T7000) im mm/sec^2 also sets minimum segment time in ms (B20000) to prevent buffer underruns and M20 minimum feedrate
|
160
|
|
-* M206 - set home offsets. This sets the X,Y,Z coordinates of the endstops (and is added to the {X,Y,Z}_HOME_POS configuration options (and is also added to the coordinates, if any, provided to G82, as with earlier firmware)
|
161
|
|
-* M220 - set build speed mulitplying S:factor in percent ; aka "realtime tuneing in the gcode". So you can slow down if you have islands in one height-range, and speed up otherwise.
|
162
|
|
-* M221 - set the extrude multiplying S:factor in percent
|
163
|
|
-* M400 - Finish all buffered moves.
|
164
|
|
-
|
165
|
|
-Temperature variables:
|
166
|
|
-* M301 - Set PID parameters P I and D
|
167
|
|
-* M302 - Allow cold extrudes
|
168
|
|
-* M303 - PID relay autotune S<temperature> sets the target temperature. (default target temperature = 150C)
|
169
|
|
-
|
170
|
|
-Advance:
|
171
|
|
-
|
172
|
|
-* M200 - Set filament diameter for advance
|
173
|
|
-* M205 - advanced settings: minimum travel speed S=while printing T=travel only, B=minimum segment time X= maximum xy jerk, Z=maximum Z jerk
|
174
|
|
-
|
175
|
|
-EEPROM:
|
176
|
|
-
|
177
|
|
-* M500 - stores paramters in EEPROM. This parameters are stored: axis_steps_per_unit, max_feedrate, max_acceleration ,acceleration,retract_acceleration,
|
178
|
|
- minimumfeedrate,mintravelfeedrate,minsegmenttime, jerk velocities, PID
|
179
|
|
-* M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily).
|
180
|
|
-* M502 - reverts to the default "factory settings". You still need to store them in EEPROM afterwards if you want to.
|
181
|
|
-* M503 - print the current settings (from memory not from eeprom)
|
182
|
|
-
|
183
|
|
-MISC:
|
184
|
|
-
|
185
|
|
-* M240 - Trigger a camera to take a photograph
|
186
|
|
-* M999 - Restart after being stopped by error
|
187
|
221
|
|
188
|
222
|
Configuring and compilation:
|
189
|
223
|
============================
|
|
@@ -194,12 +228,7 @@ Install the arduino software IDE/toolset v23 (Some configurations also work with
|
194
|
228
|
For gen6/gen7 and sanguinololu the Sanguino directory in the Marlin dir needs to be copied to the arduino environment.
|
195
|
229
|
copy ArduinoAddons\Arduino_x.x.x\sanguino <arduino home>\hardware\Sanguino
|
196
|
230
|
|
197
|
|
-Install Ultimaker's RepG 25 build
|
198
|
|
- http://software.ultimaker.com
|
199
|
|
-For SD handling and as better substitute (apart from stl manipulation) download
|
200
|
|
-the very nice Kliment's printrun/pronterface https://github.com/kliment/Printrun
|
201
|
|
-
|
202
|
|
-Copy the Ultimaker Marlin firmware
|
|
231
|
+Copy the Marlin firmware
|
203
|
232
|
https://github.com/ErikZalm/Marlin/tree/Marlin_v1
|
204
|
233
|
(Use the download button)
|
205
|
234
|
|
|
@@ -213,17 +242,8 @@ Click the Verify/Compile button
|
213
|
242
|
Click the Upload button
|
214
|
243
|
If all goes well the firmware is uploading
|
215
|
244
|
|
216
|
|
-Start Ultimaker's Custom RepG 25
|
217
|
|
-Make sure Show Experimental Profiles is enabled in Preferences
|
218
|
|
-Select Sprinter as the Driver
|
219
|
|
-
|
220
|
|
-Press the Connect button.
|
221
|
|
-
|
222
|
|
-KNOWN ISSUES: RepG will display: Unknown: marlin x.y.z
|
223
|
|
-
|
224
|
245
|
That's ok. Enjoy Silky Smooth Printing.
|
225
|
246
|
|
226
|
|
-[![Flattr this git repo](http://api.flattr.com/button/flattr-badge-large.png)](https://flattr.com/submit/auto?user_id=ErikZalm&url=https://github.com/ErikZalm/Marlin&title=Marlin&language=&tags=github&category=software)
|
227
|
247
|
|
228
|
248
|
|
229
|
249
|
|