Commit graph

494 commits

Author SHA1 Message Date
Erik vd Zalm
f92dc91c3d Enable M503 also when eeprom is disabled 2012-08-11 15:49:40 +02:00
James Adams
35a1dd081f no message 2012-08-11 15:33:35 +02:00
James Adams
5131ab19ca Fixed Retract in LCD Menu 2012-08-11 15:29:40 +02:00
James Adams
96f4f90cb3 Added pause and retract lcd menu items 2012-08-11 15:29:33 +02:00
James Adams
e10355500d Updated Language.h with pause, resume, and retract 2012-08-11 15:29:26 +02:00
ErikZalm
a97c006bbf Merge pull request #195 from kobaan/Marlin_v1
Updated german translations in language.h
2012-08-11 01:45:30 -07:00
ErikZalm
f062794a0d Merge pull request #208 from Enchiridion/Marlin_v1
Added support for dual Z axis stepper drivers
2012-08-11 01:42:49 -07:00
ErikZalm
57468d3c21 Merge pull request #210 from Dabble63/Marlin_v1
Add Duty Cycling to the Heater Bed
2012-08-11 01:42:02 -07:00
Dabble63
6b45e9f167 Add Duty Cycling to the Heater Bed 2012-08-11 09:17:47 +03:00
Ian Jackson
adee81170d M206: save values in eeprom
Really, we should have a way to adjust the XYZ homing of a machine in
the eeprom.  So as the second stage of this, make the M206 home offset
parameters subject to the M500/M501/M502/M503 eeprom commands.

Bump the eeprom version to "V06".

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2012-08-11 01:43:00 +01:00
Ian Jackson
1dba212e18 HOMEAXIS: make into a function
Replace the large macro HOMEAXIS with a function.  This avoids the
compiler generating three copies of largely identical code.  The
saving is 724 bytes of program memory.

We make use of XYZ_CONSTS_FROM_CONFIG to provide convenient
array-shaped access to MAX_LENGTH, HOME_RETRACT_MM and HOME_DIR.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2012-08-11 01:43:00 +01:00
Ian Jackson
7bb326d389 eeprom: provide smaller code for SERIAL_ECHOPAIR
SERIAL_ECHOPAIR implies, eventually, two calls to MYSERIAL.print.  One
of these has FORCE_INLINE for a per-character loop, and both involve
constructing a method call rather than a simple function call.

Produce better and smaller code by providing three specialised
functions serial_echopair.  This saves 672 bytes of program memory
(with EEPROM_SETTINGS and SDSUPPORT enabled).

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2012-08-11 01:42:59 +01:00
Ian Jackson
957e966d2d M206: always use homing ("homeing") offsets
Previously the parameters set in M206 would only be used if a G82
command was sent with specific axis home values.  This limits its
usefulness.

Really, we should have a way to adjust the XYZ homing of a machine in
the eeprom.  So as the first stage of this, make M206 affect every
home command.  The values set using M206 are now added to the
configuration variables [XYZ]_HOME_POS.

This is achieved by replacing all uses of [XYZ]_HOME_POS in the code
by a new home_pos[] which includes the adjustment.  We also have to
adjust the uses of [XYZ]_{MIN,MAX}_POS similarly - see below.


To allow axis_is_at_home to be written as a function taking an axis
index rather than a macro taking an axis letter, we provide
constant arrays in program memory containing the values of
[XYZ]_{MIN,MAX,HOME}_POS from the compiled-in configuration.

This is done with some helper macros to deal with the declaration
(XYZ_CONSTS_FROM_CONFIG) and definition of the inline function which
does the program memory access.

We also introduce the overloaded function read_pgm_any, whose
instances are produced with DEFINE_PGM_READ_ANY, which allows the
access functions to automatically produce the correct type.

The type- and pointer-massaging code in the access function boils
down, when compiled, to a simple program memory access.


A question arises: if the M206 offset is set, should this adjustment
to the home position shift or change the possible range of movement
permitted by the software endstops ?

The documentation in Configuration.h describes these limits as:
    // Travel limits after homing
Since this is a file containing physical limits, and actual suggested
values for these configuration parameters appear to include a certain
amount of slop, I've taken the view that these should be regarded as
nominal physical distances from the limit switches, and that the
permissible travel should be unaffected by M206.

So for example with the (rather unrealistic)
  #define X_HOME_DIR -1
  #define X_MIN_POS -20
  #define X_HOME_POS 0
  #define X_MAX_POS 100
no matter the setting of M206 X, the machine would be permitted
to move from 20mm "beyond" the limit switch trigger point in
the negative X direction and 100mm away from the limit switch in
the positive X direction, for a total travel of 120mm.

With M206 X-10 that would be considered to correspond to X coordinates
-30 to +90.  With M206 X+10 that would be considered to correspond to
X coordinates -10 to +110.


