temperaturecontrol: allow setting background tool without activating
[clinton/Smoothieware.git] / upgrade-notes.md
CommitLineData
b38dc50b
JM
1
2To use multi-axis and ABC axis
923f35d2 3==============================
b38dc50b
JM
4
5**In order to use there should be no extruders defined.**
6This is being tested in CNC mode, it is not currently known to work for extruders.
7
8The new axis are defined using...
9
10```
11# A axis
12delta_steps_per_mm 100 # may be steps per degree for example
13delta_step_pin xx # Pin for delta stepper step signal
14delta_dir_pin xx # Pin for delta stepper direction
15delta_en_pin xx # Pin for delta enable
16delta_current 1.5 # Z stepper motor current
17delta_max_rate 300.0 # mm/min
18delta_acceleration 500.0 # mm/sec²
19
20# B axis
21epsilon_steps_per_mm 100 # may be steps per degree for example
22epsilon_step_pin xx # Pin for delta stepper step signal
23epsilon_dir_pin xx # Pin for delta stepper direction
24epsilon_en_pin xx # Pin for delta enable
25epsilon_current 1.5 # Z stepper motor current
26epsilon_max_rate 300.0 # mm/min
27epsilon_acceleration 500.0 # mm/sec²
28
29# C axis
30zeta_steps_per_mm 100 # may be steps per degree for example
31zeta_step_pin xx # Pin for delta stepper step signal
32zeta_dir_pin xx # Pin for delta stepper direction
33zeta_en_pin xx # Pin for delta enable
34zeta_current 1.5 # Z stepper motor current
35zeta_max_rate 300.0 # mm/min
36zeta_acceleration 500.0 # mm/sec²
37```
38
39The firmware must be compiled with `make AXIS=6 CNC=1` or `make AXIS=4 CNC=1` depending on how many axis are needed. (Use minimum needed).
40**NOTE** that by default only XYZ are considered primary (or cartesian) axis for purposes of junction deviation calculations and distance traveled. (which effects effective feed rate).
41Adding `PAXIS=4` to the make would make the first 4 axis primary axis so XYZA would be considered for the Cartesian distance traveled
42
43`get pos` will show the A B C axis positions
44
45`G28.3 A0 B0 C0` will set the axis to the specified values (sort of manual homing)
46`G28` or `G28 A0` etc will home the ABC axis if they are defined using the new homing syntax.
47(**Note** on a CNC build this would be `G28.2 A0 B0`.)
48
49**NOTE** that the parameters passed into A B or C in a G0 or G1 are raw, they do not go through the arm solution, they are the values that will be passed to the stepper based on steps_per_mm for that axis (although it may be interpreted as steps per degree for instance).
50
51**NOTE** G2/G3 currently do not handle ABC axis correctly, basically it will draw the arc then ABC will move afterwards, which is totally incorrect.
52
923f35d2 53This may not be a complete solution, by default (see PAXIS above) the planner treats X Y Z as primary axis, A B C are not treated as primary axis, there is no junction deviation applied to them for instance, and if they move a significant number of steps more than X Y Z there may be speed issues.
b38dc50b
JM
54
55Note that M907 for setting currents is deprecating the use of E it is now channels XYZABCD matching the associated axis. Use of E will still do what it used to do for backward compatibility but will print out a warning. Saving the M907 with M500 will write it in the new format.
56
57## Other changes...
58
59- Add ability to home ABC axis or E axis (see ConfigSamples/Snippets/abc-endstop.config for example of new endstop syntax required for this)
60- Major Change to endstops config syntax. (Old syntax is still supported and preferred unless ABC endstops are needed).
61- Add an inverse compensation transform for all ABL types.
62- Use inverse transform for resetting axis from actuator position.
63- All probes leave compensation transform on now by default.
64- Homing will use inverse compensation transform to get actual Z position at the given XY position.
65- ? and M114.1 and M114.2 will return corrected position based on compensation transform.
66
67> The reasoning of having reset_axis setting compensated_machine_position and applying inverse transform to get machine_position is that most Z endstops are fixed on the Z actuator and trigger at the same place regardless of where the XY is. So consider a sloped bed when you home in Z you will always be at the same height, but as the bed is sloped wrt to the head you want to calculate the WCS position (returned with M114) to be the actual height above the bed at the current XY. Which will differ depending on where the XY is at the time Z is homed.
68
69These changes only affect systems where ABL is active and a zprobe or home is performed while active.
70To probe raw bed heights turn off the ABL first.
71
72- Fix M306 so it does not reset axis position and acts more like M206 which needs a home cycle to take effect.
73- Removed ZGrid from build as it has been replaced by delta grid set for square beds.
74- Changed G30 Z0 to use G92 to set the global offset.
75- Refactor naming of last_milestone in Robot to machine_position.
76- Add notion of a homed axis, and M codes to view and clear homing status of an axis.
77
78
79
80To upgrade from old master or very old edge to the new motion control firmware
923f35d2 81==============================================================================
125b71ce 82
b38dc50b
JM
83for builds prior to July 1, 2016 you must do the following....
84
85
125b71ce
JM
86The following changes must be made to your config
87
e9ddc7af
JM
881. ```alpha_max_travel, beta_max_travel, gamma_max_travel``` must be correctly defined for homing to work properly
89 they control the maximum distance the axis will move before it gives up finding the home switch. They are currently set to ```alpha_max, beta_max and Gamma_max``` (or 500) if not found in the config file.
831abf97 90NOTE on a delta this needs to be the total hieght (or greater) than yur towers NOT the same as gamma_max.
125b71ce
JM
91
922. it is best to start from a fresh config
ff8e1103
JM
93
943. you must delete the config-override (M502) as M203 format has changed (M203 sets cartesian max speeds, M203.1 sets actuator max speeds, no longer uses ABC as these are now reserved for future n-axis). (or for a short while just do M500 as the A B C will be read until it is deprecated, and M500 will save it in the new format)
125b71ce
JM
95
964. Homing is slightly different, by default it will home X and Y axis at the same time then Z, this can be reversed and have Z home first then X and Y.
97 the homing_order setting still works the same way as before.
98
98e3f763 995. The old extruder syntax is no longer allowed so check your config has the latest extruder config like
04b64b25
JM
100 ```
101 extruder.hotend.enable true # Whether to activate the extruder module at all. All configuration is ignored if false
102 extruder.hotend.steps_per_mm 710 # Steps per mm for extruder stepper
103 extruder.hotend.default_feed_rate 600 # Default rate ( mm/minute ) for moves where only the extruder moves
104 etc
105 ```
106
107 and not the old
108
109 ```
110 extruder_module_enable true
111 ```
112
1136. If you use volumetric extrusion (M200 D2.85) then note that unlike the current edge, G1 E5 will extrude 5mm³ not 5mm. Note that in slic3r there is now a smootheware flavor you need to select for gcode generation, which fixes an issue with firmware retract.
98e3f763 114
cffc17d5
JM
1157. if you have configured more than 2 extruders you will need to recompile and set ```MAX_ROBOT_ACTUATORS``` accordingly.. https://github.com/Smoothieware/Smoothieware/blob/edge/src/modules/robot/ActuatorCoordinates.h#L17
116
60d8496f 1178. Due to a mistake in the previous versions of the firmware the E direction was reversed, so you must invert your dir pin for your extruders (or reverse the extruder plug) from how they were before.
125b71ce
JM
118
119