forked from repetier/Repetier-Firmware
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathREADME.txt
211 lines (175 loc) · 9.05 KB
/
README.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
Repetier-Firmware - the fast and user friendly firmware
by repetier ([email protected])
Version 0.62 17.04.2012
1) Introduction
Repetier-Firmware is a firmware for RepRap like 3d-printer powered with
an arduino compatible controller.
This firmware is a nearly complete rewrite of the sprinter firmware by kliment
which based on Tonokip RepRap firmware rewrite based off of Hydra-mmm firmware.
Some ideas were also taken from Teacup, Grbl and Marlin.
While I changed nearly all parts, I kept the sprinter logic as far intact as
possible. As a result, all boards with at least 64kB RAM working with Sprinter
should work with this firmware. This includes Sanguino/GEN 6/Mega/RAMPS Boards.
You may ask, why did I rewrite a functioning firmware. First, let me say, there
is nothing wrong with the original Sprinter software. After studying the code,
I know how much effort was put into it, to get it running on many different
platforms. At first I just wanted to test
a different communication protocol, which is more reliable and faster
compared to the ascii method. So I invented the Repetier-Protocol, which sends
values in binary format. This reduces the size of data to less then 50% and
no conversion from ascii to float/int is needed. An improved checksum method
should make mistakes nearly impossible. While programming this, I saw some
parts that could be improved, so I did it. Then I read in the forum about
the idea of using the EEPROM for parameter.
Supported boards:
The following boards should work by changing the configuration settings. If the
extruder heater pin uses Timer 0 or 1, no PID control should be compiled. These
interrupts are needed for internal purposes. Other boards can made running by
adding a pin definition in pins.h
Gen 6 : Full support
Ramps 1.0 : Full support with PWM simulation (uncomment SIMULATE_PWM)
Ramps 1.1/1.2/1.3/1.4 : Full Support
Sanguinololu : Full support with PWM simulation
Gen 7: Full support
Help wanted:
There are many kinds of RepRaps and Controller around. I can only test hardware
I have at home, so it would be great if you could tell me, if there are problems
with your combination. If you have a code patch, I will include it. If not I
will try to find a solution and send you a patch. This needs a good description
of the error, otherwise I won't find it:-(
2) Features
- RAMP acceleration support.
- Path planning for higher print speeds.
- Ooze prevention system for faster anti ooze then slicer can do,
- Trajectory smoothing for smoother lines.
- Nozzle pressure control for improved print quality with RAMPS.
- Fast - 30000 Hz and more stepper frequency is possible with a 16 MHz AVR.
- Multiple extruder supported (experimental).
- Standard ASCII and improved binary (Repetier protocol) communication.
- Autodetect the command protocol, so it will work with any host software.
- Continuous monitoring of one temperature.
- Important parameters are stored in EEPROM and can easily be modified without
recompilation of the firmware.
- Stepper control is handeled in an interrupt routine, leaving time for
filling caches for next move.
- PID control for extruder temperature.
- Interrupt based sending buffer (Arduino library normally waits for the
recipient to receive written data)
- Small RAM memory print, resulting in large caches.
- Supports SD-cards.
- mm and inches can be used for G0/G1
- Works with Skeinforge 41, all unknown commands are ignored.
- Dry run : Execute yout GCode without using the extruder. This way you can
test for non-extruder related failures without actually printing.
Should work with any host software around using the ascii commands. To get the
most out of the firmware, I have written an optimized host software
(Repetier-Host https://github.com/repetier/Repetier-Host), with the following
main features:
- ASCII and repetier protocol
- Temperature monitor (for Repetier-Firmware)
- EEPROM parameter configuration (for Repetier-Firmware)
- STL composer, so you can arrange your STL files and slice them all together.
- Skeinforge integration. You can load a STL file and it will be converted into
GCode by Skeinforge.
- Estimation of printing time.
- Control panel to move your printer head, view/set temperature etc.
3) Installation
Read the wiki at https://github.com/repetier/Repetier-Firmware/wiki
especially the basic installation instructions at
https://github.com/repetier/Repetier-Firmware/wiki/Installation
Update from older version:
Version 0.32 and 0.34 changed the EEPROM usage, because some parameter aren't
used any more and new parameter were added. Check the settings before using
the new version. Watch out for new values, telling you they are 0 - they are
probably not. Illegal numbers are returned as 0, too.
Version 0.40 changed the temperature tables for higher precision.
4) Things you should know
4.1 Continuous temperature monitoring
Send
M203 S0 for temperature of extruder 0
M203 S1 for temperature of extruder 1
M203 S100 for temperature of heated bed
M203 S255 disable temperture monitoring
Afterwards, on every temperature event (approx. 4 times per second) you get
a response line like
MTEMP:time current_temperature target_temperature output
The main advatage against M105 is, that no command needs to be send. In addition
it will give some informations, you won't get with M105. In the Repetier-Host
this is used, to monitor a temperature continuously and draw a graph with
temperature/output (go Windows->Temperature monitor). This helps adjusting the
PID parameters.
4.2 Changing EEPROM variables
If you compiled the firmware with EEPROM support, you can change all important
parameters, like start speed, acceleration, steps per mm using two commands.
Send "M205" to your RepRap and it will show all parameters with position, type
and value. The output will look like this:
EPR:2 75 76800 Baudrate
EPR:2 79 0 Max. inactive time [ms,0=off]
EPR:2 83 60000 Stop stepper afer inactivity [ms,0=off]
EPR:3 3 40.00 X-axis steps per mm
EPR:3 7 40.00 Y-axis steps per mm
EPR:3 11 3333.59 Z-axis steps per mm
EPR:3 15 20000.00 X-axis max. feedrate [mm/min]
EPR:3 19 20000.00 Y-axis max. feedrate [mm/min]
EPR:3 23 2.00 Z-axis max. feedrate [mm/min]
EPR:3 27 1500.00 X-axis homing feedrate [mm/min]
EPR:3 31 1500.00 Y-axis homing feedrate [mm/min]
EPR:3 35 100.00 Z-axis homing feedrate [mm/min]
EPR:3 39 20.00 X-axis start speed [mm/s]
EPR:3 43 20.00 Y-axis start speed [mm/s]
EPR:3 47 1.00 Z-axis start speed [mm/s]
EPR:3 51 750.00 X-axis acceleration [mm/s^2]
EPR:3 55 750.00 Y-axis acceleration [mm/s^2]
EPR:3 59 50.00 Z-axis acceleration [mm/s^2]
EPR:3 63 750.00 X-axis travel acceleration [mm/s^2]
EPR:3 67 750.00 Y-axis travel acceleration [mm/s^2]
EPR:3 71 50.00 Z-axis travel acceleration [mm/s^2]
EPR:3 150 373.00 Extr. steps per mm
EPR:3 154 1200.00 Extr. max. feedrate [mm/min]
EPR:3 158 10.00 Extr. start feedrate [mm/s]
EPR:3 162 10000.00 Extr. acceleration [mm/s^2]
EPR:0 166 1 Heat manager [0-1]
EPR:0 167 130 PID drive max
EPR:2 168 300 PID P-gain [*0.01]
EPR:2 172 2 PID I-gain [*0.01]
EPR:2 176 2000 PID D-gain [*0.01]
EPR:0 180 200 PID max value [0-255]
EPR:2 181 0 X-offset [steps]
EPR:2 185 0 Y-offset [steps]
EPR:2 189 40 Temp. stabilize time [s]
The first value is the data type (0=byte, 1=16 bit int,2=32 bit int,3 = float).
The second parameter is the position in EEPROM, the value is stored.
The third parameter is the current value. The rest of the line is a short
description of the parameter.
To change one of these parameters, just send
M206 type position new_value
Type and position must match the values returned by M205, otherwise you will
overwrite some other data with undeterminable results.
Changes are best done with a host software supporting this directly. Currently
only Repetier-Host supports this natively.
4.3 SD card
Not only a RepRap can have an defect, but also your Computer may do things
causing your print to stop (power loss, reboot after update, ...). If your
board has a SD card, you can copy the G-Code to the card and just tell your
RepRap to print this file. The printer will happily ignore your computer crash
until your print is finished:-)
Caution: Only remove the card, if it is unmounted (M22)
Use it only, if mounted (on startup or M21)
You start by copying the file to your card. You can do this by copying it to the
card, while inserted in your computer, or by sending it to the RepRap. Select
only filenames with 8.3 notion. Longer filenames are not supported. To push a
file to your printer, execute the following steps:
M28 filename
<Send your gcode file>
M29
Printing from SD card:
M20 ; Will list all files on card
M23 filename ; selects the file, you want to print
M24 ; Starts/resumes the print
M30 filename ; Deletes file from sd-card.
You can send commands during print. But if you don't want to ruin your print,
send no print commands! Only monitoring commands like M105 for temperature
reading.
5. Changelog
See changelog.txt