fixes #200 (in ErikZalm/Marlin).

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2012-08-11 01:35:03 +01:00
Ian Jackson
faccb35850 software_endstops: use *_MIN_POS and *_MAX_POS for arcs
If [XYZ]_HOME_POS and [XYZ]_MIN_POS aren't 0, these corrections are
wrong.  Use the same logic as in Marlin.pde:prepare_move: ie, clamp to
[XYZ]_{MIN,MAX}_POS.

While we're here, put this cut-and-paste code in a function
clamp_to_software_endstops.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2012-08-10 19:36:30 +01:00
Ian Jackson
3f15b7c7b8 Makefile: Better display of size (device memory usage)
Run avr-size with the --mcu=... -C option as well.  That reports how
much actual device program and data memory is used along with a
percentage fullness.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2012-08-10 19:36:30 +01:00
Ian Jackson
0c35facc94 Makefile: support V=1
Often it can be useful to see the actual commands being run by make.
Other projects (eg, the Linux kernel) support this with a "V=1" make
parameter.  Do the same here.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2012-08-10 19:36:29 +01:00
Ian Jackson
71404eef29 .gitignore: Add *~, *.orig, *.rej, move to root directory
Move the .gitignore out of the Marlin subdirectory so it applies to
the whole tree, and add some missing patterns.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2012-08-10 19:36:29 +01:00
Ian Jackson
a873541ef6 Marlin.pde: include comment for emacs mode
Emacs by default doesn't recognise a ".pde" file as C++ source code.
Add the annotation to the top of the file to make it work.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2012-08-10 19:36:29 +01:00
Enchiridion
50cde90324 Added support for dual Z axis stepper drivers 2012-08-04 00:32:26 -06:00
kobaan
603a5e25b3 Updated german translations in language.h and eliminated a few double lines. 2012-07-16 14:26:28 +03:00
Chris Palmer
538189cc19 Fixed soft limits when the origin is in the middle.
HOME_POS is now always where the endstop is and can be outside the limits.
The limits are now defined by MIN_POS and MAX_POS rather than HOME_POS and MAX_LENGTH.
The Z is axis now homed first if direction is away from the bed.

