guide & manual for keyes rostok 3d printer
TRANSCRIPT
Guide & Manual for ROSTOK 3D Printer
Content1. Product manual................................................................................................................................12. BOM................................................................................................................................................ 43. Technical Manual for Installation................................................................................................... 9
I. Installation procedures.............................................................................................................91. Installing bottom bracket................................................................................................ 92. Installing bottom fixed plate of the frame.................................................................... 103. Installing motor............................................................................................................. 124. Installing sliding block..................................................................................................145. Installing top fixed plate of the frame...........................................................................156. Installing power supply.................................................................................................187. Installing 3D V1.2 mainboard.......................................................................................198. Installing 2004 display.................................................................................................. 219. Installing nozzle............................................................................................................ 2210. Installing hotbed..........................................................................................................2311. Installing side shield....................................................................................................2512. Connecting nozzle with sliding block.........................................................................2613. Installing collision board.............................................................................................2714. Installing synchronous belt and its regulator.............................................................. 2915. Installing extruder....................................................................................................... 3016. Installing material rack................................................................................................32
II. Connecting components:...................................................................................................... 344. Connection diagram...................................................................................................................... 375. ROSTOK Manual Leveling.......................................................................................................... 376. Height adjustment for 3D printer nozzle and hotbed....................................................................467. Easy use of Repetier-Host software.............................................................................................. 49
1. Repetier-Host overview........................................................................................................ 492. slicing.................................................................................................................................... 56
1)parameter setup for Slic3r...........................................................................................562)CuraEngine Settings....................................................................................................66
8. G-code........................................................................................................................................... 72Content...................................................................................................................................... 73Introduction............................................................................................................................... 77RepRap G-code fields............................................................................................................... 78Comments..................................................................................................................................79
9. LCD Menu details....................................................................................................................... 101
1
1. Product manual
Before you use the printer, please first finish the installation. Before the installation, pleasecarefully read through manuals of installation, manual leveling etc. After the installation, pleasecarefully read through the manuals again to check if the printer is correctly installed and correctlywired. If it is not correctly installed and wired, it may lead to machine malfunction.
Safety note:Hotbed and nozzle are high temperature parts, do not touch in case of getting burnt.Power supply part has potential danger, touching may lead to harm.
Attention:1. For the printer, please prevent contact with water and other liquid. Otherwise, it may lead tomachine damage.2. When loading the model, please do not turn off the power. Otherwise, it may lead to data loss ofmodel.3. During the printer debugging, there will be filament coming out of the nozzle. please make surethere is at least 50mm distance between the nozzle and the printing platform. Otherwise, it willlead to nozzle blockage.4. Normal working temperature of the printer is room temperature, and humidity 20% - 50%.Exceeding the range can affect forming quality. During the operation of the equipment, there maybe odor in the extrusion process due to material difference. Please keep the air well circulated. Ifyou feel discomfort, please stop using immediately and seek for corresponding treatment in thehospital.5. The SD card supports FAT32 file system. You can store G-Code into it for offline printing.6. One of the keys to successfully print a model lies in the printing platform. If you are using ABSmaterial, hotbed platform should be preheated to 90 degrees Celsius, keep the hotbed platformclean to increase adhesion. If you are using PLA material, you can apply glue (recommend UHUglue) to the hotbed platform, or preheat hotbed platform to 50 degrees Celsius.7. During the printing, temperature control of nozzle is also important. If you are using ABSmaterial, recommended temperature of nozzle is 220-240 degrees Celsius. If you are using PLAmaterial, recommended temperature of nozzle is 80-210 degrees Celsius. Please set up thetemperature according to material during actual printing.8. Please note the baud rate is 250000 when connecting the printer to the computer.9. When you print for the first time, first tighten the nozzle; when the temperature reaches 170degrees, tighten the nozzle again. In this way, blockage of nozzle will be unlikely. Also, changethe step per mm to 92 as below picture.
2
10. To make the forming quality better, please set up a reasonable printing speed. Higher printingspeed can reduce the printing time, but can result in poor forming quality; lower printing speedresults in longer printing time, but higher forming quality.11. After using the printer for a period of time, you need to check critical parts such as thesynchronous belt, push rod and screws if they are loosened.
Printer parameters:Forming size: 140mm*140mm*250mmForming principle: FDM (Fused Deposition Modeling)Material type: 1.75mmABS or 1.75 PLAPrinting speed: 10-100mm/SRecommended layer thickness: 0.1-0.3mmConnection method: USB/SD cardPower supply: AC 110-240VSoftware: Repetier-HostNozzle: 0.4mm diameter/single nozzle
3
Clearing of fault:Failure Solution
Power indicator light outCheck whether the power supply is normalWhether DC power cord is reversely connected duringinstallation
Cannot connect to computer
Check whether USB port connection is normalCheck whether USB port corresponds to the software COMportCheck if software baud rate is set to 250000Shut off the power and restart the printerUSB cable does not workRestart the computer
Hotbed cannot reach specifiedtemperature
Poor connection of temperature sensorTemperature sensor is damaged, change the sensorRestart the printer
Nozzle cannot reach specifiedtemperature
Poor connection of temperature sensorTemperature sensor is damaged, change the sensorRestart the printer
Nozzle blockage/ filamentblockage
Clear up the nozzleChange to a new nozzle
Model deflecting (distorted)Loose belt, adjust the beltMotor getting loose from the synchronizing wheel
Poor adhesion between modeland hotbed
Too high distance from nozzle to hotbedHotbed temperature does not accord to recommendedtemperature of the material
Display showing maximumtemperature
Short circuit of nozzle temperature sensorDamage of nozzle temperature sensor
Display showing minimumtemperature
Open circuit of nozzle temperature sensorDamage of nozzle temperature sensor
Display showing maximumtemperature of hotbed
Short circuit of hotbed temperature sensorDamage of hotbed temperature sensor
Display showing minimumtemperature of hotbed
Open circuit of hotbed temperature sensorDamage of hotbed temperature sensor
4
2. BOM
No. Name Picture QTY Unit
1 Top fixed plate of the frame 1 PCS
2Bottom fixed plate of theframe
1 PCS
3 Side shield 1 1 PCS
4 Side shield 2 1 PCS
5 Material rack 1 1 Set
6 Hotbed bakelite 6 PCS
7 Collision fixed plate 3 PCS
8 Nozzle fixed plate 1 Set
9 Air-deflecting block 1 PCS
10 Plastic part 1 for extruder 1 Set
11 plastic part 2 for extruder 1 Set
12 Belt regulator 3 PCS
13 Bracket holder 6 PCS
5
14 Movable platform 1 PCS
15 Slider 3 PCS
16 Belt clip 3 PCS
17 Sliding rod 6 PCS
18 Self-lubricating copper bush 6 PCS
19 Push rod 6 PCS
20 45mm copper pillar 6 PCS
21 25mm copper pillar 4 PCS
22 Nylon tube 12 PCS
23 Synchronous wheel 3 PCS
24 Tension spring 3 PCS
25 Spring 1 PCS
26 Flange bearing 6 PCS
27 L-type motor holder 1 PCS
6
28 Winding pipe 1 PCS
29 Synchronous belt 3 PCS
30 Nut 1 PCS
31 Extruder gear 1 PCS
32 V-type bearing 1 PCS
33 3D V1.2 1 PCS
34 Collision board 3 PCS
35 A4988 motor drive board 4 PCS
36 2004 display 1 PCS
37 42 stepper motor 4 PCS
38 Power socket 1 PCS
39 12V switch power supply 1 PCS
40 Hotbed 1 PCS
41 Nozzle 1 PCS
7
42 Teflon hose 1 PCS
43 Pneumatic quick connector 1 PCS
44 2510 cooling fan 1 PCS
45 8025 cooling fan 1 PCS
46 Air blower 1 PCS
47 USB cable 1 PCS
48 USB extension cord 1 PCS
49 Power line 1 PCS
50 Connecting line 2 PCS
51 X axis limit line 1 PCS
52 Y axis limit line 1 PCS
53 Z axis limit line 1 PCS
54 AC power line (short) 1 PCS
55 AC power line (long) 1 PCS
8
56 DC power line (long) 1 PCS
57Stepper motor power line(short)
3 PCS
58Stepper motor power line(long)
1 PCS
59 Material rack 2 1 PCS
60 Ribbon 20 PCS
61 Adjustable cap 1 PCS
62 M3 screw a few PCS
63 M4screw a few PCS
64 M3 nut a few PCS
65 M4 nut a few PCS
66 Self-tapping screw a few PCS
9
3. Technical Manual for Installation
I. Installation procedures
ROSTOK 3D printer is easy to install due to its simple hardware structure. Beloware some tips and suggestions for installation.
Before installation, please keep necessary tools on hand. Tools needed are a set of allendriver for repair, M3, M4 screw tap, nipper pliers, wire stripper and etc. Please be carefulwith the pressure you apply during installation in case components were damaged due tooverexertion.
The mechanical structure of the printer is mainly comprised of slider, acrylic board, fixedunits, belt and various attachments. Each component has its own specific installationposition and plays an important role, so please be sure to install in a proper way. You mustalso pay close attention to installation procedures. The whole printer structure is notcomplicated indeed, but if you don’t follow certain steps, you might risk wasting lots ofprecious time. Now let’s move on to specific installation procedures and methods ofROSTOK 3Dprinter .
1. Installing bottom bracket:
Materials needed are shown in below pic 1:
List:
6pcs Slider
3pcs Bracket holder
10
12pcs M3*14 Hexagon socket head cap screws
12pcs M3 nut
Install as following pic 2 shows: Install slider and softly strike the slider into bracket holderwith small hammer, then screw it down with M3*14 screw. Please mind the pressure youapply, otherwise, the bracket holder may be broken due to overexertion. Please pay extraattention to the direction shown in below pictures, the direction must not be takenconversely. The slider and the bottom of bracket holder must be in one line(as pic 3shows).
2. Installing bottom fixed plate of the frame:
Materials needed are shown in below pic 4:
11
List:1pc bottom fixed plate of the frame12pcs M4*14 screw12pcs M4 nut
Install as following pic 5&6 shows: Install bottom fixed plate of the frame and screw it downwith screws. Please pay extra attention to the direction of bottom fixed plate of the frame.
12
3. Installing motor:
Materials needed are shown in below pic 7:
List:3pcs 42 stepper motor12pcs M3*12 screw12pcs M3 shim3pcs synchronous wheel
Install as following pic 8 shows: Install synchronous wheel. Don’t screw it down too tightbecause it will be readjusted during belt installation later.
Install as following pic 9 shows: Mount the stepper motor onto bracket holder. Please payextra attention to the direction of motor connection ports, it should point at the left orright of below pic 10 for easy connection.
13
14
4. Installing sliding block:
Materials needed are shown in pic 11:
List:3pcs Slider3pcs belt clip3pcs self-lubricating copper bush3pcs 45mm copper pillar3pcs M3*16 screw6pcs M3*25 screw6pcs M3*30 screw12pcs M3 nut
Install as following pic 12 shows: Install self-lubricating copper bush and softly strike it intoslider(the side with chamfer should face down).
Install as following pic 13 shows: Install belt clip and copper pillar, the position pointed out byred arrow should be screwed down with M3*30 screw; the position pointed out by yellowarrow should be screwed down with M3*25 screw. Please pay extra attention to the
15
direction of belt clip during installation.
Install as following pic 13 shows: Install one M3*16 screw at the position pointed out by redarrow in pic 12.
Install as following pic 14 shows: Let the side with leveling screw face up and put slider into it.The side with belt clip faces the outside of the frame.
5. Installing top fixed plate of the frame:
Material needed are shown in below pic 16:
16
List:1pc top bracket fixed plate3pcs bracket holder12pcs M3*14 screw12pcs M4*14 screw12pcs M3 nut12pcs M4 nut
Install as following pic 17 shows: Install bracket holder onto the slider.
Install as the following pic 18 shows: Install top bracket fixed plate onto bracket holder in thedirection indicated by the arrow in pic 18. The top bracket fixed plate and the slider should bekept in the same horizontal level.
Install as following pic 19 shows: the part point out by red arrow should be screwed downwith M4*14 screw; the part pointed out by green arrow should be screwed down with M3*14screw.
Pic 16
17
18
6. Installing power supply:
Materials needed are shown in below pic 20:
List:1pc switch power supply4pcs plastic sleeve4pcs M3*20 screw
Install as following pic 21&22 shows: Install power supply onto top bracket fixed plate in thedirection indicated by pic 21 and screw it down as pic 22 shows.
19
7. Installing 3D V1.2 mainboard:
Materials needed are shown in below pic 23:
List:1pc 3D V1.2 board4pcs 4988 stepper motor drive
20
4pcs Plastic Column4pcs M3*20 screw4pcs M3 nut
Install as following pic 24 shows: Install 4988 drive board onto 3D V1.2 main control board.Please make sure 4988 drive is installed in correct direction, otherwise, it may beburned down.Install as following pic 25 shows: Install mainboard onto bottom bracket fixed plate. Addplastic column between 3D V1.2 and bottom bracket fixed plate, then screw it down.
21
8. Installing 2004 display:
Materials needed are shown in below pic 26:
List:1pc 3D 2004 display1pc volume knob4pcs plastic column4pcs M3*20 screw4pcs M3 nut
Install as following pic 18 shows: Install display, add plastic column between the display andbottom bracket fixed plate, then screw it down.
22
9. Installing nozzle:
Materials needed are shown in below pic 29
List:1pc Nozzle1pc Movable platform3pcs 45mm copper pillar1pc Air blower1pc Fan1 Set of nozzle fixed plate4pcs 25mm copper pillar1pc Air-deflecting block of air blower2pcs M2*5 self-tapping screw6pcs M3*8 screw8pcs M3*16 screw6pcs M3 nut
Install as following pic 30 shows: screw 45mm copper pillar down with M3*8 screw.
Install as following pic 31 shows: Install nozzle onto the movable platform.
Install as following pic 32 shows: Let heating wire and temperature-sensitive wire passthrough the movable platform as pic 31 shows.
Install as following pic 33, 34 & 35 shows: Fix the nozzle and air-deflecting block of Air
23
blower, then screw it down with M3*16 screw. Please note that air-deflecting block of theair blower should not be connected with the heating aluminum block of nozzle.
Install as following pic 36 shows: Install cooling fan and fix it with nylon ribbon.
Install as following pic 37 shows: Finally, install air blower. First, drill a hole at the air portof the air blower for fixation of air blower and air-deflecting block of the air blower. Thefinal effect is shown as below pic 38.
10. Installing hotbed:
Materials needed are shown in below pic 39:
Pic 36 Pic 37 Pic 38
24
List:1pc hotbed6pcs bakelite6pcs M3*25 screw6pcs M3 nut
Install as following pic 40 shows: Before fixing the hotbed, first let temperature-sensitivewire and heating wire pass through the bore in the bottom fixed plate of the frame.
Install as following pic 41 shows: Screw the hotbed down onto the bottom bracket fixedplate.
Pic 40 Pic 41
25
11. Installing side shield:
Materials needed are shown in below pic 42:
List:1pc Side shield 11pc Side shield 21pc USB extension cord1pc Power socket4pcs M3*8 Self-tapping screw4pcs M3*8 screw6pcs M3*14 screw
26
8pcs M3 nut
Install as following pic 43 shows: Fix the power socket and USB extension cord with M3*8screw.Install as following pic 45&46 shows: Fix side shield 1 and side shield 2 in the directionindicated by the arrow in pic 44, then screw it down as pic 46 shows. Please make sure theside shields are installed in the correct direction.
12. Connecting nozzle with sliding block:
Materials needed are shown in below pic 47:
27
List:6pcs push rod (fiber tube with fisheye installed)12pcs M3*12 screw3pcs tension spring
Install as following pic 48 shows: Fix push rod onto the slider and nozzle with M3*12 screw.Please first remove the air blower install in step 9, then fix the push rod, finally fix the airblower again.Install as following pic 49 shows: Fix with nylon ribbon and M2*5 self-tapping screw. Addtension spring onto two adjacent push rods in the direction indicated by the arrow in pic 49.
13. Installing collision board:
Materials needed are shown in below pic 50:
28
List:3pcs Collision board3pcs collision fixed plate6pcs M3*8 Philip's head screw6pcs M3*16 hexagon socket head cap screw12pcs M3 nut
Install as following pic 51 shows: Screw down the collision board with M3*8 self-tappingscrew.Install as following pic 52 shows: Install collision fixed board onto the top fixed bracket withM3*16 screw.
29
14. Installing synchronous belt and its regulator:
Materials needed are shown in below pic 53:
List:3pcs Belt regulator6pcs M3*25 screw6pcs M3 nut3pcs M4*16 screw3pcs M4 nut3pcs synchronous belt6pcs flange bearing
Install flange bearing as following pic 54 shows. If there is no M3 nut in the positionindicated by arrow in pic 54, then add one.
Install one M3*25 screw as following pic 55 shows and screw it down with nut. Please notethat the mounting hole should be on the right-side bore.
When belt regulator is mounted with flange bearing, fix the belt regulator onto the frame asfollowing pic 56 shows.
Fix synchronous belt as shown in following pic 57, 58&59. If synchronous belt is a littleloose after installation, you can adjust the screw on the left(as shown by pic 55) to regulatesynchronous belt.
30
15. Installing extruder:
Materials needed are shown in below pic 60:
31
List:1pc Stepper motor1pc L-type motor holder1 set of plastic units for extruder4pcs of M4*14 screw4pcs M4 nut1pc pneumatic quick connector1pc spring1pc V-type bearing1pc extruder gear1pc M3*14 screw3pcs M3*20 screw1pc hand screw1pc M3*40 screw3pcs M3 nut
Install as following pic 61 shows: Install L-type motor holder with M4*14 screw.Install extruder gear as following pic 62 shows. Please pay attention to the position of extrudergear and V-type bearing(as shown by pic 65). Then fix upper part of the extruder with M3*20screw.Install as following pic 63&64 shows: Install pneumatic quick connector, then install V-typebearing with M3*14 screw.
32
Install as following pic 65 shows: Install hand nut and spring.Install as following pic 66 shows: Finish the final installation.
16. Installing material rack:
Materials needed are shown in below pic 67:
33
List:1pc Acrylic board for material rack1pc water pipe2pcs end cap4pcs M4*14 screw4pcs M4 nut
Install material rack as following pic 68 shows:
34
II. Connecting components:
Component connection mainly refers to connection between the mainboard and variousfunctional units or actuating elements. Here we list the associated interfaces in below tablefor your reference. If the motor rotates reversely, please exchange the third wire ofHX2.54-4P cable with the forth one.
When connecting power line of the nozzle, fan and air blower, temperature-sensitiveresistance wire of nozzle, (X, Y, Z) limit line and power line with controller, please first letthem pass through the hole indicated by green arrow in below pic 69&70. Please carefullycheck whether the wiring is correct and wrap the wire with winding pipe after double check.
35
Please refer to below table for concrete connection position.
1.Wiring of motor andlimit switch
This printer isequipped with fourstepper motors witheach one carries fixedinterfaces. Limitswitch on the sameslider must correspondwith motor interface,otherwise, limit switchor even the wholestructure may bedamaged duringdebugging
Left sideslider inpositivedirection
Limit block: connectinterface ofHX2.54-3P withcollision board
Color of J12 connecting line isblack and blue
Stepper motor 3D V1.2 X motor interface
Right sideslider inpositivedirection
Limit block: connectinterface ofHX2.54-3P withcollision board
Color of J10 connecting line isblack and green
Stepper motor3D V1.2 Y motor
interface
Rear sideslider inthepositivedirection
Limit block: connectinterface ofHX2.54-3P ontocollision board
Color of J8 connecting line isblack and green
Stepper motor 3D V1.2 Z motor interface
NozzleAir blowerRed line+
3D V1.2 FAN
36
Black line-
Heating rod
3D V1.2 HE0
Temperature-sensitiveresistor
3D V1.2 J21
Cooling fan
3D V1.2 J17
Stepper motor 3D V1.2 E0 motor interface
2004displayEXP1 3D V1.2 EXP1EXP2 3D V1.2 EXP3
Hotbed
Temperature-sensitive resistor
3D V1.2 J16
Heating wire
3D V1.2 H-BED
Power supply
Cooling fanHX2.54 socket near power
supply ADJ
DC output
3D V1.2 12/24V
AC inputL red lineN Black line
Yellow green line
Upper switch pin of powersocket
37
4. Connection diagram
5. ROSTOK Manual Leveling
Set up Repetier-Host
1. Open up Repetier-Host, then select configuration-printer settings and set up as below:
38
Set as printer com
Set as baud rate
39
Note: Communication ports and baud rate should be set up based on actual circumstance;Initial position should be set up as shown above; Printable radius and printable heightshould also be set up according to actual circumstance.
2. Script setup:
Select preview>Gcode edit>script
40
3. Balance adjustment:
Before balance adjustment, please make sure printer installation has finished andthe machine is under normal operation. When step 1 and step 2 are finished,please double check and make sure nothing has been left out and the printer canoperate normally. Then turn on power switch. PC and printer are properlyconnected , please prepare a piece of A4 paper. (If you have never done balanceadjustment before, we suggest you read through tutorial course on leveling beforeadjustment in case the machine were damaged by any faulty operation.)
A: Locate the lowest point
When the lowest point is located, please check the distance from nozzle to hotbedin case nozzle were damaged.
Send script 1 via shortcut key CTRL+ALT+1 to make printer nozzle drop to thelowest point of X axis. When the dropping process is finished, observe thedistance between nozzle and glass panel. Then send script 2 and script 3commands as well and observe the distance between nozzle and glass panel. (Asshown below) locate the lowest axis, (below we take X axis as example).
Lowest point of X axis
Lowest point of Y axis
41
B: Adjust the height of the lowest point
If X axis is the lowest one among X, Y and Z axis and there is some distancebetween the lowest point and the glass, then we can estimate the length of suchdistance (like 5mm or the nozzle touches the hotbed ) by visual inspection. Openup firmware and adjust values shown below (If the distance between nozzle andhotbed is about 274mm, you can set up as 274mm, but please note that this valueshouldn’t be too large). Re-burn the firmware to printer motherboard afteradjustment. When burning the firmware, please disconnect printer withRepetier-Host.
Lowest point of center areaLowest point of Z axis
42
After adjusting the value of Z axis above, re-connect printer with PC via Repetier-Host and put A4paper on the hotbed. Send script 1 command again via CTRL+ALT+1. If there is no contact betweennozzle and hotbed at this time, then repeat adjusting height of Z axis as above until the nozzle touchesthe glass; If nozzle has touched glass panel already, then pull the paper softly, if the paper stays still, liftup the nozzle by clicking Z axis per 0.1mm per step until A4 paper can be pulled with a certain amountof resistance force being felt. (Note: Resistance force here means the paper can be pulled by single handwith a certain amount of pressure being felt at the same time. If it is very hard to be pulled, it indicatesthat the resistance force is too strong. You can lift up nozzle height per 0.01mm per step until reachingabove state). Now, enter M114 in G-code and click send, the left-bottom corner of the screen willdisplay current coordinate value of nozzle, here we only need to know the height of Z axis, so notedown current coordinate value of Z axis and subtract that value from current value of
and (as shown by
below picture). Then disconnect printer with PC and burn the modified firmware to main control boardof printer. Re-connect printer with PC and send script 1 command via CTRL+ALT+1, now, if Z valuereaches zero, the nozzle should be able to generate some resistance force when the paper is pulled, if itdoes, it means adjustment on X axis is temporally finished.
Write down this value, value 274 in the firmware #define MANAUL_HOME_POS_274 minus this Z value
43
C. Height adjustment on the other two axes;
Let’s adjust the height of Y axis and Z0 point of Z axis. But the height of Y axis andZ axis should be adjusted by regulating balancing screw on the sliding block ratherthan by modifying firmware.
Send script command via CTRL+ALT+2 to make nozzle descend to the lowestpoint near Y axis. Observe the height between nozzle and glass (Since just now wetake the lowest axis as our subject for adjustment, now there is some distance between thenozzle and glass). Then we adjust the screw above the sliding block ofY axis, the nozzle is now away from glass and we need to revolve the screwanticlockwise. For example, if the distance between nozzle and glass is 2mm, we’llneed to revolve the screw anticlockwise for about 4 to 5 circles (the screw pitch is0.5mm, which means the screw will be lift up 0.5mm per circle), then send script 2command again and measure the distance between nozzle and glass by paper aswell. As for resistance force, you can refer to above statement. If the pressure is toobig, then turn the screw clockwise. Repeat above steps until reaching appropriaterange, which means the resistance force felt during pulling the paper is the samewith that of X axis. When adjustment on Y axis is finished, adjust Z axis in thesame way. Please note that if the deviation between the three axes is excessive, then afterinitial adjustment on the axes, the value of other two axes will change again.Please don’t worry if this happens, just re-adjust the not-okay axes by regulating the screwand repeat doing so until the height of drop point of these three axes is the same. Now,manual leveling on three points is close to finish.
Click arrow indicated area
44
D: Adjust geometrical radius of the machine;
When position adjustment on three axes is finished, we send scrip 4 command tomake nozzle move to the the middle of the glass. Similarly, we place a piece ofpaper underneath. If the paper is pressed down by nozzle and can’t be moved at all,
then decrease this value in file
, otherwise, increase this value. After saving firmware, makecorresponding update on main control board until A4 paper can be pulled with a certainamount resistance force being felt; Or if the paper can’t moved at all, you can change thevalue of Z (as pointed by red arrow in below picture) to a negative number (such as Z: -0.5)in firmware setup. After saving the changes, press CTRL+ALT+4 again until A4 can bepulled with a certain amount of resistance force being felt.
45
Now, press CTRL+ALT+1 again, if the nozzle near X axis point is so low that the paper is
pressed down, it means that this value in firmware
is too small and we need to increase it and update it to main control board. We don’t have to adjust this
value or the screw above the sliding block any more.
Repeat this step until A4 paper can be pulled with a certain amount of resistance force being felt. Nowthe whole manual leveling process is finished.
Conclusion: The ideal circumstance is that the distance between the nozzle and glass is always the samewhen script 1-4 commands are sent. That’s to say, when pulling the paper, you should feel a certainamount of resistance force. The distance should be equal to the thickness of a piece of A4 paper.
Lowest point of center area
46
6. Height adjustment for 3D printer nozzle and hotbed
1. First, connect printer to you PC. After the connection, click “manual control” button on the right. You cansee interface as below picture. Then, enter M503 showed as red circled. Click send to check configuration ofthe printer.
47
2. Enter M503, you can see content“echo:M206 X0.00 Y0.00 Z0.00” circled in red line.
3. If during the test print, the height between the nozzle and the hotbed is 0.5mm, we enter M206 X0.5 in thered circled box and click send. During the adjustment, the value should increase little by little to avoid nozzlepressing hotbed due to high value and damaging the nozzle.
48
4. After entering M206 X0.5 and click send, we should save the adjusted parameter. Enter M500 in the redcircled box; click send and modification will be saved.
5. After saving the modified value, let’s reenter M503 and click send. See if the red circled value has beenchanged to 0.5. If so, the modification is succeeded. If in this value, there is still height between the nozzleand the hotbed. Please adjust by repeating step 1-4.
49
6. If the value gets bigger and bigger according to the above method and there is still height between thenozzle and the hotbed, please check the line #define MANUAL_Z_HOME_POS 273mm in firmware fileConfiguration.h as shown in below picture. First, use a ruler to measure the height between nozzle andhotbed when nozzle is at its highest position. If the height is more than 273mm, change the value here to theactual measured value. For example, if the actual measured height is 274mm, change the code into: #defineMANUAL_Z_HOME_POS 274.
Of course, there is another way to do this without changing the firmware parameters. See below picture; adda screw to the arrow indicated area; and if one axis adds a screw, other two axes need screws too. Forexample, if the the height between the nozzle and the hotbed is 1MM, the distance between the screw and themicroswitch is 1MM. After the adjustment, do the test print to see if it works.
7. Easy use of Repetier-Host software
(Examples base on version Repetier-Host 1.06)
1. Repetier-Host overview
Repetier Host is an easy to use software for 3D printing. The main functions include manual debugging
50
and model slicing. Repetier Host is one of the most widely used printing software for 3D printing. Below isan interface picture of successful installation of Repetier - Host 1.06.
1) user interface language setupClick Config Language English
51
After the setup, restart the software. You can see below English interface.
2) after setting up the language, we can set up configuration connecting the printer and the software.
1 Click printer settings button as above picture shows; you can see interface as below picture. Firstone is connection option:A. For connection port, select serial port connection;B. For COM port, please select corresponding port number of your printer.Mine is COM925;C. Baud rate set up as 250000. If yours is 115200, please change accordingly.For other setup, just use the default ones.
52
2 Printer setupA. Extruder travel feed speed: 8000mm/minB. Z axis feed speed: 8000mm/minC. For other setup, just use the default ones.
Extruder & bed temperature checking frequency
53
3 For Extruder, all use the default ones.4 Printing shape setup, according to below picture.
A. In the red box, you can enter your printer’s name. Mine is Keyes 3DB. Select Rostock printer for printer type.C. Home X:0 Home Y:0 Home Z:MaxD. Printable radius: 80mmE. Printing height: 275mm
1). After the above setup, we can link the printer to our computer. Click the connect button as below pictureshows.
If you see the button as below picture, the connection is succeeded.
54
2). After the connection, click manual control and Easy Mode as below picture.
You can see below interface:
55
Then, click the “Toggle log” button
You can see below interface
3). Manually control the motor movement1) See if the installation is correct by manually control the motor rotate direction using buttons of X,Y,Z
and extruder 1.Click X on the right, extruder moves to the right; move to the left if click the left one.Click Y on the above, hotbed moves backward; moves forward if click the below one.Click Z on the above, nozzle moves upward; moves downward if click the below one.Click nozzle on the above, nozzle motor moves reversely; moves forward (feeding) if click the below one.This action requires the nozzle temperature to reach the melt temperature of the filament.
56
2) Control the motor rotation through the display.In standby mode interface, click the knob button to enter the next level menu. Click Prepare Move axisMove 0.1mm Move X、Move Y、Move Z or Move E
For X axis, it moves to the right with increase of value; for Y axis, it moves backwards with increase ofvalue; for Z axis, it moves upwards with increase of value; for E axis,it rotates forward(feeding) withincrease of value.Above directions are true when you directly face your display.After the above, we use G28 to home the machine and check if everything is working correctly.
4). for height adjustment of 3D printing nozzle and hotbed, please refer to another file.
2. slicing
1)parameter setup for Slic3r
Please save each setup.A. Print Settings
1). layers and perimeters
57
A. In layer setting, there are layer height and first layer height. Layer height means height for each layerduring the printing. It’s generally based on nozzle diameter. The higher the value, the coarser the product.The lower the value, the finer.The height of the first layer will be lower than the other layers because first layer will be pressed down and iftoo high, material will pile up, not good for other layer printing.B. Then it’s the perimeters. Perimeter means the minimum thickness of the outer layer, normally no less than3.C. Horizontal shells means layers on the top and bottom, often with solid layer. You can define the top andbottom layer here.D. For advanced, just use the default ones.
2). infill settings
58
A. In the infill settings. One option is fill density, which means density of filament. For fill pattern andtop/bottom fill pattern, you can choose freely as they don’t affect product much.B. For advanced, just use the default ones.
3). speed setup
59
Special attention: in the first printing, you need to set all speeds at 20mm/s. When the first printing is asuccess, you can try to set the speed higher but in reasonable values.
For speed setup, there are many items, but all very clear. Among them, speed for non-print moves meansmoving without load. Note that for first layer speed, don’t set too high or filament cannot stick to hotbed.
4). skirt and brim setup
This setup is for the nozzle action in the beginning. It will be a circle of lines around the product. We suggestyou keep this setup because in the beginning, the nozzle will be in short of filament. After one circle, thefilament feeding will be normal.
5). support material setup
60
During the printing, there may be hollow parts or connection using bridge. If the bridge is too long, supportis needed. Support is extra part, you can remove after the the printing is complete. Raft is the base layerduring the printing. When printing on glass hotbed, raft is not recommended.
6). notes
You can add things you want to write down, just like a notebook.
61
7). Output options setup
This option includes sequential printing and output file etc. Just use the default ones.8). extruder setup
This option is for multiple extruders. Not needed for 1 extruder.
62
9). advanced
Suggest not to change any parameters in this option.
B. Printer setting1). for this option, just setup as below picture.
63
2). custom G-code
; Default start codeM140 S95M104 S220G28 ; Home extruderG29G1 Z15 F1500;G28 X0 F2000;G28 Y0 F2000
M107 ; Turn off fanG90 ; Absolute positioningM82 ; Extruder in absolute mode{IF_BED}M190 S100; Activate all used extruder{IF_EXT0}M104 T0 S225G92 E0 ; Reset extruder position; Wait for all used extruders to reach temperature{IF_EXT0}M109 T0 S225G92 E0G1 E15 F500G92 E0M300 S1000 P3000M0Above G-code for reference.
64
3). Extruder setup
For extruder setup, because we only need one extruder. That means we only need to have one setup.Size: According to actual situation. For Pri3, nozzle diameter is 0.4mm.Position: stop position when printing is complete. You can set up freely but do not exceed the printing area.Retraction: after printing out 1 filament, the extruder will have a retraction. You can set up here though wesuggest we go with the defaults.Advanced is for multiple extruders, you don’t need to set up for 1 extruder.
C. filament setting1). filament setup
65
Filament setup: diameter according to actual diameter, usually are 3mm and 1.75mm. Temperature setup: this setting is important. There are two kinds of materials. One is ABS; another one is
PLA. For ABS, temperature settings are: extruder 220℃, hotbed 110℃; for PLA: extruder 185℃,hotbed 55℃.
2). cooling setup
66
For cooling option, it’s mainly used in printing small objects or printing hole parts. Otherwise, warpage willhappen in printing big objects.
2)CuraEngine Settings
Open Repetier-Host software; click slicing software; select CuraEngine as red circle shows.
Click configuration, you can see CuraEnginesetup interface as below.
67
1). printing setupA. Speed and quality
For the first time printing, please refer to below setup. After the setup, click “save as” and enter a name in theprompt box to save as your own configuration. For the first layer, extrusion width can set up as 200% toincrease bonding between the printing object and the hotbed to avoid warpage.
68
B. structureFor the first time printing, set up as below picture. For different object, set up different parameters for betterresult.
69
C. extrusionSet up as below picture. If there is only one extruder, no need to set up multiple extruder option. If you areprinting spiral object, you need to select option “spiral perimeter”.
70
1
71
D. G-code
E. advancedFor advanced, just use the default setup.
Before moving on to setup for next option, save the last setup first.2). material
For ABS, temperature settings are: extruder 220℃, hotbed 100℃; for PLA: extruder 185℃, hotbed 55℃.
72
8. G-code
This page tries to describe the flavour of G-codes that the RepRap firmwares use and how they
work. The main target is additive fabrication using FFF/FDM processes (3D printing). Codes for
print head movements follow the NIST RS274NGC G-code standard, so RepRap firmwares are
quite usable for CNC milling and similar applications
As many different firmwares exist and their developers tend to implement new features without
discussing strategies or looking what others did before them, a lot of different sub-flavours for the
3D-Printer specific codes developed over the years.
73
Content
1 Introduction
2 RepRap G-code fields
3 Comments
4 Individual commands
o 4.1 Checking codes
4.1.1 N and *
o 4.2 Delay G-commands
4.2.1 G0: Rapid move
4.2.2 G1: Controlled move
4.2.3 G28: Move to Origin
4.2.4 G29-G32: Bed probing
o 4.3 Immediate G-command
4.3.1 G4: Dwell
4.3.2 G10: Print head offset
4.3.3 G20: Set Units to Inches
4.3.4 G21: Set Units to Millimeters
4.3.5 G90: Set to Absolute Positioning
4.3.6 G91: Set to Relative Positioning
4.3.7 G92: Set Position
o 4.4 Immediate M and T commands
4.4.1 M0: Stop
4.4.2 M1: Sleep
4.4.3 M3: Spindle On, Clockwise (CNC specific)
4.4.4 M4: Spindle On, Counter-Clockwise (CNC specific)
4.4.5 M5: Spindle Off (CNC specific)
4.4.6 M7: Mist Coolant On (CNC specific)
4.4.7 M8: Flood Coolant On (CNC specific)
4.4.8 M9: Coolant Off (CNC specific)
4.4.9 M10: Vacuum On (CNC specific)
4.4.10 M11: Vacuum Off (CNC specific)
4.4.11 M17: Enable/Power all stepper motors
4.4.12 M18: Disable all stepper motors
4.4.13 M20: List SD card
74
4.4.14 M21: Initialize SD card
4.4.15 M22: Release SD card
4.4.16 M23: Select SD file
4.4.17 M24: Start/resume SD print
4.4.18 M25: Pause SD print
4.4.19 M26: Set SD position
4.4.20 M27: Report SD print status
4.4.21 M28: Begin write to SD card
4.4.22 M29: Stop writing to SD card
4.4.23 M30: Delete a file on the SD card
4.4.24 M40: Eject
4.4.25 M41: Loop
4.4.26 M42: Stop on material exhausted / Switch I/O pin
4.4.26.1 M42 in ???
4.4.26.2 M42 in Marlin/Sprinter
4.4.26.3 M42 in Teacup
4.4.27 M43: Stand by on material exhausted
4.4.28 M80: ATX Power On
4.4.29 M81: ATX Power Off
4.4.30 M82: Set extruder to absolute mode
4.4.31 M83: Set extruder to relative mode
4.4.32 M84: Stop idle hold
4.4.33 M92: Set axis_steps_per_unit
4.4.34 M98: Get axis_hysteresis_mm
4.4.35 M99: Set axis_hysteresis_mm
4.4.36 M101: Turn extruder 1 on (Forward), Undo Retraction
4.4.36.1 M101 in Teacup firmware
4.4.36.2 M101 in other firmwares
4.4.37 M102 Turn extruder 1 on (Reverse)
4.4.38 M103 Turn all extruders off / Extruder Retraction
4.4.38.1 M103 in Teacup firmware
4.4.38.2 M103 in other firmwares
4.4.39 M104:Set Extruder(head) Temperature
4.4.39.1 M104 in Teacup Firmware
4.4.40 M105: Get Extruder Temperature
75
4.4.41 M106: Fan On
4.4.41.1 M106 in Teacup Firmware
4.4.42 M107: Fan Off
4.4.43 M108: Set Extruder Speed
4.4.44 M109: Set Extruder Temperature and Wait
4.4.44.1 M109 in Teacup
4.4.44.2 M109 in Marlin, Sprinter(ATmega port)
4.4.44.3 M109 in Sprinter (4pi port)
4.4.45 M110: Set Current Line Number
4.4.46 M111: Set Debug Level
4.4.47 M112: Emergency Stop
4.4.48 M113: Set Extruder PWM
4.4.49 M114: Get Current Position
4.4.50 M115: Get Firmware Version and Capabilities
4.4.51 M116: Wait
4.4.52 M117: Get Zero Position
4.4.53 M117 in Marlin: Display Message
4.4.54 M118: Negotiate Features
4.4.55 M119: Get Endstop Status
4.4.56 M120: Push
4.4.57 M121: Pop
4.4.58 M126: Open Valve
4.4.59 M127: Close Valve
4.4.60 M128: Extruder Pressure PWM
4.4.61 M129: Extruder pressure off
4.4.62 M130: Set PID P value
4.4.63 M131: Set PID I value
4.4.64 M132: Set PID D value
4.4.65 M133: Set PID I limit value
4.4.66 M134: Write PID values to EEPROM
4.4.67 M136: Print PID settings to host
4.4.68 M140: Bed Temperature (Fast)
4.4.69 M141: Chamber Temperature (Fast)
4.4.70 M142: Holding Pressure
4.4.71 M143: Maximum hot-end temperature
76
4.4.72 M160: Number of mixed materials
4.4.73 M190: Wait for bed temperature to reach target temp
4.4.74 M200 - Set filament diameter / Get Endstop Status
4.4.75 M201 - Set max printing acceleration
4.4.76 M202 - Set max travel acceleration
4.4.77 M203 - Set maximum feedrate
4.4.78 M204 - Set default acceleration
4.4.79 M205 - Advanced settings
4.4.80 M206: Set home offset
4.4.81 M207: Calibrate z axis by detecting z max length
4.4.82 M208: Set XYZ axis max travel
4.4.83 M209: Enable automatic retract(Retraction)
4.4.84 M220: Set speed factor override percentage
4.4.85 M221: Set extrude factor override percentage
4.4.86 M226: Gcode Initiated Pause
4.4.87 M227: Enable Automatic Reverse and Prime
4.4.88 M228: Disable Automatic Reverse and Prime
4.4.89 M229: Enable Automatic Reverse and Prime
4.4.90 M230: Disable / Enable Wait for Temperature Change
4.4.91 M240: Start conveyor belt motor / Echo off
4.4.92 M241: Stop conveyor belt motor / echo on
4.4.93 M245: Start cooler
4.4.94 M246: Stop cooler
4.4.95 M300: Play beep sound
4.4.96 M301: Set PID parameters - Hot End
4.4.97 M303: Run PID tuning
4.4.98 M304: Set PID parameters - Bed
4.4.99 M420: Set RGB Colors as PWM
4.4.100 T: Select tool
5 Proposed EEPROM configuration codes
o 5.1 M500: Store parameters in EEPROM
o 5.2 M501: Read parameters from EEPROM
o 5.3 M502: Revert to the default "factory settings."
o 5.4 M503: Get settings
6 Replies from the RepRap machine to the host computer
77
7 Proposal for sending multiple lines of G-code
o 7.1 Problem to solve
8 Alternatives to G-code
Introduction
A typical piece of Gcode as sent to a RepRap machine might look like this:
N3 T0*57
N4 G92 E0*67
N5 G28*22
N6 G1 F1500.0*82
N7 G1 X2.0 Y2.0 F3000.0*85
N8 G1 X3.0 Y3.0*33
The meaning of all those symbols and numbers (and more) is explained below.
Below table clearly shows which specific Gcode(s) are implemented in any given firmware; some
are still experimental.
Support
FiveD Teacup Sprinter Marlin Repetier
yes automatic yes yes experimental
Here means:
Yes:
The Gcode is fully supported by the firmware.
Experimental:
There is some support for the Gcode. Often it is required to check out the source code
branch for the firmware; may also require some modification.Automatic:
The firmware handles this Gcode automatically, so there's no need to send the command.
An example is power supply on/off Gcode (M80/M81) in the Teacup firmware.No:
The firmware does not support this Gcode.
78
For the technically minded, Gcode line endings are Unix Line Endings (\n), but will accept
Windows Line Endings (\r\n), so you should not need to worry about converting between the two.
RepRap G-code fields
This section explains the letter-preceded fields. The numbers in the fields are represented by nnn.
Numbers can be integers, or can contain a decimal point, depending on context. For example an X
coordinate can be integer (X175) or fractional (X17.62), whereas trying to select extruder number
2.76 would make no sense.)
Letter Meaning
Gnnn Standard GCode command, such as move to a point
Mnnn RepRap-defined command, such as turn on a cooling fan
Tnnn Select tool nnn. In RepRap, tools are extruders
Snnn Command parameter, such as time in seconds; temperatures; voltage to send to a motor
Pnnn Command parameter, such as time in milliseconds; proportional (Kp) in PID Tuning
Xnnn A X coordinate, usually to move to. This can be an Integer or Fractional number.
Ynnn A Y coordinate, usually to move to. This can be an Integer or Fractional number.
Znnn A Z coordinate, usually to move to. This can be an Integer or Fractional number.
Innn Parameter - X-offset in arc move; integral (Ki) in PID Tuning
Jnnn Parameter - Y-offset in arc move
Fnnn Feedrate in mm per minute. (Speed of print head movement)
Rnnn Parameter - used for temperatures
Qnnn Parameter - not currently used
Ennn
Length of extrudate. This is exactly like X, Y and Z, but for the length of filament to
extrude. It is common for newer stepper based systems to interpret ... Better: Skeinforge
40 and up interprets this as the absolute length of input filament to consume, rather than
the length of the extruded output.
Nnnn Line number. Used to request repeat transmission in the case of communications errors.
*nnn Checksum. Used to check for communications errors.
79
Comments
G Code comments:
N3 T0*57 ; This is a comment
N4 G92 E0*67
; So is this
N5 G28*22
Comments and white space will be ignored by your RepRap Printer. It's better to strip these out on
the host computer before sending the Gcode to your printer, as this saves bandwidth.
Individual commands
Checking codes
N and *
Example: N123 [...G Code here...] *71
These are line number and tagged number. RepRap firmware will compare the tagged number
with a locally-computed value and, if they differ, requests a repeat transmission of the line of the
given number.
Although RepRap can still work without line number and checking number, it will not do the
checking. You may use both or omitting both.
Checksum cs is to use Gcode cmd (including line number) to have bit exclusive-or operation.
Below is example code:
int cs = 0;
for(i = 0; cmd[i] != '*' && cmd[i] != NULL; i++)
cs = cs ^ cmd[i];
cs &= 0xff; // Defensive programming...
The cs value is the decimal digit on the right of *.
The RepRap firmware expects line numbers to increase by 1 each line, and if that doesn't happen
it is flagged as an error. But you can reset the count using M110 (see below).
Note: the purpose for line number and checksum is to reduce signal interference.
80
Delay G-commands
If buffering is supported, the RepRap firmware stores some commands in a ring buffer internally
for execution. This means that there is no (appreciable) delay while a command is acknowledged
and the next transmitted. In turn, this means that sequences of line segments can be plotted
without a dwell between one and the next. As soon as one of these buffered commands is received
it is acknowledged and stored locally. If the local buffer is full, then the acknowledgment is
delayed until space for storage in the buffer is available. This is how flow control is achieved.
G0: Rapid move
Example: G0 X12
It will move X = 12 mm for this command. In fact, for RepRap, the efficiency of this command is
the same with G1 X12. ( this command is for old machines that prefer moving in folding line to go
linear. That’s why it’s called rapid move)
G1: Controlled move
Example: G1 X90.6 Y13.8 E22.4
From the current position (X, Y) moves to the designated position (90.6, 13.8) while extruding
22.4mm of filament between the two points. (note: the extrusion is controlled by E22.4command)
RepRap is very sensitive to the feedrate, so we first set the feedrate to 1500mm/minute, then move
to (X90.6 Y13.8) and do the the extrusion.
G1 F1500
G1 X90.6 Y13.8 E22.4
SupportFiveD Teacup Sprinter Marlin Repetier
??? yes yes yes yes
SupportFiveD Teacup Sprinter Marlin Repetier
yes yes yes yes yes
81
But for the code below, we set a feedrate of 1500 mm/minute first, then do the move described
above accelerating to a feedrate of 3000 mm/minute as it does so.
G1 F1500
G1 X90.6 Y13.8 E22.4 F3000
To reverse the extruder by a given amount (for example to reduce its internal pressure while it
does an in-air movement so that it doesn't dribble) simply use G0 or G1 to send an E value that is
less than the currently extruded length.
Note: not all firmware supports this function (change feedrate during movement). For
example, Marlin will use the new feedrate at the very beginning and will not change during the
movement.
For the first example, it keeps fixed feedrate during movement; for the second one, it changes the
feedrate during the movement, so for below code, the feedrate will first be accelerated to 3000
mm/minute and then reduce to1500 mm/minute.
G1 F1500
G1 X90.6 Y13.8 E22.4 F3000
G1 X80 Y20 E36 F1500
For the filament retraction, we can reverse the extruder motor to reduce its internal pressure while
it does an in-air movement so that it doesn't dribble, which can greatly reduce burr defect during
the printing. Specific operation: send G1 Ennn command to RepRap, in which the nnn should be
lower than the current value.
G28: Move to Origin
Example: G28
When the RepRap firmware receives this command, it moves all (or the supplied) axis's back to
the zero endstops as quickly as it can, then backs off by a millimeter and slowly moves back to the
zero endstop activation points to increase position accuracy.
SupportFiveD Teacup Sprinter Marlin Repetier
yes yes yes yes yes
82
If you add coordinates, only coordinates added will be homed. For example “G28 X0 Y72.3”,
only X and Y axis will be homed, no homing for the Z axis (numbers after X and Y will be
ignored).
G29-G32: Bed probing
G29 Detailed Z-Probe
probes the bed at 3 points.
G30 Single Z Probe
probes bed at current XY location.
G31 Report Current Probe status
reports whether Z probe is triggered. G32 Probe Z and calibrate with FPU
probes the bed at 3 points and updates transformation matrix for bed leveling
compensation.
Immediate G command
The below commands will be buffered and be responded only after all the previous buffered
commands are executed. So the main machine will wait until all commands are executed (latest
respond). These temporary stops will not affect the normal function of the machine.
Teacup Firmware buffers G20, G21, G90 and G91.
G4: Dwell
Example: G4 P200
In this case sit still doing nothing for 200 milliseconds. During delays the state of the machine (for
example the temperatures of its extruders) will still be preserved and controlled.
G10: tool offset
Example: G10 P3 X17.8 Y-19.3 Z0.0 R140 S205
This sets the offset for tool (or in older implementations extrude head) 3 (from the P3) to the X
and Y values specified. You can put a non-zero Z value in as well, but this is usually a bad idea
unless the tools are loaded and unloaded by some sort of tool changer. When all the tools are in
the machine at once they should all be set to the same Z height.
Remember that any parameter that you don't specify will automatically be set to the last value for
that parameter. That usually means that you want explicitly to set Z0.0.
83
The R value is the standby temperature in oC that will be used for the tool, and the S value is its
operating temperature. If you don't want the tool to be at a different temperature when not in use,
set both values the same. See the T code (select tool) .
The NIST G-code standard mentions an additional L parameter, which is ignored.
This command is subject to discussion.
G20: Set Units to Inches
Example: G20Units from now on are in inches.
G21: Set Units to Millimeters
Example: G21Units from now on are in millimeters. (This is the RepRap default.)
G90: Set to Absolute Positioning
Example: G90
All coordinates from now on are absolute relative to the origin of the machine. (This is the
RepRap default.)
G91: Set to Relative Positioning
Example: G91
All coordinates from now on are relative to the last position
G92: Set Position
Example: G92 X10 E90
Allows programming of absolute zero point, by resetting the current position to the values
specified. This would set the machine's X coordinate to 10, and the extrude coordinate to 90. No
physical motion will occur.
A G92 without coordinates will reset all axes to zero.
Immediate M and T commands
M0: Stop
Example: M0
The RepRap machine finishes any moves left in its buffer, then shuts down. All motors and
heaters are turned off. It can be started again by pressing the reset button on the master
microcontroller. See also M1, M112.M1: Sleep
Example: M1
84
The RepRap machine finishes any moves left in its buffer, then shuts down. All motors and
heaters are turned off. It can still be sent G and M codes, the first of which will wake it up again.
See also M0, M112.M3: Spindle On, Clockwise (CNC specific)
Example: M3 S4000
The spindle is turned on with a speed of 4000 RPM.M4: Spindle On, Counter-Clockwise (CNC specific)
Example: M4 S4000
The spindle is turned on with a speed of 4000 RPM.M5: Spindle Off (CNC specific)
Example: M5
The spindle is turned off.M7: Mist Coolant On (CNC specific)
Example: M7Mist coolant is turned on (if available)
M8: Flood Coolant On (CNC specific)
Example: M8Flood coolant is turned on (if available)
M9: Coolant Off (CNC specific)
Example: M9All coolant systems are turned off.
M10: Vacuum On (CNC specific)
Example: M10
Dust collection vacuum system turned on.M11: Vacuum Off (CNC specific)
Example: M11
Dust collection vacuum system turned off. (CNC specific)M17: Enable/Power all stepper motors
Example: M17M18: Disable all stepper motors
Example: M18
Disables stepper motors and allows axis to move 'freely.' (due to inertia or gravity)
- Is this not the same as M84? -- MrAlvin 05:53, 20 September 2012 (UTC)M20: List SD card
Example: M20
All files in the root folder of the SD card are listed to the serial port. One name per line, like:
ok Files: {SQUARE.G,SQCOM.G,}
85
‘, ’ mark is optional . Note that some firmwares list file names in upper case, but - when sent to
the M23 command (below) they must be in lower case. This seems to be a function of the SD
software. Go figure...M21: Initialize SD card
Example: M21The SD card is initialized. If an SD card is loaded when the machine is switched on, this will
happen by default. SD card must be initialized for the other SD functions to work.
M22: Release SD card
Example: M22
SD card is released, so further (accidental) attempts to read from it are guaranteed to fail. Helpful,
but not mandatory before removing the card physically.M23: Select SD file
Example: M23 filename.gcoThe file specified as filename.gco (8.3 naming convention is supported) is selected ready for
printing.
M24: Start/resume SD print
Example: M24
The machine prints from the file selected with the M23 command.M25: Pause SD print
Example: M25
The machine pauses printing file selected with the M23 command at the current position.M26: Set SD position
Example: M26
Set SD position in bytes (M26 S12345).M27: Report SD print status
Example: M27
Report SD print status.M28: Begin write to SD card
Example: M28 filename.gco
File specified by filename.gco is created (or overwritten if it exists) on the SD card and all
subsequent commands sent to the machine are written to that file.M29: Stop writing to SD card
Example: M29 filename.gco
File opened by M28 command is closed, and all subsequent commands sent to the machine are
executed as normal.M30: Delete a file on the SD card
Example: M30 filename.gco
filename.gco is deleted.
86
M40: Eject
If your RepRap machine can eject the parts it has built off the bed, this command executes the
eject cycle. This usually involves cooling the bed and then performing a sequence of movements
that remove the printed parts from it. The X, Y and Z position of the machine at the end of this
cycle are undefined (though they can be found out using the M114 command, q.v.).
See also M240 and M241 below.M41: Loop
Example: M41
If the RepRap machine was building a file from its own memory such as a local SD card (as
opposed to a file being transmitted to it from a host computer) this goes back to the beginning of
the file and runs it again. So, for example, if your RepRap is capable of ejecting parts from its
build bed then you can set it printing in a loop and it will run and run. Use with caution - the only
things that will stop it are:
1. When you press the reset button,
2. When the build material runs out (if your RepRap is set up to detect this), and
3. When there's an error (such as a heater failure).M42: Stop on material exhausted / Switch I/O pin
M42 in ???
Example: M42
If your RepRap can detect when its material runs out, this decides the behaviour when that
happens. The X and Y axes are zeroed (but not Z), and then the machine shuts all motors and
heaters off. You have to press reset to reactivate the machine. In other words, it parks itself and
then executes an M0 command (q.v.).M42 in Marlin/Sprinter
Example: M42 P7 S255
M42 switches a general purpose I/O pin.M42 in Teacup
Not needed. General purpose devices are handled like a heater, see M104.M43: Stand by on material exhausted
Example: M43
If your RepRap can detect when its material runs out, this decides the behaviour when that
happens. The X and Y axes are zeroed (but not Z), and then the machine shuts all motors and
heaters off except the heated bed, the temperature of which is maintained. The machine will still
respond to G and M code commands in this state.M80: ATX Power On
Example: M80
Turns on the ATX power supply from standby mode to fully operational mode. No-op on
electronics without standby mode.
87
Note: some firmwares, like Teacup, handle power on/off automatically, so this is redundant there.M81: ATX Power Off
Example: M81Turns off the ATX power supply. Counterpart to M80.
M82: Set extruder to absolute mode
Example: M82
makes the extruder interpret extrusion as absolute positions.This is the default in repetier.
M83: Set extruder to relative mode
Example: M83
makes the extruder interpret extrusion values as relative positions.M84: Stop idle hold
Example: M84
Stop the idle hold on all axis and extruder. In some cases the idle hold causes annoying noises,
which can be stopped by disabling the hold. Be aware that by disabling idle hold during printing,
you will get quality issues. This is recommended only in between or after printjobs.M92: set axis_steps_per_unit
Example: M92 X<newsteps> Sprinter and MarlinAllows programming of steps per unit of axis till the electronics are reset for the specified axis.
Very useful for calibration.
M98: get axis_hysteresis_mm
Example: M98
Report current hysteresis value of XYZ axis.Proposed for Marlin
M99: set axis_hysteresis_mm
Example: M99 X<mm> Y<mm> Z<mm> E<mm>
Mechanical pulleys, gears and threads can have hysteresis when they change direction. That is, a
certain number of steps occur before movement occurs. You can measure how many mm are lost
to hysteresis and set their values with this command. Every time an axis changes direction, these
extra mm will be added to compensate for the hysteresis.Proposed for Marlin
M101 Turn extruder 1 on (Forward), Undo Retraction
M101 in Teacup firmware
If a DC extruder is present, turn that on. Else, undo filament retraction, which means, make the
extruder ready for extrusion. Complement to M103.M101 in other firmwares
Deprecated. Regarding filament retraction, see M227, M228, M229.M102 Turn extruder 1 on (Reverse)
88
Deprecated.M103 Turn all extruders off, Extruder Retraction
M103 in Teacup firmware
If a DC extruder is present, turn that off. Else, retract the filament in the hope to prevent nozzle
drooling. Complement to M101.M103 in other firmwares
Deprecated. Regarding extruder retraction, see M227, M228, M229.M104:Set Extruder Temperature
Example: M104 S190
Set the temperature of the current extruder to 190oC and return control to the host (PC)
immediately (i.e. before that temperature has been reached by the extruder). See also M109.
This is deprecated because temperatures should be set using the G10 and T commands (q.v.).
Deprecation is subject to discussion. --Traumflug 11:33, 19 July 2012 (UTC)M104 in Teacup Firmware
In Teacup Firmware, M104 can be additionally used to handle all devices using a temperature
sensor. It supports the additional P parameter, which is a zero-based index into the list of sensors
in config.h. For devices without a temp sensor, see M106.
Example: M104 P1 S100
Set the temperature of the device attached to the second temperature sensor to 100 °C.M105: Get Extruder Temperature
Example: M105
Request the temperature of the current extruder and the build base in degrees Celsius. The
temperatures are returned to the host computer. For example, the line sent to the host in response
to this command looks like: ok T:201 B:117
M106: fan on
Example: M106 S127
Turn on the cooling fan at half speed.
'Mandatory parameter 'S' declares the PWM value (0-255). M106 S0 turns the fan off.M106 in Teacup Firmware
SupportFiveD Teacup Sprinter Marlin Repetier
yes yes yes yes yes
SupportFiveD Teacup Sprinter Marlin Repetier
yes yes yes
89
Additionally to the above, Teacup Firmware uses M106 to control general devices. It supports the
additional P parameter, which is an zero-based index into the list of heaters/devices in config.h.
Example: M106 P2 S255
Turn on device #3 at full speed/wattage.
Note: When turning on a temperature sensor equipped heater with M106 and M104 at the same
time, temperature control will override the value given in M106 quickly.M107: Fan Off
Deprecated in Teacup firmware. Use M106 S0 instead..M108: Set Extruder Speed
Sets speed of extruder motor. (Deprecated in FiveD firmware, see M113)
M109: Set Extruder Temperature and Wait
M109 in Teacup
Not needed. To mimic Marlin behaviour, use M104 followed by M116.M109 in Marlin, Sprinter (ATmega port)
Set Extruder Temperature and Wait
Example: M109 S185M109 in Sprinter (4pi port)
Parameters: S (optional), set target temperature value. If not specified, waits for the temperature
set by M104. R (optional), sets target temperature range maximum value.
Example: M109 S185 R240 //sets extruder temperature to 185 and waits for the temperature to be
between 185 - 240.
If you have multiple extruders, use T or P parameter to specify which extruder you want to
set/wait.
Another way to do this is to use G10.M110: Set Current Line Number
Example: M110 N123
Set the current line number to 123. Thus the expected next line after this command will be 124.
SupportFiveD Teacup Sprinter Marlin Repetier
??? not needed see text yes ???
SupportFiveD Teacup Sprinter Marlin Repetier
??? not needed ??? ??? ???
90
M111: Set Debug Level
Example: M111 S6
Set the level of debugging information transmitted back to the host to level 6. The level is the OR
of three bits:
#define DEBUG_ECHO (1<<0)
#define DEBUG_INFO (1<<1)
#define DEBUG_ERRORS (1<<2)
Thus 6 means send information and errors, but don't echo commands. (This is the RepRap
default.)
Example: M253M112: Emergency
Stop
Example: M112Any moves in progress are immediately terminated, then RepRap shuts down. All motors and
heaters are turned off. It can be started again by pressing the reset button on the master
microcontroller. See also M0 and M1.
M113: Set Extruder PWM
Example: M113
Set the PWM for the currently-selected extruder. On its own this command sets RepRap to use the
on-board potentiometer on the extruder controller board to set the PWM for the currently-selected
extruder's stepper power. With an S field:
M113 S0.7
it causes the PWM to be set to the S value (70% in this instance). M113 S0 turns the extruder off,
until an M113 command other than M113 S0 is sent.M114: Get Current Position
Example: M114
This causes the RepRap machine to report its current X, Y, Z and E coordinates to the host.
For example, the machine returns a string such as:
ok C: X:0.00 Y:0.00 Z:0.00 E:0.00M115: Get Firmware Version and Capabilities
Example: M115
Request the Firmware Version and Capabilities of the current microcontroller The details are
returned to the host computer as key:value pairs separated by spaces and terminated with a
linefeed.
sample data from firmware:
SupportFiveD Teacup Sprinter Marlin Repetier
Debug
91
ok PROTOCOL_VERSION:0.1 FIRMWARE_NAME:FiveD
FIRMWARE_URL:http%3A//reprap.org MACHINE_TYPE:Mendel EXTRUDER_COUNT:1
This M115 code is inconsistently implemented, and should not be relied upon to exist, or output
correctly in all cases. An initial implementation was committed to svn for the FiveD Reprap
firmware on 11 Oct 2010. Work to more formally define protocol versions is currently (October
2010) being discussed. See M115_Keywords for one draft set of keywords and their meanings.M116: Wait
Example: M116
Wait for all temperatures and other slowly-changing variables to arrive at their set values. See also
M109.M117: Get Zero Position
Example: M117
This causes the RepRap machine to report the X, Y, Z and E coordinates in steps not mm to the
host that it found when it last hit the zero stops for those axes. That is to say, when you zero X,
the x coordinate of the machine when it hits the X endstop is recorded. This value should be 0, of
course. But if the machine has drifted (for example by dropping steps) then it won't be. This
command allows you to measure and to diagnose such problems. (E is included for completeness.
It doesn't normally have an endstop.)M117 in Marlin: Display Message
Example: M117 Hello WorldThis causes the given message to be shown in the status line on an attached LCD. The above
command will display Hello World.
M118: Negotiate Features
Example: M118 P42
This M-code is for future proofing. NO firmware or hostware supports this at the moment. It is
used in conjunction with M115's FEATURES keyword.
See Protocol_Feature_Negotiation for more info.M119: Get Endstop Status
Example: M119
Returns the current state of
the configured X, Y, Z endstops. Takes into account any 'inverted endstop' settings, so one can
confirm that the machine is interpreting the endstops correctly.M120: Push
SupportFiveD Teacup Sprinter Marlin Repetier
yes yes
92
Push the state of the RepRap machine onto a stack. Exactly what variables get pushed depends on
the implementation (as does the depth of the stack - a typical depth might be 5). A sensible
minimum, however, might be
1. Current feedrate, and
2. Whether moves (and separately extrusion) are relative or absoluteM121: Pop
Recover the last state pushed onto the stack.M126: Open Valve
Example: M126 P500
Open the extruder's valve (if it has one) and wait 500 milliseconds for it to do so.M127: Close Valve
Example: M127 P400
Close the extruder's valve (if it has one) and wait 400 milliseconds for it to do so.M128: Extruder Pressure PWM
Example: M128 S255
PWM value to control internal extruder pressure. S255 is full pressure.M129: Extruder pressure off
Example: M129 P100
In addition to setting Extruder pressure to 0, you can turn the pressure off entirely. P400 will wait
100ms to do so.M130: Set PID P value
Example: M130 P 0 S 8.0 # Sets heater 0 P factor to 8.0
M131: Set PID I value
Example: M130 P 1 S 0.5 # Sets heater 1 I factor to 0.5
M132: Set PID D value
SupportFiveD Teacup Sprinter Marlin Repetier
yes
SupportFiveD Teacup Sprinter Marlin Repetier
yes
SupportFiveD Teacup Sprinter Marlin Repetier
yes
93
Example: M130 P 0 S 24 # Sets heater 0 D factor to 24.0
M133: Set PID I limit value
Example: M130 P 1 S 264 # Sets
heater 0 I limit value to 264
M134: Write PID values to
EEPROM
Example: M134
M136: Print PID settings to
host
Example: M136 P1 # print
heater 0 PID parameters to
host
M140: Bed Temperature (Fast)
Example: M140 S55
Set the temperature of the build
bed to 55oC and return control to
the host immediately (i.e. before
that temperature has been reached by the bed).M141: Chamber Temperature (Fast)
Example: M141 S30
Set the temperature of the chamber to 30oC and return control to the host immediately (i.e. before
that temperature has been reached by the chamber).M142: Holding Pressure
Example: M142 S1
Set the holding pressure of the bed to 1 bar.
The holding pressure is in bar. For hardware which only has on/off holding, when the holding
pressure is zero, turn off holding, when the holding pressure is greater than zero, turn on holding.M143: Maximum hot-end temperature
Example: M143 S275Set the maximum temperature of the hot-end to 275C
SupportFiveD Teacup Sprinter Marlin Repetier
yes
SupportFiveD Teacup Sprinter Marlin Repetier
yes
SupportFiveD Teacup Sprinter Marlin Repetier
Debug
SupportFiveD Teacup Sprinter Marlin Repetier
yes yes yes yes
94
When temperature of the hot-end exceeds this value, take countermeasures, for instance an
emergency stop. This is to prevent hot-end damage.
M160: Number of mixed materials
Example: M160 S4
Set the number of materials, N, that the current extruder can handle to the number specified. The
default is 1.
When N >= 2, then the E field that controls extrusion requires N+1 values separated by spaces
after it like this:
M160 S4
G1 X90.6 Y13.8 E22.4 0.1 0.1 0.1 0.7
G1 X70.6 E42.4 0.0 0.0 0.0 1.0
G1 E42.4 1.0 0.0 0.0 0.0
The second line moves straight to the point (90.6, 13.8) extruding 22.4mm of filament. The mix
ratio at the end of the move is 0.1:0.1:0.1:0.7.
The third line moves back 20mm in X extruding 20mm of filament. The mix varies linearly from
0.1:0.1:0.1:0.7 to 0:0:0:1 as the move is made.
The fourth line has no physical effect, but sets the mix proportions for the start of the next move to
1:0:0:0.M190: Wait for bed temperature to reach target temp
Example: M190 S60
This will wait until the bed
temperature reaches 60 degrees, printing out the temperature of the hot end and the bed every
second.
M200 - Set filament diameter / Get Endstop Status
M200 Set filament diameter.
Question: what does a firmware do with filament diameter? Has this an effect on how much an E
command moves the extruder motor? --Traumflug 11:34, 14 October 2012 (UTC)M201 - Set max printing acceleration
in units/s^2 for print moves (M201 X1000 Y1000)
SupportFiveD Teacup Sprinter Marlin Repetier
obsolete, see M116 yes yes
SupportFiveD Teacup Sprinter Marlin Repetier
yes
95
M202 - Set max travel acceleration
in units/s^2 for travel moves (M202 X1000 Y1000) Unused in Marlin!!M203 - Set maximum feedrate
Sets the maximum feedrates that your machine can do in mm/min.
Example: (M203 X200 Y200 Z300 E10000)
Note: this should be in units/minute, just like the F code.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 feedrateM205 - 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 jerkM206: Set home offset
Example: M206 X10.0 Y10.0 Z-0.4
The values specified are added to the endstop position when the axes are referenced. The same can
be achieved with a G92 right after homing (G28, G161).
With Marlin firmware, this value can be saved to EEPROM using the M500 command.
A similar command is G10, aligning these two is subject to discussion.M207: Calibrate z axis by detecting z max length
Example: M207
After placing the tip of the nozzle in the position you expect to be considered Z=0, issue this
command to calibrate the Z axis. It will perform a z axis homing routine and calculate the distance
traveled in this process. The result is stored in EEPROM as z_max_length. For using this
calibration method the machine must be using a Z MAX endstop.
This procedure is usually more reliable than mechanical adjustments of a Z MIN endstop.M208: Set axis max travel
Example: M208 X250 Y210 Z180
With Marlin firmware, this value can be saved to EEPROM using the M500 command.
The values specified set the software limits for axis travel in the positive direction.
With Marlin firmware, this value can be saved to EEPROM using the M500 command.M209: Enable automatic retract(Retraction)
Example: M209 S1
This boolean value S 1=true or 0=false enables 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.M220:set speed factor override percentage
Example: M220 S80
S<factor in percent>- set speed factor override percentageM221: set extrude factor override percentage
96
Example: M221 S70
S<factor in percent>- set extrude factor override percentage
M226: Gcode Initiated Pause
Example: M226
Initiates a pause in the same way as if the pause button is pressed. That is, program execution is
stopped and the printer waits for user interaction. This matches the behaviour of M1 in the NIST
RS274NGC G-code standard and M0 in Marlin firmware.M227: Enable Automatic Reverse and Prime
Example: M227 P1600 S1600
P and S are steps.
"Reverse and Prime" means, the extruder filament is retracted some distance when not in use and
pushed forward the same amount before going into use again. This shall help to prevent drooling
of the extruder nozzle. Teacup firmware implements this with M101/M103.M228: Disable Automatic Reverse and Prime
Example: M228
See also M227.M229: Enable Automatic Reverse and Prime
Example: M229 P1.0 S1.0
P and S are extruder screw rotations. See also M227.M230: Disable / Enable Wait for Temperature Change
Example: M230 S1
S1 Disable wait for temperature change S0 Enable wait for temperature change
M240: Start conveyor belt motor / Echo off
Example: M240
The conveyor belt allows to start mass production of a part with a reprap.
Echoing may be controlled in some firmwares with M111
M241: Stop conveyor belt motor / echo on
SupportFiveD Teacup Sprinter Marlin Repetier
Debug: Echo off
SupportFiveD Teacup Sprinter Marlin Repetier
Debug: Echo on
97
Example: M241
Echoing may be controlled in some firmwares with M111
M245: Start cooler
Example: M245
used to cool parts/heated-bed down after printing for easy remove of the parts after printM246: Stop cooler
Example: M246M300: Play beep sound
Usage: M300 S<frequency Hz> P<duration ms>
Example: M300 S300 P1000
Play beep sound, use to notify important events like the end of printing. See working example
on R2C2 electronics.M301: Set PID parameters - Hot End
Example: M301 P1 I2 D3 C5
Sets Proportional, Integral and
Derivative values for hot end, the value C refers to an extrusion rate.
Alternate implementation
Example: M301 W125M303: Run PID tuning
Hotend Usage: M303
S<temperature> C<cycles> Bed Usage: M303 E-1 C<cycles> S<temperature> Example: M303
C8 S175
Generate Proportional, Integral and Derivative values for the hotend or bed (E-1). Send the
appropriate code and wait for the output to update the firmware.
M304: Set PID parameters - Bed
SupportFiveD Teacup Sprinter Marlin Repetier
PID
SupportFiveD Teacup Sprinter Marlin Repetier
PID PID
SupportFiveD Teacup Sprinter Marlin Repetier
PID
98
Example: M304 P1 I2 D3
Sets Proportional, Integral and Derivative values for bedM420: Set RGB Colors as PWM
Usage: M420 R<Red PWM (0-255)> E<Green PWM (0-255)> B<Blue PWM (0-255)>
Example: M420 R255 E255 B255
Set the color of your RGB LEDs that are connected to PWM-enabled pins. Note, the Green color
is controlled by the E value instead of the G value due to the G code being a primary code that
cannot be overridden.T: select tool
Example: T1
Select tool (or in older implementations extruder) number 1.
The sequence followed is:
1. Set the current extruder to its standby temperature specified by G10 (see above),
2. Set the new extruder to its operating temperature specified by G10 and wait
for all temperatures to stabilise,
3. Apply any X, Y, Z offset for the new extruder specified by G10,
4. Use the new extruder.
Selecting a non-existent tool (100, say) just does Step 1. above. That is to say it leaves all tools in
their standby state. You can, of course, use the G10 command beforehand to set that standby
temperature to anything you like.
Note that you may wish to move to a parking position before executing a T command in order to
allow the new extruder to reach temperature while not in contact with the print. It is acceptable for
the firmware to apply a small offset [by convention (-1mm x tool-number) in Y] to the current
position when the above sequence is entered to allow temperature changes to take effect just away
from the parking position. Any such offset must, of course, be undone when the procedure
finishes.
If the Z value changes in the offsets and the head moves up, then the Z move is made before the X
and Y moves. If Z moves down, X and Y are done first.
After a reset extruders will not start heating until they are selected. You can either put them all at
their standby temperature by selecting them in turn, or leave them off so they only come on
if/when you first use them. The M0, M1 and M112 commands turn them all off. You can, of
course, turn them all off with the M1 command, then turn some back on again. Don't forget also to
turn on the heated bed (if any) if you use that trick.
Extruder numbering starts at 0.
Proposed EEPROM configuration codes
99
BRIEFLY: each RepRap has a number of physical parameters that should be persistent, but easily
configurable, such as extrusion steps/mm, various max values, etc. Those parameters are currently
hardcoded in the firmware, so that a user has to modify, recompile and re-flash the firmware for
any adjustments. These configs can be stored in MCU's EEPROM and modified via some
M-codes. Please see the detailed proposal at M-codes for EEPROM config. (This is proposed by
--AlexRa on 11-March-2011. There is currently no working implementation of the proposed
commands).
Marlin uses these codes to manipulate EEPROM values.
Sprinter has implemented the following commands to manipulate EEPROM Commit message.
Teacup uses codes M130-M136 to set, read, and save some parameters.M500: Store parameters in EEPROM
M501: Read parameters from EEPROM
If you need to reset them after you changed them temporarilyM502: Revert to the default "factory settings."
It must be followed with M501to store this setting.M503: Print settings
Replies from the RepRap machine to the host computer
All communication is in printable ASCII characters. Messages sent back to the host computer are
terminated by a newline and look like this:
xx [line number to resend] [T:93.2 B:22.9] [C: X:9.2 Y:125.4 Z:3.7 E:1902.5] [Some
debugging or other information may be here]
xx can be one of:
ok
rs
!!
ok means that no error has been detected.
rs means resend, and is followed by the line number to resend.
!! means that a hardware fault has been detected. The RepRap machine will shut down
immediately after it has sent this message.
The T: and B: values are the temperature of the currently-selected extruder and the bed
respectively, and are only sent in response to M105. If such temperatures don't exist (for example
for an extruder that works at room temperature and doesn't have a sensor) then a value below
absolute zero (-273oC) is returned.
C: means that coordinates follow. Those are the X: Y: etc values. These are only sent in response
to M114 and M117.
The RepRap machine may also send lines that look like this:
100
// This is some debugging or other information on a line on its own. It may be sent at any
time.
Such lines will always be preceded by //.
The most common response is simply:
ok
When the machine boots up it sends the string
start
once to the host before sending anything else. This should not be replaced or augmented by
version numbers and the like. M115 (see above) requests those.
All this means that every line sent by RepRap to the host computer except the start line has a
two-character prefix (one of ok, rs, !! or //). The machine should never send a line without such a
prefix.
Exceptions: Marlin 1.0.0 Gen6 Firmware does not follow the two character rule. 'rs' is actually
'Resend' and '!!' is 'Error'. Example Lines:
Error: Line Number is not current line + 1. Last Line: 7
Resend: 8
Writing to File: print.gco
Done saving file.
File opened:print.gco Size:22992
File selected
When in the code base did this change take place and what other firmwares are affected?
Proposal for sending multiple lines of G-code
So far, this is a proposal, open for discussion.Problem to solve
Each line of G-code sent from the host to the controller is answered with an ok before the next
line can be sent without locking communcations up. This makes operations very slow, as the usual
USB-TTL converters and probably also the host's operating system drivers come with substantial
latency, often 10 milliseconds.
For more details on this proposal, and some suggested solutions, and comments please
see GCODE_buffer_multiline_proposalAlternatives to G-code
Main article: Firmware/Alternative#alternatives to G-code
Wikipedia: STEP-NC: "STEP-NC was designed to replace ... G-codes ... adding tolerance
data ... [with a] XML format."
101
Elegant multispline motion controller "will not use G-code. It will use a custom language
based on cubic Bezier curves. This allows for much better description of arcs and will result in
much higher quality prints with a much lower data throughput requirements."Category:
Model manufacturing software/zh cn
9. LCD Menu details
Prepare:
Disable Steppers: so you can manually pull the extruder and the printing stage. AutoHome: all axis return to 0 Preheat PLA: heating PLA in advance Preheat ABS: heating ABS in advance Cooldown: cool down the extruder head Move Axis: move all the axis
Move 10mm Move 1mm
102
Move 0.1mm
Move X: move the extruder along the X axis
Move Y: move the printing stage along the Y axis
Move Z: move the extruder along the Z axis
Extruder: extruder feeding/retracting
X: +000.0 ( rotate the rotary knob, move the trolley)
Control: mechanical control Temperature: temperature controlNozzle: set the target temperature for the nozzle
Fan Speed: fan speed, 0 the lowest, 225 the fastest.
Autotemp: ??Min: ??Max: ??Fact: ??
PID-P: P value controlled by temperature PID ( suggest not to change the value)
PID-I: I value controlled by temperature PID ( suggest not to change the value)
PID-D: D value controlled by temperature PID ( suggest not to change the value)
PID-C: ??
Preheat PLA Conf:setup for preheating PLA
Fan Speed: fan speed when preheating PLA
Nozzle: target temperature of nozzle when preheating PLA
Store memory: ??
Preheat ABS Conf: setup for preheating ABS
Fan Speed: fan speed when preheating ABS
Nozzle: target temperature of nozzle when preheating ABS
Store memory: ?? Motion:motor control
Accel: preset the acceleration for XY axis
Vxy-jerk: ??
Vz-jerk : ??Ve-jerk: ??
Vmax x: maximum speed of X axis(mm/s)
Vmax y: maximum speed of Y axis(mm/s)
Vmax z: maximum speed of Z axis(mm/s)
103
Vmax e:maximum speed of extruder
axis (mm/s) Vmin: minimum speed
Vtrav min: ??
Amax x:maximum
acceleration of X axisAmax y: maximum acceleration of Y axis
Amax z: maximum acceleration of Z axis
Amax e: maximum acceleration of extruser axis
Arecract: maximum acceleration of extruser retraction
Xsteps/mm: steps the motor takes when X axis moves 1mm
Ysteps/mm : steps the motor takes when Y axis moves 1mm.
Zsteps/mm : steps the motor takes when Z axis moves 1mm.
Esteps/mm: steps the motor takes when extruder axis moves 1mm Store memory: store current setup as setup for next power up. Load memory: get stored setup.
Restore Failsafe
No Card
Print from: SD print, G code from SD card
Change Card:if SD card is changes, read the content again through the microcontroller.Tune: manual modification during SD print
Speed: fine adjustment of printing speed, unit in percentage
Nozzle: temperature of the nozzle
Fan Speed: speed of fan
Flow: fine adjustment for filament amount, unit in percentage