Saguinololu limit pins change from MIN to MAX according to the homing direction.
2012-07-14 22:24:26 +02:00
ErikZalm
686011a548 Fixed typo 2012-07-14 17:25:35 +03:00
Erik van der Zalm
cd57bf305b Merge git://github.com/daid/Marlin into Marlin_v1
Added invert step pins to corexy code
2012-07-14 15:07:14 +02:00
Erik van der Zalm
ea2c19f978 Added CoreXY support (Thanks Ilan Moyer) 2012-07-14 14:21:53 +02:00
Erik van der Zalm
aa65fe22ed decoupled axes sucessfully at least on pure x or y jog 2012-07-14 13:43:19 +02:00
daid
12de8fff81 Support step motor controllers with active low step pins. 2012-06-29 16:27:47 +02:00
Erik van der Zalm
b67dacdc8f Fixed AD595 define 2012-06-11 17:33:42 +02:00
Bernhard
d3002ef741 corrected retract 2012-06-03 16:56:40 +02:00
Bernhard
0c123950e9 __ header file replace 2012-06-02 20:44:17 +02:00
Bernhard
bf077125b9 added firmware retract. disabled by default 2012-06-02 20:32:28 +02:00
Bernhard
0e5e249ab5 added individual pullup setting option to have finer control in case there is a special z-min sensor, for example 2012-06-02 13:47:50 +02:00
Bernhard Kubicek
6b14f95b3e Merge pull request #170 from linagee/Marlin_v1
Marlin v1
2012-06-02 03:46:56 -07:00
Bernhard Kubicek
c7ce99d495 Merge pull request #172 from daid/Marlin_v1
Add M401 - Wait for user to press button on LCD (with optional timeout) minor fix in M115.
2012-06-02 03:44:03 -07:00
Bernhard Kubicek
b7fc14bc65 repaired thermistortable_6 by graphcial fitting of the off-slope values. see issue 179. Erik, I know you asked for no changes, but this file probably is not related and hopefully allright. 2012-05-30 14:14:36 +03:00
ErikZalm
9e1021efbe Fixed SL bug. 2012-05-28 22:32:53 +03:00
Daid
e9bec9b6fe Fixed E1_ENABLE pin for Ultimaker. This was wrong for the 1.5.4 and 1.5.3 PCB (I cannot check the 1.5.6) 2012-05-24 18:36:55 +02:00
linagee
fbd282b3ba Update Marlin/Configuration.h 2012-05-20 13:19:28 -06:00
linagee
2e8c5049c5 Update Marlin/thermistortables.h 2012-05-20 13:18:45 -06:00
linagee
2d0d8e5272 Small correction. 2012-05-20 11:09:07 -06:00
Daid
4d7fe7115f Changed M401 to M0/M1 as suggested, so they match normal CNC stop commands. 2012-05-20 14:37:30 +02:00
linagee
9e9db65c3f Update Marlin/thermistortables.h 2012-05-20 05:51:29 -06:00
linagee
bd966ef389 Update Marlin/thermistortables.h 2012-05-20 05:49:01 -06:00
linagee
775da3f103 Added top ratings and extended to ADC=1 for table 3 and 5. 2012-05-20 05:35:57 -06:00
linagee
96a4baa0be Update Marlin/thermistortables.h 2012-05-20 04:55:22 -06:00
linagee
2aa9f7b131 Update Marlin/thermistortables.h 2012-05-20 04:35:28 -06:00
linagee
c4490f5f3d Update Marlin/Configuration.h 2012-05-20 04:27:52 -06:00
linagee
dd9144994e Tested May 19 - It works! Verified with separate thermocouple TM-902C also. 2012-05-20 04:13:29 -06:00
linagee
4c37d0d9f1 Extended range above 250C. (Operating range states up to 300C) 2012-05-20 04:01:30 -06:00
Daid
b59724e42b Add strigification for extruder amount in M115 report. 2012-05-19 19:01:14 +02:00
Daid
16413bb8f2 Last M401 update, refresh the LCD during an M401 wait. 2012-05-19 18:53:56 +02:00
Daid
b3941fce5c Update after testing 2012-05-19 18:48:43 +02:00
Daid
d494688565 Do not initialize in the header file. 2012-05-19 17:57:52 +02:00
Daid
516ec90242 Add M401 - Wait for user on LCD button press 2012-05-19 17:54:07 +02:00
Daid
7244aa7eb7 Merge branch 'Marlin_v1' of https://github.com/ErikZalm/Marlin into Marlin_v1 2012-05-19 17:38:46 +02:00
linagee
de2ca3b2e8 Grammar correction. 2012-05-19 07:40:35 -06:00
linagee
c2fc466e1b Update Marlin/Configuration.h 2012-05-19 05:56:17 -06:00
linagee
241f5a4c0e Update Marlin/thermistortables.h 2012-05-19 05:52:12 -06:00
linagee
9f9f498491 Update Marlin/Configuration.h 2012-05-19 05:47:30 -06:00
Erik van der Zalm
e31bef31ad Limit PID autotune PWM to PID_MAX 2012-05-16 19:32:23 +02:00
ErikZalm
b2a9ccdb97 Merge pull request #159 from MaikStohn/Marlin_v1
Marlin v1 - BUG FIXES / CORRECTIONS
2012-05-16 12:32:35 -07:00
Erik van der Zalm
d459fb41b7 Merge branch 'Marlin_v1' of github.com:ErikZalm/Marlin into Marlin_v1 2012-05-16 19:22:08 +02:00
ErikZalm
804e0d6117 Merge pull request #164 from guanix/Marlin_v1
Melzi support
2012-05-16 12:21:48 -07:00
Erik van der Zalm
ba96059203 add additional dropsegments test 2012-05-16 19:21:44 +02:00
zittix
fbd91ab0b5 Fixes #153 for bad call to abs() 2012-05-16 18:17:34 +02:00
MaikStohn
b51c06e2b3 Merge branch 'Marlin_v1' of https://github.com/ErikZalm/Marlin into Marlin_v1 2012-05-11 16:57:08 +02:00
MaikStohn
159ae90874 bug fix for scrolling of main menu when using SMALL_DISPLAY (2 lines only) 2012-05-11 15:23:10 +02:00
MaikStohn
e48f5aa6a7 fixed typo 2012-05-11 15:22:06 +02:00
MaikStohn
1efe9ab497 changed encoder pos from int to long to fix problems setting x/y/z/e stepps_per_mm using the lcd menu 2012-05-11 15:19:09 +02:00
Guan Yang
602c8ee02b Melzi support 2012-05-09 18:37:07 -04:00
Daid
279d00da9f Fixed #if for Ultimaker. 2012-05-09 10:50:44 +02:00
Bernhard Kubicek
451f9cc6d1 Residual in the comments: there are no more mm/minutes but only mm/sec in the planner buffer. 2012-05-09 08:05:13 +03:00
Erik de Bruijn
e3fe1f0d00 Made a more granular configuration possible PREVENT_LENGTHY_EXTRUDE. You can now decide to allow/disallow large length of extrusions to be executed.
Turning off the protection might be beneficial to those who want to do fast and long reversals.
2012-05-08 17:44:08 +02:00
Erik de Bruijn
d88205d89d Suggestion to improve (TODO), no actual code changed 2012-05-08 17:43:57 +02:00
Erik de Bruijn
5aa80e6c05 Made language.h more flexible. Automatically do the right defines based on MOTHERBOARD == 7 ? "Ultimaker" : "Mendel" 2012-05-08 17:43:02 +02:00
MaikStohn
b657a18449 Revert "magic PROGMEM defines to avoid hundreds of wrong GCC warnings"
This reverts commit 3682d9bd5b.
2012-05-04 12:24:07 +02:00
MaikStohn
d188ae4c9d added missing declaration of buttons_init()
This is required when moving the buttons_init() function to the
lcd_init() function
2012-05-03 15:48:44 +02:00
MaikStohn
3682d9bd5b magic PROGMEM defines to avoid hundreds of wrong GCC warnings 2012-05-03 15:43:23 +02:00
MaikStohn
032df0b2c6 Moved LCD initialization out of constructor
Since the class "MainMenu" was used within a static variable the
initialization of the object (constructor call) was done before Arduino
library startup. It always caused a crash when using AVRStudio with
JTAG debugger (caused from calling the LCD initialization / the lot of
I/O work / the stack used during this calls). By moving the LCD_INIT
out of the constructor and using an explicit call inside of Arduino
setup() implementation immediately fixed all problems and the JTAG
debugger runs fine.
2012-05-03 14:28:17 +02:00
MaikStohn
bd1ad7c76a explicit includes to make it compile with AVRStudio/Eclipse 2012-05-03 14:22:43 +02:00
MaikStohn
060b38de5c delete obsolete and wrong code
"i" runs from 0 to 4 but "add_homeing" array size is 3 only. On the
other hand the calculated value gets overwritten by either one of the
if choice.
2012-05-03 14:15:46 +02:00
MaikStohn
789ba02d43 fixed typo in comment 2012-05-03 14:13:53 +02:00
Erik van der Zalm
1874cb71a6 Added option to increase the FAN PWM frequency. 2012-05-02 19:26:14 +02:00
Erik van der Zalm
6a5a34e0ff Small cleanup 2012-04-30 13:37:49 +02:00
Erik van der Zalm
e3821bd86f Merge branch 'Marlin_v1' of github.com:ErikZalm/Marlin into Marlin_v1 2012-04-30 13:36:27 +02:00
Erik van der Zalm
02af69911e Added temperature window to M109. This is needed for systems with no overshoot PID. 2012-04-30 13:36:19 +02:00
ErikZalm
e203b8c754 Merge pull request #154 from daid/Marlin_v1
Added 2nd extruder temperature LCD readout and setting.
2012-04-28 13:19:55 -07:00
ErikZalm
362ddc4efc Merge pull request #155 from Atntias/patch-1
adding M120 and 121 for turning on and off the endstops only for homing
2012-04-28 13:19:19 -07:00
sefi
c27081aa4a Fix to allow M120/M121 2012-04-28 17:35:51 +03:00
sefi
e11e072eca adding M120 and 121 for turning on and off the endstops only for homing function 2012-04-28 17:31:22 +03:00
Daid
8e68c6cf89 Show proper temperature for extruder 2 2012-04-27 15:00:01 +02:00
Daid
8503b78876 Added support for 2nd extruder temperature to UltraLCD 2012-04-27 14:51:32 +02:00
Logan Bowers
3eacb4c16d Wrap the call to turn off the bed heater in a #if to prevent a compile error on boards that do not have a bed heater 2012-04-25 19:22:38 -07:00
Bernhard
e4d2138dbd reinitialize the lcd, if the SD card is inserted or removed. It seems that LCDs can confused by electrical discharges from time to time.
Since a removal or insert of the sd card takes a long time in firmware, just reinitializing the lcd does not hurt.
actually, it solves a problem with the UltiControlle
2012-04-22 21:12:17 +02:00
Bernhard
464b755918 added support for the UltiController 2012-04-22 20:55:56 +02:00
Bernhard
44fd8d46d2 fixed quickhome 2012-04-22 20:44:27 +02:00
Bernhard
33bb044d7c fixed catsting to (int)e in serial error messages.
see https://github.com/ErikZalm/Marlin/issues/148
2012-04-22 20:04:39 +02:00
ErikZalm
c2557abc03 Merge pull request #138 from triffid/fix-makefile
make should rebuild if configuration or Makefile is changed
2012-04-15 10:21:46 -07:00
Erik van der Zalm
67cf105bc6 Fixed AUTOTEMP (M109 S215 B260 F1 starts autotemp)
Changed SLOWDOWN. IF this does not work ok OLD_SLOWDOWN is the old algo.
2012-04-15 19:17:33 +02:00
Erik van der Zalm
8aee9d51b6 Disabled disable_heater in PID_autotune. 2012-04-12 21:12:31 +02:00
Daid
414408b2d0 Fix for wrong systax in #ifdef. 2012-04-12 14:01:30 +02:00