Compare commits

...

4014 Commits

Author SHA1 Message Date
InsanityAutomation 0675f2853c Fix filament runout and mirror mode 2019-01-19 00:21:21 -05:00
InsanityAutomation dd2c7f5f44 Update language_en.h 2019-01-14 09:58:52 -05:00
InsanityAutomation 20121e6c59 import patches 2019-01-13 12:01:02 -05:00
InsanityAutomation 18915925d8 Update menu_main.cpp 2019-01-12 18:18:27 -05:00
InsanityAutomation eda09dee3b Update menu_main.cpp 2019-01-12 14:24:32 -05:00
InsanityAutomation 16c0513b3d Bump to head 2019-01-12 14:24:13 -05:00
InsanityAutomation 4c39f9a7e8 M1 2019-01-12 12:52:30 -05:00
InsanityAutomation 2a9067b033 Update Configuration.h 2019-01-11 17:09:28 -05:00
InsanityAutomation 781c3140b5 same as raptor, set babystep interval to match between driver types 2019-01-05 13:02:54 -05:00
InsanityAutomation e3d852be66 Bump to head with a complete set of tested trex3 changes 2019-01-05 12:38:32 -05:00
InsanityAutomation f98fbf637d Bump to head, add trex3 thermistor table 2018-12-17 09:36:11 -05:00
InsanityAutomation 0d2f7ff289 Update trex3 default offset 2018-12-05 20:28:56 -05:00
InsanityAutomation 8136c0f82a Bump 2018-12-05 16:56:30 -05:00
InsanityAutomation 6156173b82 Bump to head and more complete trex3 support 2018-12-02 10:09:40 -05:00
InsanityAutomation 96d2784564 Update Marlin/Configuration.h 2018-11-29 20:08:22 -05:00
InsanityAutomation ff697a7c34 Bump to head with endstop fixes 2018-11-10 11:40:32 -05:00
InsanityAutomation ec21c8fc9e Reimplement PR12137 2018-10-29 15:10:57 -04:00
InsanityAutomation 4d09457891 Bump to head 2018-10-29 14:53:25 -04:00
InsanityAutomation 22571797d2 Reappy tool change optomization 2018-10-13 18:32:34 -04:00
InsanityAutomation 88b2a6004a Remove optomized tool change till stable 2018-10-13 16:31:12 -04:00
InsanityAutomation cbd5dda826 Fix tool change 2018-10-12 22:17:36 -04:00
InsanityAutomation 795c7fb0e0 Add lerdge runout sensor 2018-10-12 11:41:10 -04:00
InsanityAutomation f6f04c0e10 Bump to head for eeprom fixes 2018-10-12 10:49:08 -04:00
InsanityAutomation 37fb804933 Bump to head and initial trex3 support
Trex3 needs more adjustment for options such as filament sensor and laser, but should be largely functional
2018-10-08 13:52:04 -04:00
InsanityAutomation 6a8ecf3a69 Add missing laser message and set config back to stock machine state 2018-10-08 11:30:38 -04:00
InsanityAutomation 688efa881f Bump and add tool change optomization 2018-10-01 16:31:59 -04:00
InsanityAutomation d407c5a91a Minor Tweaks 2018-09-28 20:52:27 -04:00
InsanityAutomation 1b677713e9 Fix M119 2018-09-28 18:03:05 -04:00
InsanityAutomation 4f337e8735 update url in version 2018-09-28 13:22:26 -04:00
InsanityAutomation 81e765e1e9 Update version 2018-09-28 12:14:55 -04:00
InsanityAutomation 7410d24f1f Update removed / renamed / moved files 2018-09-28 12:13:04 -04:00
InsanityAutomation 694620dd67 Remove duplicated line 2018-09-28 12:09:29 -04:00
InsanityAutomation be805a8132 Bump to head with specific board definition, implement fan as laser 2018-09-28 12:08:23 -04:00
InsanityAutomation 5400f6ecf8 Ensure planner is synched before ubl mode change in tool change 2018-08-20 19:56:08 -04:00
InsanityAutomation 8022669a04 Reinstate changes that were missed in 2.0 conversion 2018-08-14 22:48:02 -04:00
InsanityAutomation 66a55a5eb4 Set version.h and config to default 2018-08-11 13:46:10 -04:00
InsanityAutomation 04fad1c5f4 Bump to current 2.0 bugfix 2018-08-08 11:23:30 -04:00
InsanityAutomation 6ca0865cad 2.0 Bugfix initial commit 2018-08-08 10:52:59 -04:00
InsanityAutomation a1a8d19a9d Revert "Merge branch 'TM_CR10' into bugfix-1.1.x"
This reverts commit 1cfe6d7478, reversing
changes made to a9b30acbe6.
2018-05-11 22:55:44 -04:00
InsanityAutomation e2ba0def50 Revert "Revert "Merge branch 'TM_CR10' into bugfix-1.1.x""
This reverts commit fd94570a0d.
2018-05-11 22:55:20 -04:00
InsanityAutomation afd0b532ad Revert "Merge branch 'TM_CR10' into bugfix-1.1.x"
This reverts commit 1cb2de37de, reversing
changes made to fd94570a0d.
2018-05-09 11:01:53 -04:00
InsanityAutomation 1cb2de37de Merge branch 'TM_CR10' into bugfix-1.1.x 2018-05-09 10:55:26 -04:00
InsanityAutomation fd94570a0d Revert "Merge branch 'TM_CR10' into bugfix-1.1.x"
This reverts commit 1cfe6d7478, reversing
changes made to a9b30acbe6.
2018-05-09 10:44:35 -04:00
InsanityAutomation b120adf8df Bump version, disable power recovery by default 2018-05-09 10:37:26 -04:00
InsanityAutomation 1cfe6d7478 Merge branch 'TM_CR10' into bugfix-1.1.x 2018-05-09 10:31:43 -04:00
InsanityAutomation a9b30acbe6 Merge pull request #4 from MarlinFirmware/bugfix-1.1.x
Bugfix 1.1.x 20180509 catchup
2018-05-09 10:25:29 -04:00
Scott Lahteine b9e4ce3715 Fix compilation with UBL and Arc/Bézier
Fix #10660
2018-05-09 00:41:51 -05:00
Scott Lahteine 78410b210b Add UBL support for G2/G3 and G5 (#10649) 2018-05-08 11:10:33 -05:00
Scott Lahteine de0b872a24 Merge pull request #10652 from thinkyhead/bf1_bezier_jerk_control_avr
[1.1.x] Bézier Jerk Control
2018-05-08 11:09:19 -05:00
Scott Lahteine ae24f4f930 Merge pull request #10650 from thinkyhead/bf1_junction_deviation
[1.1.x] Junction Deviation
2018-05-08 09:25:21 -05:00
Scott Lahteine f093ce35a0 Add BEZIER_JERK_CONTROL to example configs 2018-05-08 09:21:54 -05:00
Scott Lahteine 7ee1ab4fd3 Add Bézier Jerk Control option 2018-05-08 09:21:54 -05:00
Scott Lahteine bb352f9836 Add a 3-frame fan animation to bitmaps (#10653) 2018-05-08 08:18:51 -05:00
Scott Lahteine 5c120222a4 Show correct units in M503 2018-05-08 05:47:09 -05:00
Scott Lahteine b3af5a1ac0 Add JUNCTION_DEVIATION to example configs 2018-05-08 04:43:51 -05:00
Scott Lahteine 124cff0dbe Junction deviation jerk limiting option 2018-05-08 04:43:51 -05:00
Scott Lahteine 9076a9314f Fix abort of SD printing 2018-05-07 00:18:53 -05:00
Scott Lahteine 40ce9d0299 Fix some sanity checks
Co-Authored-By: Giuliano <gmagician@users.noreply.github.com>
2018-05-06 23:22:28 -05:00
Scott Lahteine 20f1688376 Try whole word over abbrev. for error 2018-05-06 20:50:12 -05:00
Scott Lahteine 59e8707a4f Remove some unused vars 2018-05-06 20:49:08 -05:00
Scott Lahteine 5735c8af5b [1.1.x] Arrange LCD options by type (#10631)
* Bump configuration versions to 010109
* Arrange LCD options by type
2018-05-06 19:17:29 -05:00
Scott Lahteine c97bf04166 Geeetech follow-up 2018-05-06 08:14:00 -05:00
Scott Lahteine 156bd28160 Fully init planner sync_block 2018-05-06 08:14:00 -05:00
Scott Lahteine 1f991f07be Merge pull request #10615 from thinkyhead/bf1_synced_planner_set_position
[1.1.x] Improve sync of planner / stepper position, asynchronous G92
2018-05-06 03:10:28 -05:00
Scott Lahteine 675be8db7c Bring some example configs up to date 2018-05-06 03:06:13 -05:00
Scott Lahteine fcb19823db Add Geeetech i3 Pro C / W examples
Added base example configs for Geeetech's Pro C and Pro W machines.

Co-Authored-By: Phr3d13 <phr3d13@gmail.com>
2018-05-06 01:37:41 -05:00
Scott Lahteine e8779e7fe2 Fix up fwretract handling 2018-05-06 01:22:30 -05:00
Scott Lahteine ac5ff1d802 Adjust usage of stepper.synchronize 2018-05-06 01:22:30 -05:00
Scott Lahteine 08e20dbbc6 Improve sync of stepper positions 2018-05-06 01:22:30 -05:00
Scott Lahteine 1682036533 Apply int32_t to stepper 2018-05-05 18:22:46 -05:00
Roxy-3D 42180e25a3 change Max7219 coordinates are in traditional (X,Y) format 2018-05-05 16:07:20 -05:00
Scott Lahteine c6e4fbe162 Additional patch for no heated bed 2018-05-04 00:11:19 -05:00
Bob-the-Kuhn 65adea6240 remove TMC version checks, move comment 2018-05-03 15:47:35 -05:00
Scott Lahteine 888da29b61 Enforce minimum TMC2130 / TMC2208 libs 2018-05-03 15:47:35 -05:00
TheMasterFX 50ff4cf157 Fix bed size and max z pos for Ender-2 (#10603) 2018-05-02 19:02:15 -05:00
Scott Lahteine 12b9bbaa50 Merge pull request #10602 from thinkyhead/bf1_AD8495_thermocouple
[1.1.x] Add thermocouple with AD8495 support
2018-05-02 09:05:11 -05:00
Scott Lahteine b50afa9897 Add thermocouple with AD8495 support
Co-Authored-By: Dmitriy <demonx@demonx.ru>
2018-05-02 08:41:31 -05:00
Scott Lahteine a556a8c506 Temp-related and conditional improvements 2018-05-02 08:41:30 -05:00
TerraBAS ee7b6a5e68 [1.1.x] Add Velleman RGB-LED Add-on support to K8400 configs (#10594) 2018-05-02 08:00:01 -05:00
Scott Lahteine da9f3868d5 Merge pull request #10587 from thinkyhead/bf1_lcd_bed_leveling_abl
[1.1.x] Sub-menu for ABL with LCD_BED_LEVELING
2018-05-01 06:49:32 -05:00
Scott Lahteine 04183da302 Add Ender-3 configs (#10588)
Co-Authored-By: thisiskeithb <13375512+thisiskeithb@users.noreply.github.com>
2018-05-01 06:20:35 -05:00
Scott Lahteine 0b9f99f940 LCD_BED_LEVELING enables a sub-menu for ABL 2018-05-01 04:41:56 -05:00
Scott Lahteine 5aff43e65e Rename float32 => float52, etc. 2018-05-01 04:41:56 -05:00
Scott Lahteine 32b6a3ad12 Fewer includes of vector_3.h 2018-05-01 04:41:56 -05:00
Scott Lahteine 94857b59c9 General lcd code cleanup 2018-05-01 01:22:25 -05:00
Scott Lahteine 3c5f0ce858 Clean up autostart handling 2018-05-01 01:22:25 -05:00
Scott Lahteine 0d7c559139 Improve debug of homing move feedrate 2018-04-30 23:45:35 -05:00
Scott Lahteine 542baea2e1 Add units to probe speed comments 2018-04-30 23:45:34 -05:00
Scott Lahteine 33ddd4e929 Fix XY homing move away rate 2018-04-30 23:45:34 -05:00
Scott Lahteine 96c1721eeb Fix sd_status comparison
Co-Authored-By: perkmeister <perkmeister@users.noreply.github.com>
2018-04-30 21:10:25 -05:00
Scott Lahteine 80c51ea572 Merge pull request #10581 from thinkyhead/bf1_no_menus 2018-04-30 20:22:02 -05:00
Scott Lahteine f71e65aa9c Add NO_LCD_MENUS to custom configs 2018-04-30 18:39:32 -05:00
Scott Lahteine 1025066ab1 Add NO_LCD_MENUS to display only the Status Screen 2018-04-30 18:39:32 -05:00
Scott Lahteine f4a7531ccb Fix homing with probe feedrates 2018-04-30 16:36:06 -05:00
Scott Lahteine 3e53754ccf Allow Z_AFTER_PROBING to be 0 2018-04-30 03:08:49 -05:00
Scott Lahteine 99cbeb3806 Do rounding in integer (instead of FIXFLOAT)
Co-Authored-By: Bob-the-Kuhn <bob-the-kuhn@users.noreply.github.com>
2018-04-29 19:34:16 -05:00
Scott Lahteine 751de314a4 Add sanity check for LED_CONTROL_MENU
Addressing #10569
2018-04-29 18:37:00 -05:00
Scott Lahteine 689ae467f2 Round all floats in string conversion functions (#10565) 2018-04-28 21:51:27 -05:00
Scott Lahteine b06fc3b539 Modify FastIO error message 2018-04-28 20:28:40 -05:00
Scott Lahteine 3ca3268241 Fix the TMC26X initializer CS pin argument
From #10531

Co-Authored-By: chriscg9 <chriscg9@users.noreply.github.com>
2018-04-28 12:00:23 -05:00
Bob-the-Kuhn 382aa96870 1.1.x version of Auto-build PR 10503 (#10561) 2018-04-28 11:30:40 -05:00
Scott Lahteine 522ea178a4 Clear up trailing whitespace 2018-04-28 11:25:19 -05:00
Scott Lahteine 2756a1d411 Fix M421 comment in Marlin_main.cpp 2018-04-28 11:15:48 -05:00
Scott Lahteine 94b8eac6d0 Allow a home bump of 0 when homing Z with probe 2018-04-28 10:25:50 -05:00
Scott Lahteine b4ddee8beb When homing with Z probe bump at Z_PROBE_SPEED_SLOW 2018-04-28 08:48:49 -05:00
Scott Lahteine f0494b4021 Fix M420 C for UBL 2018-04-28 08:17:55 -05:00
Scott Lahteine ba8d03d241 Clean up some endstop inverting examples 2018-04-28 08:00:44 -05:00
Scott Lahteine 37927f9274 Fix some endstop inverting settings 2018-04-28 08:00:15 -05:00
Scott Lahteine 81b9914704 Further cleanup of inline delays 2018-04-27 19:25:14 -05:00
Giuliano d86efae37c [1.1.x] report error on unsupported commands (#10554)
Raise an error when an unknown/unsupported G/M command is requires.
2018-04-27 17:40:32 -05:00
per1234 3550494db1 Correct AVR_ATmega328_FAMILY macro (#10540) 2018-04-27 03:11:56 -05:00
Scott Lahteine 95d19cfcbf Fix disable of Z_SENSORLESS for HOMING_Z_WITH_PROBE
As pointed out in #10532
2018-04-27 01:40:25 -05:00
Scott Lahteine e5e5c1513d Fix ABL grid bounds test for Delta/SCARA 2018-04-27 00:55:29 -05:00
Scott Lahteine 083bfa3fe9 Remove refs to non-existent CPU_32_BIT 2018-04-27 00:55:29 -05:00
Scott Lahteine 8f5d99a2ab Wrap delay macros in do{}while(0) 2018-04-27 00:34:40 -05:00
Scott Lahteine f748b1a1ce Apply const in a few spots 2018-04-26 17:56:23 -05:00
Scott Lahteine e931bc7e72 Reorder some conditionals 2018-04-26 17:55:36 -05:00
Roxy-3D b95a1b94cb make Max7219 usable at ISR time 2018-04-26 14:32:24 -05:00
InsanityAutomation 3bdca8730e Modify a few things to merge nicer 2018-04-26 15:24:23 -04:00
Scott Lahteine cb02b6ec60 Disable PIDTEMPBED with no bed…
…and move FILAMENT_CHANGE_SLOW_LOAD_LENGTH default to post-conditionals.
2018-04-26 01:34:06 -05:00
Scott Lahteine d70a4646f4 MKS OLED support for RUMBA
Based on #10519

Co-Authored-By: Alex <alex18881@users.noreply.github.com>
2018-04-25 22:57:34 -05:00
Scott Lahteine 11bbcfd69e Update emergency_parser for 2.0.x parity (#10530) 2018-04-25 22:42:43 -05:00
Scott Lahteine d429d5a4ae Add M420 C to center the mesh on a value (#10521) 2018-04-25 06:43:59 -05:00
InsanityAutomation c6d99c772b Small Updates 2018-04-24 11:18:46 -04:00
InsanityAutomation 8898eb20a6 Merge branch 'bugfix-1.1.x' into TM_CR10 2018-04-24 10:55:35 -04:00
InsanityAutomation 53b6c74f0f Revert "Merge branch 'TM_Raptor' into bugfix-1.1.x"
This reverts commit 5c90a5bbf5, reversing
changes made to baae6ddfef.
2018-04-24 10:00:17 -04:00
InsanityAutomation 5c90a5bbf5 Merge branch 'TM_Raptor' into bugfix-1.1.x 2018-04-24 09:51:24 -04:00
InsanityAutomation baae6ddfef Merge pull request #1 from MarlinFirmware/bugfix-1.1.x
Bugfix 1.1.x
2018-04-24 09:49:15 -04:00
InsanityAutomation c941fe470b Mesh Option Addition 2018-04-24 09:25:00 -04:00
Scott Lahteine 21f5ca6ad4 Revert potentially-not-redundant UBL test
Response to #10435
2018-04-24 08:05:23 -05:00
Scott Lahteine ad3b95c8ea Fix current_temperature_chamber compile error
Fix #10505
2018-04-24 07:53:45 -05:00
Scott Lahteine 50cc55d172 FastIO faster atomic bit write, fix TOGGLE
Based on #10502

Co-Authored-By: ejtagle <ejtagle@hotmail.com>
2018-04-24 04:13:50 -05:00
Scott Lahteine 3eb55016e4 Finish AVR preemptive interrupt
Followup to #10501
2018-04-23 22:20:00 -05:00
Scott Lahteine 51004e003d Proper AVR preemptive interrupt handling (#10501)
Co-Authored-By: ejtagle <ejtagle@hotmail.com>
2018-04-23 20:47:31 -05:00
Scott Lahteine 0764981aa1 Fix compile for Malyan LCD
Based on #10498

Co-Authored-By: xC0000005 <xc0000005@users.noreply.github.com>
2018-04-23 16:51:29 -05:00
Scott Lahteine b19d8182c1 Add HAS_HEATED_BED conditional (#10494) 2018-04-22 23:40:49 -05:00
Scott Lahteine 6b50a50676 Extra options for LEVEL_BED_CORNERS (#10484) 2018-04-22 02:30:20 -05:00
Scott Lahteine 29c9c723f8 Use 0 as the bed height for manual probing 2018-04-22 02:12:48 -05:00
Anton Piliugin b49da0c4ba Update language_ru.h (#10482) 2018-04-22 00:24:14 -05:00
Scott Lahteine 58bd2a5e81 Merge pull request #10437 from thinkyhead/bf1_creality_power_loss_resume
[1.1.x] Creality3D Power-Loss Recovery
2018-04-22 00:17:27 -05:00
Scott Lahteine 6f176d1d64 [1.1.x] Reset LCD status to fallbacks (#10467)
* Remove obsolete strings
* Tweak some static consts
* Reset LCD status to fallbacks

When paused, "Print paused..."
When SD printing, the filename
When host printing, "Printing..."
When idle, "MyPrinter ready."
2018-04-22 00:15:57 -05:00
Anton Piliugin 38c97dc975 Update language_ru.h (#10481) 2018-04-22 00:12:21 -05:00
Scott Lahteine d7ec13ce69 Creality3D Power-Loss Recovery 2018-04-21 21:30:25 -05:00
Scott Lahteine 7e585cab83 Add POWER_LOSS_RECOVERY to example configs 2018-04-21 19:13:30 -05:00
Scott Lahteine e76545c450 Add Stopwatch::resume method 2018-04-21 19:09:31 -05:00
Scott Lahteine 1894b981af Add R parameter to G28 to specify pre-raise 2018-04-21 19:09:31 -05:00
Festivejelly 61f9e28c23 [1.1.x] Wait for bed heaters between probing (#9890) 2018-04-21 15:44:07 -05:00
Scott Lahteine c6ecfc1429 [1.1.x] Split TRIGORILLA into 1.3 and 1.4 (#10468) 2018-04-20 19:27:11 -05:00
Sebastien Andrivet 4cc2bc1343 [1.1.x] Add new capability to report if Thermal Protection is enabled (#10465) 2018-04-20 16:42:56 -05:00
Scott Lahteine dcb8af0518 Match Makefile order to boards.h 2018-04-20 16:19:31 -05:00
Scott Lahteine 4108382c2c Complete CREALITY_ENDER revert
Followup to #9694
2018-04-20 16:19:31 -05:00
Scott Lahteine 0c1be965b6 Don't report point 0 in MBL G29 2018-04-20 13:18:42 -05:00
Scott Lahteine 6f87e4b4dc Fix up enqueue now functions
…and apply to MALYAN_LCD.
2018-04-19 19:33:16 -05:00
Roxy-3D c91b3142aa Update ubl_motion.cpp
Restore necessary and needed loop termination logic.
2018-04-19 12:03:18 -05:00
Scott Lahteine df6becfb07 Merge pull request #10452 from thinkyhead/bf1_mks_base_15
[1.1.x] Add BOARD_MKS_BASE_15 with digital micro-stepping
2018-04-18 22:32:11 -05:00
Scott Lahteine 51aa9743a6 Rename MKS_13 to MKS_GEN_13 2018-04-18 22:16:16 -05:00
Scott Lahteine e561ecb5a7 Add BOARD_MKS_BASE_15 with digital micro-stepping 2018-04-18 22:06:25 -05:00
Scott Lahteine 38ed5f5ee9 Fix calls to ubl.get_z_correction 2018-04-18 21:43:44 -05:00
Scott Lahteine 23618d9cd0 Use 0 as the bed position (not Z_MIN_POS) 2018-04-17 20:30:17 -05:00
Scott Lahteine 8cf6ef8411 Merge pull request #10431 from thinkyhead/bf1_fix_and_improve
[1.1.x] Improve UBL mesh report, M420 V T, M421 N, and…
2018-04-17 16:59:14 -05:00
Scott Lahteine fa3c14fccf Fix compile warnings in fastio.h
Based on #10440 by @GMagician
2018-04-17 16:36:19 -05:00
Scott Lahteine 773d773baa Fix compile error in tmc_status 2018-04-17 16:15:53 -05:00
Scott Lahteine 5c186f7dd3 Try FIXFLOAT rounding based on sign 2018-04-17 15:59:49 -05:00
Scott Lahteine 77b75ce86c One fewer compare in _lcd_move_xyz 2018-04-17 15:55:43 -05:00
Scott Lahteine 6f156d01d9 Update position for UBL non-segmented activate/deactivate 2018-04-17 15:55:43 -05:00
Scott Lahteine c0f6eebded Improve UBL mesh report. Add M420 T, M421 N 2018-04-17 15:55:38 -05:00
Scott Lahteine 6786101c64 Ignore LCD_BED_LEVELING with UBL 2018-04-17 15:54:25 -05:00
Scott Lahteine ee21f44969 Tweak fwretract.retract debug, comments 2018-04-17 15:54:25 -05:00
Scott Lahteine 090e08ef3d M221 with no parameters report flow 2018-04-17 15:54:25 -05:00
InsanityAutomation b1990d3e39 Update to compile with latest bugfix 2018-04-17 15:14:20 -04:00
InsanityAutomation 20c027464e Add current config from TM3D 2018-04-17 13:49:06 -04:00
InsanityAutomation d7c8491a07 Initial raptor commit 2018-04-17 10:51:35 -04:00
InsanityAutomation 2a18869b50 Breakout for sd detect pin 2018-04-17 10:14:21 -04:00
Scott Lahteine 444b6d6d83 Prevent delay when power is already on
Fix #10410
2018-04-17 04:36:14 -05:00
Scott Lahteine f1dfc80332 Improved SENSORLESS_HOMING sanity check 2018-04-17 04:10:57 -05:00
InsanityAutomation 6137b671fe Whitespace 2018-04-16 13:54:56 -04:00
InsanityAutomation 0858670828 Update Configuration_adv.h 2018-04-16 13:16:35 -04:00
InsanityAutomation 0ab3f7e985 Update Configuration.h 2018-04-16 13:16:17 -04:00
InsanityAutomation 022eb85937 Add files via upload 2018-04-16 13:15:20 -04:00
Scott Lahteine 31261d0c17 Fix bug in Planner::set_position_mm 2018-04-16 02:05:48 -05:00
Thomas Moore 85d57f7a9e [1.1.x] Change UBL default G29 P4 height to 0 (#9510) 2018-04-15 20:49:03 -05:00
Scott Lahteine 8a159dfec2 Remove Brazilian Portuguese duplicates
Followup to #10368
2018-04-15 19:16:01 -05:00
Scott Lahteine d59ed4dce0 Abort SD printing more safely (#10405)
Allow the current command to complete when aborting an SD print, otherwise some commands (G28, G29, etc.) will cause trouble.
2018-04-15 18:26:25 -05:00
Vitorio Miguel Prieto Cilia 110e631656 Update pt-br translation (#10368) 2018-04-15 00:07:13 -05:00
Scott Lahteine 9769d799df clear_block_buffer, kill_current_block in quick_stop 2018-04-13 22:05:58 -05:00
Scott Lahteine a783caabac Make sure ABL (manual) starts close to the bed 2018-04-13 20:19:49 -05:00
Roxy-3D b978153ca4 Stow Probe at end of G29 J3 2018-04-13 14:46:40 -05:00
Scott Lahteine 090d72f591 [1.1.x] Add optional menu item to toggle software endstops (#10392) 2018-04-13 00:24:20 -05:00
Scott Lahteine e3c2d43b2b Tweak MBL move close to bed 2018-04-12 22:41:26 -05:00
Scott Lahteine 5274ab0ad5 MESH_BED_LEVELING before PROBE_MANUALLY 2018-04-12 22:26:56 -05:00
Scott Lahteine 59d9886473 Tweak MIN_STEPS_PER_SEGMENT sanity-check 2018-04-12 20:23:43 -05:00
Luc Van Daele 6e30d1bef1 [1.1.x] G33 MIN_STEPS_PER_SEGMENT (#10385) 2018-04-12 20:19:42 -05:00
Scott Lahteine db81a1d4a2 Make sure MBL starts close to the bed
Fix #10390
2018-04-12 19:37:50 -05:00
Scott Lahteine 2edc13a0e2 Fix M118 parameter handling
Fix #10388
2018-04-12 19:06:41 -05:00
Scott Lahteine 8db9b800e7 Compress/update comments ubl_motion
…to fit more code on the screen and correct outdated commentary contrasting ABL.
2018-04-12 18:08:33 -05:00
Luc Van Daele 21971f2f7a Overhaul of G33 Delta Calibration (#8821) 2018-04-11 19:12:56 -05:00
Luc Van Daele b2265869b2 Low Point for delta calibration (#10362) 2018-04-11 18:03:34 -05:00
Scott Lahteine f408863043 Fix Spanish MSG_[ABC] items 2018-04-11 15:21:08 -05:00
Scott Lahteine 336131fb37 Trailing whitespace 2018-04-11 00:27:43 -05:00
Scott Lahteine 808d6f367b Tweak RAMPS SDSS pins 2018-04-10 16:46:17 -05:00
Scott Lahteine 00d03c6dc5 Merge pull request #10350 from thinkyhead/bf1_z_probe_low_point
[1.1.x] Z_PROBE_LOW_POINT to prevent probe/bed damage
2018-04-09 18:24:38 -05:00
Scott Lahteine 4f660a18bc Add Z_PROBE_LOW_POINT to prevent damage 2018-04-09 17:22:28 -05:00
Scott Lahteine e87ae5b643 Add Z_PROBE_LOW_POINT to example configs 2018-04-09 01:56:57 -05:00
Scott Lahteine 73fe8ef4df Followup to #10177 2018-04-09 01:16:51 -05:00
Scott Lahteine 157d28c418 Rename, arrange advanced pause purge options 2018-04-09 01:14:07 -05:00
Scott Lahteine e143b1252f Appy const to manage_inactivity 2018-04-08 23:53:55 -05:00
Roxy-3D 816fa9e2b4 More accurate number for Z_PROBE_OFFSET_FROM_EXTRUDER 2018-04-08 22:25:11 -05:00
Roxy-3D 661a38586b Resolve corruption of Max7219 Debug LED Matrix 2018-04-08 22:25:11 -05:00
Scott Lahteine 4d297dd562 Add --no-track in mfnew git script 2018-04-08 06:51:30 -05:00
Scott Lahteine 56b5fb5e15 Update Bed PID config comments 2018-04-08 06:46:05 -05:00
Scott Lahteine 2205c7775b FILAMENT_CHANGE_LOAD_LENGTH sanity-check
Followup to #10177
2018-04-08 03:31:15 -05:00
Scott Lahteine b637b80a9a Merge pull request #10177 from thinkyhead/bf1_filament_load_accel
[1.1.x] Filament load/unload add acceleration for Bowden
2018-04-08 03:28:45 -05:00
Scott Lahteine 19440df4d0 Better RESTORE_LEVELING_AFTER_G28 sanity-check
As suggested by @GMagician
2018-04-08 03:13:35 -05:00
Scott Lahteine 6f8717ce12 Fix LIGHTWEIGHT_UI with UBL
As mentioned in https://github.com/MarlinFirmware/Marlin/issues/10317#issuecomment-379100702
2018-04-08 03:11:53 -05:00
Scott Lahteine 6ec2cbce18 Bring RepRapPro Huxley config up to date
Followup to #10343
2018-04-08 00:31:18 -05:00
indazoo f6bf247302 Add RepRapPro Huxley configuration (#10343) 2018-04-08 00:19:40 -05:00
Sean 4b36a0a3dc Add acceleration for filament change, load, unload.
This is useful to achieve a higher movement speed on Bowden extruders.
Also add a slow mode before ramping up to the high speed to make loading easier.
2018-04-07 23:14:40 -05:00
Scott Lahteine be0afd71df Add ADVANCED_PAUSE_FEATURE ACCEL options to example configs 2018-04-07 23:14:40 -05:00
Scott Lahteine 8e35029f10 Merge pull request #9789 from Lenbok/monitor_chamber_temperature_and_auto_fan
[1.1.x] Monitor chamber temperature, with auto chamber fan control.
2018-04-06 23:52:06 -05:00
Lenbok 0aa833fe6c Chamber temperature monitoring and auto fan control.
This is an initial cut for feedback.

Chamber temperature is currently reported along with hot end and bed
temperatures to serial. The format is just like that used for hot end
and bed temperatures, but using 'C' prefix. As there is no heater,
target is always 0. Is this appropriate, is there a better way to report
chamber temperatures?

Chamber temperatures are not reported on the LCD in any way.

When auto chamber fan is enabled, it currently just uses the same
temperature threshold as the other auto controlled fans.

As the chamber temperature is not connected to any heater, it doesn't
undergo mintemp/maxtemp monitoring. This would need to change in the
future if chamber heating became a feature.
2018-04-06 23:09:44 -05:00
Scott Lahteine 08b09f7a4c Add Chamber Temp options to example configs 2018-04-06 23:09:43 -05:00
Roman Moravčík 151962baf2 Update Slovak language (#10313) 2018-04-06 20:20:40 -05:00
Bob-the-Kuhn aca2bbbc50 Add TMC software SPI pins to pinsDebug_list.h (#10325) 2018-04-06 20:16:05 -05:00
Scott Lahteine 211544b543 Reset progress bar when print ends
Fix #10330
Based on #10333 by @marcio-ao
2018-04-06 20:12:40 -05:00
GMagician 8e36d00ad0 [1.1.x] Update language_it.h (#10323)
Updated to #10296
2018-04-06 20:07:08 -05:00
Scott Lahteine e596931aac Merge pull request #10321 from thinkyhead/bf1_einsy_retro_etc
[1.1.x] Fix TMC2130 DIAG1 active high, Einsy Retro
2018-04-06 00:30:50 -05:00
Scott Lahteine ed949cc5c1 Added support for Einsy Retro
http://reprap.org/wiki/EinsyRetro
2018-04-05 18:15:58 -05:00
Scott Lahteine 53757444c5 Default active low for TMC2130 DIAG1 (#10294)
- Added sanity check to require endstop inverting with SENSORLESS_HOMING
2018-04-05 18:15:58 -05:00
Scott Lahteine c46d47f45f Scale feedrate (mm/s to deg/s) for SCARA 2018-04-05 16:17:23 -05:00
Anton Piliugin bc2fc86993 Update language_ru.h (#10311) 2018-04-05 00:47:02 -05:00
Scott Lahteine 01e100360f Merge pull request #10176 from noingwhat/1.1.x-Continuous-Purge
[1.1.x] Continuous Purge
2018-04-04 22:50:37 -05:00
Scott Lahteine dba26a6d1f Add Continuous Purge feature to Advanced Pause 2018-04-04 20:59:50 -05:00
Scott Lahteine 05fc3d7891 Add ADVANCED_PAUSE_CONTINUOUS_PURGE to example configs 2018-04-04 20:53:00 -05:00
Scott Lahteine 7ff70d7adb Improve heating/cooling LCD messages (#10296) 2018-04-04 19:13:48 -05:00
Scott Lahteine a7e142460c MBL should add z_offset regardless of fade (#10307) 2018-04-04 18:27:09 -05:00
GMagician 9d2ef95f1d Additional tool-change fix (#10305)
Followup to #10243
2018-04-04 17:06:25 -05:00
Pavel Peganov de5f69b285 Add Creality CR-8 configuration (#10285) 2018-04-02 19:58:02 -05:00
Scott Lahteine 829281d016 Merge pull request #10243 from thinkyhead/bf1_tool_change_debug 2018-04-02 19:33:27 -05:00
Scott Lahteine be098cd42f Z Endstop Servo => Z Probe Servo 2018-04-01 23:54:47 -05:00
Scott Lahteine 2dafc10da3 Merge pull request #10271 from D-side/ender-4-board-id
[1.1.x] Fix Ender 4 compilation, add more AVRs to Makefile
2018-04-01 18:25:35 -05:00
Scott Lahteine 6444ef02e4 Add remaining boards to Makefile 2018-04-01 18:15:52 -05:00
D-side ab5232c37b Fix Ender 4 / CR-8 compilation
- Assign 243 (like EFB) as Ender-4/CR-8 board ID
- Add to `Makefile`
- Add to `pins.h`
2018-04-01 18:15:52 -05:00
MoellerDi 6b150bfc40 Handle disabled HYBRID_THRESHOLD in EEPROM (#10274) 2018-04-01 16:58:30 -05:00
Scott Lahteine 885ad70c8b Fix likely issue with retract/recover
Addressing #10200
2018-03-31 22:59:48 -05:00
Scott Lahteine d37cfa327e Note about MKS_MINI_12864 in sanitycheck 2018-03-31 22:51:43 -05:00
Scott Lahteine 040ebd1675 Use lcd_printPGM_utf in more places
Fix #10256
2018-03-31 20:47:20 -05:00
Scott Lahteine 48fa0e6de0 Output ABC for delta stepper counts 2018-03-31 20:12:53 -05:00
Scott Lahteine c9aa7486ce Use float62 for LCD edit of Z Fade 2018-03-31 20:02:28 -05:00
Scott Lahteine 80b3f8c395 Allow Z_SAFE_HOMING sanity checks to handle floats 2018-03-31 19:00:14 -05:00
Scott Lahteine 712b213b40 Split up tool_change, raise for non-delta too 2018-03-30 16:06:52 -05:00
Scott Lahteine 52750bf362 Simplified leveling-based tool change 2018-03-30 16:06:47 -05:00
Scott Lahteine 0afdec882c For set_z_fade_height use set_bed_leveling_enabled 2018-03-30 16:06:42 -05:00
Scott Lahteine 29b048810c Symmetrical FWRETRACT Z Hop
Do the Z lift normally before setting Z back to its prior value. But do the Z lower using spoofing. This should produce proper symmetrical movement.
2018-03-30 15:47:06 -05:00
Scott Lahteine 0eb1830d85 Change order of inactive stepper disable/enable
This ensures that steppers that share an enable pin will only be disabled for a miniscule time.
2018-03-30 15:10:03 -05:00
Scott Lahteine f5c980f9cf Clear the "Wait for user" message set by M0/M1
See https://github.com/MarlinFirmware/Marlin/issues/10246#issuecomment-377146936
2018-03-29 17:57:50 -05:00
Scott Lahteine d36e950547 Temporary workaround for tool-change compile error
Pending a more complete solution to tool-change Z deviation.
2018-03-29 17:57:50 -05:00
Scott Lahteine df75e9d692 Fix BLTOUCH compile error
Followup to #10249
2018-03-29 17:57:49 -05:00
AnHardt 86c3be7089 No delay in sensorless quick homing (#10253) 2018-03-29 16:09:19 -05:00
Scott Lahteine 575b099e40 Alert users about low Z jerk values 2018-03-28 22:58:41 -05:00
Scott Lahteine 360166f626 Merge pull request #10249 from thinkyhead/bf1_homing_move_adjustments
[1.1.x] Improvements to general and delta homing
2018-03-28 22:05:40 -05:00
Scott Lahteine b5f1a4141c "G28 Z forbidden" => "Home XY first" 2018-03-28 21:54:20 -05:00
Scott Lahteine 0401f4ce14 Clear sensorless homing in home_delta after first move-to-top 2018-03-28 21:19:14 -05:00
Scott Lahteine 9f3b4d537d Do moves towards endstops differently in do_homing_move 2018-03-28 21:19:14 -05:00
Scott Lahteine deefd2defa Wait before turning off PRINTER_EVENT_LEDS at print end (#10247) 2018-03-28 20:32:32 -05:00
Scott Lahteine 1e31b56b0f Fix checksum + card.saving
Followup to #10204
2018-03-28 18:40:36 -05:00
Scott Lahteine 86e58df324 Fix G10/G11 debug logging 2018-03-28 18:40:36 -05:00
Scott Lahteine 3edf9904f4 Fix linear/3-point manual leveling buffer overrun
Fixes #10137
2018-03-28 18:40:36 -05:00
Scott Lahteine 8f461568e0 Undo German changes
See https://github.com/MarlinFirmware/Marlin/commit/941e9bd329c4831909b4d010f78a4a1d900e5b00#commitcomment-28262166
2018-03-28 14:46:42 -05:00
Scott Lahteine e848bebb10 Fix missing comma in tmc_sgt
Fixes #10209
2018-03-28 14:44:30 -05:00
Adrian Cuzman f84f7e5a38 Require a checksum when writing to SD (#10204)
When streaming commands to SD with XON/XOFF, errors can occur and cause incomplete commands to be written to the file. This change ensures that only commands with line numbers and checksum will be saved to SD.
2018-03-28 14:43:41 -04:00
Rob Power 677bd19dbf [1.1.x] NANODLP_Z_SYNC requires linear axes (#10239) 2018-03-28 14:02:58 -04:00
Scott Lahteine dc05d7fc2b Apply three spaces after pin defines 2018-03-28 12:26:44 -05:00
Scott Lahteine 2894d8b18e Update some Travis test items
Based on #10227 by @Bob-the-Kuhn
2018-03-27 21:26:48 -05:00
Thomas Karl Pietrowski bfdd14be4f bq Hephestos2: Allow bed leveling (#10234)
* Increases the offset, needed to allow the nozzle to touch the bed
* By default uses an offset of -4. This one is minimally far way from the buildplate and therefore only fine-tuning is needed to set the correct distance.
2018-03-27 22:06:14 -04:00
Kai 941e9bd329 Update language_de.h (#10216)
Wrong meaning
2018-03-25 15:21:26 -04:00
Scott Lahteine e1f8c97b21 Chinese updates (#10215)
From #10211 by @yhfudev
2018-03-25 12:38:08 -04:00
Scott Lahteine 71c05f1b57 Enforce minimum TMC2130 / TMC2208 libs 2018-03-24 15:56:09 -04:00
Scott Lahteine 2c79faede9 Z correction on tool-change for all HAS_MESH (#10198) 2018-03-23 13:11:51 -05:00
Scott Lahteine 94badcbace Use pgm_read_ptr for tables of pointers 2018-03-23 02:17:51 -04:00
Scott Lahteine 2746eb589e Fix size of EEPROM tmc_hybrid_threshold
Followup to #10101
2018-03-23 02:04:45 -04:00
teemuatlut f264228074 [1.1.x] TMC: Match axis label order (#10189) 2018-03-23 01:02:42 -05:00
Roxy-3D 994fdb5179 Get data declarations consistent... 2018-03-22 19:22:49 -05:00
Scott Lahteine 1e41d157a3 Merge pull request #10178 from thinkyhead/bf1_auto_reset_stepper_timeout
[1.1.x] Automatically reset stepper timeout
2018-03-21 19:25:15 -05:00
Scott Lahteine c57545ee08 blocks_queued => has_blocks_queued 2018-03-21 19:08:02 -05:00
Scott Lahteine 647c04def8 Automatically reset stepper timeout in manage_inactivity
Any code that adds moves to the planner can skip resetting the stepper timeout. We can let `idle` / `manage_inactivity` reset the timer whenever it detects any moves in the planner.
2018-03-21 19:08:02 -05:00
Roxy-3D 9e987e4971 Correct truncated comment 2018-03-21 16:53:40 -05:00
Scott Lahteine ba55602462 Tweaks to M915 2018-03-21 05:41:00 -05:00
Scott Lahteine ec46336df7 For MK2_MULTIPLEXER undef DISABLE_INACTIVE_EXTRUDER
Fix #10098
2018-03-21 05:41:00 -05:00
Scott Lahteine d57adbb88b Trust the bootloader to clear globals 2018-03-21 05:41:00 -05:00
Scott Lahteine b24099c9d0 Allow G53 to go back to native space 2018-03-21 01:38:41 -05:00
Scott Lahteine 203d3f8f56 UBL G29 parity with 2.0.x 2018-03-21 01:36:16 -05:00
Scott Lahteine d9e1cbebea Tweak use of move_z_after_probing 2018-03-21 01:36:16 -05:00
Scott Lahteine e5fbbbc068 Allow no raise after run_z_probe in probe_pt 2018-03-21 01:36:16 -05:00
Scott Lahteine 4eddcf9142 Also suspend keepalive messages with suspend_auto_report 2018-03-21 00:26:00 -05:00
Scott Lahteine bc01200495 Merge pull request #10101 from thinkyhead/bf1_eeprom_M913
[1.1.x] More complete Trinamic driver options
2018-03-20 23:14:10 -05:00
Scott Lahteine c95e3e3bcb Merge pull request #10165 from AnHardt/bf1_fix_Autotune_THERMAL_PROTECTION_BED_off
[1.1.x] Fix_Autotune_THERMAL_PROTECTION_BED_off
2018-03-20 16:41:22 -05:00
AnHardt 105c81217c Make 2 constants in autotune configurable
But hidden, since changes are rarely needed.
2018-03-20 16:39:27 -05:00
AnHardt 3911c38d5e Fix autotune Thermal Protection
When `THERMAL_PROTECTION_BED` is off but `THERMAL_PROTECTION_HOTENDS` is on, `watch_temp_period` and `watch_temp_increase` are initialized with the values for `THERMAL_PROTECTION_HOTENDS`. Later it is not tested if these values are for the bed or the nozzles.

- Add test.
- Name a constant.

Fix for #10150
2018-03-20 16:38:38 -05:00
Bob-the-Kuhn 80adb124f7 remove MARLIN line , change to logical pin (#10163)
delete physical pins from AT90USB
2018-03-20 16:24:17 -05:00
teemuatlut 8e783e24e8 [1.1.x] TMC: Fix CURRENT_STEP_DOWN (#10169) 2018-03-20 15:15:15 -05:00
Scott Lahteine 8a19bc0c0e Prevent null pointer crash in Endstops::update
Thanks to Evgeny Kotsuba!
2018-03-20 04:23:38 -05:00
Scott Lahteine 312bebff9a Add 'I' parameter to M906/M913/M914; 'T' to M906/M913 2018-03-19 22:06:04 -05:00
Scott Lahteine 4995e0ebfa Quiet M906/M913/M914 with axes. Patch for DISTINCT_E_FACTORS. 2018-03-19 22:06:04 -05:00
Scott Lahteine 84bbd018ab Improve Trinamic support in the EEPROM 2018-03-19 22:06:04 -05:00
Scott Lahteine a03502080e Consolidate smart stepper driver initialization 2018-03-19 22:06:04 -05:00
Scott Lahteine 72776f647b Move _AXIS macro to macros.h 2018-03-19 17:59:59 -05:00
Scott Lahteine 4eb4476ce6 Merge pull request #10153 from thinkyhead/bf1_fewer_options
[1.1.x] Consolidate 3-point probing, auto delta probe radius
2018-03-19 04:47:13 -05:00
Scott Lahteine a66ae52234 Add CorePQ support for BABYSTEPPING (#10074) 2018-03-19 02:51:30 -05:00
Scott Lahteine 68b9503b96 MIN_PROBE_EDGE replaces DELTA_PROBEABLE_RADIUS 2018-03-19 02:17:45 -05:00
Scott Lahteine cf4e2e507f Consolidate 3-point leveling point options 2018-03-19 01:55:51 -05:00
Scott Lahteine af3500044a Power off in kill instead of setting PS_ON to input 2018-03-18 20:59:02 -05:00
Scott Lahteine 5793ca42b5 Fix matrix.debug output 2018-03-18 20:03:34 -05:00
Scott Lahteine 07b1ac06a9 More concise tmc_util output, fix a ternary type 2018-03-18 19:10:16 -05:00
Scott Lahteine bba2a3b906 Prevent lcd_update stack overflow on SD Card change 2018-03-18 18:53:34 -05:00
Scott Lahteine 80c70f33eb Squash UBL G29 postscript comment 2018-03-18 18:35:41 -05:00
Scott Lahteine d16f443d33 Fix home_delta for SENSORLESS_HOMING (#10144) 2018-03-17 20:52:14 -05:00
Scott Lahteine f7de05e50c General spacing cleanup 2018-03-17 16:51:34 -05:00
Scott Lahteine c8b2fbd91e PlatformIO default baud rate for Mega2560 2018-03-17 16:49:39 -05:00
Mitchell Abbott aef23c9637 [1.1.x] Update X/Y/Z pin assignments for Einsy Rambo (#10131) 2018-03-17 16:40:15 -05:00
Scott Lahteine 7cf2788cc3 Easier override of ST7920 LCD timing 2018-03-17 02:37:24 -05:00
Scott Lahteine c294613b53 Fix CardReader::getStatus when not printing 2018-03-17 02:37:24 -05:00
Scott Lahteine 4dc4d348d4 Merge pull request #10120 from thinkyhead/bf1_misc_fixes_mar16
[1.1.x] Reduce size of "only one" sanity checks
2018-03-16 21:43:15 -05:00
Scott Lahteine 6146126b2a Fix SWITCHING_EXTRUDER manual movement 2018-03-16 03:21:56 -05:00
Scott Lahteine 5492f15633 Reduce size of "only one" sanity checks 2018-03-16 02:43:28 -05:00
Scott Lahteine 4d1df2e357 Fix some spelingz 2018-03-16 01:26:38 -05:00
Scott Lahteine 954f03b6a8 Merge pull request #10119 from thinkyhead/bf1_long_filename_M27
[1.1.x] Add 'M27 C' to echo filename (and long name)
2018-03-15 23:07:20 -05:00
Scott Lahteine a560c0f7cd Add C parameter to M27 to get the current filename
In answer to #10001

Add an option to retrieve the currently open file name (long filename if possible).
2018-03-15 22:55:30 -05:00
Scott Lahteine ec30e8c9ef Allow NULL prepend in lsDive 2018-03-15 22:41:56 -05:00
Scott Lahteine bc0e977229 Delta support for multiple hotends with offsets (#10052) 2018-03-15 22:29:33 -05:00
Scott Lahteine 1993365967 Update Marlin for newest TMC libraries
- TMC2130Stepper v2.2.0
- TMC2208Stepper v0.0.4
2018-03-15 21:23:15 -05:00
shaktee c2ba9a03ee BIBO2 default update and Cyclops config (#10107) 2018-03-15 00:17:04 -05:00
Scott Lahteine 7b2ea8febe Sync main adv config with recent change 2018-03-15 00:09:23 -05:00
Scott Lahteine e38307355e Fix E direction for MK2_MULTIPLEXER and LIN_ADVANCE 2018-03-14 07:57:19 -05:00
Scott Lahteine 5c81ce2bb8 When STATUS_EXPIRE_SECONDS is 0, hide the position. (#10100)
Some users may prefer to hide the position updates on the `LIGHTWEIGHT_UI` altogether. This leads to an even less cluttered display (it also saves on SPI traffic and one byte of RAM).
2018-03-14 02:44:41 -05:00
Studiodyne 7f8984b500 [1.1] FWRetract Reset (Best way) (#10084) 2018-03-14 01:34:15 -05:00
Scott Lahteine 062b955f1d Merge pull request #10092 from thinkyhead/bf1_trinamic_config
[1.1.x] Clean up Trinamic config options, sanity check
2018-03-14 01:16:35 -05:00
Scott Lahteine ccb2a95456 Update includes for gcode.h => parser.h 2018-03-14 01:01:45 -05:00
Scott Lahteine 00165699e9 Move gcode.* to parser.* for 2.0.x parity 2018-03-14 00:55:20 -05:00
Scott Lahteine cc4148e246 Use lcd_goto_previous_menu_no_defer more 2018-03-14 00:49:11 -05:00
Scott Lahteine dc98ee553f Fix compiler warning for ANALOG_SELECT 2018-03-13 22:33:56 -05:00
Scott Lahteine 738a8495ad Improve TMC config organization, naming 2018-03-13 21:43:43 -05:00
Scott Lahteine 17b4ba7c9c Add TMC2208 include in tmc_util.h 2018-03-13 21:41:12 -05:00
Shen Yiming 96c54c188a Fix MKS_12864_OLED blank issue #10071 (#10094) 2018-03-13 04:51:21 -05:00
Scott Lahteine e63cb5fe8f [1.1.x] Make MIN_PROBE_EDGE a general option (for electronic probes) (#10068)
Some probes don't work near the edges of the bed. This change promotes MIN_PROBE_EDGE to a general setting that applies to all probing functions.
2018-03-13 01:15:29 -05:00
Scott Lahteine 4dad8628ff Move MKS_12864OLED to lcd_implementation_init 2018-03-12 08:51:48 -05:00
Scott Lahteine 009fd186f8 M218: report with no parameters 2018-03-12 08:08:52 -05:00
Scott Lahteine 8c7e98627f Patch do_blocking_move_to so 'destination' can be used 2018-03-12 08:06:48 -05:00
Scott Lahteine 656c3c3b2a Followup to auto-assign dual axis CS pins 2018-03-12 07:23:02 -05:00
Scott Lahteine 9ec8762497 Fix typo in ubl.prepare_segmented_line_to 2018-03-11 10:22:52 -05:00
Scott Lahteine 39d63b800c Merge pull request #10054 from thinkyhead/bf1_z_after_probing
[1.1.x] Add Z_AFTER_PROBING option
2018-03-11 10:22:31 -05:00
Scott Lahteine 33b18dc801 Add Z_AFTER_PROBING to example configs 2018-03-11 09:48:03 -05:00
Scott Lahteine 0aa100a31e Add Z_AFTER_PROBING option
Some fix-mounted probes need manual stowing. And after probing some may prefer to raise or lower the nozzle. This restores an old option but tailors it to allow raise or lower as preferred.
2018-03-11 09:48:02 -05:00
Scott Lahteine 879b54a8bc Auto-assign CS pins for X2, Y2, Z2 (#10056)
Fixes #9211
2018-03-11 09:25:02 -05:00
Scott Lahteine d1256be7ec FlushSerialRequestResend => flush_and_request_resend 2018-03-11 07:34:21 -05:00
Scott Lahteine eb6f44372e Finish scroll_screen, fixing direction/multiplier
Fixes #10041
2018-03-11 04:44:28 -05:00
Scott Lahteine b0abce5a7e Disambiguate 'else' in stepper code 2018-03-10 21:47:08 -06:00
Scott Lahteine 72df10c669 Merge pull request #10038 from thinkyhead/bf1_dual_endstops_offsets
[1.1.x] Dual XYZ endstops parity with 2.0.x
2018-03-10 07:17:20 -06:00
Sebastianv650 b8f1b74abd [1.1.x] Silence M204 (#10036)
`M204` is often used by slicers to set acceleration depending on perimeter, infill, etc., so Marlin's answers are flooding the serial windows. Silence `M204` according to the philosophy that setter commands should only send a reply if no parameter is given.
2018-03-10 07:15:52 -06:00
Scott Lahteine e8fc0e9a57 Move [xyz]_endstop_adj to Endstops class 2018-03-10 06:54:18 -06:00
Scott Lahteine 4b5a42f86a Tweaks to E2END, mesh slot offset 2018-03-10 06:54:18 -06:00
Scott Lahteine 83c83e3127 Update Marlin G-codes summary 2018-03-10 06:54:18 -06:00
Scott Lahteine 5ce64f6d16 Combine __AVR__ and USBCON for 2.0.x parity 2018-03-10 01:51:35 -06:00
Scott Lahteine c05c5d96d9 Merge pull request #10031 from thinkyhead/bf1_unknown_z_no_raise
[1.1.x] Add UNKNOWN_Z_NO_RAISE to prevent Z grinding
2018-03-10 00:57:15 -06:00
Scott Lahteine cce80fd41c Add UNKNOWN_Z_NO_RAISE to example configs 2018-03-09 23:11:35 -06:00
Scott Lahteine 1b79217fbc Add UNKNOWN_Z_NO_RAISE option
With this option enabled, Z won't ever be raised until after `G28` has been completed, and it won't raise if Z becomes unknown. This is good for machines whose beds fall when Z is powered off.
2018-03-09 23:11:35 -06:00
Scott Lahteine 192507b524 Move do_probe_raise closer to set_probe_deployed
…and limit the raise to Z_MAX_POS
2018-03-09 23:03:12 -06:00
Scott Lahteine 0d13c5d077 Fix position_is_reachable_by_probe, add comments
Fix #10029
2018-03-09 21:18:50 -06:00
Roxy-3D fd3e243989 prevent steppers from turning off during manual probes 2018-03-09 17:54:41 -07:00
Scott Lahteine 12b697c5cd Fix UPDATE_ENDSTOP for CorePQ compatibility
Fixes #9939
2018-03-09 08:49:44 -06:00
Scott Lahteine 03676d8e2f Fix _tmc_say_axis string address
Fixes #10003
2018-03-09 06:07:52 -06:00
Scott Lahteine ea6f5e20a6 Merge pull request #10021 from thinkyhead/bf1_safe_stepper_pulse
[1.1.x] Set a safe default MINIMUM_STEPPER_PULSE of 2µs
2018-03-09 05:25:05 -06:00
Scott Lahteine 3c6d2d7711 Add more delay before pulse off in Linear Advance ISR
A capital idea from https://github.com/MarlinFirmware/Marlin/pull/9914#issuecomment-371614153
2018-03-09 05:24:10 -06:00
Scott Lahteine a9392c6b27 Set a safe default MINIMUM_STEPPER_PULSE of 2 2018-03-09 03:59:18 -06:00
Scott Lahteine fa12866de3 Have position_is_reachable_by_probe use the whole bed (#10019)
Previously `position_is_reachable_by_probe` was limited to the area specified for `G29` mesh leveling (even if leveling was disabled). This change will properly consider the entire bed area so that `G30` and other non-leveling probing may take place.
2018-03-09 03:38:00 -06:00
Scott Lahteine 9508f9ec75 Fix: utility.h requires types.h 2018-03-09 03:33:25 -06:00
Scott Lahteine beb7e2ed93 Allow servo.cpp to use safe_delay 2018-03-09 03:07:55 -06:00
Scott Lahteine f24cdf1081 Add Einsy RAMBo board (#10018) 2018-03-09 01:40:34 -06:00
Scott Lahteine 61be06ef70 More .vscode droppings 2018-03-09 00:55:25 -06:00
Scott Lahteine ba1c2a9819 Update servo.* for parity with 2.0.x 2018-03-08 19:32:32 -06:00
Scott Lahteine e5e3c3ff35 Update powersupply_on in power_on/off (#10014)
Fix #10004
2018-03-08 18:56:41 -06:00
Scott Lahteine 9c667b5436 Init old_red to 127 to ensure initial change
Fix #10012
2018-03-08 18:27:39 -06:00
Scott Lahteine de8fbdea6d Init watchdog last in setup() 2018-03-08 17:36:01 -06:00
Scott Lahteine 282170a259 Tweak manual move eindex arg 2018-03-08 16:26:11 -06:00
Scott Lahteine 31980f01ba Wrap stepper_indirection macros in do{}while(0) 2018-03-08 16:23:49 -06:00
Scott Lahteine dcd2fa9291 Fix compile error with MAX_MESSAGE_LENGTH
Fix #9988
2018-03-07 21:58:19 -06:00
Bob-the-Kuhn 967d1034d9 Merge pull request #9986 from Bob-the-Kuhn/20x4-garbled-char-1.1.x
[1.1.x] Always Completely Initialize Character LCD (Garbled Custom Characters)
2018-03-07 17:57:41 -06:00
Bob-the-Kuhn 179de4423d remove conditional download of custom character RAM 2018-03-07 17:50:18 -06:00
Scott Lahteine d11ed30584 Fix compile error with char LCD
Followup to f177da4
2018-03-07 16:53:03 -06:00
Scott Lahteine 1381b5d57d Fix LA_active_extruder (static) 2018-03-07 05:50:35 -06:00
Scott Lahteine 63d6dddae1 Wrap stepper_indirection macros 2018-03-07 05:45:30 -06:00
Sebastianv650 e5d69d313c Fix for LA (#9965)
Missed in the original LA 1.5 PR: eISR has to use a local copy of
current_block->use_advance_lead because it might still run wenn the last
block has been set to NULL.
2018-03-07 05:32:49 -06:00
Scott Lahteine f177da45bb Fix encoder position for sddirectory 2018-03-07 05:20:15 -06:00
Scott Lahteine 5a1ba9c32f Merge pull request #9978 from thinkyhead/bf1_suppress_autoreport
[1.1.x] Capability to suppress auto-reporting
2018-03-07 03:33:26 -06:00
Scott Lahteine dc40b3ec00 Suspend auto-report during UBL map output 2018-03-07 01:58:37 -06:00
Scott Lahteine e7d519c898 Add suspend_auto_report flag to suppress auto-report 2018-03-07 01:58:37 -06:00
Scott Lahteine 2bf1bbf399 Add HAS_TEMP_SENSOR conditional 2018-03-07 01:58:31 -06:00
Scott Lahteine 2d0d5eccd8 Move AUTO_REPORT_SD_STATUS to SDSUPPORT block 2018-03-07 01:58:31 -06:00
Scott Lahteine 1f77930e01 Rebuild SD file sort array on Stop SD Print (#9975)
Thanks Chuck Hellebuyck.
2018-03-07 01:42:30 -06:00
Scott Lahteine 1ed1882766 Strip extra newline 2018-03-07 00:22:31 -06:00
Scott Lahteine 4dd612a68d Merge pull request #9977 from thinkyhead/bf1_auto_report_sd_status
[1.1.x]  Add AUTO_REPORT_SD_STATUS feature
2018-03-07 00:17:38 -06:00
Scott Lahteine dc733192be Add AUTO_REPORT_SD_STATUS to example configs 2018-03-07 00:06:17 -06:00
Scott Lahteine fb9de6e787 Add AUTO_REPORT_SD_STATUS feature
For parity with 2.0.x ahead of 1.1.9 release.
2018-03-07 00:06:03 -06:00
Scott Lahteine b935bc948a Merge pull request #9973 from thinkyhead/bf1_tmc_util_progmem
[1.1.x] Move tmc_util.* extended_axis_codes to PROGMEM
2018-03-06 23:50:56 -06:00
Scott Lahteine ecddd2a655 Make enums into implicit char 2018-03-06 23:36:56 -06:00
Scott Lahteine fa998178e9 Move extended_axis_codes to PROGMEM 2018-03-06 22:20:35 -06:00
Scott Lahteine ed605e77fa Merge pull request #9970 from thinkyhead/bf1_lin_advance_duplication
[1.1.x] Support duplication mode in LIN_ADVANCE
2018-03-06 21:59:46 -06:00
Scott Lahteine 73aa7ffff9 LIN_ADVANCE single stepper optimization 2018-03-06 19:27:43 -06:00
Scott Lahteine 50ad30259f Support duplication mode in LIN_ADVANCE 2018-03-06 19:12:54 -06:00
Scott Lahteine 8139154243 Merge pull request #9968 from thinkyhead/bf1_monitor_tmc_output
[1.1.x] Show E0-E4 in monitor_tmc_driver output
2018-03-06 19:00:58 -06:00
Scott Lahteine fa3492fc6e Support DISTINCT_E_FACTORS in tmc_util.cpp 2018-03-06 18:34:43 -06:00
Scott Lahteine 536fa07ed5 Show E0-E4 in monitor_tmc_driver output
Fix #9966
2018-03-06 18:27:37 -06:00
Scott Lahteine 828dea2ee0 Improvements to Lightweight ST7920 status screen. (#9960)
- Show units on lightweight status screen.
- Fixed progress bar so it works with M73
2018-03-06 01:49:45 -06:00
Scott Lahteine 3bae28a5e1 Put more code between pulse start and stop (#9956) 2018-03-05 23:05:42 -06:00
Scott Lahteine 70e9c07b2d Fix menu highlight glitch, tweak scrolling code (#9954) 2018-03-05 23:05:05 -06:00
Scott Lahteine 55ec7d43ef Hide .vscode in sublime 2018-03-05 20:44:02 -06:00
Scott Lahteine 0b016c08c9 M851 - report only with no Z parameter 2018-03-05 02:10:32 -06:00
Scott Lahteine 890a396a2a Import FilamentRunoutSensor with debounce (#9947) 2018-03-05 01:49:19 -06:00
Scott Lahteine b01f10dfac Fix custom bootscreen compiler warning 2018-03-04 23:37:32 -06:00
Scott Lahteine f0d8d76f68 Use static classes for job timers (#9940) 2018-03-04 22:52:25 -06:00
Sebastianv650 bc08ce86be Fix broken reverse planner (#9914)
See MarlinFirmware/Marlin#9913 for details.
2018-03-04 21:18:35 -06:00
Scott Lahteine 081ab35e82 Remove some trailing whitespace 2018-03-04 21:13:36 -06:00
Scott Lahteine eacb8346af Fix #9904 - toDigital should show 00-99 hours 2018-03-04 15:03:31 -06:00
Scott Lahteine d77be210c1 Fix EXTRA_CYCLES_E handling in LIN_ADVANCE 2018-03-04 15:03:31 -06:00
Scott Lahteine e98288ecab Merge pull request #9930 from teemuatlut/bf1_fix_M915 2018-03-04 03:45:20 -06:00
teemuatlut cfc41e5587 Combine TMC2130 and TMC2208 sections 2018-03-04 11:27:08 +02:00
teemuatlut 36a94ac586 Fix M915 compiling 2018-03-04 11:26:30 +02:00
Scott Lahteine 5ad60d89a8 autotemp_factor is not value_celsius_diff
See https://github.com/MarlinFirmware/Marlin/issues/9852#issuecomment-369861822
2018-03-03 23:29:35 -06:00
Thomas Moore bdfeb54a9d Clear retracted status when homing the Z axis 2018-03-03 23:17:10 -06:00
Scott Lahteine 1f488292cd Add board MKS_BASE_HEROIC (#9924)
Followup to #9008

- Don't define micro-stepping pins for boards that lack them.
- Allow setting of 128 microsteps with `M350`.
2018-03-03 23:14:28 -06:00
Scott Lahteine b6fa55aa37 Fix: M112 calling kill from interrupt (#9922)
Fix #9906
2018-03-03 23:13:53 -06:00
Scott Lahteine 7450b7c36e Sanity check for custom boot / status bitmaps 2018-03-03 20:31:06 -06:00
Scott Lahteine 3cdd2591ed Update custom boot screen description 2018-03-03 20:10:35 -06:00
Scott Lahteine 699b5f5b30 Include .github folder in Sublime Text project 2018-03-03 19:49:03 -06:00
Scott Lahteine 4a30fe1a44 Add templates, contributing, code of conduct 2018-03-03 19:42:02 -06:00
Scott Lahteine 63b13588a8 Enhance github helper scripts (#9887) 2018-03-01 20:40:53 -06:00
Scott Lahteine cd4c35c543 Correct M401 / M402 description 2018-03-01 19:11:30 -06:00
Scott Lahteine b86125c6d6 Update M900 verbiage 2018-03-01 15:25:33 -06:00
Ben Lye 432b72e7a8 Fix DIGITAL_PIN_TO_ANALOG_PIN macro for Atmega1284p (#9883) 2018-03-01 15:14:08 -06:00
Scott Lahteine a6326d25fb Drop SCARA_FEEDRATE_SCALING
The updated planner takes the length of the move, so this pre-calculation is no longer needed.
2018-03-01 04:28:42 -06:00
Bob-the-Kuhn de26374746 [1.1.x] Add 1284 support & misc. bug fixes (#9869) 2018-03-01 03:05:27 -06:00
Studiodyne d25f0a5a21 Fix for Fwretract bugfix1.1.x (#9872) 2018-03-01 02:59:42 -06:00
Sebastianv650 951b65c2de Add sanity checks to Linear Advance 1.5 (#9859) 2018-03-01 02:10:39 -06:00
Scott Lahteine f7b44ac2a6 Fix SENSORLESS_HOMING for Core Kinematics (#9871) 2018-03-01 01:49:41 -06:00
Scott Lahteine 803c3169ad Fix lcd_quick_feedback for BTN_BACK 2018-02-28 20:23:34 -06:00
AnHardt f151bf8bb7 Fix some mapper, charsize problems (#9865) 2018-02-28 18:56:45 -06:00
Scott Lahteine 198b059b44 Fix manual move axis display value
The workspace offset is now added to the XYZ values.
2018-02-28 17:31:38 -06:00
Scott Lahteine a18d6171a6 Fix Z safe homing sanity check for no probe
Fix #9851
2018-02-28 05:30:24 -06:00
Scott Lahteine 8af3c04e7d Fix BTN_BACK
Followup to #9836
2018-02-28 03:27:36 -06:00
Anton Piliugin c5fd486e91 [bugfix-1.1.x] Update russian language 28 Feb 2017 (#9849) 2018-02-28 03:06:33 -06:00
Scott Lahteine 03da376104 findMissingTranslations.sh tweak 2018-02-28 01:13:20 -06:00
Ben Lye 897170294c Fix Zonestar / ADC keypad with RAMPS. (#9841) 2018-02-28 00:07:42 -06:00
Scott Lahteine 2bde53bd46 Add support for BACK button (if any) (#9836) 2018-02-26 22:53:08 -06:00
Scott Lahteine 1eb3364ac9 Import ENABLE_LEVELING_FADE_HEIGHT from 2.0.x (#9834) 2018-02-26 22:16:09 -06:00
Scott Lahteine ce5c848284 Remove dupes from pinsDebug_list.h 2018-02-26 19:19:13 -06:00
Scott Lahteine 114e9b0f56 Fix CR-10 status screen missing commas
Fix #9660
2018-02-26 15:50:04 -06:00
geigerg 3f56bd91d2 Add files via upload (#9827) 2018-02-26 15:44:24 -06:00
Scott Lahteine ddfddae4f4 Fix subsequent G29 J commands
Fix #9826. Solution by @gloomyandy
2018-02-26 14:51:40 -06:00
Scott Lahteine c776cda9fa Pins parity with 2.0.x 2018-02-26 01:20:57 -06:00
Scott Lahteine 9d7a1ae9f5 Mesh export in Bilinear + UBL M503 (#9818) 2018-02-26 01:00:56 -06:00
Scott Lahteine 97a35dd534 Compile flags needed in UBL.h 2018-02-25 22:18:13 -06:00
Scott Lahteine e3e51a9a8d Fix types.h dependency 2018-02-25 22:01:01 -06:00
Scott Lahteine d0720a565f Finish ubl header patch
Followup to aa380ae
2018-02-25 21:35:11 -06:00
Sebastianv650 72d5029f42 Useless line removed (#9813)
nextAdvanceISR is set in the next if structure in every possible
situation, so it's useless to set it once more before.
2018-02-25 21:21:15 -06:00
Scott Lahteine aa380aeb4b Parity with 2.0.x in ubl and EEPROM (#9817) 2018-02-25 21:17:36 -06:00
Scott Lahteine 1617798287 Remove conditional wrap from ubl.h 2018-02-25 20:40:05 -06:00
Scott Lahteine 8f6a5d538f Fix CONFIG_ECHO_START
In reference to #9633
2018-02-25 05:37:05 -06:00
Scott Lahteine c1a1f80fff Standardize encoder buzz defaults 2018-02-24 22:55:46 -06:00
Scott Lahteine 8488d64062 Standardize encoder defaults 2018-02-24 22:37:55 -06:00
Scott Lahteine 0977226a4b Merge pull request #9801 from thinkyhead/bf1_enders_are_legion
[1.1.x] Creality Ender-4 configuration
2018-02-24 22:10:51 -06:00
Scott Lahteine 7dab8ca5dc Add Creality Ender-4 configurations 2018-02-24 22:01:16 -06:00
Scott Lahteine d0c8aabd28 Move Creality Ender-2 configurations 2018-02-24 22:01:11 -06:00
Scott Lahteine 8c22f9fd4f Bring some example configs up to speed 2018-02-24 22:00:15 -06:00
Scott Lahteine 2e3d74f60f Drop a conditional only used once 2018-02-24 16:31:05 -06:00
Scott Lahteine 2a1162b42c Extend .gitignore to make VSCode happy 2018-02-24 15:54:20 -06:00
Roxy-3D 9e3025e07b Change Folger Tech i3-2020 defaults... 2018-02-24 10:28:08 -06:00
Scott Lahteine 5299b577d1 Spanish (UTF8) Language (#9785)
From #7314 by @MrAmericanMike
2018-02-23 20:23:35 -06:00
Scott Lahteine 47619e4476 Fix a progress bar condition 2018-02-23 19:42:01 -06:00
Scott Lahteine 6845f17fb2 Prettify LCD_PROGRESS_BAR options 2018-02-23 19:13:03 -06:00
Zachary Hill 2aaa1a5815 Further fix of LCD_PROGRESS_BAR (#9784) 2018-02-23 18:52:25 -06:00
Scott Lahteine f36da47b85 tweak pins_RAMPS.h 2018-02-23 15:10:25 -06:00
Scott Lahteine 03da273ea6 Fix LCD_PROGRESS bar
Fix #9208
2018-02-23 13:59:55 -06:00
Scott Lahteine 1c1d444b0c Merge pull request #9774 from thinkyhead/bf1_g28_restore_leveling
[1.1.x] Add RESTORE_LEVELING_AFTER_G28 option
2018-02-23 13:43:03 -06:00
Scott Lahteine 742733d714 Un-pause on print cancellation (#9779) 2018-02-23 13:42:21 -06:00
Scott Lahteine 235d024505 Add RESTORE_LEVELING_AFTER_G28 to example configs 2018-02-23 12:42:21 -06:00
Scott Lahteine 921001f004 Add RESTORE_LEVELING_AFTER_G28 option
Reference #8670
2018-02-23 12:42:17 -06:00
Scott Lahteine 0d9d11a2d5 Fix HardwareSerial include for TMC2208 2018-02-23 12:33:14 -06:00
Scott Lahteine 113a5fa80e Fix broken LEVEL_BED_CORNERS
Fix #8805
2018-02-23 09:10:33 -06:00
Scott Lahteine 4ea058260b Fix #9732 again 2018-02-23 03:59:40 -06:00
Sebastianv650 9c65890644 [1.1.x] LIN_ADVANCE v1.5 (#9700) 2018-02-23 00:53:41 -06:00
Roman Moravčík e41b2274b0 [1.1.x] Added missing slovak translation of MSG_THERMAL_RUNAWAY_BED. (#9764) 2018-02-23 00:48:16 -06:00
Scott Lahteine 85162da0df Fix Z value on HD44780 (#9770) 2018-02-23 00:42:55 -06:00
Scott Lahteine d55aaf95e8 Merge pull request #9761 from thinkyhead/bf1_lightweight_glcd
[1.1.x] Lightweight status screen for ST7920
2018-02-22 23:55:24 -06:00
Roman Moravčík d6c416bb22 [1.1.x] Slovak translation update. (#9760) 2018-02-22 03:01:00 -06:00
Masterkookus 5f6a8588c5 [1.1.x] Hatchbox Alpha Config with E3Dv6 (#9721) 2018-02-22 02:57:38 -06:00
Scott Lahteine 1c95c13224 Lightweight status screen for ST7920
- This status screen uses the ST7920 character generator to greatly reduce SPI traffic and MCU load when updating the status screen.

- Has been tested with the RepRapDiscount Full Graphics Smart Controller but should work with any LCD that uses an ST7920 or fully compatible controller.
2018-02-22 00:46:25 -06:00
Scott Lahteine 967076b080 Add LIGHTWEIGHT_UI to example configs 2018-02-22 00:25:53 -06:00
Scott Lahteine 855b188102 Hephestos2 heated bed kit for all (#9756) 2018-02-21 22:26:56 -06:00
Scott Lahteine a1d4835404 Merge pull request #9755 from thinkyhead/bf1_cr10s_mini
[1.1.x] Creality CR-10mini configuration
2018-02-21 20:30:01 -06:00
Scott Lahteine 6759be43ea Add CR-10S _Bootscreen.h 2018-02-21 20:19:12 -06:00
Scott Lahteine 6e0001b4f8 Add CR-10mini configuration 2018-02-21 20:19:12 -06:00
Scott Lahteine 84f0ce4751 Some encoder steps handled in Conditionals_LCD.h 2018-02-21 20:19:11 -06:00
Scott Lahteine d9e2acd1b2 Configs parity with 2.0.x 2018-02-21 20:19:11 -06:00
Scott Lahteine e8f9473be2 Fix progress bar on DOGM with LCD_SET_PROGRESS_MANUALLY 2018-02-21 19:43:45 -06:00
Scott Lahteine 126a80ea83 Reduce Creality3D bootscreens flash usage (#9745) 2018-02-21 16:08:27 -06:00
Scott Lahteine aa635fe9f1 pinsDebug patch 2018-02-21 14:21:07 -06:00
Roxy-3D d473456a08 Fix botched check for being off the mesh... 2018-02-21 13:50:27 -06:00
Scott Lahteine 7761812532 Merge pull request #9743 from thinkyhead/bf1_sainsmart_20x4
[1.1.x] Sainsmart LCD 20x4
2018-02-20 20:54:38 -06:00
Scott Lahteine 18881e6725 Add 20x4 option for Sainsmart LCD 2018-02-20 20:09:49 -06:00
Scott Lahteine 1d78bdac82 quick_home_xy sensorless homing 2018-02-20 20:09:45 -06:00
Scott Lahteine e1fc89c83f Sanitycheck 2.0.x parity 2018-02-20 20:06:17 -06:00
Scott Lahteine 35800eec02 Fix big edit font width calculation
Fix #9685
2018-02-20 06:43:48 -06:00
Scott Lahteine 83e093f5cc Fix MALYAN_LCD message bug
Fix #9711
Based on #9731
2018-02-20 05:43:18 -06:00
Scott Lahteine 2b7e5c8e6c Extend menu items for SWITCHING_EXTRUDER
In reference to #5367
2018-02-19 11:11:04 -06:00
Scott Lahteine 3c2f735fb8 Conditionals for SWITCHING_EXTRUDER
In reference to #5367. SWITCHING_EXTRUDER was not fully implemented for EXTRUDERS > 2.
2018-02-19 10:58:06 -06:00
Scott Lahteine e3370d097a Add a SENSORLESS_HOMING delay to quick_home_xy
Fix #9471
2018-02-19 10:11:25 -06:00
Scott Lahteine f39b28b6a9 Null-terminate lcd_status_message 2018-02-19 10:07:22 -06:00
Scott Lahteine b1ec140f0b Don't raise FIX_MOUNTED_PROBE on stow
Reference #9336
2018-02-19 08:34:25 -06:00
Scott Lahteine 6e932f979d CR-10 Bootscreen
From @plainpylut in #9660
2018-02-19 08:05:32 -06:00
Scott Lahteine d3dea2e091 Merge pull request #9717 from thinkyhead/bf1_multi_fil_runout
[1.1.x] Support multiple filament runout sensors
2018-02-19 07:04:53 -06:00
Scott Lahteine cc8711419e Add NUM_RUNOUT_SENSORS to example configs 2018-02-19 06:25:36 -06:00
Scott Lahteine c04f8e8c9d Support for multiple filament runout sensors 2018-02-19 06:25:35 -06:00
Scott Lahteine 4813938a87 Update configs for 2.0.x parity 2018-02-18 19:42:20 -06:00
quittenkaes 971732b9f6 Add a delay before moving to z_safe_homing position if using TMC2130 sensorless homing (#9705)
A short delay is needed after homing an axis with TMC 2130 sensorless homing. Otherwise the axis wont move.
2018-02-18 19:29:06 -06:00
Scott Lahteine 1997640e41 Sync pinsDebug_list.h and apply macros (#9690) 2018-02-18 02:25:47 -06:00
Scott Lahteine b45a277c52 ENDER can use BOARD_MELZI_CREALITY (#9694) 2018-02-18 02:24:23 -06:00
Scott Lahteine 016bd86c28 Add MSG_THERMAL_RUNAWAY_BED (#9695) 2018-02-18 02:24:08 -06:00
Scott Lahteine fc709c28b5 Merge pull request #9698 from thinkyhead/bf1_codependent_xy_homing
[1.1.x] Option to force homing of a dependent axis
2018-02-18 02:22:25 -06:00
Scott Lahteine 65d69e9507 Strip excess G28 debug logging 2018-02-18 01:09:56 -06:00
Scott Lahteine 28e7562e7a Add CODEPENDENT_XY_HOMING to example configs 2018-02-18 01:09:51 -06:00
Scott Lahteine 2e5a6243df Option to force X or Y to home first when homing the other axis 2018-02-18 01:06:57 -06:00
Bob-the-Kuhn d413781b98 Fix setPwmFrequency declaration (#9687) 2018-02-17 23:19:49 -06:00
Scott Lahteine 50d38e7d03 Pins spacing, 2.0.x parity 2018-02-17 21:49:00 -06:00
Scott Lahteine 80784c4d11 Remove sanity check for delta probe plug 2018-02-17 18:51:25 -06:00
Scott Lahteine 8761cb0464 Merge pull request #9682 from thinkyhead/bf1_m73_without_sd
[1.1.x] Allow M73 without SDSUPPORT
2018-02-17 15:50:19 -06:00
Scott Lahteine aceadabe89 Merge pull request #9674 from bytespider/bugfix-1.1.x
Add TronXY XY100 config
2018-02-17 15:49:29 -06:00
Scott Lahteine 3a1fedaee6 Update LCD_SET_PROGRESS_MANUALLY in configs 2018-02-17 15:41:20 -06:00
Scott Lahteine a1f0d9d349 Allow LCD_SET_PROGRESS_MANUALLY without SDSUPPORT 2018-02-17 15:41:20 -06:00
Scott Lahteine c67cefd913 2.0.x parity in ultralcd__impl_HD44780.h 2018-02-17 15:41:20 -06:00
Scott Lahteine c71f542d61 LCD_PROGRESS_BAR w/out SDSUPPORT for character LCD 2018-02-17 15:41:20 -06:00
Scott Lahteine fe5ba25a00 Fix #9681 2018-02-17 15:39:46 -06:00
Scott Lahteine 4ae9afcc56 Fix compile error with SHOW_BOOTSCREEN disabled
Fix #9530
Fix #9524
2018-02-17 15:39:46 -06:00
Scott Lahteine c3ff130127 Merge pull request #9672 from thinkyhead/bf1_czech_mate
[1.1.x] Update Czech language
2018-02-16 22:47:47 -06:00
Scott Lahteine fbf8819253 Make safe_delay available for neopixel startup test
Fix #9033
2018-02-16 22:25:57 -06:00
Scott Lahteine a7ebbe6dcd Update Czech advanced pause 2018-02-16 22:22:12 -06:00
Scott Lahteine 49909d3cd1 Add CHARSIZE to ignorelist 2018-02-16 22:20:09 -06:00
Scott Lahteine ada40af5d6 Move <avr/pgmspace.h> include to MarlinConfig.h
For parity with 2.0.x, which includes pgmspace.h in the HAL.
2018-02-16 18:40:39 -06:00
Scott Lahteine ec045f39aa Merge pull request #9678 from thinkyhead/bf1_myserial_yourserial
[1.1.x] Use serial macros over direct calls
2018-02-16 18:27:44 -06:00
Scott Lahteine ba4a17f251 Tweak serial.h 2018-02-16 17:54:07 -06:00
Scott Lahteine 12628d43ce Use serial macros where possible 2018-02-16 17:53:47 -06:00
Scott Lahteine 023d21a1cf Add SERIAL_FLUSH and SERIAL_FLUSHTX macros 2018-02-16 17:50:58 -06:00
Scott Lahteine a8a64f19f4 serial_echopair_P => serial_echopair_PGM 2018-02-16 17:35:26 -06:00
Rob Griffiths 529e6ed1ea added TronXY XY100 config 2018-02-16 13:57:01 +00:00
Thomas Moore acb4dba7cd Fix LCD manual movement on kinematic machines (#9656) 2018-02-16 02:30:05 -06:00
Bob-the-Kuhn f508bdded4 Fix VIKI2 hardware SPI compatibility (#9642) 2018-02-16 02:28:42 -06:00
teemuatlut 20f8c9b950 TMC SGT is int8 (#9650) 2018-02-16 02:19:17 -06:00
Scott Lahteine d7e2e655ca Followup to #9663 2018-02-16 02:14:20 -06:00
Bob-the-Kuhn 15204bd5e9 Fix compile issue with USE_CONTROLLER_FAN (#9665) 2018-02-16 02:02:20 -06:00
Scott Lahteine 2ec90d2162 Followup to #9663
`ENABLED` only works for flag type options. Floats must use `#ifdef`.
2018-02-15 22:23:27 -06:00
Scott Lahteine b56c6b9e13 Patch G26 circles (#9626)
Easier to configure. Catch an odd divisor.
2018-02-15 22:11:06 -06:00
Bob-the-Kuhn e4b27c2401 Merge pull request #9668 from Bob-the-Kuhn/config-changes-1.1.x
[1.1.x] Improved CONTROLLER_FAN_PIN example in Configuration_adv.h
2018-02-15 21:45:32 -06:00
Bob-the-Kuhn 1647db8fad Set CONTROLLER_FAN_PIN example to -1 2018-02-15 21:29:09 -06:00
Roxy-3D c8d3069580 UBL - Allow user to control Z-Height correction for off mesh movements (#9663)
* UBL - Allow user to control Z-Height correction for off mesh movements

* Enable UBL_Z_RAISE_WHEN_OFF_MESH on test machine for time being
2018-02-15 19:23:01 -06:00
Roxy-3D b7e245036b Fix a comment about M105 buffer over runs... 2018-02-14 17:49:50 -06:00
Roxy-3D 66370006bb Fix G26 Circles... (#9638)
Will get this duplicated in bugfix_2.0.0 tomorrow...
2018-02-14 17:31:25 -06:00
Roxy-3D 3fcd131f46 Cartesian UBL systems should not use SEGMENT_LEVELED_MOVES
There is significant downside to breaking up the long line segments on UBL Cartesian machines via the SEGMENT_LEVELED_MOVES mechanism.   It adds a lot of extra computation but worse...  It cuts out all of UBL's off mesh Z-Height correction checks.    There have been a large number of people complaining about the nozzle going to infinity or crashing into the bed lately.   They are being caused by
```
void unified_bed_leveling::line_to_destination_cartesian()
```
not watching over the segments being queued up for movement.
2018-02-14 14:19:52 -06:00
Scott Lahteine 0e7999915d Fix #9361 2018-02-14 07:47:39 -06:00
AnHardt e301e28e45 Complete M48 description_1 (#9630) 2018-02-14 05:17:48 -06:00
Scott Lahteine 6e4a7e2dcb Init lcd message string programmatically 2018-02-14 05:08:06 -06:00
studiodyne 8fbba6abd9 [1.1.x] French update (#9610) 2018-02-14 04:17:54 -06:00
Scott Lahteine e2fef4df6f Fix #9201
FILAMENT_LCD_DISPLAY and SDSUPPORT are a-ok together.
2018-02-14 03:28:05 -06:00
Scott Lahteine c93dab2307 MYSERIAL => MYSERIAL0
For cleaner diffing with Marlin 2.0.x.
2018-02-14 02:56:56 -06:00
Scott Lahteine d89a61bd51 Update DIGIPOT_I2C_MOTOR_CURRENTS comments 2018-02-13 22:56:03 -06:00
studiodyne 2683b2636b Update French language (#9590) 2018-02-12 01:08:33 -06:00
Scott Lahteine 7cb3640ea4 Restore welcome message 2018-02-12 01:01:09 -06:00
Scott Lahteine dc85b604bb Merge pull request #9591 from teemuatlut/bf1_fix_M914
[1.1.x] Fix M914 macro
2018-02-11 08:21:24 -06:00
Scott Lahteine aa3292cc57 Merge pull request #9592 from thinkyhead/bf1_26_days_later
[1.1.x] Apply buried PR for parity with 2.0.x
2018-02-11 06:37:35 -06:00
Scott Lahteine 7e17a2cfd0 26-day-old buried patch to U.B.L. 2018-02-11 06:06:50 -06:00
Scott Lahteine 0acaaf536d Update gMax1.5+ for 2.0.x parity 2018-02-11 05:20:57 -06:00
Scott Lahteine 30b08e218d Patch Max7219 for parity with 2.0.x 2018-02-11 05:19:36 -06:00
teemuatlut 7babfbbcb2 Fix M914 macro 2018-02-11 13:08:55 +02:00
Scott Lahteine 2e7a754ac1 Megatronics baud rate 115200
Fix #9092
2018-02-11 03:42:27 -06:00
Scott Lahteine 61f3051982 Fix plan_arc clockwise (G2)
Fix #9482
2018-02-11 03:32:18 -06:00
Scott Lahteine 69a5e0c136 Add 'mffp' to quickly push upstream (#9588) 2018-02-11 02:21:52 -06:00
Scott Lahteine 73419681dc Update PB Rev.F pins 2018-02-11 01:36:20 -06:00
Scott Lahteine bb155ed38e Correct MOTHERBOARD for Geeetech i3 Pro X
Fix #8856
2018-02-10 20:27:11 -06:00
Scott Lahteine 7aad82cccd Fix auto_fan in pins.h 2018-02-10 20:02:17 -06:00
Scott Lahteine 18aa682954 Patch SILVER_GATE auto fan 2018-02-10 19:29:36 -06:00
Scott Lahteine 5e72729c67 Fix #8744 2018-02-10 16:51:55 -06:00
Scott Lahteine 6f1afb411a Add comments to platformio.ini 2018-02-10 15:50:32 -06:00
Scott Lahteine 016171d682 Merge pull request #9575 from thinkyhead/bf1_more_tests
[1.1.x] Fix Power class
2018-02-10 15:49:51 -06:00
Scott Lahteine f6a73bbd84 Patch Power class 2018-02-10 15:36:42 -06:00
Scott Lahteine baaf79b755 Use signed for pin_t 2018-02-10 15:30:29 -06:00
Scott Lahteine 2aafc5b7b0 Test POWER_SUPPLY and AUTO_POWER_CONTROL 2018-02-10 15:27:06 -06:00
Scott Lahteine 7145731844 Merge pull request #9555 from wizhippo/tronxyx5s
[1.1.x] Tronxy X5S
2018-02-10 15:13:12 -06:00
Douglas Hammond 1e00ba5433 Add Tronxy X5S 2018-02-10 15:03:20 -06:00
Scott Lahteine abda89437d Melzi boards include melzi pins 2018-02-10 15:03:20 -06:00
Scott Lahteine d6d01f1f8e Merge pull request #9571 from thinkyhead/bf1_french_update
Update French language
2018-02-10 14:15:13 -06:00
GMagician 5a39afb81b [1.1.x] Memory overflow protection (#9563) 2018-02-10 14:14:22 -06:00
Scott Lahteine 8f4c564b04 Merge pull request #9565 from teemuatlut/bf1_init_cs_pins
[1.1.x] Init CS pins before loading settings
2018-02-10 14:08:16 -06:00
Scott Lahteine 017e0e6951 Update French language
Based on #9556 by @gege2b
2018-02-10 14:06:02 -06:00
teemuatlut 7ee87dc2db Init CS pins before loading settings 2018-02-10 19:16:08 +02:00
Johnny Eshak 3a3228ef1b [1.1.x] Fix compile Error Anet (Optiboot) (#9550) 2018-02-09 07:16:37 -06:00
Scott Lahteine 5a53e4d921 Merge pull request #9548 from thinkyhead/bf1_prevent_comments_resetting
[1.1.0] Prevent watchdog reset due to many comments
2018-02-09 07:15:10 -06:00
Scott Lahteine 8979990805 Merge pull request #9543 from thinkyhead/bf1_reliable_probe_heaters_off
[1.1.x] More reliable PROBING_HEATERS_OFF with BED_LIMIT_SWITCHING
2018-02-09 07:10:33 -06:00
Matteo Ragni 4e276c6e00 [1.1.x] Support for the Anycubic Trigorilla Board (1.3 at least) (#8367) 2018-02-09 05:38:21 -06:00
Scott Lahteine 96bcf08477 Tweak escape handling in serial input 2018-02-09 04:06:44 -06:00
Scott Lahteine 68cc5c72fd No EXTRUDER_RUNOUT_PREVENT during print 2018-02-09 03:36:42 -06:00
Scott Lahteine 06dff0b7ec Fix HAS_CONTROLLER_FAN in is_power_needed 2018-02-09 03:33:45 -06:00
Scott Lahteine c4dbedd5b6 Prevent watchdog reset due to many comments
Addressing #7449
2018-02-09 01:50:42 -06:00
Scott Lahteine 9727e5e3d6 Minor comment/condition cleanup 2018-02-09 00:53:04 -06:00
Scott Lahteine ad323d852e Sanity check for SERIAL_PORT
Addressing #7400
2018-02-09 00:41:39 -06:00
Scott Lahteine 4300547c66 Size lcd_status_message based on language (#9546) 2018-02-08 23:03:27 -06:00
Scott Lahteine f61ff9c813 Firmware retraction lost change 2018-02-08 22:20:31 -06:00
Scott Lahteine 55071749b7 Minor changes for 2.0.x parity 2018-02-08 22:20:31 -06:00
Scott Lahteine 9dd8a49f82 Add pin_t to Marln 1.1 branch 2018-02-08 21:01:41 -06:00
Scott Lahteine 36ba754842 More reliable PROBING_HEATERS_OFF with BED_LIMIT_SWITCHING 2018-02-08 21:01:41 -06:00
Scott Lahteine 169515404d Merge pull request #9538 from shaktee/bibo-cyclops-1.1x
[1.1.x] BIBO Cyclops
2018-02-08 21:00:59 -06:00
Scott Lahteine 3e838bf6b6 Cyclops has SINGLENOZZLE and higher temp 2018-02-08 19:07:43 -06:00
Scott Lahteine b81980a439 TouchX base config differences 2018-02-08 19:07:43 -06:00
Rajesh Vaidheeswarran 98e7b821b4 Add Cyclops configuration for BIBO 2018-02-08 18:24:40 -06:00
GMagician 03f27a5e41 [1.1.x] Fix compile warning (#9540) 2018-02-08 17:59:24 -06:00
Scott Lahteine cffbb146ea Correct some retract() comments 2018-02-08 17:56:53 -06:00
Scott Lahteine 1ddbdd0321 Not yet, HAS_DISPLAY 2018-02-08 04:03:05 -06:00
Scott Lahteine 4f04f4e6b8 Followup to #9532 2018-02-08 03:39:20 -06:00
Scott Lahteine c1a3ec1228 Tweaky followup to I2CPEM update 2018-02-08 03:21:46 -06:00
Scott Lahteine bdbd15e6d9 Merge pull request #9504 from jaysonkelly/patch-1
[1.1.x] I2C Position Encoders update
2018-02-08 02:57:45 -06:00
Scott Lahteine 5c2cb60f03 Merge pull request #9518 from melvinisken/bugfix-1.1.x
[1.1.x] Changed software serial pins to enable R/W access to TMC2208 drivers
2018-02-08 02:56:58 -06:00
jaysonkelly f8a8711075 I2C position encoders update
Updating I2C position encoders to enable babystepping and Babystep XY when using the ecm microstep correction method. Also changed default method to ECM microstep.
2018-02-08 02:46:12 -06:00
Scott Lahteine b509567567 Merge pull request #9514 from FreeJaus/bugfix-1.1.x-eu
update eu language
2018-02-08 02:10:58 -06:00
Scott Lahteine 2c6c9e90df Merge pull request #9508 from tnw513/fix-italian
Fix italian translation
2018-02-08 02:10:46 -06:00
Scott Lahteine 8438a57910 Followup to #9532 2018-02-08 02:05:18 -06:00
Thomas Moore a471cd26e1 [1.1.x] Enable Z axis and delta sensorless homing (#9532) 2018-02-08 02:02:48 -06:00
Scott Lahteine f089bbbc93 Merge pull request #9531 from thinkyhead/bf1_misc_cleanup_feb7
[1.1.x] Misc. cleanups
2018-02-08 01:50:17 -06:00
Scott Lahteine f3a09768e8 Tweak early handling of M108/M112/M410 2018-02-07 22:43:51 -06:00
Scott Lahteine 9509568b7e Patch utility for debug-leveling 2018-02-07 22:43:51 -06:00
Scott Lahteine 252ae1b52d Drop ubl.h include from steppers.cpp 2018-02-07 22:16:07 -06:00
Scott Lahteine 3137df9ad4 Special override of LCD_WIDTH 2018-02-07 22:16:07 -06:00
Scott Lahteine 42866db251 Fix compile with BLUETOOTH
Addressing #7110
2018-02-07 18:06:26 -06:00
Scott Lahteine 50582e3b47 Add sublime-project file (#9527) 2018-02-07 15:50:00 -06:00
Melvin Isken 0c6c96bb60 Changed software serial pins to enable R/W access to TMC2208 drivers 2018-02-07 09:52:49 +01:00
Scott Lahteine 3621f21fb2 Clean trailing space 2018-02-07 02:40:41 -06:00
1138-4EB 3d346f8398 update eu language 2018-02-07 01:12:37 +01:00
tnw513 41785a10dd Fix italian translation 2018-02-06 15:09:06 +01:00
Scott Lahteine ca76c3df7a Merge pull request #9497 from thinkyhead/bf1_marlin_ino
[1.1.x] Marlin.ino needs no content
2018-02-06 02:28:02 -06:00
Scott Lahteine c4f1a191c3 Marlin.ino needs no content 2018-02-06 01:09:51 -06:00
Scott Lahteine 967bf41080 Add a proper comment for G26 2018-02-06 00:59:54 -06:00
Scott Lahteine 1e4482df54 Merge pull request #9499 from thinkyhead/bf1_auto_power
[1.1.x] Enable / disable PSU automatically
2018-02-06 00:36:31 -06:00
Christopher Reimer 254417e8b0 Enable and disable power supply automatically 2018-02-06 00:20:33 -06:00
Scott Lahteine 80946a17ee Add AUTO_POWER_CONTROL to example configs 2018-02-06 00:20:26 -06:00
Scott Lahteine 1dc6d50dca Merge pull request #9500 from FreeJaus/bugfix-1.1.x-i3PB-GT2560_REV_A_PLUS
[1.1.x] Configs for Prusa i3 Pro B
2018-02-06 00:18:59 -06:00
1138-4EB b86dfd35ae Configs for Prusa i3 Pro B GT2560 Rev.A Plus
One without probe and one with BLTOUCH.
2018-02-05 23:54:19 -06:00
Scott Lahteine 6dbeca94b3 Merge pull request #6735 from Project-J2/UltiController-v2.1-support
[1.1.x] UltiController v2.1 support
2018-02-05 22:32:27 -06:00
Scott Lahteine 527d260581 Add ULTI_CONTROLLER to example configs 2018-02-05 22:24:08 -06:00
Project-J² ae2476dfdb Add UltiController v2.1 support
Add compatibility with the original screen bord from Ultimaker 2 printer
(UltiController v2.1 with the PG-2864ALBP I2C display)
2018-02-05 22:24:08 -06:00
Scott Lahteine 91eaa54ea9 M100 comment 2018-02-05 21:53:21 -06:00
Scott Lahteine 1352acdf75 Adjustment to DOG_CHAR_*_EDIT 2018-02-05 20:24:18 -06:00
Scott Lahteine 123c6c5d34 Num-to-string functions for DEBUG_LEVELING_FEATURE
Fix #9429
2018-02-05 19:05:07 -06:00
Scott Lahteine df320209c3 Patch hex_print_routines.* include order 2018-02-05 17:05:26 -06:00
Scott Lahteine 8da92b6823 Fix default arg in lcd_goto_screen 2018-02-05 16:41:59 -06:00
Scott Lahteine b708bcf8b1 sp 2018-02-05 15:56:58 -06:00
Scott Lahteine 7b3e28fc77 Merge pull request #9489 from GMagician/1.1.x-Simplify-bltouch-configuration
[1.1.x] Simplify bltouch configuration
2018-02-05 14:37:34 -06:00
Scott Lahteine 873fb84d27 Fix const mesh_index_pair in G26
Followup to #9493
2018-02-05 14:29:47 -06:00
Scott Lahteine 7d8f49f82c Merge pull request #9493 from GMagician/1.1.x-Fix-compile-error
[1.1.x] Fix compiler error when G26 is enabled
2018-02-05 14:25:44 -06:00
GMagician 587e6b7c8d [1.1.x] Fix compiler error when G26 is enabled
Address #9491
2018-02-05 21:21:42 +01:00
GMagician f1958ac060 [1.1.x] Simplify bltouch configuration
When using bltouch Z_MIN_ENDSTOP_INVERTING must match Z_MIN_PROBE_ENDSTOP_INVERTING

since both are redefined latter is just redefined equal to first
2018-02-05 19:52:41 +01:00
Scott Lahteine 4d2355cc9e Merge pull request #9485 from thinkyhead/bf1_malyan_clueless_controller
[1.1.x] Malyan LCD controller
2018-02-05 05:03:07 -06:00
Scott Lahteine 0f6f05441b Implement MALYAN_LCD 2018-02-04 21:18:49 -06:00
Scott Lahteine ca58084020 Add MALYAN_LCD to configurations 2018-02-04 21:18:42 -06:00
Scott Lahteine 89a9aa931f SanityCheck.h parity with 2.0.x 2018-02-04 21:17:03 -06:00
Scott Lahteine e9d374dd54 Tweak sanity-check for SENSORLESS_HOMING 2018-02-04 21:17:03 -06:00
Scott Lahteine 21bfbb9d44 Apply standards for whole-file conditions 2018-02-04 21:17:03 -06:00
Scott Lahteine 5054c53901 Export more in ultralcd.h
Closer parity with 2.0.x
2018-02-04 21:17:03 -06:00
Scott Lahteine 56d5c5b97a Misc. comments 2018-02-04 21:16:07 -06:00
Scott Lahteine ad70d76faa Merge pull request #9332 from paierh/bugfix-1.1.x-UBL-pattern
[1.1.x] Change angles for circles in G26-validation-pattern
2018-02-04 19:05:32 -06:00
Scott Lahteine 8f787cc474 Merge pull request #9281 from floyd871/patch-1
[1.1.x] Allow override of RAMPS CS Pins
2018-02-04 16:38:13 -06:00
Michael Neumann 499248c5ef Allow override of RAMPS CS Pins 2018-02-04 06:10:42 -06:00
shaktee 6e86c9d22b Add BIBO configs to Marlin bugfix-1.1.x (#9467)
[1.1.x] BIBO TouchX configuration
2018-02-03 23:20:35 -06:00
Scott Lahteine 9c3a562208 Merge pull request #9448 from tcm0116/1.1.x-kinematic
[1.1.x] Apply feedrate to nozzle movement for kinematic machines
2018-02-03 23:00:00 -06:00
Scott Lahteine d00eb4da5c Language updates for parity 2018-02-03 22:48:06 -06:00
Thomas Moore 5b4e39a429 Apply feedrate to nozzle movement for kinematic machines 2018-02-03 22:17:13 -06:00
Scott Lahteine b11e78f5f7 Merge pull request #9462 from GMagician/1.1.x-temperature-out-of-lcd
[1.1.x] Fix temperature out of LCD
2018-02-03 19:24:38 -06:00
Scott Lahteine 3bdd7b1ed3 Reduce trig table down to 6 floats 2018-02-03 19:16:42 -06:00
GMagician 14b7c8cf51 [1.1.x] Fix temperature out of LCD
Fix bug introduced in #9381

Original code was 18-chars*6 hence reversed number in if statements
2018-02-03 22:58:26 +01:00
paierh 68cff5f245 Change G26 circle angles
Changed the start- and end-angles for circles in the mesh-validation-pattern to avoid crossing lines.

At the start-/end-point of the circles there is a small dot of filament on my printer.
When drawing lines after the circles the nozzle crashes into those dots and destroys the circles.
I solved this problem by rotating the start- and end-points by 45 degrees.
2018-02-02 05:24:31 -06:00
Manuel Valentino 652162777b [1.1.x] Fixed wrong information about TMC2208 wiring (#9334) 2018-02-02 04:14:43 -06:00
teemuatlut 923f17328f Add TMC software SPI (#9362) 2018-02-02 03:56:08 -06:00
Custom3DProducts f4076fe99d [1.1.x] Add Z_PROBE_HYSTERESIS to mitigate Z jerking while probing (#9375) 2018-02-02 02:29:19 -06:00
Scott Lahteine 6445859270 Merge pull request #9373 from nikkoura/fix_fr_strings
[1.1.x] Fix french language (typos, case homogeneity)
2018-02-02 01:54:12 -06:00
GMagician 4661451d32 [1.1.x] Fix compile error on delta when NO_WORKSPACE_OFFSETS (#9387) 2018-02-02 01:43:53 -06:00
Scott Lahteine 22e688460f Merge pull request #9381 from thinkyhead/bf1_enhance_boot_status
[1.1.x] Enhance GLCD Boot/Status screens
2018-02-02 01:40:08 -06:00
Scott Lahteine 8bccd0ef5b Fix up _Bootscreen.h and _Statusscreen.h
- Support for 3 and 4-frame fan animation
- Binary bitmap data for easier visualization
- Cleanup mystery numbers, etc.
2018-02-02 00:55:02 -06:00
Scott Lahteine f4639fa964 Move SET_BIT macro to endstops.cpp and simplify 2018-02-02 00:50:29 -06:00
Scott Lahteine 0a10d010b7 Merge pull request #9390 from tcm0116/1.1.x-retract
[1.1.x] Clear retracted status when homing the Z axis
2018-02-01 23:36:53 -06:00
Scott Lahteine 7a056a4e09 Patch resume_print based on suggestion
See #9392
2018-02-01 23:34:14 -06:00
Scott Lahteine 33c459c1d6 Parser followup patch
Based on #9393
2018-02-01 23:25:22 -06:00
Scott Lahteine 65c2f3bb65 Merge pull request #9435 from thinkyhead/cleanup_binary_deleteme
[1.1.x] Separate 32-bit wide bit macros
2018-02-01 22:44:18 -06:00
Scott Lahteine ec9a5b7157 Merge pull request #9434 from thinkyhead/bf1_fix_G29_W_I_J_Z
[1.1.x] Fix broken G29 W I J
2018-02-01 21:53:10 -06:00
Scott Lahteine 31920a5285 Add / use 32-bit wide bit macros 2018-02-01 21:47:23 -06:00
Scott Lahteine b78cccad0f Fix broken G29 W I J 2018-02-01 19:50:18 -06:00
Thomas Moore 36a1d12238 Clear retracted status when homing the Z axis 2018-01-29 19:35:16 +00:00
Nikkoura 79183f7620 Fix french language (typos, case homogeneity) 2018-01-28 00:01:00 +01:00
GMagician b0f148f7db [1.1.x] Fix SD wrong filename list (#9343)
If last file in directory has short filename and is preceded by a deleted long file name. SD menu will wrongly report long deleted file name as last entry
2018-01-24 23:07:58 -06:00
Scott Lahteine bc4fa3984b Prettier codebits debugging 2018-01-24 00:30:58 -06:00
Scott Lahteine d60e5c89d8 Merge pull request #9326 from thinkyhead/bf1_fix_parser_M118
[1.1.x] Fix parser.has_value, M118 parameters
2018-01-24 00:23:50 -06:00
Scott Lahteine 57d68e0d01 Merge pull request #9317 from smay4finger/fileattributes
Fileattributes
2018-01-24 00:18:30 -06:00
Stefan May 908d487212 removed execution mode from files 2018-01-24 00:17:34 -06:00
Scott Lahteine a855d01336 Fix M118 parameter parsing 2018-01-23 23:50:42 -06:00
Scott Lahteine d5ad51821c Simplify G-code debug option 2018-01-23 23:50:42 -06:00
Scott Lahteine 59b5800e58 Change parser codebits from array to int32_t 2018-01-23 23:50:42 -06:00
Scott Lahteine 1b84807eb0 Fix has_value with FASTER_GCODE_PARSER 2018-01-23 23:50:42 -06:00
Scott Lahteine 3ab4736ac9 Move some strings to PROGMEM 2018-01-23 23:50:42 -06:00
Scott Lahteine d8aa40eedf Marlin must override _BV for 32-bit masks! 2018-01-23 23:50:42 -06:00
Scott Lahteine 2177c246d5 Patch BQ Hephestos 2 filament diameter
From #9314
2018-01-23 20:38:43 -06:00
Scott Lahteine e5c6448063 Merge pull request #9323 from thinkyhead/bf1_simple_patches
[1.1.x] Optimize some strings, arc length calculation
2018-01-23 19:13:00 -06:00
Scott Lahteine f447668387 Optimize some serial strings 2018-01-23 18:59:35 -06:00
Scott Lahteine d4ab383a1b Lightly optimize arc length calculation 2018-01-23 18:59:35 -06:00
Scott Lahteine 87c254b238 Patch M114 D logical output 2018-01-23 18:48:53 -06:00
Scott Lahteine cc9165cb99 Merge pull request #9311 from thinkyhead/bf1_fade_info_too
[1.1.x] Include Z Fade in log_machine_info
2018-01-23 14:08:59 -06:00
Scott Lahteine df5c06ab7b Fix G29 no_action with A and Q 2018-01-23 13:58:36 -06:00
Scott Lahteine b2dcb75c6c Include Z Fade in log_machine_info 2018-01-23 13:58:36 -06:00
Scott Lahteine 074f191bc3 Followup patch for TMC stepper init 2018-01-23 13:58:36 -06:00
Manuel Valentino 2bda584fc6 Added missing SoftwareSerial begin for TMC2208 2018-01-22 10:49:40 -06:00
Thomas Moore b818543045 [1.1.x] Fix change filament for delta machines (#9296) 2018-01-22 10:19:00 -06:00
Scott Lahteine 3175266681 Merge pull request #9298 from thinkyhead/bf1_fix_skew_factor
[1.1.x] Fix Skew Correction pre-calculation overflow error
2018-01-22 08:33:25 -06:00
Scott Lahteine 1ae40abb09 More precision in M852 skew report
Followup change from #8843
2018-01-22 08:30:37 -06:00
Scott Lahteine 1cea0b6f70 Fix Skew Correction pre-calculation overflow error 2018-01-22 08:22:28 -06:00
Scott Lahteine 5c6061ea5a More precision in M852 skew report 2018-01-22 08:06:40 -06:00
Scott Lahteine 6799aa9806 Merge pull request #9278 from oysteinkrog/fix/DualX_Endstops_1.1.x
[1.1.x] Fix DUAL_X_CARRIAGE endstop tests
2018-01-22 07:42:28 -06:00
Scott Lahteine 049898fa30 Update comment on set_home_offset 2018-01-22 06:14:55 -06:00
Scott Lahteine a29ca4947e Merge pull request #9263 from thinkyhead/bf1_print_start_fix
[1.1.x] Minor filament change improvements
2018-01-22 05:52:58 -06:00
Scott Lahteine feb6014e92 Don't run M600 on filament runout if the nozzle is cold 2018-01-22 05:46:29 -06:00
Scott Lahteine c7ae531e35 Better LCD message when heating needed 2018-01-22 05:46:29 -06:00
Scott Lahteine c373afbddd Clean up and document load/unload/pause/resume 2018-01-22 05:46:19 -06:00
Scott Lahteine c970869d74 Add hotEnough methods 2018-01-22 05:46:19 -06:00
Scott Lahteine 74873f377d Merge pull request #9289 from thinkyhead/bf1_ms_cs_pins_fixup
[1.1.x] Patch MSn pins, sanity-check TMC CS pins
2018-01-22 02:27:27 -06:00
Scott Lahteine e8687e5b9e Update pins.h for parity, protect MS pins 2018-01-22 02:19:04 -06:00
Scott Lahteine 198498b1aa Sanity check for TMC2130 having CS pins 2018-01-22 02:04:21 -06:00
cprund 0527090a31 Minor bugfix to the code that enables the 2nd X stepper. It needs to be enabled for X_DUAL_STEPPER_DRIVERS. (#9286) 2018-01-22 01:32:09 -06:00
Scott Lahteine dff96a8952 Merge pull request #9288 from thinkyhead/bf1_grid_bounds
[1.1.x] Better probe boundaries for linear/grid
2018-01-22 01:23:42 -06:00
Scott Lahteine 3d9f360b5a Better probe boundaries for linear/grid 2018-01-22 01:10:34 -06:00
Scott Lahteine b0bfa65be7 Merge pull request #9282 from thinkyhead/bf1_jgaurora_configs
[1.1.x] Add JGAurora A5 support
2018-01-22 00:46:14 -06:00
Scott Lahteine c8ac3a2a72 Add example configs for JGAurora A5 2018-01-21 22:23:31 -06:00
Scott Lahteine 957bb3124a Add thermistor 15 tuned for JGAurora A5 2018-01-21 16:57:47 -06:00
Øystein Krog 1f37781bf1 Fix DUAL_X_CARRIAGE endstops
\#8170 fixed
(cherry picked from commit 441517bbe1)
2018-01-21 16:32:29 +01:00
Scott Lahteine 7b62670987 Merge pull request #9272 from thinkyhead/bf1_creality_tuneup
[1.1.x] Fix and improve Creality configs
2018-01-21 02:53:08 -06:00
Scott Lahteine 7b5a4f71be Fix toDigital length with days
From #9220
2018-01-21 02:50:54 -06:00
Scott Lahteine 94a9cd6477 CR-10S filament change length, enhanced status bitmap 2018-01-21 01:58:55 -06:00
Scott Lahteine 0cfcc7cbf5 Make "Ender" status screen dual-nozzle ready 2018-01-21 01:58:55 -06:00
Scott Lahteine 292755258a Add a heating indicator X offset 2018-01-21 01:58:40 -06:00
Scott Lahteine 02e2ace199 Merge pull request #9199 from nhchiu/Case-Light-use-NEOPIXEL
[1.1.x] Use NEOPIXEL as case light
2018-01-21 01:52:31 -06:00
nhchiu 4a40cf268d Use NEOPIXEL as case light
Add an option to use the NEOPIXEL LED as case light.
2018-01-20 16:57:04 -06:00
Scott Lahteine 428fbe8228 Apply CASE_LIGHT_USE_NEOPIXEL to example configs 2018-01-20 16:27:30 -06:00
Scott Lahteine 81a12b2fac Relative movements fix 2018-01-20 15:22:38 -06:00
Scott Lahteine fb636db61a Patch to restore broken Dual X Carriage 2018-01-20 15:07:40 -06:00
Scott Lahteine 369f1a64d8 Merge pull request #9262 from tcm0116/1.1.x-delta_softstops
[1.1.x] Allow DELTA to compile with soft endstops disabled
2018-01-20 14:16:14 -06:00
Scott Lahteine 6ed2840615 Use delay() in serial temp report 2018-01-20 14:12:30 -06:00
Scott Lahteine eb3a05c437 Allow FIL_RUNOUT_PIN override on RAMPS-based boards 2018-01-20 12:00:03 -06:00
Scott Lahteine d29a0d64d5 Set FIL_RUNOUT_PIN for Creality CR10-S
Tested with M43 and found to be connected to DIO 2
2018-01-20 11:58:37 -06:00
Scott Lahteine 09ad00b2d1 Use standard encoder pulses/steps for CR-10S 2018-01-20 11:34:53 -06:00
Thomas Moore f8192f6e46 Allow DELTA to compile with soft endstops disabled 2018-01-20 09:43:59 -06:00
Scott Lahteine f360b3b849 Date refresh 2018-01-20 09:17:00 -06:00
Scott Lahteine 6253560ffa Additional .gitignore entry for VS Code 2018-01-19 22:33:21 -06:00
Scott Lahteine 74c23bf80d Merge pull request #9232 from GMagician/1.1.x-ramps-pins-fixup
[1.1.x] Expand RAMP case light possibilities
2018-01-19 22:29:09 -06:00
Scott Lahteine 8d14ff1446 Merge pull request #9248 from GMagician/1.1.x-bed-temp-limit-fix
[1.1.x] Standardized max temp values
2018-01-19 22:27:00 -06:00
GMagician 2814103458 Standardized max temp values
Everywhere in menu items temperatures are "defined value" subtracted by 15.
In one place is subtracted by 5
2018-01-19 19:41:45 +01:00
Bob-the-Kuhn 21a631dd4e Merge pull request #9237 from Bob-the-Kuhn/TMC2208-sanity-check-1.1.x
[bugfix-1.1.x] add TMC2208 sanity check & fix typo
2018-01-19 12:27:03 -06:00
Bob-the-Kuhn d0e61d82c0 TMC2208 sanity check 2018-01-18 23:16:41 -06:00
Roxy-3D 0edf5a2ab5 Better handle serial over runs... 2018-01-18 16:51:27 -06:00
Roxy-3D 597d94bd3a Better handle serial buffer over run 2018-01-18 16:48:12 -06:00
Roxy-3D 73565728c7 Further clean up for serial over run issue during long operations 2018-01-18 14:38:18 -06:00
GMagician 3b53c5ada1 Expand RAMP case light possibilities
Pin 6 is only used by servos when 2 or more of them are used
2018-01-18 18:35:08 +01:00
Roxy-3D cbdbeb3e69 PronterFace M105 work around (#9227)
PronterFace keeps sending M105 requests during long operations like G29 P1, G29 P2, G29 P4 and G26. The serial buffer fills up before the operation is complete. The problem is, a corrupted command gets executed. It is very typical for the M105 to turn into a M1 (actually... M1M105 is typical).

This causes the printer to say "Click to resume..."

This is a temporary fix until we figure out the correct way to resolve the issue.

More work needed for G26.
2018-01-17 22:51:19 -06:00
Roxy-3D 80c1afde0f Fix mesh size... 2018-01-17 09:33:18 -06:00
Roxy-3D c11665e92f Regression fixes for UBL's G29 P1, G29 P2, G29 P4 and G26 (#9213)
The changes to ultralcd.cpp for is_lcd_clicked() did not encompass the
full functionality of UBL's G29 P1, P2 and P4.   It also broke G26's
ability to abort in several of its phases.

This is the first pass at fixing the problem.   It has been tested for
correctness for several hours but more testing  needs to be done.
There may be a few follow up patches to finish covering all the corner
cases, but right now I need to merge this before any conflicts show up.

Some of these changes will need to be moved over to the bugfix-v2.0.0
branch.   That will happen a few days from now.
2018-01-17 00:27:50 -06:00
Scott Lahteine 333bd8f394 Merge pull request #9203 from benlye/m73-bugfix-1.1.x
[1.1.x] Fix progress bar duration when time is exactly 86400s
2018-01-16 21:14:31 -06:00
Bob-the-Kuhn e668e053c2 Merge pull request #9206 from MarlinFirmware/revert-9174-fix_missing_decel_steps
Revert "[1.1.x] Fix missing deceleration steps"
2018-01-16 11:33:39 -06:00
Bob-the-Kuhn ba9aa47260 Revert "[1.1.x] Fix missing deceleration steps" 2018-01-16 11:31:27 -06:00
blye deda3d3a3c Fix duration when time is exactly 86400s 2018-01-16 08:16:42 +00:00
Bob-the-Kuhn ec028faa1b Merge pull request #9174 from Sebastianv650/fix_missing_decel_steps
[1.1.x] Fix missing deceleration steps
2018-01-15 21:03:51 -06:00
Roxy-3D 06adef7343 Get FT-i3-2020 example files in compliance with ?_BED_SIZE 2018-01-15 15:32:19 -06:00
Scott Lahteine 69c993092b Followup to Ender config 2018-01-15 05:48:50 -06:00
Scott Lahteine d25487dfb9 Merge pull request #9160 from tommie/ender/bugfix-1.1.x
[1.1.x] Creality Ender support
2018-01-15 03:48:47 -06:00
Tommie Gannert f3f26f7cb3 Creality Ender support.
Reverse engineered from the unpublished firmware from Creality,
inferring the base version and configuration they used. The basis is
the firmware version from "Jul 31 2017 10:16:30". Configurations were
found by seeing what code was compiled into the firmware, and
constants used there.

They used Marlin 1.0.1, because

* 1.0.0 had very different serial output in `setup()` and overall
  code structure.
* 1.0.2 changed the `VERSION_STRING` to include a leading space,
  and `lcd_init` uses `SET_INPUT` instead of `pinMode`.

For U8Glib, a version between 1.14 and 1.17 was used, because

* 1.12 didn't have the extra speed argument to u8g_InitCom.
* 1.13 didn't have the soft reset instruction for UC1701 initialization.
* 1.18 has a new directory structure.

Quirks

* The value of PID_dT hints that F_CPU is 20M, but MarlinSerial.begin
  suggests it's indeed 16M (and the board uses 16M). Left at 16M for now.

* The LED and DOGLCD_CS are on the same pin.
2018-01-15 03:39:43 -06:00
Scott Lahteine 90125ab639 Merge pull request #9186 from thinkyhead/bf1_cooler_cr10s
[1.1.x] More featureful CR-10S configuration
2018-01-15 02:50:16 -06:00
Scott Lahteine a16ae30a61 More featureful CR-10S configuration 2018-01-15 01:02:23 -06:00
Scott Lahteine 175207659a Merge pull request #9183 from thinkyhead/bf1_new_flsun_config
[1.1.x] Add FLSUN Kossel configuration
2018-01-15 00:49:25 -06:00
Scott Lahteine 5129eb1d43 More reliable temperature serial output? 2018-01-15 00:44:55 -06:00
Scott Lahteine 8f08e029d8 More up-front option to show SD percentage 2018-01-14 23:30:59 -06:00
Scott Lahteine 5c6c12dc3a Patch EEPROM for 32-bit 2018-01-14 23:18:45 -06:00
Scott Lahteine 734fa91e63 Misc config updates 2018-01-14 23:18:45 -06:00
Scott Lahteine 1d5eba4470 Add FLSUN Kossel configuration 2018-01-14 23:18:45 -06:00
Scott Lahteine 758d9db964 Link to marlinfw.org bitmap tool 2018-01-14 22:39:57 -06:00
Scott Lahteine 1d8b03964f Merge pull request #9164 from GMagician/1.1.x-SD-issues-fix
[1.1.x] sd issue fix
2018-01-14 20:47:04 -06:00
Sebastianv650 4fa0937a55 Fix missing deceleration steps
Marlin never reached final_speed after deceleration.
2018-01-14 17:09:47 +01:00
GMagician 82dc89bfd2 Save some program memory
This will save some program memory with no speed lose
2018-01-13 09:46:54 +01:00
GrantM11235 a0bd811093 [1.1.x] Fix support for Malyan M150 (#9146)
Implements changes to LCD and encoder pins from
forums.reprap.org/read.php?110,716538,728278 and also sets
ST7920_DELAY_[1-3] to DELAY_2_NOP to be compatible with the slower LCD
2018-01-12 01:14:07 -06:00
Scott Lahteine c1d6d24b9d Cleanup spacing, commentary 2018-01-11 18:52:54 -06:00
Sebastianv650 e2871f0dcd [1.1.x] Ensure smooth printer movements (#9149)
- Never execute a block without an up-to-date trapezoid
- Start blocks with MINIMUM_PLANNER_SPEED, except when coming from a full stop
2018-01-11 18:50:18 -06:00
Bob-the-Kuhn 4393c3ef7f LCD_CONTRAST to uint16_t for 1.1.x parity (#9148) 2018-01-11 18:32:41 -06:00
Scott Lahteine 59d48b9b1f Merge pull request #9143 from thinkyhead/bf1_Creality_CR-10S
[1.1.x] Creality CR-10S configurations
2018-01-11 01:24:44 -06:00
Scott Lahteine e8b1bbac83 Creality CR-10S configurations
Provided by printedsolid.com
2018-01-11 01:03:34 -06:00
Scott Lahteine 885200f833 Bring other configs up-to-date 2018-01-11 01:03:34 -06:00
Scott Lahteine 044938bfd0 Merge pull request #9129 from thinkyhead/bf1_tmc_followup
[1.1.x] TMC followup
2018-01-10 23:07:15 -06:00
Scott Lahteine ab7fb5b2e3 Use Arduino 1.8.5 for Travis CI 2018-01-10 05:23:06 -06:00
Scott Lahteine 3df0d62725 Updates to TMC support 2018-01-10 04:32:49 -06:00
Scott Lahteine d1ce0bc071 M915 Z Axis Calibration 2018-01-09 18:55:08 -06:00
Scott Lahteine 9714c9aebe Merge pull request #9128 from fiveangle/bf1-disable_serial_stats_on_usbcon
[1.1.x] SERIAL_STATS_* features not supported on USBCON targets
2018-01-09 18:42:26 -06:00
Dave Johnson 2fcef3e8e2 Enable USE_ZMIN_PLUG on SCARA example (#9125) 2018-01-09 18:41:02 -06:00
Scott Lahteine d7651ea0d0 Merge pull request #9122 from thinkyhead/bf1_eeprom_debug
[1.1.x] More EEPROM field debugging, 2.0.x parity
2018-01-09 18:33:24 -06:00
Dave Johnson dd55c98139 SERIAL_STATS_* features not supported on USBCON targets 2018-01-09 16:27:57 -08:00
Scott Lahteine bb5ba482bc More EEPROM field debugging 2018-01-09 18:10:33 -06:00
GMagician 5903b002ac 1.1.x semitec 104NT-4 added (#9120)
Table is very very similar to old 104-GT2 so I added only the name and recycled old ID
2018-01-09 16:53:44 -06:00
Scott Lahteine 97b6eabe0c Merge pull request #9103 from zarthcode/patch-2
fix fwretract structure reference #9102
2018-01-08 19:27:18 -06:00
Anthony 1326eb4ef7 fix fwretract structure reference #9102
Marlin_main.cpp: In function 'void resume_print(const float&, const float&, int8_t)':

Marlin_main.cpp:6646: error: 'retract_length' was not declared in this scope
         do_pause_e_move(-retract_length, fwretract.retract_feedrate_mm_s);
                          ^
2018-01-08 18:48:19 -06:00
Scott Lahteine 0eee55c0dd Patch TMC current read from EEPROM 2018-01-07 20:49:43 -06:00
Scott Lahteine f8dee4e726 Merge pull request #9088 from thinkyhead/bf1_mbl_localize
[1.1.x] MBL cleanup, has_mesh() method
2018-01-07 20:10:10 -06:00
Tannoo 2c3bdfe2ea [1.1.x] UBL Mesh Storage Message (#9094) 2018-01-07 20:07:20 -06:00
Scott Lahteine ffeb4495fe Make mbl.has_mesh() a method 2018-01-07 18:14:37 -06:00
Scott Lahteine be555e3578 Move MBL functions into the class 2018-01-07 18:14:37 -06:00
Scott Lahteine eec97a5cf1 Don't wrap mbl.h in conditionals 2018-01-07 00:24:46 -06:00
Scott Lahteine fa3709451b Set mbl.has_mesh on manual point entry
Based on #9086
2018-01-06 23:32:00 -06:00
Scott Lahteine eaa6257baf Fix M503 skew output
Followup to 1761cacaa1
2018-01-06 20:53:33 -06:00
Scott Lahteine f2fd9ab1b0 Merge pull request #9081 from thinkyhead/bf1_patch_m5
[1.1.x] Set laser/spindle PWM to lowest speed on M5
2018-01-06 15:29:51 -06:00
Someone Unknown b5e98ac1b7 Set laser/spindle PWM to lowest speed on M5 2018-01-06 14:01:58 -06:00
Scott Lahteine b83c49befb Merge pull request #9078 from GMagician/1.1.x-bmp-fix
[1.1.x] Clockwise bmp fix
2018-01-06 13:53:27 -06:00
GMagician 4cb35a285b Bmp fix
Clockwise arrow fixed
2018-01-06 19:08:37 +01:00
Bob-the-Kuhn 0b5b2a424c Merge pull request #9067 from MarlinFirmware/SD-detect
[bugfix-1.1.x] SD card detect fix
2018-01-05 20:32:33 -06:00
Bob-the-Kuhn 0868907359 works 2018-01-05 19:12:34 -06:00
Scott Lahteine 670df2ea6d Settings FIELD_TEST fix 2018-01-05 19:12:22 -06:00
Scott Lahteine 0970dbcdf3 Merge pull request #9017 from thinkyhead/bf1_better_eeprom_init
[1.1.x] New EEPROM powers
2018-01-05 18:19:27 -06:00
Scott Lahteine fbda8a2e2b UBL G29 works without settings.load 2018-01-05 15:47:52 -06:00
Scott Lahteine 3d34dddbc0 Squish lcd_advanced_pause_show_message 2018-01-05 15:47:52 -06:00
Scott Lahteine 3b3b7e09ec Add FIELD_TEST to validate storage 2018-01-05 15:47:52 -06:00
Scott Lahteine 5d26f88bd5 Add data size validation 2018-01-05 15:47:52 -06:00
Scott Lahteine 51977c64ee Add a struct defining EEPROM storage 2018-01-05 15:47:51 -06:00
Scott Lahteine 42216f52ab Add MarlinSettings::validate() 2018-01-05 14:40:20 -06:00
Scott Lahteine 760c4e94d5 Write filler for disabled volumetrics 2018-01-05 10:20:17 -06:00
Scott Lahteine a4e0fd7883 Pretty up TMC current write 2018-01-05 10:20:16 -06:00
Scott Lahteine 2287fa126c Whitespace cleanup 2018-01-05 10:19:15 -06:00
Scott Lahteine fd4f49512d Merge pull request #9054 from thinkyhead/bf1_fwretract_class
[1.1.x] FWRetract class for 2.0.x parity
2018-01-04 19:40:32 -06:00
MD 7d8acb8def [1.1.x] CheapTRONIC v2.0 pins additions/revisions (#9030) 2018-01-04 18:34:47 -06:00
Scott Lahteine e7bf7e6031 Make FWRetract class for 2.0.x parity 2018-01-04 17:54:24 -06:00
Scott Lahteine 518d9beb83 Merge pull request #9053 from thinkyhead/bf1_parser_squish
[1.1.x] Reduce process_parsed_command lines
2018-01-04 17:06:14 -06:00
Scott Lahteine 2ed4d4a30a Squish down process_parsed_command 2018-01-04 16:30:12 -06:00
Roxy-3D d2dc7a53c2 use SERIAL_EOL(); instead of new line string 2018-01-04 16:18:00 -06:00
Roxy-3D 80cc860810 Use SERIAL_EOL(); instead of passing new line string 2018-01-04 16:16:28 -06:00
Roxy-3D 39289a6952 add precision to planner.xy_skew_factor so it doesn't print as 0.00 2018-01-04 16:11:05 -06:00
Roxy-3D 1761cacaa1 Add precision to planner:xy_skew so it doesn't print as 0.00 2018-01-04 16:07:20 -06:00
Scott Lahteine f33b405152 M603 report in load/unload order 2018-01-04 05:20:56 -06:00
revilor aec65112b5 Fix for issue #9005, #8942 - Bed PID autotuning (#9037) 2018-01-04 03:26:29 -06:00
Scott Lahteine cce91eef61 Patch M701 get extruder arg 2018-01-04 02:13:10 -06:00
Scott Lahteine 46a839cbca No default needed 2018-01-03 22:52:25 -06:00
Scott Lahteine c5e31b1723 Merge pull request #9032 from tcm0116/1.1.x-ultralcd
[1.1.x] Fix 'lcd_temp_menu_e0_filament_change' was not declared error
2018-01-03 21:34:37 -06:00
Scott Lahteine 20d55e5fed Merge pull request #9039 from thinkyhead/bf1_m303_bughunt
[1.1.x] Cleanup, commentary of M303 pid tuning code
2018-01-03 21:33:59 -06:00
Scott Lahteine 01e3ccfd69 Cleanup, commentary of M303 pid tuning code 2018-01-03 20:48:43 -06:00
Scott Lahteine 36541d61ab Merge pull request #9038 from thinkyhead/bf1_fix_resume_pos
[1.1.x] Fix resume_print positioning
2018-01-03 20:46:50 -06:00
Scott Lahteine a436e89b83 Fix resume_print positioning 2018-01-03 20:12:44 -06:00
Thomas Moore faf7dda9d3 Fix 'lcd_temp_menu_e0_filament_change' was not declared error 2018-01-03 19:18:34 +00:00
Tannoo d3139e47f8 [1.1.x] EEPROM init fix (#9002) 2018-01-03 04:28:15 -06:00
Scott Lahteine c893a90d64 Merge pull request #8988 from tcm0116/1.1.x_ubl
[1.1.x] Fix UBL compilation warnings
2018-01-02 21:37:59 -06:00
Thomas Moore 586d50ff99 Fix UBL compilation warnings 2018-01-02 19:41:02 -06:00
Scott Lahteine ba9879f8fa Merge pull request #9008 from karkla/bugfix-1.1.x
[1.1.x] Update pins_MKS_BASE.h with Microstepping pin definitions
2018-01-01 18:47:59 -06:00
Scott Lahteine 3cd48db9a9 Merge pull request #8983 from ABH10/bugfix-1.1.x_thermistor-tables
[1.1.x] Update of comments in thermistor table files. No functional changes.
2018-01-01 18:40:29 -06:00
karkla 454a8ae26a Update pins_MKS_BASE.h
Microstepping Pins (reverse engineered at V1.4)
Some new batches have the HR4982 (Heroic) instead of the A4982 (Allegro) as stepper driver. While most of the functionality is similar, the HR variant obviously doesn't work with diode smoothers (no fast decay). But the Heroic has a 128 µStepping mode where the A4982 is doing quarter steps (MS1=L / MS2=H). To achieve comfortable tests with the M350/M351 commands, the following definitions have to made.
2018-01-02 01:29:27 +01:00
Scott Lahteine 9de9e37539 Some temperature code cleanup 2018-01-01 18:03:43 -06:00
Roxy-3D 949191215b Z BabyStepping should not be dependent on a bed leveling system being active 2018-01-01 14:39:28 -06:00
Arne Husth decf844788 Update of comments in thermistor table files. No functional changes. 2017-12-31 14:46:56 +01:00
Scott Lahteine 642dec3625 Fix typo in delta buffer_line call
Fix #8901
2017-12-31 01:38:36 -06:00
Scott Lahteine 8e82dd0b5b Merge pull request #8947 from houseofbugs/bugfix-1.1.x
[1.1.x] SLIM_LCD_MENUS option
2017-12-31 00:56:10 -06:00
Scott Lahteine 5f13e2e336 Merge pull request #8977 from thinkyhead/bf1_sync_up_configs
[1.1.x] Synchronize configs with 2.0.x
2017-12-31 00:55:39 -06:00
Scott Lahteine 4153d76810 Update Marlin_main.cpp 2017-12-31 00:24:57 -06:00
houseofbugs a66811a597 A specific option to SLIM_LCD_MENUS 2017-12-31 00:15:24 -06:00
Scott Lahteine 839dd66c3b Synchronize configs with 2.0.x 2017-12-31 00:02:22 -06:00
Scott Lahteine 7a8c132ee9 Apply SLIM_LCD_MENUS to example configs 2017-12-30 23:52:53 -06:00
Scott Lahteine 1e18d716c2 Merge pull request #7107 from tcm0116/load_unload
[1.1.x] Add M701 and M702 filament load and unload
2017-12-30 23:34:16 -06:00
Thomas Moore 81193e9338 Add M701 / M702 filament load / unload 2017-12-30 19:48:21 -06:00
Scott Lahteine d1cad5afa4 Apply FILAMENT_LOAD_UNLOAD_GCODES to example configs 2017-12-30 18:22:31 -06:00
Scott Lahteine 2a535bdce8 Followup to #8964 2017-12-30 16:47:26 -06:00
Claus Näveke 52244f690e Add example config for Tronxy X1 (#8964) 2017-12-30 16:38:42 -06:00
Scott Lahteine eaf681675a Merge pull request #8965 from thinkyhead/bf1_better_no_reentry
[1.1.x] ultralcd.cpp: Improve no_reentry, use when queuing G-code
2017-12-30 04:24:24 -06:00
Scott Lahteine 2385c06696 Apply some PGM_P pointers 2017-12-30 04:16:50 -06:00
Scott Lahteine 81e0f5bc7d Single pause flag also indicates SD print pause 2017-12-30 04:16:50 -06:00
Scott Lahteine 18e277d9d3 Enqueue commands properly in ultralcd.cpp 2017-12-30 04:16:50 -06:00
Scott Lahteine 025a4558fb Merge pull request #8944 from zarthcode/patch-1
Fix malformed Capabilities report
2017-12-28 21:06:23 -06:00
Scott Lahteine 85ca7fed93 Show bedlevel with Bed temp indicator
…and display a third extruder on character display
2017-12-28 20:21:47 -06:00
Anthony 7637eb863a Fix malformed Capabilities report 2017-12-28 20:03:44 -06:00
Scott Lahteine f9b7659b56 Merge pull request #8907 from marcio-ao/bugfix-1.1.x
[1.1.x] Multi extruder support for M600 / LCD
2017-12-27 01:30:32 -06:00
Marcio Teixeira 6195f7810a Multi extruder support for M600 and LCD (FR #8672) 2017-12-26 22:59:05 -06:00
Scott Lahteine ecba9b6738 Merge pull request #8897 from thinkyhead/bf1_lcd_click_redraw
[1.1.x] Clear lcd_clicked on use
2017-12-26 20:54:31 -06:00
Scott Lahteine 93e3b3d5ba Merge pull request #8911 from houseofbugs/patch-1
[1.1.x] Fix NO_VOLUMETRICS compile error
2017-12-26 20:25:20 -06:00
Scott Lahteine 417bdb0488 Fix bug in NO_VOLUMETRICS 2017-12-26 19:56:22 -06:00
Timothy Hoogland 8ea3b29c17 Fix NO_VOLUMETRICS compile error 2017-12-26 19:32:09 -06:00
Scott Lahteine 81f1001b2c Clear lcd_clicked immediately on use 2017-12-25 21:50:58 -06:00
Scott Lahteine 99f98890c2 Merge pull request #8892 from thinkyhead/bf1_action_on_action
[1.1.x] Fixes for G29 / 3POINT
2017-12-25 09:08:02 -06:00
Scott Lahteine 5f0026893f Fix some compiler warnings 2017-12-25 08:51:35 -06:00
Scott Lahteine 4f943a73bc Fixes for G29 / 3POINT 2017-12-25 08:35:47 -06:00
Scott Lahteine e31923be8d lcd_map_control deps on ULTIPANEL 2017-12-25 07:44:32 -06:00
Scott Lahteine 395235a529 Merge pull request #8891 from thinkyhead/bf1_action_on_action
[1.1.x] Allow consecutive uses of G29
2017-12-25 07:30:04 -06:00
Scott Lahteine 55848a4bd8 Allow consecutive uses of G29 2017-12-25 06:32:55 -06:00
Scott Lahteine 19e768d43d Merge pull request #8849 from silentninja1/patch-3
[1.1.x] //Actions on Pause / Resume (M600, M125, etc.)
2017-12-25 04:41:37 -06:00
Scott Lahteine 3c7cdcdc22 General cleanup of config-store, reset_bed_level 2017-12-25 04:23:52 -06:00
Scott Lahteine e0d487e339 Update TMC2208 config store 2017-12-25 04:08:39 -06:00
Scott Lahteine defff1e4a8 Fix GT2560 A+ servo pins 2017-12-25 02:20:13 -06:00
Scott Lahteine 05a6d48753 Tweak to M125 code 2017-12-25 01:33:46 -06:00
silentninja1 b12eb33feb Add support for pause and resume action commands on M600 2017-12-25 01:28:17 -06:00
Scott Lahteine 00749d8ef0 Add pause/resume action to example configs 2017-12-25 01:28:16 -06:00
Thomas Moore 59d047c1d7 [1.1.x] Use NOZZLE_PARK_FEATURE for ADVANCED_PAUSE_FEATURE (#8864)
* Use NOZZLE_PARK_FEATURE for ADVANCED_PAUSE_FEATURE
2017-12-24 23:47:05 -06:00
Scott Lahteine fb6b62a01b Comment return false in motion functions 2017-12-24 22:56:56 -06:00
Scott Lahteine 1bb5791e64 Merge pull request #8888 from thinkyhead/bf1_reduce_jerk_default
[1.1.x] Reduce default jerk
2017-12-24 21:48:39 -06:00
Scott Lahteine e47316c9d3 Tweak cleaning buffer / SD finished command 2017-12-24 20:33:58 -06:00
Scott Lahteine 88c0688961 Reduce default jerk. XY by half. Z by 1/4 2017-12-24 19:49:51 -06:00
Scott Lahteine aa9cad0cc6 Merge pull request #8870 from petrzjunior/bugfix-1.1.x
[1.1.x][Language] Update Czech for Dec 2017
2017-12-24 18:48:37 -06:00
Scott Lahteine 0950527437 Fix WELCOME_MSG in PT
From #8879
2017-12-24 18:45:16 -06:00
Scott Lahteine b7306ef07f Fix WELCOME_MSG in PT
From #8879
2017-12-24 18:42:50 -06:00
Petr Zahradník 0fc3fea8df Update Czech language Dec 2017 2017-12-22 18:33:11 +01:00
Scott Lahteine b5677907d0 Minor speedup for SCARA scaling
And cleanup of Delta IK macros...
2017-12-21 22:39:06 -06:00
Scott Lahteine 6f40d57e14 Merge pull request #8851 from thinkyhead/bf1_more_scara_scaling
[1.1.x] SCARA Feedrate Scaling for G2/G3 - using HYPOT
2017-12-21 21:35:19 -06:00
Scott Lahteine 2aaf66b789 Merge pull request #8847 from thinkyhead/bf1_restore_position_float
[1.1.x] Restore position_float to LIN_ADVANCE
2017-12-21 16:33:46 -06:00
Scott Lahteine fdd85a529a Feedrate scaling for G2/G3 2017-12-20 19:33:16 -06:00
Scott Lahteine 477e36afab Revert "[bugfix-1.1.x] COREXY stutter moves (planner.cpp changes) (#8697)"
This reverts commit 86b65e52c4.
2017-12-20 15:59:56 -06:00
Scott Lahteine 1068798465 Restore position_float to LIN_ADVANCE 2017-12-20 06:58:42 -06:00
Scott Lahteine 4f375cd17d Match sign for filwidth across vars 2017-12-20 00:17:32 -06:00
Thomas Moore 98159c0507 [1.1.x][PlatformIO] Stop compiling after first five errors (#8828) 2017-12-19 23:59:19 -06:00
Scott Lahteine ea345b1db7 Merge pull request #8738 from lumbric/bugfix-1.1.x
Add missing CPP files to Make file, fixes #8731
2017-12-19 23:46:23 -06:00
Scott Lahteine 51a0f7aaba Merge pull request #8845 from thinkyhead/bf1_no_volumetrics
[1.1.x] One setting to validate filament width
2017-12-19 23:31:14 -06:00
Scott Lahteine ab7f1a0608 A single setting to validate filament width 2017-12-19 21:34:30 -06:00
Scott Lahteine 201bbaacfc Merge pull request #8844 from thinkyhead/bf1_no_volumetrics
[1.1.x] Add option for NO_VOLUMETRICS
2017-12-19 21:14:26 -06:00
Scott Lahteine 3929deed10 Add VOLUMETRIC capability item 2017-12-19 20:33:57 -06:00
Scott Lahteine 435981056e Option to disable all volumetric extrusion 2017-12-19 20:33:41 -06:00
Scott Lahteine e6f46f3832 Add NO_VOLUMETRICS to example configs 2017-12-19 20:32:40 -06:00
Scott Lahteine 1aea024589 Remove redundant serial sanity check 2017-12-19 19:07:20 -06:00
Scott Lahteine ce6a691999 Fix #8839 - filament width sensor 2017-12-19 18:24:56 -06:00
Scott Lahteine 10d73155b0 Hide LEVELING item for probeless w/out LCD Leveling 2017-12-17 21:24:46 -06:00
Scott Lahteine 4b1b02a17d Cleanup M503 output for M420 2017-12-17 21:24:46 -06:00
Scott Lahteine f0bca012a5 Merge pull request #8818 from thinkyhead/bf1_reverting_8735
[1.1.x] Revert #8735 "Initial step correction"
2017-12-17 20:59:27 -06:00
Scott Lahteine 56d355f8de Revert "[Bugfix-1.1.x] initial step correction (#8735)"
This reverts commit ec028bf747.
2017-12-17 02:04:44 -06:00
Scott Lahteine f5fc851925 Sanity check parity with 2.0.x 2017-12-17 00:56:44 -06:00
Scott Lahteine 7378905053 Add MKS_12864OLED_SSD1306 to example configs
Followup to #8813
2017-12-16 19:58:34 -06:00
Scott Lahteine 76b0df6ba1 Merge pull request #8813 from drdelaney/bugfix-1.1.x
[1.1.x] Adding support for using the MKS_12864OLED with the SSD1306 controller
2017-12-16 18:10:57 -06:00
Dan Delaney df8420aa62 Adding support for using the MKS_12864OLED with the SSD1306 controller 2017-12-16 17:44:34 -06:00
Scott Lahteine 72a047d549 Fix use_example_configs handling spaces in path 2017-12-16 17:32:32 -06:00
lumbric 3a511e4583 Add all CPP files to Makefile automatically
Fixes build errors occurring when AUTO_BED_LEVELING_UBL is enabled.
2017-12-16 20:29:47 +01:00
Scott Lahteine e8d3ea803d Update README.md for bugfix 2017-12-15 20:14:25 -06:00
Scott Lahteine c5a4230a6a Merge pull request #8760 from drdelaney/bugfix-1.1.x
[1.1.x] Support for Tronxy and Zonestar LCD
2017-12-15 19:21:22 -06:00
Dan Delaney 5249765508 Adding support for the Tronxy and Zonestar LCD
Code borrowed and modified from erikkallen/Marlin_tronxy.
Changed the ANET_KEYPAD_LCD to zonestar, since it is the same device.
I kept a define for ANET_KEYPAD_LCD to enable ZONESTAR_LCD.
2017-12-15 19:13:31 -06:00
Scott Lahteine fdf83f1416 Apply ZONESTAR_LCD to example configs 2017-12-15 19:13:31 -06:00
Scott Lahteine e1b998e40a More externs and functions in Marlin.h 2017-12-15 18:18:26 -06:00
Scott Lahteine 4277fcb32c Merge pull request #8790 from robpower/NanoDLP_Sync_improvement
[1.1.x] Extended NanoDLP_Z_Move_Sync to G4 & G28,Added option for all axis.
2017-12-15 16:25:02 -06:00
Scott Lahteine 9a4af6bd7c Add NANODLP_ALL_AXIS to config examples 2017-12-15 16:05:29 -06:00
robpower 59265034ae Extended NanoDLP_Z_Move_Sync feature to G4 and G28, Added optional move_sync for all axis. 2017-12-15 16:05:29 -06:00
teemuatlut 0ac0324af2 [1.1.x] TMC driver update (#8712) 2017-12-15 15:02:39 -06:00
Scott Lahteine f38f2ace5a Correct unskew, after all 2017-12-15 14:23:20 -06:00
Scott Lahteine b10831d58e Merge pull request #8791 from fiveangle/bf1-HAS_HEAT_BED_conditional
[1.1.x] Missing HAS_HEAT_BED conditional
2017-12-15 13:47:24 -06:00
Dave Johnson 817eb5a5ba Missing HAS_HEAT_BED conditional
Fixes issue found in #8779
2017-12-15 11:36:36 -08:00
Scott Lahteine f36f91dfb5 Reduce code with no heated bed 2017-12-13 17:59:17 -06:00
Scott Lahteine 172ea8c71c General code/bitmaps cleanup 2017-12-13 17:57:54 -06:00
Scott Lahteine da9748fb21 Fix Planner::unskew parity with skew 2017-12-13 17:43:07 -06:00
Scott Lahteine be58e137c5 Merge pull request #8772 from thinkyhead/bf1_filwidth_refinement
[1.1.x] Comment, fix filament width sensor
2017-12-13 16:25:59 -06:00
Scott Lahteine 8519451161 Comment, improve filament width sensor 2017-12-13 02:35:23 -06:00
Scott Lahteine 7c1adff8ad Separate Dual X un-park from movement 2017-12-11 03:12:59 -06:00
Scott Lahteine eca1509cb2 Skew should apply per-segment
Segmented moves can account for skew points off the edge, while long regular cartesian moves may be off if the skewed destination point is outside movement bounds.

Followup to #8729
2017-12-11 03:12:59 -06:00
Scott Lahteine 17b05c150c Merge pull request #8729 from thinkyhead/bf1_sort_out_leveling
[1.1.x] UBL - Skew and Dual X Carriage
2017-12-11 01:40:20 -06:00
Scott Lahteine bdf69db0a8 Extend Skew Correction to UBL 2017-12-11 01:31:14 -06:00
Scott Lahteine ba48ce8586 Travis Test for non-segmented UBL 2017-12-11 00:20:29 -06:00
Scott Lahteine 5cce532a29 One or the other? 2017-12-11 00:20:29 -06:00
Scott Lahteine a20eacaa48 UBL devel debugging flag 2017-12-11 00:20:29 -06:00
Scott Lahteine 4f042533a5 Fix DUAL_X_CARRIAGE with UBL segmented 2017-12-11 00:20:29 -06:00
Scott Lahteine 6e8da93c42 UBL_DELTA => UBL_SEGMENTED 2017-12-11 00:20:29 -06:00
Scott Lahteine bb33a26e62 Apply const to axis args 2017-12-11 00:20:29 -06:00
Scott Lahteine da2eaa6b09 Use array refs where possible 2017-12-11 00:20:29 -06:00
Scott Lahteine 8244284116 _buffer_line => buffer_segment 2017-12-11 00:20:28 -06:00
Scott Lahteine db204c13f2 Merge pull request #8745 from thinkyhead/bf1_sync_M420_M852
[1.1.x] M852 skew changes position. And, position change reporting.
2017-12-10 23:13:49 -06:00
Scott Lahteine 08d9aeff41 Update current position in M852 2017-12-10 23:05:34 -06:00
Scott Lahteine aa1b4eded6 Have M420 report a changed position 2017-12-10 23:05:34 -06:00
Scott Lahteine 684692091e Sync and report changed position 2017-12-10 23:05:34 -06:00
Scott Lahteine ccca1ade2d Always report position on config load/reset 2017-12-10 23:05:33 -06:00
Scott Lahteine dc9e469c4c Tweak M114 detail 2017-12-10 19:15:37 -06:00
Bob-the-Kuhn ec028bf747 [Bugfix-1.1.x] initial step correction (#8735)
* tested

* forgot one item
2017-12-09 18:20:25 -06:00
Scott Lahteine 009920f393 Followup to #8713 2017-12-09 08:06:22 -06:00
Scott Lahteine 666d95285b Mention that segments interpolate more 2017-12-09 06:18:41 -06:00
Scott Lahteine b692d91ca3 Merge pull request #8666 from jkur/bugfix-1.1.x
[1.1.x] Add board Mini RAMBo 1.0a
2017-12-09 00:06:13 -06:00
jkur f4c31565bc Board definition and PIN assignments for Mini RAMBo1.0a 2017-12-08 23:41:34 -06:00
Scott Lahteine cf0604da07 Use MB() for Megatronics 3.1 2017-12-08 23:39:47 -06:00
Scott Lahteine 55acb65e27 Updates for stepper parity with 2.0.x
Matching changes from #8725
2017-12-08 23:07:52 -06:00
Scott Lahteine 4f465c2d07 Merge pull request #8721 from thinkyhead/bf1_better_reverse_pass
[1.1.x] Improved Planner::reverse_pass
2017-12-08 21:20:23 -06:00
Scott Lahteine 77519e9f14 Tweaks to planner.h 2017-12-08 21:11:17 -06:00
AnHardt 22baf3356a Apply @AnHardt reverse_pass changes
Plus: 3 times 2 float / to 1 float / and 2 float *
      and, reciprocal is an optimized operation
2017-12-08 21:11:17 -06:00
Bob-the-Kuhn 360c553228 Merge pull request #8718 from Bob-the-Kuhn/1.1x-planner-speed-improvemenr
[bugfix-1.1.x] minor planner.cpp speed improvement (follow up to COREXY stutter changes PR #8697)
2017-12-08 18:40:41 -06:00
Scott Lahteine b4d69527e6 Followup to #8716 2017-12-08 18:18:06 -06:00
Scott Lahteine 4aba382b01 Merge pull request #8715 from thinkyhead/bf1_followup_8713
Followup to #8713
2017-12-08 18:14:57 -06:00
Scott Lahteine 2c445743e9 Merge pull request #8716 from bjarchi/fix-11x-8604
[1.1.x] Fix for #8604
2017-12-08 18:09:38 -06:00
Bob-the-Kuhn 6f38814541 speed improvement 2017-12-08 18:02:57 -06:00
Scott Lahteine 7251850028 Followup to #8713
Fix indentation, use min for constraint, remove obsolete error check
2017-12-08 17:52:44 -06:00
Scott Lahteine 6eb268f63f Remove old UBL description text 2017-12-08 17:52:44 -06:00
Jonathan Barchi ae547c3044 Nozzle.cpp: replace incorrect M_2_PI (2/pi) with 2.0 * M_PI 2017-12-08 15:33:24 -08:00
Roxy-3D 23dd2cb6e7 Better off mesh behavior for UBL (#8713)
* Better off mesh behaviour for UBL

* Spacing changes...
2017-12-08 16:36:03 -06:00
Scott Lahteine 8385cddd8d Followup to #8705 2017-12-08 03:48:24 -06:00
Scott Lahteine ab5133514c Merge pull request #8707 from thinkyhead/bf1_splits_are_expendable
[1.1.x] Discard "continued" blocks on interrupted move
2017-12-08 02:29:13 -06:00
Scott Lahteine 75eb93140f Discard all CONTINUED blocks on interrupted move 2017-12-08 02:13:51 -06:00
Scott Lahteine 8be7a0b131 FORCE_INLINE before static 2017-12-08 01:31:59 -06:00
Scott Lahteine cd6468d6de Fix TEMP_BED_PIN for Mightyboard Rev.E
Based on #8685
2017-12-07 21:52:43 -06:00
Scott Lahteine 822254291f Merge pull request #8702 from bjarchi/fix-1.1.x-probe_bounds
Fix - Conditionals_post.h - allow overriding of [min,max] probe point
2017-12-07 21:49:04 -06:00
Scott Lahteine e29bf84f06 Merge pull request #8705 from thinkyhead/bf1_multi_probe
[1.1.x] MULTIPLE_PROBING — Why stop at 2?
2017-12-07 21:21:30 -06:00
Scott Lahteine 44800e9899 PROBE_DOUBLE_TOUCH => MULTIPLE_PROBING 2017-12-07 16:46:06 -06:00
Scott Lahteine 6e85c060a9 Apply MULTIPLE_PROBING to example configs 2017-12-07 16:18:53 -06:00
Jonathan Barchi 7c6d33b0d2 Fix - Conditionals_post.h - allow overriding of [min,max] probe points as expected 2017-12-07 10:40:32 -08:00
Bob-the-Kuhn 86b65e52c4 [bugfix-1.1.x] COREXY stutter moves (planner.cpp changes) (#8697) 2017-12-07 00:08:48 -06:00
Scott Lahteine 6310a00d7e feed_factor => inverse_secs 2017-12-06 23:02:37 -06:00
Scott Lahteine 6b93d20e4e Sanity-check skew+UBL 2017-12-06 22:56:20 -06:00
Scott Lahteine 909fac6d90 Update commentary on M48 2017-12-06 22:50:13 -06:00
Scott Lahteine 6c328ec096 Merge pull request #8690 from thinkyhead/bf1_clean_blocks_on_trigger
[1.1.x] Purge blocks on endstop/probe hit
2017-12-06 22:26:08 -06:00
Scott Lahteine 1951d3a37a Simplify G26 user_canceled 2017-12-06 22:03:46 -06:00
Scott Lahteine aa7236e03c Shorten error text in ubl::G29 2017-12-06 21:43:26 -06:00
Scott Lahteine 574153a810 No lcd_map_control needed in quick_stop 2017-12-06 21:43:26 -06:00
Scott Lahteine 3b30cc90f1 Clean on trigger instead of split_first_move flag 2017-12-06 21:43:26 -06:00
Scott Lahteine f30b774f26 Merge pull request #8696 from thinkyhead/bf1_fixes_DEC6
[1.1.x] Cleanup, bugfixes, parity with 2.0.x
2017-12-06 21:41:38 -06:00
Scott Lahteine 1063b3b2b8 Changes for parity with 2.0.x 2017-12-06 21:19:17 -06:00
Scott Lahteine 93560836de Allow buffer clean without release command 2017-12-06 21:12:55 -06:00
Scott Lahteine ff26b7446c Standardize LCD interface code for UBL a little 2017-12-06 21:12:55 -06:00
Scott Lahteine 7b6ad28a5d General UBL/G26 code cleanup 2017-12-06 21:12:55 -06:00
Scott Lahteine 5d01a2f467 Move temperature reporting to Temperature class 2017-12-06 21:12:55 -06:00
Scott Lahteine 6e197d4a42 Fix M503 S parameter 2017-12-06 21:12:55 -06:00
Scott Lahteine a5b20fec2f Whitespace clean 2017-12-06 16:19:49 -06:00
Scott Lahteine 348e989a50 Merge pull request #8687 from AnHardt/1_first_move_probing_homing
[1.1.x] Don't split first_move while homing or probing
2017-12-06 11:54:44 -06:00
AnHardt b19846aca1 Don't split first_move while homing or probing
While homing or probing it might be bad if the stop/trobe triggers during the first part and the second is still in the buffer.
2017-12-06 14:56:37 +01:00
Scott Lahteine d951ba83e6 Show "Level Bed Corners" item with UBL too
Addressing #8676
2017-12-05 21:56:04 -06:00
Scott Lahteine 203a445bc1 Minimal include for speed_lookuptable 2017-12-05 21:44:59 -06:00
Scott Lahteine 9edefa645d Remove skew warning that could crash the planner 2017-12-05 20:25:53 -06:00
Scott Lahteine 4608e1f590 Merge pull request #8681 from thinkyhead/bf1_pidtempbed_fix
[1.1.x] Change K1 to required option PID_K1
2017-12-05 20:11:52 -06:00
Scott Lahteine 794f8f1329 Update K1 => PID_K1 2017-12-05 19:59:01 -06:00
revilor b1f3dfab28 Fix for #8669 (#8677) 2017-12-05 19:40:57 -06:00
Scott Lahteine 2d6c84a817 Cleanup constexpr in planner.cpp 2017-12-05 18:54:25 -06:00
Scott Lahteine 23291a0466 Fix SKEW_CORRECTION without leveling 2017-12-05 18:47:19 -06:00
Scott Lahteine 83a1a70103 Creality pins spacing, MINIPANEL CS pin 2017-12-05 02:00:33 -06:00
Scott Lahteine 47f6fc1e07 Set initial endstops state
Addressing #8662
2017-12-05 01:08:39 -06:00
Scott Lahteine 88b34d2bb6 Merge pull request #8655 from kein0r/bugfix-1.1.x
Added Support for RAMPS 1.4 Plus board
2017-12-05 01:07:19 -06:00
kein0r f36fdc74ac Added RAMPS v1.4 Plus board
Conflicts:
	Marlin/boards.h
2017-12-05 00:43:02 -06:00
Scott Lahteine ff258d43e7 Merge pull request #8661 from lumbric/bugfix-1.1.x
Add missing library in Makefile
2017-12-04 23:50:34 -06:00
Scott Lahteine d8ef6faa80 Cleanup for dogm_bitmaps 2017-12-04 21:19:59 -06:00
Scott Lahteine 59eb77fd28 One fewer move required… 2017-12-04 20:35:33 -06:00
lumbric (antares) dde0e9ee0a Add missing library in Makefile
When using RELOC_WORKAROUND library needs to be linked explicitly, otherwise
eeprom functions are not available.

Thanks to @rfjakob for finding the crucial hint to solve this issue.
2017-12-05 00:20:58 +01:00
Dave Johnson 860d98a897 [1.1.x] SERIAL_XON_XOFF not supported on USB-native AVR devices (#8653)
* SERIAL_XON_XOFF not supported on USB-native AVR devices

User could enable SERIAL_XON_XOFF on USB-native devices and it would not be enabled without warning, but M115 would report the capability as available.
2017-12-04 16:48:19 -06:00
Scott Lahteine 3abd307691 Merge pull request #8658 from thinkyhead/backup_1_split_first
[1.1.x] Split first move to planner for better chaining
2017-12-04 16:17:14 -06:00
Scott Lahteine 000818f5e4 Split first move to planner for better chaining 2017-12-04 15:43:28 -06:00
Scott Lahteine 1bbf55a7f7 Merge pull request #8648 from thinkyhead/bf1_planner_split_first
[1.1.x] Revert PR #8608 — split first planner move
2017-12-03 17:58:36 -06:00
Scott Lahteine 298a357a43 Revert "Merge pull request #8608 from thinkyhead/bf1_planner_split_first"
This reverts commit 0eef0ff0de, reversing
changes made to d8582b7506.
2017-12-03 17:49:24 -06:00
Scott Lahteine 44d2c5ef88 Fix M49 console hang 2017-12-03 03:36:12 -06:00
Scott Lahteine 1600f7d4ee Merge pull request #8635 from fiveangle/bf1_report_xonxoff
[1.1.x] Report SERIAL_XON_XOFF in M115
2017-12-03 02:19:28 -06:00
Scott Lahteine 71a4c04dd5 Merge pull request #8636 from thinkyhead/bf1_ubl_uses_LSL
[1.1.x] Use custom segment length for UBL Cartesian
2017-12-03 01:57:32 -06:00
Scott Lahteine 0eef0ff0de Merge pull request #8608 from thinkyhead/bf1_planner_split_first
[1.1.x] Split first planner move for better chaining
2017-12-03 01:50:58 -06:00
Scott Lahteine 1d0ee83e18 Split first move to planner for better chaining
Address #8573, #8595
2017-12-03 01:44:33 -06:00
Scott Lahteine db8631e49a Use custom segment length for UBL Cartesian 2017-12-03 00:02:28 -06:00
Unknown 2e295759f2 [1.1.x] Report SERIAL_XON_XOFF in M115
-Report SERIAL_XON_XOFF in Extended Capabilites M115 report for hosts
-Remove outdated 256 size limitation from comments on RX_BUFFER_SIZE defines
config updates
-Update error checking conditions
2017-12-02 21:02:02 -08:00
Scott Lahteine d8582b7506 Bring configurations up to date 2017-12-02 21:42:36 -06:00
dot-bob 7f656b867f Example configuration files for the Wanhao Duplicator 6 for bugfix-1.1.x (#8614)
* Add default configuration files for the Wanhao Duplicator 6.

* Update Configuration.h
2017-12-02 21:31:14 -06:00
Scott Lahteine 077fed1d88 Fix a homing comment 2017-12-02 20:57:35 -06:00
Scott Lahteine 152c5d2616 Followup to #8613 2017-12-02 20:47:33 -06:00
Scott Lahteine 26c5bbc5a7 Rename inverse_mm_s => inverse_secs 2017-12-02 20:13:31 -06:00
Jonathan Barchi 344e6b857a configuration_store.cpp: Fix in MarlinSettings::load for updated size of DELTA variables (#8630) 2017-12-02 19:04:52 -06:00
Roxy-3D 81e52138cc More corrections for Bi-Linear to work with G26 2017-12-02 14:13:19 -06:00
Roxy-3D a27a9b63e4 Get Bi_Linear macros correct to work with G26
G26 uses logic that looks like:
```
ex = _GET_MESH_X(i + 1) - (SIZE_OF_INTERSECTION_CIRCLES - (SIZE_OF_CROSSHAIRS));
```
The Bi-Linear macros need parenthesis to work correctly.
2017-12-02 14:04:41 -06:00
Scott Lahteine 8b7c274db5 Comment/cleanup motion code 2017-12-02 01:42:37 -06:00
Scott Lahteine 7bed539fdb Fix missing return values in G33_auto_tune 2017-12-02 01:06:14 -06:00
Scott Lahteine e990fd23f1 Merge pull request #8623 from thinkyhead/bf1_skew_correction
[1.1] Skew Correction
2017-12-02 00:43:38 -06:00
Scott Lahteine 172ce67344 New feature: BED_SKEW_CORRECTION 2017-12-01 19:43:32 -06:00
Scott Lahteine a8d83aec89 Add SKEW_CORRECTION to example configs 2017-12-01 19:43:31 -06:00
Scott Lahteine 38e5883d44 Apply const to thermal_runaway_protection args 2017-12-01 19:43:31 -06:00
Scott Lahteine e7c6abd767 Update V45 Settings header 2017-11-30 22:26:21 -06:00
Roxy-3D 9f7405b3f0 Restore correct gMax 1.5+ G26 values 2017-11-30 18:11:01 -06:00
Scott Lahteine d3f8111fe7 Use some int types in Planner 2017-11-30 18:03:51 -06:00
Scott Lahteine ab43113f73 Merge pull request #8613 from thinkyhead/bf1_planner_parity
[1.1.x] Fix some planner bugs
2017-11-30 17:37:10 -06:00
Scott Lahteine d1a807fdf8 Drop obsolete Planner::position_float 2017-11-30 17:28:40 -06:00
Scott Lahteine 8df42a84a4 Fix fade bug in (un)apply_leveling 2017-11-30 17:28:40 -06:00
Scott Lahteine 8f462b5717 Add Planner::set_filament_size for 2.0.x parity 2017-11-30 16:52:19 -06:00
Scott Lahteine ace3e50898 Merge pull request #8488 from Tannoo/1.1.x-led_control_menu
[1.1.x] led control menu
2017-11-30 00:18:07 -06:00
Scott Lahteine 68c1f05aeb Cleanups/changes to led control menu 2017-11-30 00:04:43 -06:00
Scott Lahteine 1f770bb103 Config updates, spacing mainly 2017-11-29 20:57:38 -06:00
Tannoo e25567a5dd New feature: LED_CONTROL_MENU 2017-11-29 20:57:38 -06:00
Scott Lahteine 9951f28892 Apply const to some planner vars 2017-11-29 20:57:38 -06:00
Scott Lahteine 83ab68b36f Merge pull request #8596 from thinkyhead/bf1_cartesian_segments
[1.1.x] Segmented mesh moves
2017-11-29 17:25:27 -06:00
Scott Lahteine 80929c2637 Apply SEGMENT_LEVELED_MOVES to example configs 2017-11-29 16:58:16 -06:00
Scott Lahteine d786fb99e2 Add an option to segment leveled moves 2017-11-29 16:58:15 -06:00
Scott Lahteine a0fc5f7b52 Minor planner.cpp style changes 2017-11-29 15:00:33 -06:00
Scott Lahteine a6d39b7192 Fix up git helper scripts 2017-11-28 19:03:35 -06:00
Scott Lahteine ea87cd975d Tweak to check_axes_activity 2017-11-28 18:39:29 -06:00
Scott Lahteine 417a82fd95 #8589 followup 2017-11-28 17:58:47 -06:00
Scott Lahteine b781f76711 Merge pull request #8589 from fiveangle/bf11_babystepping_travis_options
[1.1.x] Additional Travis BABYSTEPPING tests
2017-11-28 17:53:17 -06:00
Dave Johnson 228d6050a4 Additional Travis BABYSTEPPING options for AVR 2017-11-28 17:49:26 -06:00
Scott Lahteine fd50f452ff Whitespace cleanup 2017-11-28 17:49:25 -06:00
Scott Lahteine 6eedb64777 Merge pull request #8586 from AnHardt/1_Fix_WDTO_during_long_DELTA_moves
[1.1.x] Fix WDTO during long delta moves
2017-11-28 17:27:08 -06:00
Scott Lahteine 46776de90b Fix M290 boolval bug
Fix #8577
2017-11-28 17:25:14 -06:00
Scott Lahteine dfcef11bca Fix #8579
Fan speed code fell into a curly brace
2017-11-28 16:09:37 -06:00
AnHardt f1757f30cb Fix Watchdog time out during long lasting DELTA moves
During long lasting moves of a delta machine neither the temperatures are maintained nor buttons checked nor ... .
The fix is to call 'manage_heater()' and 'idle()' every now and then in the loop where the move is segmented. 
The code is abot the same as in G2_G3 wher we had the same problem with too large circles lasting too long.
Fixing #7510
2017-11-28 17:10:18 +01:00
Scott Lahteine ddab1533c5 Simplify midpos calculation 2017-11-27 14:01:42 -06:00
Scott Lahteine 44c7f86f49 Merge pull request #8574 from thinkyhead/push_to_upstream
[1.1.x] Make MBL work more like PROBE_MANUALLY
2017-11-27 12:54:54 -06:00
Scott Lahteine 915c4b9ce2 Make MBL work more like PROBE_MANUALLY 2017-11-27 00:09:23 -06:00
Scott Lahteine d7cc26cc17 Allow override of probe bounds in configs 2017-11-26 20:57:00 -06:00
Scott Lahteine 5bc5ba7ee3 More reliable set characters after bootscreen 2017-11-26 20:02:51 -06:00
Scott Lahteine 82df656cc7 Tweak readDir code 2017-11-26 18:23:34 -06:00
Scott Lahteine 51d09bb9c9 Tweak BLOCK_BUFFER_SIZE config 2017-11-26 17:33:33 -06:00
Scott Lahteine 5a1f1305f0 SD Menu patches 2017-11-26 01:10:06 -06:00
Scott Lahteine 3cf31205bc Tweaks to bed leveling menus 2017-11-26 00:06:10 -06:00
Scott Lahteine 26a40373fc Adjustments to blocking moves 2017-11-25 23:32:53 -06:00
Scott Lahteine 6b9e7defac M211 output in current workspace 2017-11-25 20:47:36 -06:00
Scott Lahteine a63d9cc550 Loosen HAS_BED_PROBE definition 2017-11-25 20:10:03 -06:00
Scott Lahteine 1e84cded98 Parity with 2.0.x bitmap functions
Based on #8565
2017-11-25 19:56:22 -06:00
Scott Lahteine bb0cc1bbbc Fix gcode_G26 error return 2017-11-25 19:51:03 -06:00
Scott Lahteine 941ffea81c Fix Micromake C1 config 2017-11-25 18:42:42 -06:00
Scott Lahteine 737cee4b8c Syntax tweaks 2017-11-25 18:15:16 -06:00
Scott Lahteine d3165cca4f Move BABYSTEP_ZPROBE_GFX_OVERLAY up 2017-11-25 17:28:12 -06:00
Scott Lahteine 2060ba3556 M290 report on change, P0 to leave Probe Z Offset unchanged 2017-11-25 16:51:00 -06:00
Scott Lahteine e56ead5e1c Followup to G33 patch 2017-11-25 16:01:55 -06:00
Scott Lahteine 4c93153194 Merge pull request #8556 from LVD-AC/1.1.x]-probe-errors
[1.1.x] G33 probe error handing
2017-11-25 15:51:55 -06:00
LVD-AC 8b9e68c32d [1.1.x] G33 probe error handing 2017-11-25 15:44:30 -06:00
Scott Lahteine b2d3fffe74 Patches for M290, M851 2017-11-25 14:10:49 -06:00
Scott Lahteine b5c5b175f1 Dont use Z_MIN_PROBE_ENDSTOP for DELTA 2017-11-24 18:28:27 -06:00
Thomas Moore ecf19344f6 Initialize mixing virtual tools to behave like standard a multi-extruder setup (#6853)
* Initialize mixing virtual tools to behave like standard a multi-extruder setup

* Update Marlin_main.cpp

* Update Marlin_main.cpp
2017-11-24 18:06:32 -06:00
Scott Lahteine b2473e57dd Apply LINEAR_UNIT to M503 output for M200 2017-11-24 17:31:00 -06:00
Scott Lahteine d38aaa0c7e Merge pull request #8550 from thinkyhead/bf1_fix_probe_pt
Fix #8540
2017-11-24 17:15:05 -06:00
Scott Lahteine 8696f98c3b Merge pull request #8552 from revilor/bugfix-1.1.x
MK2_MULTIPLEXER does not require E2/E3 stepper pins
2017-11-24 17:14:25 -06:00
Scott Lahteine adee17847c Fix #8540
Does it?
2017-11-24 17:05:42 -06:00
oliver a7d82bd73b MK2_MULTIPLEXER does not require E2/E3 stepper pins 2017-11-24 23:58:37 +01:00
Scott Lahteine de67c3f235 Merge pull request #8548 from thinkyhead/bf1_mesh_gfx_overlay
[1.1.x] Adapt MESH_EDIT_GFX_OVERLAY
2017-11-24 16:17:52 -06:00
Scott Lahteine 59a699063a Fix #8537 2017-11-24 15:54:03 -06:00
Scott Lahteine ff800e08fd Phatter arrows for Z offset overlay 2017-11-24 15:54:03 -06:00
Scott Lahteine c0190eff00 Adapt MESH_EDIT_GFX_OVERLAY for 1.1.x 2017-11-24 15:54:02 -06:00
Scott Lahteine 4e445f2c55 Keep Micromake C1 name on LCD? 2017-11-24 13:18:34 -06:00
Scott Lahteine 9da817eae0 Make LCD_LANGUAGE consistent in all configs 2017-11-24 13:18:34 -06:00
Scott Lahteine a77e513443 Combine some travis tests 2017-11-24 13:06:18 -06:00
Scott Lahteine 664d386623 Merge pull request #8337 from robpower/NanoDLP_Z_Move_Sync
[1.1.x] Added optional NanoDLP Z movement synchronization
2017-11-24 12:55:58 -06:00
Scott Lahteine 7cf4009838 Fix MK2_MULTIPLEXER stepper indirection
Addressing #8544
2017-11-24 12:47:10 -06:00
Rob Power f8e30f49d7 Add NanoDLP Z movement synchronization option
Implemented synchronization message output for NanoDLP printers (nanodlp.com).
If optional feature is enabled in `Configuration_adv.h`, Marlin will ouput "Z_move_comp" string to serial after completing any G0/G1 Z-axis movements. This feature patched on previous versions(1.0) is used by NanoDLP to synchronize Z-axis movement with projector exposure in DLP stereolithography printers.
2017-11-24 00:32:03 -06:00
Scott Lahteine 5c087727a9 Merge pull request #8522 from Roxy-3D/bugfix-1.1.x
[1.1.x] Make G26 work with other meshes too
2017-11-23 23:17:00 -06:00
Scott Lahteine 3b431f2f72 Arrange G26 functions in dependency order 2017-11-23 22:30:22 -06:00
Scott Lahteine e5b43d48ee Apply G26 for meshes to all configs 2017-11-23 21:41:27 -06:00
Roxy-3D 8282d732c1 Make G26 work with all mesh leveling.
Example Configuration.h files are not updated yet.   You need to cross
your settings over to the default Configuration.h file in the \Marlin
directory.   (UBL_G26_MESH_VALIDATION enablement has moved to a new
location in the file.)
2017-11-23 21:41:27 -06:00
Scott Lahteine 82f41d6e46 fix fan kickstart 2017-11-23 21:40:31 -06:00
Scott Lahteine b8c65078fc NEOPIXEL_RGBW_LED => NEOPIXEL_LED 2017-11-23 16:41:04 -06:00
Scott Lahteine 04419af419 Reorganize check_axes_activity 2017-11-23 15:29:35 -06:00
Scott Lahteine ed6a5ff7e5 Merge pull request #8524 from GMagician/1.1.x-tool-change-bad-behaviour-fix
[1.1.x] Tool change bad behaviour fix
2017-11-22 20:23:02 -06:00
Scott Lahteine 956680104b Tweak char_mode init 2017-11-22 19:10:54 -06:00
Scott Lahteine 3958ff8627 Merge pull request #8526 from thinkyhead/bf1_lcd_init_charset
[1.1.x] Fix up LCD init / charset
2017-11-22 18:58:36 -06:00
Scott Lahteine 99b71c1dde Move lcd_map_control to UBL
For parity with bugfix-2.0.x
2017-11-22 18:45:55 -06:00
Scott Lahteine 73ddc762c8 Fix up LCD init / charset 2017-11-22 18:07:03 -06:00
GMagician 7a5b3a1e6a [1.1.x] Tool change bad behaviour fix
Just aligned with version 2.0. Here bug was not present
2017-11-22 23:51:07 +01:00
Scott Lahteine e2568d7589 Fix delta_safe_distance_from_top 2017-11-22 14:11:04 -06:00
Scott Lahteine 0b1d754e7d Fix G42 2017-11-22 14:11:04 -06:00
Scott Lahteine bbc2ee6da1 Don't re-init graphical LCD after boot screen
Followup to https://github.com/MarlinFirmware/Marlin/commit/13a3fb1accec51adb12f7af4f45d6d63f4bc8a3f
2017-11-21 18:21:50 -06:00
Scott Lahteine 6ebf8ea230 Merge pull request #8496 from GMagician/tool-change-fix-1.0
[1.1.x]  tool change bad behaviours
2017-11-20 20:36:42 -06:00
GMagician b96ceb4256 [1.1.x] tool change bad behaviours
This PR will address two issues reported in #8492. Just one is left because I don't know if it is an issue or not

1) when no home is done ("no_move" is set) tool change should never move X & Y because... I don't know where I am...only Z should be adjusted to avoid bed collision if other nozzle is lower than current.
2) Since no move no bed level matrix should be applied
    When SWITCHING_NOZZLE is enabled and system is homed there are two movements to go to destination, but first can move Z to older position and then crash on the bed
2017-11-20 16:39:32 -06:00
Scott Lahteine b6dbc4c5c1 Merge pull request #8426 from SteveGotthardt/bugfixes
[1.1.x]Update Anet A8 default values from my Anet A8 experience
2017-11-20 15:12:46 -06:00
Bob-the-Kuhn 12b018e619 Merge pull request #8487 from Bob-the-Kuhn/M43-compatibility-1.1.x
[1.1.x] M43 end pin correction/compatibility
2017-11-19 11:01:10 -06:00
Bob-the-Kuhn 9b80e1e04a change to L for end pin for M43 Toggle command 2017-11-18 13:48:53 -06:00
Scott Lahteine bf6a1816b4 Display volumetric ratio in terms of E mm 2017-11-18 07:03:18 -06:00
Scott Lahteine 4f05a66ee1 Fixes #8472 2017-11-18 05:14:31 -06:00
Scott Lahteine dcc9b0d437 Merge pull request #8458 from thinkyhead/bf1_no_mesh_alter
[1.1] No retroactive adjustment with M851 Z
2017-11-18 04:49:39 -06:00
Scott Lahteine 622d100c30 No retroactive changes with M851 Z 2017-11-18 03:37:07 -06:00
Scott Lahteine 74997a5251 Fix comment in planner.h 2017-11-18 02:30:41 -06:00
Roxy-3D 50148f7185 Update the UBL Probable Area for Delta's
This is a non-intuitive change.   @oldmcg says in this post https://github.com/MarlinFirmware/Marlin/issues/7572#issuecomment-340641207 that using DELTA_PRINTABLE_RADIUS is better than DELTA_PROBABLE_RADIUS for setting the probe limits.   This is because the automatic probe code checks all locations for being reachable by the probe prior to doing the probe.
2017-11-17 16:41:31 -06:00
Scott Lahteine 8f57a3e28a Apply coding standards to Max7219 code 2017-11-17 15:33:55 -06:00
Scott Lahteine 2511e869e2 Update Configuration.h 2017-11-16 23:18:55 -06:00
Scott Lahteine aa612124f2 Merge pull request #8452 from tcm0116/1.1.x-pio_deps
[1.1.x] Fix PlatformIO dependencies
2017-11-16 22:54:15 -06:00
Scott Lahteine 3e050fb35a Merge pull request #8454 from GMagician/1.1.x-gitignore
[1.1] gitignore visual studio update
2017-11-16 22:39:30 -06:00
Scott Lahteine 3dee10636c Merge pull request #8459 from thinkyhead/bf1_filwidth_fix
[1.1] Fix FILAMENT_LCD_DISPLAY, disabled state, optimize
2017-11-16 17:58:51 -06:00
Scott Lahteine eb3bdb7550 Fix FILAMENT_LCD_DISPLAY, disabled state, optimize 2017-11-16 17:46:08 -06:00
GMagician 33fdb9ab8b [1.1] visual studio update
aligned with marlin 2.0 gitgnore to support visual studio  community edition
2017-11-16 22:43:31 +01:00
Thomas Moore 97c19de8b9 Fix PlatformIO dependencies 2017-11-16 15:16:21 -06:00
Scott Lahteine 4e19c59ab3 Miscellaneous cleanup 2017-11-16 01:18:05 -06:00
Scott Lahteine 9cf5b96971 Fix M503 output for M145
Fixes #7978
2017-11-15 04:00:39 -06:00
Scott Lahteine 0eed5e0667 Merge pull request #8437 from thinkyhead/bf1_thermistor_ov
[1.1] Add OV() macro for thermistor tables
2017-11-15 03:50:42 -06:00
Scott Lahteine 69a710fef1 Add OV() macro for thermistor tables 2017-11-15 03:20:36 -06:00
Scott Lahteine d2613ce077 Merge pull request #8432 from thinkyhead/bf1_fix_M32_subroutines
[1.1] Fix 'M32 P' subroutines
2017-11-15 02:31:21 -06:00
Scott Lahteine f2e222b9e8 Merge pull request #8419 from RowanMeara/rm-dithering-1.1.x
[1.1.x] Fix Software Fan PWM
2017-11-15 02:29:59 -06:00
Scott Lahteine a6ee4a0468 Apply SDCARD_SORT_ALPHA changes from 2.0.x 2017-11-15 01:09:13 -06:00
Scott Lahteine d3b8f30818 Fix M32 P subroutine handling 2017-11-15 01:09:06 -06:00
Scott Lahteine 2390f6d3ab Cleanup, apply standards to SD lib, cardreader 2017-11-15 01:09:06 -06:00
Scott Lahteine d8b1343279 Merge pull request #8431 from thinkyhead/bf1_fix_parser_value
[1.1] Fix parser value handling
2017-11-15 00:50:01 -06:00
Scott Lahteine eacb6b6e8b Fix parser value handling 2017-11-14 23:23:22 -06:00
Steven Gotthardt 7efffc1548 Update Anet A8 default values from my Anet A8 experience 2017-11-14 10:47:30 -07:00
RowanMeara 10e366ebd7 Change dithering behavior to intended. 2017-11-14 00:36:35 -08:00
Scott Lahteine 95590adf07 Make sure leveled[] is enabled for use 2017-11-14 02:12:20 -06:00
Scott Lahteine be67acbd48 Merge pull request #8417 from thinkyhead/bf1_M114_DETAIL
[1.1] Add M114_DETAIL to Configuration_adv.h
2017-11-14 00:28:48 -06:00
Scott Lahteine 8d06cf7b84 Add M114_DETAIL to Configuration_adv.h 2017-11-14 00:06:35 -06:00
Scott Lahteine 216f9b45cc Merge pull request #8411 from SteveGotthardt/AnetWarningFixes
[1.1] Fix compile warnings for REPRAPWORLD_KEYPAD
2017-11-13 22:33:11 -06:00
Steven Gotthardt 645b586041 Fix warnings for REPRAPWORLD_KEYPAD 2017-11-13 22:25:17 -06:00
Scott Lahteine 1962c13455 Merge pull request #8412 from thinkyhead/bf1_mesh_test_pins
[1.1] Move test extrusion options under G26
2017-11-13 21:22:42 -06:00
Scott Lahteine 069ec3f9a9 Move Filament Width Sensor to Configuration_adv.h 2017-11-13 21:06:40 -06:00
Scott Lahteine 56035e9965 Move mesh test options under G26 option 2017-11-13 21:06:40 -06:00
Scott Lahteine 4e3b566f72 Merge pull request #7286 from cscott/printrboard-rev-f
[1.1.x] Update pin definitions for PRINTRBOARD REV F.
2017-11-13 16:08:14 -06:00
Scott Lahteine d65c99f38b Drop unused LARGE_FLASH option 2017-11-13 15:47:03 -06:00
Scott Lahteine 90c7d28055 Extrudrboard support for Printrboard Rev.F 2017-11-13 15:47:03 -06:00
Scott Lahteine 8b684637bc Merge pull request #8397 from RowanMeara/rm-M428-1.1.x
[1.1.x] Fix M428
2017-11-13 15:11:36 -06:00
Rowan Meara d2df00bfca [1.1.x] Fix compilation warnings (#8395)
* Fix up Travis CI and compile warnings/errors

* No ULTRA_LCD with REPRAP_DISCOUNT_SMART_CONTROLLER

* No point in setting all the endstop plugs
2017-11-13 04:18:19 -06:00
Scott Lahteine 25ec0fecfa Apply native workspace fixes to G92, G53-59 2017-11-13 01:53:44 -06:00
RowanMeara 227b96b28b Fix M428
This fixes the old implementation of M428 which was broken, did not
match the website, and made no sense.
2017-11-13 01:34:43 -06:00
Scott Lahteine a2fc7da587 Merge pull request #8398 from thinkyhead/bf1_fix_printrboard_pins
[1.1] Fix Printrboard pins for parity with 2.0
2017-11-13 01:07:18 -06:00
Scott Lahteine a2c013c8c7 Fix LCD pins for Printrboard v1 2017-11-13 00:10:27 -06:00
Scott Lahteine f27196214b Fix Printrboard pins for parity with 2.0 2017-11-13 00:03:11 -06:00
Scott Lahteine aa616cd410 No leveling data in M114 without leveling 2017-11-12 23:06:16 -06:00
Scott Lahteine 5926159890 Fix report_current_position
Thanks @RowanMeara!
2017-11-12 22:57:57 -06:00
Roxy-3D c9f88297b8 Provide more clearance for BL-Touch probe 2017-11-12 13:09:10 -06:00
Scott Lahteine 5cc87abb3a Merge pull request #8381 from thinkyhead/bf1_native_followup
[1.1] Remove offsets from soft endstops, tool change
2017-11-11 23:13:40 -06:00
Scott Lahteine 355dfed437 Coding standard patch of M290 2017-11-11 22:16:13 -06:00
Scott Lahteine 802ae73b13 Turn off laser power pin when PWM goes to 0 2017-11-11 22:02:19 -06:00
Scott Lahteine 549c814e8d Remove offsets from soft endstops, tool change 2017-11-11 21:28:32 -06:00
Scott Lahteine 564fbc8dec M290 constrain patch 2017-11-11 20:50:16 -06:00
Scott Lahteine 972248c333 Merge pull request #8357 from tcm0116/1.1.x-M600
[1.1.x] Normalize load/unload length in M600
2017-11-10 21:01:30 -06:00
Scott Lahteine df44bcc5ae Use do_blocking_move_to where possible 2017-11-10 20:37:41 -06:00
Scott Lahteine 3293823642 Add pre-calculated planner.e_factor 2017-11-10 20:09:59 -06:00
Scott Lahteine 24b302c001 Fix cold/lengthy extrusion handling 2017-11-10 20:09:59 -06:00
Thomas Moore 4714fb8fcb Normalize load/unload length in M600 2017-11-10 19:59:26 -06:00
Scott Lahteine 2a54fd1444 Merge pull request #8325 from LVD-AC/1.1.x-manual-probe
[1.1.x] PROBE_SELECTED etc.
2017-11-10 19:28:53 -06:00
Scott Lahteine b0ff3a4c6d Cleanup around updatePID 2017-11-10 19:17:46 -06:00
Scott Lahteine 7aadfe32e7 Prevent position_is_reachable disaster 2017-11-10 19:17:45 -06:00
LVD-AC 8ce9306b27 PROBE_SELECTED etc. 2017-11-10 19:17:45 -06:00
Scott Lahteine 438e894899 Merge pull request #8347 from cheton/translation
[1.1.x] Translation updates for Traditional Chinese
2017-11-10 04:53:31 -06:00
Scott Lahteine 80682ec61e Updates Traditional Chinese, rebase for bugfix-1.1.x 2017-11-10 04:49:09 -06:00
Scott Lahteine deaa70c2cc Update macros for parity with 2.0.x 2017-11-10 04:32:27 -06:00
Scott Lahteine 7535c21894 Remove some trailing white-space 2017-11-10 03:38:58 -06:00
Roxy-3D 8327667988 Correct gMax 1.5+ nozzle size to the right number
Also...   Doing a 'Direct Commit' to see if that is 'acceptable' for small changes like this.   I want to look at the commit history and see how the logs handle this type of change.
2017-11-09 20:00:55 -06:00
Scott Lahteine b6b4bf0959 Merge pull request #8345 from tcm0116/1.1.x-delta_height
[1.1.x] Add delta_height variable in lieu of using home_offset
2017-11-09 01:19:48 -06:00
Scott Lahteine d60619f8e5 Merge pull request #8342 from thinkyhead/bf1_fixes_for_117
[1.1] Fix PROBE_MANUALLY on kinematic bots
2017-11-08 23:51:50 -06:00
Thomas Moore 658e1ebe5a Add delta_height variable in lieu of using home_offset 2017-11-08 23:21:02 -06:00
Scott Lahteine 54963cc898 Fix _manual_goto_xy on kinematic systems 2017-11-08 23:18:55 -06:00
Scott Lahteine ad879a1f90 Clarify some motion code 2017-11-08 23:18:55 -06:00
Scott Lahteine 513f25d42c Remove redundant dual stepper driver entries 2017-11-08 20:26:54 -06:00
Scott Lahteine 2559745f54 Tweaks to core motion code 2017-11-08 20:08:20 -06:00
Scott Lahteine 7326fe1136 Fix tilt_mesh_based_on_probed_grid output bug 2017-11-08 20:07:02 -06:00
Scott Lahteine 97a43f0c2f Fix G26 Y position argument 2017-11-08 19:19:21 -06:00
Scott Lahteine 279b73fecd Merge pull request #8335 from thinkyhead/bf1_fix_get_destination
[1.1] Fix gcode_get_destination E axis
2017-11-08 12:55:06 -06:00
Scott Lahteine 87b655e59e Fix gcode_get_destination E axis 2017-11-08 12:50:40 -06:00
Roxy-3D 677d490b5c Add defaults for basic extrusion to Configuration.h files (#8331) 2017-11-08 11:02:47 -06:00
Roxy-3D 6ee4ba6932 We need motion even with !HAS_MESH (#8330)
Thank You MagoKimbra !
2017-11-08 09:58:18 -06:00
Scott Lahteine 77cef3bef2 Merge pull request #8322 from thinkyhead/bf1_sprintf_p_fix
[1.1] Followup to G33/LCD patch #8318
2017-11-08 01:00:18 -06:00
Scott Lahteine 4a857f1af6 Followup to G33/LCD patch #8318 2017-11-08 00:46:30 -06:00
Scott Lahteine 50a1352f7f Merge pull request #8318 from thinkyhead/bf1_sprintf_p_fix
[1.1] Patch G33 misuse of PROBE_MANUALLY
2017-11-07 22:40:15 -06:00
Scott Lahteine 1d0739d6d1 Patch G33 misuse of PROBE_MANUALLY 2017-11-07 22:28:54 -06:00
Scott Lahteine 69a7d4e0a5 Conditionals updates from #7979 2017-11-07 21:20:38 -06:00
Scott Lahteine 2fb35f7991 Merge pull request #8315 from thinkyhead/bf1_sprintf_p_fix
[1.1] Patch abuse of sprintf_P in G33
2017-11-07 17:50:31 -06:00
Scott Lahteine 5fe15c7f10 Patch abuse of sprintf_P in G33 2017-11-07 17:35:32 -06:00
Rowan Meara 094bebcc2d [1.1.x] Update Thermal Protection Documentation (#8282)
* Fix thermal protection documentation.

Even before the recent thermal protection changes, the documentation of
the thermal protection feature in the config files did not match the
implementation.  I fixed the documentation and reconciled the M303
implementation with the documentation.

* Applied documentation changes to sample config files

* Renamed hysteresis to watch_temp_increase

* Added gcodes back into documentation.
2017-11-07 15:52:28 -06:00
Scott Lahteine abb15bc30a Followup patch for G92 2017-11-07 13:08:38 -06:00
Scott Lahteine 8e18e05d1d Merge pull request #8309 from thinkyhead/bf1_fixes_for_117
[1.1] Fix G92 for native workspace
2017-11-07 12:52:55 -06:00
Scott Lahteine aa80882bdf Merge pull request #8306 from Kaibob2/patch-4
Length fix and translation
2017-11-07 12:27:37 -06:00
Scott Lahteine e4466b55b5 Fix G92 for native workspace 2017-11-07 12:27:05 -06:00
Scott Lahteine 60ea0f1222 Merge pull request #8305 from tcm0116/1.1.x-delta_eeprom
[1.1x] Fix Delta EEPROM
2017-11-07 12:04:26 -06:00
Kai b60efb4230 Length fix and translation
If #define MSG_Z_FADE_HEIGHT is xx.xx then the last character is crashing into the value
2017-11-07 18:16:30 +01:00
Thomas Moore 2f4a42b313 Fix Delta EEPROM 2017-11-07 16:55:06 +00:00
Scott Lahteine fff4d71ba5 Merge pull request #8296 from thinkyhead/bf1_incidentals
[1.1] Misc. fixes picked up from 2.0.x
2017-11-06 22:58:54 -06:00
Scott Lahteine e1ab285435 Fix some section sizes in EEPROM head comment 2017-11-06 22:41:27 -06:00
Scott Lahteine 26ebeadfaa Eliminate some compiler warnings 2017-11-06 22:41:27 -06:00
Scott Lahteine 30e4b85587 Fix M118 parameters, with strict guideline 2017-11-06 22:41:27 -06:00
Scott Lahteine 44edffa0a9 Fix SLOW_PWM_HEATERS, issues already patched in 2.0.x 2017-11-06 22:40:44 -06:00
Scott Lahteine 20b57f9d38 Merge pull request #8295 from thinkyhead/bf1_fix_fallback_font
[1.1] Fix non-extended font option
2017-11-06 21:54:13 -06:00
Scott Lahteine ddf5d68815 Fix non-extended font option 2017-11-06 21:43:18 -06:00
Scott Lahteine 298863c2d0 Tweak an EEPROM loop 2017-11-06 20:16:57 -06:00
Rowan Meara 8e8787ad63 Fixed EEPROM CRC (#8283)
Fix EEPROM reversion.
2017-11-06 19:18:42 -06:00
Roxy-3D 12151e62ee Fix G26's circle drawing... (#8291)
* Fix G26's circle drawing...

This mostly catches the bugfix-v1.1.x branch up to bugfix-v2.0.0

I'll have to do something similar to get bugfix-v2.0.0 caught up to
bugfix-v1.1.x

* only use planner.leveling_active if appropriate
2017-11-06 18:26:47 -06:00
Scott Lahteine efc1029226 Update bilinear for native workspace 2017-11-06 17:03:34 -06:00
Scott Lahteine 1b09733e7c Fix FWRETRACT un-hop 2017-11-05 18:33:10 -06:00
Scott Lahteine d8ef9bda18 Fix point_t pointer in Nozzle::zigzag 2017-11-05 18:32:32 -06:00
Scott Lahteine 1b870377b1 Merge pull request #8248 from thinkyhead/bf1_nozzle_cleanup
[1.1] Cleanup Nozzle class, fix XY vs Z move order
2017-11-05 18:26:53 -06:00
Scott Lahteine 267c247da7 Cleanup Nozzle class, fix XY vs Z move order 2017-11-05 18:14:18 -06:00
Scott Lahteine 95296191a2 Merge pull request #8200 from thinkyhead/bf1_asterisk_not_special
[1.1.x] CNC_COORDINATE_SYSTEMS
2017-11-04 22:49:02 -05:00
Scott Lahteine 8ab368559a Implement CNC_COORDINATE_SYSTEMS 2017-11-04 22:30:23 -05:00
Scott Lahteine bb111b928b Add CNC_COORDINATE_SYSTEMS to configs 2017-11-04 22:30:23 -05:00
Scott Lahteine 91abf07087 Cleanup and fix G33 2017-11-04 22:30:23 -05:00
Scott Lahteine e642a64b68 Prettify some EEPROM code 2017-11-04 22:00:45 -05:00
Scott Lahteine 64f077fd2a Remove I2CPEM workspace offset 2017-11-04 22:00:45 -05:00
Scott Lahteine 5fefa200ba Tweaks to cubic_b_sline code style 2017-11-04 22:00:45 -05:00
Scott Lahteine 4388719c5d Merge pull request #8243 from Augustus22/kkersey/anet-lcd-ramps
[1.1] Add Anet Keypad LCD pins for RAMPS
2017-11-04 21:49:07 -05:00
Kris Kersey 46c2841904 Added support for Anet LCD on Ramps board.
Working pin map for Anet LCD display.
Pins 1 and 2 must be swapped on cable.
2017-11-04 21:30:08 -05:00
Scott Lahteine 03904697ac Merge pull request #8257 from thinkyhead/bf1_git_scripts
[1.1] Update git helper scripts
2017-11-04 21:03:06 -05:00
Scott Lahteine 9bd230cf64 Update git helper scripts 2017-11-04 18:35:06 -05:00
Scott Lahteine 309890cb8c Merge pull request #8229 from thinkyhead/bf1_native_operation
[1.1.x] Operate in Native Machine Space
2017-11-04 14:37:13 -05:00
Scott Lahteine f9f0ee0f21 Update G2/G3 Workspace Planes 2017-11-04 14:35:25 -05:00
Scott Lahteine 640526f0c8 Operate in Native Machine Space 2017-11-03 22:40:30 -05:00
Scott Lahteine 9af9596f69 Merge pull request #8241 from machaj/fix-links-to-probes
Fix probes configuration url
2017-11-03 13:36:20 -05:00
Scott Lahteine 6e9093c288 Merge pull request #8239 from AnHardt/1.1_boot/kill_screen_cleanup
[1.1] Some cleanup around 'lcd_bootscreen()' and 'lcd_kill_screen()'
2017-11-03 13:32:52 -05:00
Jan Macháček 0c4e9980fb Fix probes configuration url 2017-11-03 14:42:02 +01:00
AnHardt 13a3fb1acc Some cleanup around 'lcd_bootscreen()' and 'lcd_kill_screen()'
Move 'lcd_bootscreen()' from `lcd_init()` to 'setup()' where it is cexecute exactly once. Saves 'bool show_bootscreen'.
Move the call of 'lcd_custom_bootscreen()' to the begin of 'lcd_bootscreen()'.
Move the delays into the related functions.
Move the picture loop around 'lcd_kill_screen()' into the function.
2017-11-03 12:16:42 +01:00
Scott Lahteine 343dd1c0b8 Remove G33 trailing whitespace 2017-11-03 04:06:38 -05:00
Scott Lahteine 64029ef8a6 Merge pull request #8179 from thinkyhead/bf1_config_tweak
[1.1.x] Faster menu navigation for Anet A8
2017-11-03 03:59:21 -05:00
Scott Lahteine 524f4ee0cf Tweak to M330 thermal protection 2017-11-03 03:57:11 -05:00
Scott Lahteine 34aeaec553 Remove ADKey steps acceleration 2017-11-03 03:42:52 -05:00
Luc Van Daele 0e4b6b373d [1.1.x] G33 magic numbers (#8173)
* [1.1.x] G33 magic numbers

* oops

* comments

* oops

* warning

* better comment section

* remarks

* extra grids
2017-11-03 03:35:53 -05:00
Scott Lahteine 193a0e9273 pid_autotune parity with 2.0.x 2017-11-03 03:26:47 -05:00
Rowan Meara 39cc36d3f1 [1.1.x] M303 thermal runaway protection (#8209)
* Added M303 thermal runaway protection

Currently, thermal runaway protection is not available during M303.
Therefore, if someone plugs the thermistors in incorrectly and goes to
autotune their printer, the printer temperature could runaway and damage
could occur.

* Replace removed line, clarifying its logic
2017-11-03 03:16:39 -05:00
Scott Lahteine 87d3a1ae4d Merge pull request #8228 from tcm0116/1.0.x-dual_stepper
[1.1.x] Fix automatic stepper assignment for X/Y/Z dual stepper drivers
2017-11-03 03:08:43 -05:00
Scott Lahteine 5289c4135a Merge pull request #8230 from AnHardt/1.1_watchdog
[1.1] Fix watchdog in WATCHDOG_RESET_MANUAL mode AVR
2017-11-03 03:06:45 -05:00
AnHardt dcd7949544 Fix watchdog in WATCHDOG_RESET_MANUAL mode AVR 2017-11-03 04:45:13 +01:00
Thomas Moore 277eb16d67 Fix automatic stepper assignment for X/Y/Z dual stepper drivers 2017-11-02 18:50:25 -05:00
Scott Lahteine 41ba4e507e Merge pull request #8216 from jmdearras/bugfix-1.1.x
Restore MKS_GEN_L
2017-11-02 16:58:27 -05:00
jmdearras c9980c0a5c Restore MKS_GEN_L
Removed by accident, I presume, when the file was cleaned up
2017-11-02 12:14:54 -04:00
jmdearras 3e9504d306 Fix case light "off" function (#8205)
* Fix case light "off" function

It would only turn the light off if brightness was 255

* Update Marlin_main.cpp
2017-11-01 21:17:23 -05:00
Scott Lahteine 1b68ee82ce Merge pull request #8196 from thinkyhead/bf1_asterisk_not_special
[1.1.x] Allow asterisks in G-Code commands
2017-10-31 21:53:26 -05:00
Scott Lahteine 4bf0e15653 Allow asterisks in G-Code commands
Addressing #6655
2017-10-31 21:14:56 -05:00
Scott Lahteine b63a55666d Merge pull request #8193 from thinkyhead/bf1_silver_gate
[1.1.x] Support for SilverGate Board
2017-10-31 16:25:46 -05:00
Scott Lahteine f02ca2a9a3 Organize boards.h by architecture 2017-10-31 16:12:07 -05:00
Scott Lahteine 4fb3ce4739 Support for SilverGate Board 2017-10-31 15:26:27 -05:00
Scott Lahteine 704640bf98 Faster menu navigation for Anet A8
Addressing #8166
2017-10-31 14:44:48 -05:00
Scott Lahteine b48a77c88a Merge pull request #8182 from thinkyhead/bf1_fix_bootscreen_repeat
[1.1.x] Only show custom bootscreen once
2017-10-31 02:37:24 -05:00
Scott Lahteine db6de76acb Only show custom bootscreen once 2017-10-31 01:52:35 -05:00
GMagician 15be1cb9a9 [1.1.x] Fix NO_MOTION_BEFORE_HOMING unwanted behaviour (#8177)
* [1.1.x] Fix NO_MOTION_BEFORE_HOMING unwanted behaviour

NO_MOTION_BEFORE_HOMING should prevent XYZ movements only when homing is not done.
E axes should be allowed

* Update Marlin_main.cpp

* Update Marlin_main.cpp

* Update Marlin_main.cpp
2017-10-30 22:50:50 -05:00
Scott Lahteine 4817c0d055 Merge pull request #8167 from thinkyhead/bf1_config_tweak
[1.1.x] Kinematic clamp_to_software_endstops
2017-10-30 19:20:45 -05:00
Scott Lahteine 893092ff7f Kinematic clamp_to_software_endstops 2017-10-30 16:24:45 -05:00
Scott Lahteine 8b7c1e9cec Fix for MAX_VFAT_ENTRIES sanity check 2017-10-30 16:24:45 -05:00
Scott Lahteine 393ceb28fc The plural of 'axis' is 'axes' 2017-10-30 14:49:51 -05:00
Scott Lahteine d9cb7be444 Merge pull request #8160 from thinkyhead/bf1_fixup_sd_reprint
[1.1.x] Simplify SD_REPRINT_LAST_SELECTED_FILE
2017-10-29 23:57:44 -05:00
Scott Lahteine 5837f067cf Tweak to QUICK_HOME comment 2017-10-29 23:50:02 -05:00
Scott Lahteine 5e5a177934 No hacks needed for SD_REPRINT_LAST_SELECTED_FILE 2017-10-29 22:44:03 -05:00
Scott Lahteine 0b5b03d9dc Tweak for soft endstops 2017-10-29 20:16:22 -05:00
Scott Lahteine 9288d80613 Merge pull request #8156 from thinkyhead/bf1_anet_10_servo
[1.1.x] Define a default SERVO0_PIN for Anet 1.0
2017-10-29 19:53:49 -05:00
Scott Lahteine 6698db29de Update LCD draw condition 2017-10-29 19:17:32 -05:00
Scott Lahteine 25e86a520d Merge pull request #8114 from thinkyhead/bf1_print_sd_file_again
[1.1.x] Cleanup for SD Print Again
2017-10-29 19:09:34 -05:00
Scott Lahteine a6f7cda23e Merge pull request #8143 from thinkyhead/bf1_dual_xyz_endstops
Followup to #8123 - to match 2.0.x changes
2017-10-29 19:04:33 -05:00
Scott Lahteine b0e282a74b Cleanups for SD_REPRINT_LAST_SELECTED_FILE 2017-10-29 19:02:17 -05:00
Scott Lahteine 46ed54cd8e Include time scale in some planner vars 2017-10-29 18:48:14 -05:00
Scott Lahteine 9c870baf84 Add a hidden 8s watchdog option for easier debugging 2017-10-29 18:34:57 -05:00
Scott Lahteine 21249f7c3d Add mfup to mfpub for safety 2017-10-29 18:34:57 -05:00
Scott Lahteine 471c2b5d5c Provide a default SERVO0_PIN for Anet 1.0 2017-10-29 18:34:57 -05:00
Scott Lahteine e792c2b234 Followup to #8123 - to match 2.0.x changes 2017-10-29 05:39:44 -05:00
Scott Lahteine daa85f71e1 Merge pull request #8123 from thinkyhead/bf1_dual_xyz_endstops
[1.1.x] Dual endstops XYZ
2017-10-29 04:36:09 -05:00
Rowan Meara 9850ba0cbd [1.1.x] Fix M303 thermal protection #8103 (#8126)
* Fixed M303 thermal protection

The temperature sanity checking logic was not being applied during M303
(pid autotuning) because instead of setting a target temperature, it
directly manipulated the pwm values.  When PIDTEMP/PIDTEMPBED is
enabled, PWM values rather than the target temperature determine whether
the heater is on.  I changed this to look directly at the PWM amount
when pid is enabled.

* Turn off heaters on M303 error

Currently, PID autotuning stops if it overshoots the temperature by 20C
or if if the temperature does not change for 20 minutes and it times
out.  I added calls to disable the heaters in these scenarios.

* Removed unnecessary if statement.

Added changes suggested by GMagician.

* Update temperature.cpp

* Update temperature.cpp

* Update temperature.cpp
2017-10-29 04:34:47 -05:00
Scott Lahteine c0a8275cb0 Merge pull request #8137 from LVD-AC/(1.1.x)bug_G33
(1.1.x) serious bug G33
2017-10-29 04:11:54 -05:00
Scott Lahteine 318c419f77 Implement support for Dual X and Y endstops 2017-10-29 03:49:45 -05:00
Scott Lahteine 7e1232269a Add Dual Steppers / Endstops to configs 2017-10-29 03:49:45 -05:00
Scott Lahteine 62d52d62dc Cleanup for DIGIPOTS settings 2017-10-29 03:49:32 -05:00
LVD-AC 77cf42588f (1.1.x) serious bug G33 2017-10-29 00:22:55 +02:00
Scott Lahteine 50f6c645de Add scripts for .travis.yml to append config options 2017-10-27 19:59:01 -05:00
Scott Lahteine 7ade65d44b Merge pull request #8128 from thinkyhead/bf1_revert_babystep_mult
[1.1.x] Revert default BABYSTEP_MULTIPLICATOR to 1
2017-10-27 19:55:11 -05:00
Scott Lahteine a979c428ee Revert default BABYSTEP_MULTIPLICATOR to 1 2017-10-27 19:42:51 -05:00
jmdearras 6920769a9a Added MKS GEN L board (#8088)
[1.1.x] Add MKS GEN L board
2017-10-27 02:13:41 -05:00
Scott Lahteine 410aa0716d Concise SD_REPRINT_LAST_SELECTED_FILE description 2017-10-27 00:10:04 -05:00
Scott Lahteine 445a7f65cd Clean up trailing whitespace 2017-10-27 00:02:35 -05:00
Luc Van Daele e64cfb13b8 (1.1.x) auto tune calibration parameters (#8031)
* auto tune calibration parameters

* solve warnings

* Tweaks to formatting

* review Thinkyhead

* Error
2017-10-26 23:49:20 -05:00
Scott Lahteine e374d87ac4 Merge pull request #8112 from thinkyhead/bf1_fwretract_fix_oct26
[1.1.x] Improved Firmware Retraction logic
2017-10-26 23:06:27 -05:00
Scott Lahteine 2296d98845 Tweak neopixel self-test 2017-10-26 22:46:11 -05:00
Scott Lahteine 9aac3d8773 Add some Polish translations
Thanks @SCiunczyk
2017-10-26 22:44:23 -05:00
Scott Lahteine 6569b9ba56 Fix FWRETRACT logic, apply common sense 2017-10-26 22:36:41 -05:00
Bob-the-Kuhn 7ab9abe4ef Merge pull request #8107 from Bob-the-Kuhn/1.1.x-reduced-font-fix
(bug fix) 1.1.x - save 1400 bytes of FLASH by using reduced font for some languages
2017-10-26 16:09:52 -05:00
Bob-the-Kuhn 3357170b18 give this language an unique name 2017-10-26 15:48:00 -05:00
Roxy-3D 2e746f2b8b Initial conflict resolution of SD_REPRINT_LAST_SELECTED_FILE (#8104)
* Initial conflict resolution

All previous items resolved:
- Use of ELAPSED() on timer code
- Switch to use of defer_return_to_status=true as much as possible
- Update & Clean Up of Max7219 routines

* Resolve non-SD case in ultralcd.cpp
2017-10-26 11:44:55 -05:00
Bob-the-Kuhn 594c075377 1.1.x - save 1400 bytes of FLASH by using reduced font for some languages (#8095)
* use reduced sized font for some languages

* Fit Portuguese language files to existing scheme

* Rename language_pl-DOGM.h to language_pl_utf8.h

* Rename language_pl_utf8.h to language_pl-DOGM.h

* Update dogm_font_data_ISO10646_1.h

* Update dogm_font_data_ISO10646_1.h
2017-10-25 18:32:38 -05:00
Scott Lahteine 8bb1e91afd More specific M100 description 2017-10-25 16:11:09 -05:00
Scott Lahteine a12d1b21b5 Merge pull request #8048 from madmo/mks-mini-gt2560
[1.1.x] Add MKS MINI 12864 support to GT2560
2017-10-25 01:13:07 -05:00
Scott Lahteine 5bed2f351a Fix spacing, use single instances of similar pins 2017-10-24 19:12:40 -05:00
Scott Lahteine 209560fcd2 Merge pull request #8043 from thinkyhead/bf1_mesh_consolidate
[1.1.x] Simplify mesh bounds config
2017-10-24 18:56:54 -05:00
Scott Lahteine ec9d7b639d Encourage users to re-examine their configs 2017-10-24 18:33:31 -05:00
Scott Lahteine 1c97c1582c Move UBL_SAVE_ACTIVE_ON_M500 to Configuration.h 2017-10-24 18:25:50 -05:00
Scott Lahteine f06f4b40b8 Apply physical limits to mesh bounds 2017-10-24 16:49:00 -05:00
Scott Lahteine 3235beef6d Merge pull request #8073 from thinkyhead/bf1_fix_M600
[1.1.x] Fix position sync in M600 pause/resume
2017-10-24 14:56:01 -05:00
Scott Lahteine e5ab783b08 Merge pull request #8061 from thinkyhead/bf1_general_cleanup
[1.1.x] Patch up some verbiage in configs
2017-10-24 14:44:31 -05:00
Scott Lahteine 355ebec92d Fix position sync in M600 pause/resume 2017-10-24 14:41:54 -05:00
montri2025 fa157f08ff lcd <20 disply Bed Temperature cast ty (#8068) 2017-10-23 23:46:26 -05:00
Scott Lahteine 39a545b3f8 Patch up some verbiage in configs 2017-10-22 17:14:50 -05:00
Scott Lahteine 226fe192a1 Fix Neopixel Travis test 2017-10-22 16:54:11 -05:00
Roxy-3D e9bc9a2ab4 change to better (more clear) names (#8049)
set_destination_to_current() changed to set_destination_from_current()

set_current_to_destination() changed to set_current_from_destination()
2017-10-21 10:58:17 -05:00
Moritz Bitsch b22c87183f Add MKS MINI 12864 support for GT2560 2017-10-21 13:05:21 +02:00
tweichselbaumer fa44130734 Add M290 babystepping (#8014)
* Add M290 babystepping

* Allow `Z` for `M290`

* fix spacing

* Support BABYSTEP_XY in M290

* Not just Z

* Extend M290 for BABYSTEP_ZPROBE_OFFSET

* tweak
2017-10-21 03:58:53 -05:00
MetalSearch 9b3f27f02a Fix:EndStops doesn't working with BOARD_RAMPS_14_EFB on Micromake C1 (#8041)
[1.1.x] Fix EndStops don't work with BOARD_RAMPS_14_EFB on Micromake C1
2017-10-21 00:24:22 -05:00
Scott Lahteine 1d5fb360cc Merge pull request #8020 from thinkyhead/bf1_scroll_longnames
[1.1.x] Add SCROLL_LONG_FILENAMES to reveal longer filenames
2017-10-20 21:34:11 -05:00
Scott Lahteine a7398a0459 Prevent SDCARD_SORT_ALPHA from exploding 2017-10-20 19:14:11 -05:00
Scott Lahteine 91c5c2538a Add SCROLL_LONG_FILENAMES advanced option
Based on #7637 by @marcio-ao
2017-10-20 19:14:10 -05:00
Scott Lahteine 259cf1b0b2 BQ enables this in the config. Remove here 2017-10-18 23:23:56 -05:00
Scott Lahteine 2338632270 Simplify Cartesian probing bounds
Followup to #8011
2017-10-18 17:16:14 -05:00
Luc Van Daele 2a88a3fd33 boolval revised (#8017) 2017-10-18 14:19:01 -05:00
Thomas Moore 84470f6b2a Update UBL mesh boundaries to accomidate beds centered at 0, 0 (#8011) 2017-10-18 10:03:00 -05:00
Scott Lahteine 10d72f31c2 Merge pull request #7991 from thinkyhead/bf1_M106_memorize
[1.1.x] Add EXTRA_FAN_SPEED feature
2017-10-16 05:19:32 -05:00
studiodyne e04902f589 Add EXTRA_FAN_SPEED feature 2017-10-16 02:32:30 -05:00
Scott Lahteine 31d0b77df7 Fix usage line in temperature table script 2017-10-16 00:17:06 -05:00
Scott Lahteine 9e82533eb9 Fix spelling in temperature table script 2017-10-16 00:16:25 -05:00
Scott Lahteine 4410aac60b Update temp table script for current format 2017-10-16 00:14:02 -05:00
Scott Lahteine d63d08ef8b Merge pull request #7948 from gallynero/patch-1
Enable change feedrate in delta
2017-10-15 16:28:45 -05:00
Scott Lahteine 5911dc597a Merge pull request #7988 from thinkyhead/bf1_progress_percentage
Add Capability BUILD_PERCENT
2017-10-15 03:12:31 -05:00
Scott Lahteine 5c2ff6ed19 Add Capability BUILD_PERCENT 2017-10-15 03:01:36 -05:00
Scott Lahteine 6efad5e495 Merge pull request #7986 from thinkyhead/bf1_progress_percentage
[1.1.x] Add M73 (LCD_SET_PROGRESS_MANUALLY)
2017-10-15 02:43:30 -05:00
Scott Lahteine 5f708d47ce Add LCD_SET_PROGRESS_MANUALLY 2017-10-15 02:21:09 -05:00
Scott Lahteine 23dbaaf03b Merge pull request #7983 from thinkyhead/bf1_micromake_c1
[1.1.x] Micromake C1 Configurations, French for HD44780
2017-10-14 20:30:06 -05:00
Scott Lahteine 3b4b9c6d68 Unaccented French for Character Display 2017-10-14 20:17:29 -05:00
MetalSearch 8df47d76c7 Add control board MAKEBOARD Mini
+Add French language without accent for japanese LCD
2017-10-14 20:10:03 -05:00
Scott Lahteine be55a49946 Merge pull request #7980 from thinkyhead/bf1_granular_sw_endstops
[1.1.x] Software endstop options by axis
2017-10-14 17:37:35 -05:00
Scott Lahteine e05af35678 Add MIN_SOFTWARE_ENDSTOP_[XYZ] to example configs 2017-10-14 17:14:19 -05:00
Scott Lahteine 060d16d26b Split the software endstop capability by axis.
Based on #7975 and #7979
2017-10-14 17:14:08 -05:00
Scott Lahteine 0976d22225 Merge pull request #7977 from thinkyhead/bf1_fix_emergency_parser
[1.1.x] Fix Emergency Parser
2017-10-14 17:13:04 -05:00
Scott Lahteine e17869ca20 Fix Emergency Parser
Followup to #7459
2017-10-14 15:58:07 -05:00
Scott Lahteine 1c3d06876e Merge pull request #7965 from thinkyhead/bf1_ubl_remove_z_offset
[1.1.x] Unify Z fade factor
2017-10-14 02:57:13 -05:00
Scott Lahteine 662105c1b6 ADC sensor fix inspired by 'Evgen2' on Twitter 2017-10-14 02:39:13 -05:00
Scott Lahteine b8ddae61e2 ubl_state no longer needed 2017-10-14 02:39:13 -05:00
Scott Lahteine ece14af556 Improve LCD leveling value edits 2017-10-14 02:39:13 -05:00
Scott Lahteine b07a2aa23c Add HAS_MESH conditional 2017-10-14 02:39:12 -05:00
Scott Lahteine 88857e8028 Move fade_scaling_factor_for_z to Planner 2017-10-14 02:10:46 -05:00
Scott Lahteine 8e808fcadc General cleanup, apply const 2017-10-13 16:13:36 -05:00
Scott Lahteine da93a272a0 Move leveling_is_active to a macro 2017-10-13 16:11:27 -05:00
Scott Lahteine fcd3b326e9 Merge pull request #7961 from thinkyhead/bf1_ubl_remove_z_offset
[1.1.x] Remove obsolete UBL z_offset
2017-10-13 09:06:38 -05:00
Scott Lahteine 3d5b10735f Remove obsolete UBL z_offset 2017-10-13 08:23:01 -05:00
gallynero 94228d4522 Enable change feedrate in delta
Enable change the relative feedrate on a printing job in delta machines with UBL
2017-10-12 01:55:51 +02:00
Scott Lahteine f054f566b4 Merge pull request #7918 from thinkyhead/bf1_neopixel_full
[1.1.x] Different NEOPIXEL types
2017-10-10 02:35:56 -05:00
Slawomir Ciunczyk 167058b61f Different NEOPIXEL types
Changes to support NEOPIXEL LED strips
- Support for different NEOPIXEL as defined in Adafruit_NeoPixel.h
- ability to setup startup brightness
- ability to define sequential/non-sequential transition of color change during heating-up
- additional parameter to M150 P<brightness>
2017-10-10 01:58:40 -05:00
Scott Lahteine f835245ee1 Merge pull request #7908 from thinkyhead/bf1_goodbye_legacy_advance
[1.1.x] Remove legacy ADVANCE feature
2017-10-10 00:31:39 -05:00
Scott Lahteine 98c7bde514 Merge pull request #7917 from thinkyhead/bf1_lcd_segmented_moves
[1.1.x] Segmented manual moves for kinematics
2017-10-10 00:28:44 -05:00
Scott Lahteine 38110e220d Segmented manual moves for kinematics 2017-10-09 23:10:17 -05:00
Scott Lahteine 75e4867d22 Merge pull request #7915 from thinkyhead/bf1_probeless_ubl
[1.1.x] Allow UBL G29 and G26 to build without a probe
2017-10-09 18:59:01 -05:00
deram 9239fcf0da Allow UBL G29 and G26 to build without a probe 2017-10-09 18:37:53 -05:00
Scott Lahteine 73c5675485 Merge pull request #7867 from thinkyhead/bf1_add_some_lcds
[1.1.x] Add support for 4 new LCDs
2017-10-09 18:27:42 -05:00
Scott Lahteine 381ebc043f Add support for ST7565-64128N
Based on #7447 by @Bob-the-Kuhn
2017-10-09 17:39:03 -05:00
jmdearras c7e0a49c94 Add some new LCD displays
- Original CR-10
- MKS Mini Display
2017-10-09 17:39:03 -05:00
Scott Lahteine 067622fcc6 Apply some tweaks based on 2.0.x 2017-10-09 17:39:03 -05:00
Scott Lahteine ae256576e1 Bring configs into parity with 2.0.x 2017-10-09 17:38:39 -05:00
Scott Lahteine cbfcce09fa Remove legacy ADVANCE feature 2017-10-09 04:27:45 -05:00
Scott Lahteine a21201a713 LCD filename already concatentated 2017-10-07 15:14:58 -05:00
Scott Lahteine 53f2f188f2 LCD filename already concatenated 2017-10-07 15:11:28 -05:00
Scott Lahteine a6e95c7d25 Fix display issue with SD_ALPHA_SORT caching 2017-10-07 15:07:05 -05:00
Dave Johnson 97e6663bb3 [1.1.x] Auto-enable DISABLE_REDUCED_ACCURACY_WARNING if HOME_AFTER_DEACTIVATE enabled (#7878)
* Auto-enable DISABLE_REDUCED_ACCURACY_WARNING if HOME_AFTER_DEACTIVATE enabled

If HOME_AFTER_DEACTIVATE, there is no need to warn on LCD since printer will home prior to starting print.  Saves 60 bytes PROGMEM.
add HD44780 too

* Reduce lines used

* Reduce lines used
2017-10-07 15:00:56 -05:00
Scott Lahteine e2ceb1b800 Merge pull request #7632 from GMagician/Wrong-sanitycheck-message-fix
Addressing #7612
2017-10-07 02:25:35 -05:00
Scott Lahteine 8c93295d62 Merge pull request #7873 from thinkyhead/bf1_anet_encoder_pulses
[1.1.x] Fixing ANET encoder pulses
2017-10-07 01:21:14 -05:00
Phr3d13 c26242a553 Fixing #7833 2017-10-07 00:07:24 -05:00
Scott Lahteine b825bc87ae Merge pull request #7871 from thinkyhead/bf1_fix_sd_listing_bug
[1.1.x] Fix sd file list display bug
2017-10-07 00:01:59 -05:00
Scott Lahteine dac5f20a01 Patch SD file draw bug 2017-10-06 23:53:08 -05:00
Scott Lahteine b211fa4e1f Remove extra NEWPANEL settings in Conditionals_LCD.h 2017-10-06 17:23:32 -05:00
Scott Lahteine a4954a68e0 Merge pull request #7865 from thinkyhead/bf1_finally_G33_is_done
[1.1.x] G33 completely fixed and done
2017-10-06 16:01:47 -05:00
LVD-AC 355cba4aa7 Fixes for G33 2017-10-06 15:52:53 -05:00
Scott Lahteine 2f0164b995 Merge pull request #7864 from thinkyhead/bf1_mapper_c2c3c4_sk
Tweak spacing in utf8_mapper.h
2017-10-06 15:19:13 -05:00
Scott Lahteine e287e14354 Tweak spacing in utf8_mapper.h 2017-10-06 15:11:27 -05:00
Scott Lahteine 5e63ba970d Merge pull request #7862 from thinkyhead/bf1_mapper_c2c3c4_sk
[1.1.x] Added Slovak C2C3C4 mapper implementation.
2017-10-06 14:56:26 -05:00
Roman Moravčík 2a46ab288e Added Slovak C2C3C4 mapper implementation. 2017-10-06 14:40:15 -05:00
Scott Lahteine 7999249a5c Set TEMP_SENSOR_0 to 1 in CR-10 example config
As pointed out in #7692 by @totalitarian
2017-10-06 14:29:00 -05:00
Scott Lahteine 0ec9a7f090 Fix xon_xoff_state initialization 2017-10-04 12:10:15 -05:00
Scott Lahteine a47c5c093d Merge pull request #7459 from ejtagle/xon-xoff-sdxfer
[1.1.x] XON/XOFF serial handshake (for faster transfers to SD)
2017-10-02 23:52:41 -05:00
Scott Lahteine 5a674a8e10 Merge pull request #7828 from thinkyhead/bf1_dualx_movex
[1.1.x] Fix DUAL_X_CARRIAGE manual move
2017-10-02 23:49:46 -05:00
Scott Lahteine bcb8722513 Fix DUAL_X_CARRIAGE manual move
Addressing #7745
2017-10-02 23:28:52 -05:00
Scott Lahteine 4c34b3ad9c Stop redundant E4_IS_TMC2130 current control 2017-10-02 23:10:34 -05:00
Scott Lahteine 1b8b5c4b06 Make prepare_move_to_destination_dualx a full move function 2017-10-02 23:10:18 -05:00
Eduardo José Tagle 451c1fb5f9 Merge pull request #1 from thinkyhead/bf1_xon_xoff_for_sd
XON/XOFF changes
2017-10-02 14:17:47 -03:00
Scott Lahteine 4e19ff75b6 XON/XOFF corrections, tweaks, formatting, etc. 2017-10-02 03:52:42 -05:00
Scott Lahteine 94caabf89a Add XON/XOFF options to example configs 2017-10-02 03:52:41 -05:00
Scott Lahteine f365448338 Merge pull request #7811 from thinkyhead/bf1_fix_resume_print
[1.1.x] Fix broken M600 resume_print
2017-10-01 22:54:34 -05:00
Scott Lahteine 3d1536a1b2 Merge pull request #7814 from thinkyhead/bf1_inhibit_option
[1.1.x] Option to disallow motion before homing
2017-10-01 22:53:06 -05:00
GMagician 8ab426c3a4 Updated all examples configurations
Forgot to update examples configurations. Done now
2017-10-01 21:04:12 -05:00
GMagician 33d28c24bf Implementing [FR] #7548
Added new configuration to inhibit XYZ movements when home is not done
2017-10-01 21:02:42 -05:00
Scott Lahteine ac70048945 Only MarlinConfig.h ahead of feature block 2017-10-01 20:55:14 -05:00
MasterPIC 40a4a716e1 Fix filament change bug in resume_print
Expected behaviour: while (auto)extruding the new filament, the nozzle should not move. It should move (from filament replacement position to printing position) only after the user has confirmed the successful filament replacement and extrusion.

Actual behaviour: while (auto)extruding the new filament, the nozzle moves from filament replacement position back to printing position.
So the extrusion step is mixed with the movement required to go back to the printing position.

The provided code seems to be working but probably a better fix is required.
2017-10-01 18:42:29 -05:00
Scott Lahteine 802f147686 Remove some excess whitepsace 2017-10-01 18:25:04 -05:00
Scott Lahteine 80a0f935a1 Fix G10-G11 by adding a synchronize
Based on #7792 by @tcm0116
2017-09-30 17:46:31 -05:00
Scott Lahteine de3c9bade6 Merge pull request #7773 from thinkyhead/bf1_lcd_leveling_status
[1.1.x] Show leveling status on character LCD
2017-09-27 13:10:37 -05:00
MasterPIC 7f8ff0a724 Show leveling status on character LCD 2017-09-27 12:18:41 -05:00
Scott Lahteine 3a8923be74 Merge pull request #7772 from thinkyhead/bf1_user_menu_return
[1.1.x] User menu return-to-status option
2017-09-27 11:52:18 -05:00
Scott Lahteine 723a34d9c7 Add confirmation to Init EEPROM command 2017-09-27 11:27:47 -05:00
Scott Lahteine 2efd5b119d Add USER_SCRIPT_RETURN option 2017-09-27 11:23:34 -05:00
Scott Lahteine b105e47cb5 Move SERVO0 pin on GT2560 A+ with BLTOUCH enabled
Based on #7769
2017-09-27 10:39:44 -05:00
Scott Lahteine 0c2cefed8f Merge pull request #7766 from thinkyhead/bf1_melzi_fixes
Melzi fixes
2017-09-27 03:21:05 -05:00
DecoyPlatypus 41dcbe89dd Fixed ST7920_DELAY typo
Fixed typo where ST7920_DELAY_2 was being #defined after a check for #ifndef ST7920_DELAY_3
2017-09-27 03:01:09 -05:00
DecoyPlatypus 70a64355f6 Fixed LCD_FOR_MELZI SanityCheck
Sanity Check for LCD_FOR_MELZI  would fail with "Please select no more than one LCD controller option" any time #define LCD_FOR_MELZI was enabled in Configuration.h, even if there were no other LCD options enabled.
2017-09-27 03:01:09 -05:00
Scott Lahteine aefd2a5c4b Merge pull request #7762 from thinkyhead/bf1_g3d_and_babystep
[1.1.x] Fix G3D_PANEL encoder steps, babystep label
2017-09-27 01:08:20 -05:00
Scott Lahteine e37a1ded0d Increase BABYSTEP_MULTIPLICATOR to 100
Ideally, it should be calculated based on Z steps per unit so that each
babystep corresponds to around 0.025mm. Smaller than this is largely
insignificant for typical layer heights.
2017-09-27 00:14:26 -05:00
Scott Lahteine 3e28243076 No need for LCD_PINS_Dn when unused 2017-09-27 00:12:20 -05:00
Scott Lahteine bbb94b8f68 babystepping tweak 2017-09-27 00:12:20 -05:00
Scott Lahteine a277b43e30 Fix babystep menu display 2017-09-27 00:12:20 -05:00
Scott Lahteine 8a994fb1b1 Fix encoder pulses for G3D_PANEL 2017-09-27 00:12:20 -05:00
Scott Lahteine 9ee92f1246 Fix ADVANCED_PAUSE_FEATURE in .travis.yml 2017-09-26 17:12:05 -05:00
Scott Lahteine ac2ac99e15 Fix bad logic in autostart
As pointed out by @marcio-ao in #7638
2017-09-24 17:52:35 -05:00
Scott Lahteine 72e9534d11 Merge pull request #7725 from thinkyhead/bf1_creality_fun
More featureful CR-10 configurations
2017-09-24 17:08:32 -05:00
Scott Lahteine c1cc79176c Full-featured Creality configs 2017-09-24 16:52:42 -05:00
Scott Lahteine f25dccd6d1 Disable BABYSTEP_XY by default in all configs 2017-09-24 16:52:42 -05:00
Scott Lahteine cd09a83cfa Add size note to SDSORT_LIMIT 2017-09-24 16:52:41 -05:00
Scott Lahteine 9bbc2df217 General code cleanup, spacing 2017-09-24 16:52:41 -05:00
Luc Van Daele 74d430cb97 matrix names update (#7697)
* matrix names update

* symplified names

* new angle normalization

* ABC

* axis

* least squares

* recalc_delta_settings

* endstop_adj

* 0p

* bug
2017-09-24 01:45:31 -05:00
Scott Lahteine ca13f4c3dd Merge pull request #7720 from thinkyhead/bf1_caselight_fix
Fix caselight compile issues
2017-09-23 22:15:58 -05:00
Scott Lahteine 9d4d53e2fd Update links to old wiki page 2017-09-23 22:06:45 -05:00
Scott Lahteine 00896f1713 Fix LEVEL_BED_CORNERS (No leveling required) 2017-09-23 22:00:45 -05:00
Scott Lahteine c3a9e95a5f Define drawmenu items once, in ultralcd.cpp 2017-09-23 22:00:45 -05:00
Scott Lahteine 0afd25a010 Fix caselight compile issues 2017-09-23 22:00:44 -05:00
GMagician 5b87843fae Addressing #7612
Replaced extruder with hotend
2017-09-07 19:07:36 +02:00
Scott Lahteine 386b74f8c2 Merge pull request #7593 from marcio-ao/bugfix-1.1.x
Added option for graphical overlay for Z-offset (Resubmission of #7350 and #7586)
2017-09-02 00:01:38 -05:00
Tannoo 2a963fb5d1 UBL LCD Bugfixes (#7598) 2017-09-01 16:59:06 -05:00
Marcio Teixeira d69c5317df Added option for graphical overlay for Z-offset 2017-08-31 14:21:39 -06:00
Scott Lahteine 367e1b54ba Merge pull request #7591 from thinkyhead/bf1_misc_patches
M111: no args reports current flags
2017-08-31 15:19:29 -05:00
Scott Lahteine 41e4de62b3 Merge pull request #7592 from thinkyhead/bf1_workspace_planes
CNC workspace planes for G5
2017-08-31 15:18:15 -05:00
Scott Lahteine 8a184a526a Marlin: Patch G33, allow M111 to give status 2017-08-31 14:35:00 -05:00
Scott Lahteine 353c23b16e Enforce BED_CENTER_AT_0_0 on Delta, SCARA 2017-08-31 14:34:59 -05:00
Scott Lahteine 898f48e331 CNC workspace planes for G5
According to LinuxCNC, G5 should throw an error if the current plane mode isn't XY.
2017-08-31 14:29:29 -05:00
Scott Lahteine 5851c2d36f MAX7219 followup (#7564)
* Add MAX7219_DEBUG to Travis CI testing

* Tweak config and use standard pin naming for MAX7219_DEBUG

* MAX7219: Apply coding standards, use macros, etc.

* Make code work...
2017-08-31 11:44:43 -05:00
Scott Lahteine 52073f21c5 Merge pull request #7556 from thinkyhead/bf1_slovak_language
Slovak UTF-8 translation
2017-08-27 21:05:53 -05:00
Scott Lahteine 321f98f867 Fix servo delay in Folgertech config 2017-08-27 20:53:27 -05:00
Scott Lahteine 9721c77fb9 Merge pull request #7577 from thinkyhead/bf1_creality_fix
Fixes required for Creality CR-10
2017-08-27 20:51:15 -05:00
jneilliii 36771e9492 Fixes required for Creality CR-10 2017-08-27 20:39:16 -05:00
Roxy-3D 3f0b38ed5d Add Max7219 LED Matrix Debug Support (#7563)
* Add Max7219 LED Matrix Debug Support

The Max7219 8x8 LED Matrix's are very helpful for debugging new code.
And for that matter, just trying to maximize printer settings without
causing stuttering.

The displays are very inexpensive (under $2.00 with shipping) and
provide a lot of help when trying to debug complicated code.

* Try to keep Makefile up to date.
2017-08-25 17:03:07 -05:00
Scott Lahteine ca9734805c Merge pull request #7560 from thinkyhead/bf1_m406_patch
Addressing #7552
2017-08-25 03:38:41 -05:00
GMagician 0067bb2840 Addressing #7552
When M405 is used it changes 'volumetric_multiplier[FILAMENT_SENSOR_EXTRUDER_NUM]' value. When M406 disables M405 it leaves the value unchanged.
This PR applies 'calculate_volumetric_multipliers' in M406 instead of resetting it to 1.0 because M200 may not be compatible with M405 hence I'm sure to restore anyway with correct value.
2017-08-25 03:23:16 -05:00
Scott Lahteine 2b12093589 Merge pull request #7532 from thinkyhead/bf1_fan_mux_vben
New feature: Part-Cooling Fan Multiplexer
2017-08-25 03:16:40 -05:00
Scott Lahteine ddfe527ff2 Merge pull request #7554 from thinkyhead/bf1_sanguino_config
Sanguinololu example config
2017-08-23 19:58:05 -05:00
Michal Holes 54d48130f3 Slovak UTF-8 translation
Slovak UTF-8 translation
2017-08-23 19:14:35 -05:00
Scott Lahteine 86c024ce98 Organize, document pins.h include lines 2017-08-23 18:33:00 -05:00
Scott Lahteine c7b07d20f2 Minor patches to pins files 2017-08-23 18:32:59 -05:00
Scott Lahteine 356af7dcb0 Tweak Sanguinololu-related pins files 2017-08-23 18:32:59 -05:00
Scott Lahteine 11a724d8fc Sanguinololu example configuration 2017-08-23 18:32:59 -05:00
Scott Lahteine d29bf49b66 Add Sanguino 644p to ENV for PlatformIO 2017-08-23 18:32:58 -05:00
Scott Lahteine e337df2e98 Miscellaneous tweaks to serial outputs, code cleanups 2017-08-23 18:32:58 -05:00
Vben c0409b85e7 New feature: Part-Cooling Fan Multiplexer 2017-08-18 15:59:04 -05:00
Scott Lahteine e82e9073d6 Merge pull request #7530 from GMagician/Code-reduction
Code reduction with some configurations
2017-08-18 13:57:59 -05:00
Scott Lahteine 69d1052010 Merge pull request #7529 from GMagician/My-bugfix-1.1.x
#7528 fix
2017-08-18 13:57:22 -05:00
GMagician 6127154af3 Fix identation by tab
There was a tab instead of spaces
2017-08-18 11:34:55 +02:00
GMagician b94a1c6b9f Code reduction this some configurations
When switching noozle and extruder but these operations are done by the same servo in 'setup' function there is a unnecessary call
2017-08-18 11:11:00 +02:00
GMagician 405a2132f3 #7529 compile fix
I made an error in previous fix
2017-08-17 22:04:28 +02:00
GMagician 869d7f3703 #7504 missing part
#7504 integration has missed this part.
When more than 1 servo is used with bltouch it's impossible to predefine default servo delay for it.
In my original fix I completely removed this part but maybe this is a better compromise
2017-08-17 21:43:47 +02:00
Scott Lahteine 101ba70517 Merge pull request #7505 from thinkyhead/bf1_anet_1_pio
Add Anet 1.0 to Platformio.ini
2017-08-17 00:33:20 -05:00
Scott Lahteine 5e14bb61de Merge pull request #7506 from thinkyhead/bf1_dual_parking_extruder
AutoParking Extruder (APE)
2017-08-17 00:32:20 -05:00
Vben 4817b39d98 Added new feature for AutoParking Extruder (APE) 2017-08-16 17:33:11 -05:00
Scott Lahteine 6772e33ef6 Use [XY]_CENTER for error correction
Followup to #7512
2017-08-16 16:13:09 -05:00
Scott Lahteine 385f1bb9e5 Merge pull request #7504 from thinkyhead/bf1_servo_delays
Individual servo delays
2017-08-16 16:05:22 -05:00
Scott Lahteine 2a31c9f2ce Merge pull request #7515 from cdedwards/bugfix-1.1.x
Fix for G26 spam output
2017-08-16 16:01:10 -05:00
MTrab 5fa61c0ad3 Add Anet 1.0 to Platformio.ini
Added env:anet10 to platformio.ini for easy compile and upload to this board
2017-08-16 15:59:20 -05:00
Scott Lahteine b3f59ec945 Merge pull request #7519 from thinkyhead/bf1_cleanups_aug_16
Add "Level Corners" menu item
2017-08-16 15:58:15 -05:00
Tannoo b33739d493 UBL_Language_Update (#7520)
* UBL_Language_Update

Translatable strings

* Use slightly better wording...

* Use slightly better wording...
2017-08-16 09:49:04 -05:00
Scott Lahteine a1878cd1c0 Add "Level Corners" menu option 2017-08-16 02:54:33 -05:00
Scott Lahteine 0a18fb735e Use "PSU" label to fit on screen 2017-08-16 02:51:00 -05:00
Scott Lahteine 30887feae3 Tweak some formatting in ABL G29 2017-08-16 02:51:00 -05:00
Thomas Moore 257b693ab0 Advanced pause fixes (#7518)
* Disallow filament change while paused

* Use kinematic movemements in pause_print and resume_print
2017-08-15 22:57:13 -05:00
Tannoo ab2ac1af71 UBL_LCD_storage_corrections (#7517)
Correcting the storage selection.
Also EEPROM error handling on the LCD.
2017-08-15 21:01:11 -05:00
cdedwards f1843211e6 Fix for G26 spam output
while heating, G26 will continuously spam the heater states instead of printing it out every 5000ms.
2017-08-15 17:04:53 -06:00
Roxy-3D be5ca34215 Allow G29 to work correctly even if nozzle is off the mesh. (#7512)
* work around previous regressions...
2017-08-15 17:04:52 -05:00
Scott Lahteine 06541ec885 Merge pull request #7448 from thinkyhead/bf1_delta_fixes
Prevent damage if DELTA_HEIGHT is set badly
2017-08-15 16:35:09 -05:00
GMagician e9c72978c7 Implement SERVO_DELAY as array
This modify give SERVO_DELAY x servo basis
2017-08-15 00:28:47 -05:00
Scott Lahteine 96ae53cf41 Use MOVE_SERVO macro where possible 2017-08-15 00:28:39 -05:00
Scott Lahteine 6172f150c2 Merge pull request #7471 from thinkyhead/bf1_cleanups_aug9
Miscellaneous style tweaks
2017-08-15 00:12:37 -05:00
Scott Lahteine 3be9c19f12 Hold on move axis screens 2017-08-14 22:51:47 -05:00
Scott Lahteine 8fd58cd6dc Patch goto labels for consistency 2017-08-14 22:51:47 -05:00
Scott Lahteine 75e6f72c89 Fix hexadecimal number formatting 2017-08-14 22:50:44 -05:00
Scott Lahteine ac76101ec3 Eliminate goto in gcode_M48 2017-08-11 17:00:40 -05:00
Scott Lahteine 75e6ead5fd Eliminate goto in gcode_G33 2017-08-11 17:00:40 -05:00
Scott Lahteine 6bd63d27b5 Updates to G29 for probe error handling 2017-08-11 17:00:40 -05:00
Thomas Moore f54e0fc90f Prevent damage if DELTA_HEIGHT is incorrect 2017-08-11 16:09:14 -05:00
Scott Lahteine 0938c62b48 Neater position_is_reachable call 2017-08-11 15:55:32 -05:00
Scott Lahteine 9d95b1b4df Tweak Conditionals_post.h 2017-08-11 15:55:32 -05:00
Scott Lahteine 35d5a7bdff Tweak CR-10 config/pins 2017-08-11 15:55:31 -05:00
Scott Lahteine 419c8969a7 Merge pull request #7479 from thinkyhead/bf1_fix_italian
Fix Italian string length
2017-08-10 18:42:35 -05:00
Frederik Kemner 25a11cd485 Use bed size and inset instead of travel limits to define mesh area\n\nAs proposed in #7435 (#7480) 2017-08-10 16:53:04 -05:00
Scott Lahteine 7f3406d47b Fix Italian string length
Addressing #7264
2017-08-10 15:41:35 -05:00
etagle 2864ef8c7f Slight improvement to the line parsing logic, saving 8 cycles per character 2017-08-08 02:57:55 -03:00
etagle 534bbb81ff Adding XON/XOFF and STATISTICS implementation 2017-08-08 02:46:37 -03:00
etagle 3e5485de92 Enforcing requirements so XON/XOFF software handshake works and no drops of data are experienced while transferring data to an SD Card. I tested this with a CH340 USB to serial adapter (quite typical) at baudrates as high as 1000000 on a Atmega2560 running at 16Mhz, with no problems at all. We need a 1024 byte RX buffer. Less than that and we will have drops, higher than that is not needed 2017-08-08 02:30:04 -03:00
etagle 9e147e9ac4 Adding XON/XOFF and STATISTICS configuration settings and proper documentation on their usage for serial port 2017-08-08 02:22:33 -03:00
etagle 8ab2e420f6 Adding separate RX_BUFFER_SIZE configuration setting and proper documentation on its usage 2017-08-08 02:18:42 -03:00
etagle b4c53af07d Adding a new macro to be able to determine if a given integer value is a power of 2 2017-08-08 02:09:50 -03:00
Scott Lahteine 6440904c1c Merge pull request #7442 from thinkyhead/bf1_geeetech_gt2560_revs
Support for Geeetech GT2560 Rev.A/Rev.A+
2017-08-06 00:45:12 -05:00
Jozsef Kiraly 97c21e9007 Support for Geeetech GT2560 Rev.A/Rev.A+ 2017-08-06 00:42:54 -05:00
Scott Lahteine 82cfdd4d8f Merge pull request #7437 from thinkyhead/bf1_geeetech_config
Geeetech I3 Pro X + GT2560 Config
2017-08-05 03:58:47 -05:00
Scott Lahteine b2822a59f9 Add a sanity check for valid bed size 2017-08-05 03:49:04 -05:00
Scott Lahteine a7e5c1bf19 Use float to init TMC2133 steps-per-mm 2017-08-05 03:48:52 -05:00
Scott Lahteine dd66d21749 Extend DEACTIVATE_SERVOS_AFTER_MOVE sanity-check
As proposed in #7429
2017-08-05 03:48:52 -05:00
richarddeweerd b370906031 Example config for Geeetech I3 Pro X with GT2560 controller 2017-08-05 03:48:52 -05:00
Scott Lahteine 804818b4d9 Bring configs up to date 2017-08-05 03:48:52 -05:00
Scott Lahteine dd841a3675 Merge pull request #7410 from benlye/user-script-feedback
Make audible user script feedback optional
2017-08-05 02:59:56 -05:00
Florian Heilmann 0fd2923a9f Fix compilation with ADVANCED_PAUSE_FEATURE without SDSUPPORT (#7412)
* Fix compilation of ADVANCED_PAUSE_FEATURE without SDSUPPORT

* Fix Identation

* Make use of IS_SD_PRINTING macro

as per @MagoKimbra
2017-08-05 02:58:38 -05:00
Scott Lahteine 8b97da0e3d Merge pull request #7420 from benlye/patch-1
Add VScode directory to .gitignore
2017-08-05 02:57:07 -05:00
Scott Lahteine db188934d1 Merge pull request #7432 from FHeilmann/bf_update_de_translation
Update language_de.h v2
2017-08-05 02:53:32 -05:00
benlye 24af9e1bf4 Make audible user script feedback optional
Add a parameter to enable/disable audible user script feedback
2017-08-04 17:24:10 +01:00
Ben Lye 8443872d10 Ignore VScode directory
PlatformIO can be used with VSCode.  VSCode creates a .vscode directory which should be ignored.
2017-08-04 08:50:03 +01:00
Florian Heilmann 6827a162bb Update language_de.h
Add
MSG_BLTOUCH                    
MSG_DELTA_SETTINGS            
MSG_UBL_MESH_EDIT                
MSG_UBL_OUTPUT_MAP_BACKUP        
MSG_UBL_STEP_BY_STEP_MENU       
MSG_Z_FADE_HEIGHT
2017-08-04 09:35:21 +02:00
Scott Lahteine 43d298a324 Merge pull request #7430 from thinkyhead/bf1_fix_dualx
Followup cleanup patch
2017-08-03 16:41:49 -05:00
Scott Lahteine 3497153cf1 Followup cleanup patch
Fix regression in #7428
2017-08-03 14:55:22 -05:00
Scott Lahteine 16f8c4865a Merge pull request #7409 from FHeilmann/bf_update_ru_translation
Update Russian Translation
2017-08-03 14:54:40 -05:00
Scott Lahteine 50bfcf4c3e Merge pull request #7428 from thinkyhead/bf1_cleanup_aug_3
Clean up whitespace, trailing space, bad tab conversion, etc.
2017-08-03 14:30:33 -05:00
Scott Lahteine 622048ffb0 Clean up whitespace, trailing space, bad tab conversion, etc. 2017-08-03 11:20:03 -05:00
Dave Johnson 65a36948c0 Support travis new build environment (#7425)
move from legacy precise to trusty build image
fix PATH not including buildroot/bin
remove symolic link to ~/bin
enable sudo

trusty travis image doesn't source ~/bin by default
avr requires sude
2017-08-03 10:33:53 -05:00
Dave Johnson c6509076c4 Force legacy "precise" build dist for TravisCI (#7422)
TravisCI "trusty" build dist isn't picking up build path causing travis checks to fail.  Reverting to legacy "precise" dist while we investigate

pristine != precise
2017-08-03 09:06:59 -05:00
Roxy-3D 2cbdc0ebb6 Fix large Z corrections when nozzle moves off of UBL mesh (#7415) 2017-08-02 16:51:04 -05:00
Florian Heilmann 650e5274c4 Update Russian Translation 2017-08-02 21:19:15 +02:00
Scott Lahteine ce65c13a97 Merge pull request #7398 from fiveangle/bf_lcd_bed_level_requirements
Clarify LCD_BED_LEVELING requirements
2017-08-01 17:46:07 -05:00
Scott Lahteine 6ef71c3d5f Merge pull request #7397 from Kaibob2/patch-4
Fix for #7395
2017-08-01 17:40:59 -05:00
Dave Johnson 936dfb965c Clarify LCD_BED_LEVELING requirements
LCD_BED_LEVELING requires PROBE_MANUALLY with auto bed leveling enabled.  See #7396
2017-08-01 14:13:54 -07:00
Kai ffe3013bb5 Fix for #7395
Filament change causes freeze during paused print. This PR disables Filament change in the prepare menu when a print from SD Card is paused. See #7395
2017-08-01 21:45:41 +02:00
Scott Lahteine 7ef0650504 Merge pull request #7386 from oysteinkrog/fix/DualX
Fix DUAL_X_CARRIAGE movement
2017-07-31 20:30:06 -05:00
Øystein Krog e948f77cf9 Fix DUAL_X_CARRIAGE not moving at all
Axis would only move when homing.
Bug introduced in 91841d75c9.
Fixes #6956, fixes #7050 and fixes #7291
2017-07-31 18:44:26 +02:00
Scott Lahteine 08b0456d91 Merge pull request #7379 from thinkyhead/bf_manual_bed_level_floor
Manual Bed Leveling: Goto previous Z height at each probe point
2017-07-30 05:41:12 -05:00
Scott Lahteine 850e404838 Merge pull request #7380 from thinkyhead/bf_touchy_probe_delay
Implement probing delay for piezo sensors
2017-07-30 05:39:45 -05:00
teemuatlut 936d00dda8 Implement probing delay for piezo sensors 2017-07-29 21:46:40 -05:00
Scott Lahteine 29eef360d0 Merge pull request #7308 from thinkyhead/bf_cleanup_config_adv
Fixes for FWRETRACT
2017-07-29 21:20:19 -05:00
Wilfried Chauveau 894608f8a3 Manual Bed Leveling: Goto previous Z height at each probe point 2017-07-29 21:15:37 -05:00
Scott Lahteine ff06e1a030 Merge pull request #7372 from tcm0116/delta_calib_menu
Move Delta Calibration menu to the Prepare menu
2017-07-29 21:05:03 -05:00
Thomas Moore 15e009b6ca Move Delta Calibration menu to the Prepare menu 2017-07-28 08:33:18 -05:00
Scott Lahteine 8b0bd44b1e Merge pull request #7368 from thinkyhead/bf_fix_warnings
Patch to fix some compiler warnings
2017-07-28 02:53:13 -05:00
Scott Lahteine bfd396c13a Patch to fix some compiler warnings 2017-07-28 02:27:16 -05:00
Scott Lahteine 48c5f3dddf Tweak kill action #ifdef 2017-07-27 23:42:01 -05:00
Scott Lahteine be7a9a07c5 Don't reset grid with G29 Q + PROBE_MANUALLY 2017-07-27 22:47:43 -05:00
Scott Lahteine dfe670247d Merge pull request #7363 from marcio-ao/bugfix-1.1.x
Makefile fixes and U8G support.
2017-07-27 21:31:56 -05:00
Marcio Teixeira af83c512b8 Added support for U8G. 2017-07-27 07:49:25 -06:00
Scott Lahteine 4eff18854b Rename options with swap_ prefix 2017-07-27 04:14:29 -05:00
Scott Lahteine 14482d2f2a Strip auto-retract for impossible M(IN|AX)_AUTORETRACT combo 2017-07-27 04:14:29 -05:00
Scott Lahteine 9fc72422e4 Don't let the flow multiplier affect retract/recover length 2017-07-27 04:14:29 -05:00
Scott Lahteine fee696db5d Improve retract() for G10/G11/autoretract 2017-07-27 04:14:29 -05:00
Scott Lahteine 423b0f3a1e Replace MIN_RETRACT with MIN_AUTORETRACT, MAX_AUTORETRACT 2017-07-27 04:14:29 -05:00
Scott Lahteine 283d15a8d0 Add a Travis CI test for FWRETRACT 2017-07-27 04:14:29 -05:00
Scott Lahteine e52c1a0882 Merge pull request #7341 from thinkyhead/bf_bed_size
Add X_BED_SIZE, Y_BED_SIZE to configurations
2017-07-27 04:05:24 -05:00
Scott Lahteine 5b69d67da9 Merge pull request #7359 from fiveangle/pio_printrboard_revf
Add PIO entry for PRINTRBOARD_REVF
2017-07-26 23:09:06 -05:00
Scott Lahteine 51864fd365 Add bed size as a configuration option 2017-07-26 23:04:54 -05:00
Scott Lahteine dc7c95e07b Remove @ section fwretract 2017-07-26 22:46:16 -05:00
Scott Lahteine a972c060d7 Merge pull request #7347 from fiveangle/at90usb_usbcon_unification
Remove extraneous USBCON defines for AT90USB boards
2017-07-26 21:44:18 -05:00
Unknown 42aa10d263 Add PIO entry for PRINTRBOARD_REVF
fix from PIO corruption
2017-07-25 19:09:08 -07:00
Dave Johnson 4718c09c48 Remove extraneous USBCON defines for AT90USB boards
USBCON is definied by serial.h pullikng in MarlinConfig.h which in turn pulls in Arduino.h.  Defining in later includes has shown to cause compile issues so removing all extraneous calls for and potentially easier future linker troubleshooting.
more USBCON unification
2017-07-23 16:41:48 -07:00
Scott Lahteine 21591352d7 Merge pull request #7340 from thinkyhead/bf_neopixel_rgbw
Add support for Printrbot Neopixel RGBW strip.
2017-07-22 16:19:12 -05:00
C. Scott Ananian 890e7a16a9 Add support for Printrbot Neopixel RGBW strip.
Connected as described at http://printrbot.com/shop/led-strip/

Based on patch by Kelly Anderson <kelly@xilka.com> at
http://www.xilka.com/printrbot/marlin/1.1.4/20170707/
2017-07-22 16:07:55 -05:00
Scott Lahteine a059e95463 Bring Infitary i3 config up to date 2017-07-21 20:49:19 -05:00
Scott Lahteine d6d6043548 Merge pull request #7338 from thinkyhead/bf_mks_ps_on_pin
MKS 1.3+: Add pin mapping for PS_ON
2017-07-21 20:00:26 -05:00
Scott Lahteine 03989824fa Merge pull request #7339 from thinkyhead/bf_russian_part_1
Update Russian translation - Part 1
2017-07-21 19:57:18 -05:00
Alexey Shvetsov 851f9f5399 Update Russian translation - Part 1
Signed-off-by: Alexey Shvetsov <alexxy@gentoo.org>
2017-07-21 19:32:37 -05:00
Scott Lahteine b7a16e4468 Merge pull request #7315 from fixoid/patch-1
Fixing SWITCHING_EXTRUDER feature to work with HOTENDS > 1
2017-07-21 19:10:54 -05:00
Alexey Shvetsov f38b8c5bf8 MKS 1.3+: Add pin mapping for PS_ON
This allows the use of D4 as PS_ON since MKS Gen doesn't have a PS_ON pin. However this effectively allows only 3 servos (instead of 4).

Signed-off-by: Alexey Shvetsov <alexxy@gentoo.org>
2017-07-21 18:50:05 -05:00
Scott Lahteine 60cb2bd4e7 Merge pull request #7332 from thinkyhead/bf_before_fwretract
Improve FWRETRACT comments
2017-07-21 00:20:56 -05:00
Scott Lahteine 8a3bc6be4d Improve FWRETRACT config options and commentary
Add more details as requested in #7198
2017-07-20 22:57:50 -05:00
Scott Lahteine b0173ccdb9 Drop extra initializers for vars initialized by EEPROM code 2017-07-20 22:57:49 -05:00
Scott Lahteine 7afafb05b8 Split G10/G11 into separate functions 2017-07-20 02:24:13 -05:00
Scott Lahteine c45798694f Add some more requirements to the G-code list 2017-07-20 02:24:13 -05:00
Scott Lahteine 72de280c1e BARICUDA valve pressure consistently uint8_t 2017-07-20 02:21:40 -05:00
Scott Lahteine 4d98e3f0a7 General cleanup 2017-07-20 02:21:40 -05:00
fixoid e530c67349 Fixing SWITCHING_EXTRUDER feature 2017-07-19 21:15:26 +03:00
Tannoo 2ad3ca5d8a Bugfix (#7310) 2017-07-18 22:55:14 -05:00
Roxy-3D 37a6833d7e Allow the sampled point to be added into the Least Squares Best Fit (#7289)
Without this...  The LSF won't work because none of the sampled points
in this code block get added.
2017-07-13 16:33:02 -05:00
C. Scott Ananian a519b093b9 Fix build by replacing qr_solve by least_squares_fit. (#7285)
This was broken by 9af67e2446.
2017-07-13 12:02:15 -05:00
Scott Lahteine b9809ea86c Merge pull request #7281 from thinkyhead/bf_seen_not_volatile
Fixes for recent merges
2017-07-13 00:54:10 -05:00
Scott Lahteine 0873c667fa Apply coding standards to recent merges 2017-07-13 00:46:16 -05:00
Scott Lahteine 8c2907d10f Fix ABL broken by recent change 2017-07-12 22:56:18 -05:00
Roxy-3D 9af67e2446 Save 7714 bytes of program memory when doing AUTO_BED_LEVELING_LINEAR (#7276)
We can save more and a pile of RAM by eleminating the eqnBVector and
EqnAMatrix arrays next.
2017-07-10 19:05:11 -05:00
Scott Lahteine e5904c4df8 Merge pull request #7275 from thinkyhead/bf_seen_not_volatile
Volatile keyword not needed for parser.seen
2017-07-10 16:11:08 -05:00
Scott Lahteine 76e90b93b7 Volatile keyword not needed for parser.seen 2017-07-10 15:38:54 -05:00
Scott Lahteine f63f1ff12c Merge pull request #7272 from thinkyhead/bf_user_menu_stay
Stay in User Menu after command. Add feedback.
2017-07-10 15:10:07 -05:00
Jamie Bainbridge 00e4ced58e Stay in User Menu after command. Add feedback.
When a user executes a User Menu command, the LCD returns to the main menu. If the user has multiple menu items they want to run, such as one menu item per bed leveling corner, then it's better to stay in the User Menu rather than return to the main menu.

This PR modifies Marlin to stay in the User Menu after a command.
2017-07-10 13:47:12 -05:00
Scott Lahteine 1066b17457 Merge pull request #7260 from thinkyhead/bf_G33_update_27
Updates to G33 and its LCD code
2017-07-10 13:39:36 -05:00
Tannoo e927941c06 Bugfix (#7265)
Fix compile error when UBL is enabled but there is no LCD Panel.
2017-07-08 09:44:50 -05:00
Scott Lahteine 68aea9c01d Merge pull request #7261 from thinkyhead/bf_configs_by_vendor
Arrange more example configs by vendor
2017-07-07 15:46:22 -05:00
Tannoo aaacef9441 Corrections (#7231)
20x4 map integration.    Also some minor changes to the UBL Menu layout.     Both 20x4 LCD's and Graphical LCD panels should have similar functionality now.
2017-07-07 11:05:08 -05:00
LVD-AC 4bc79ec877 Updates for G33-LCD interface 2017-07-07 05:00:59 -05:00
Scott Lahteine 186580b55f Arrange example configurations by vendor 2017-07-07 04:48:23 -05:00
Scott Lahteine 6be369f3ea Add some config names to AUTHOR 2017-07-07 04:46:33 -05:00
Scott Lahteine 7fc31a7940 Merge pull request #7258 from thinkyhead/bf_cleanups_jbrazio
Add support for BQ heated bed kit with Hephestos 2
2017-07-07 04:11:07 -05:00
Scott Lahteine 11e376e920 Merge pull request #7256 from thinkyhead/bf_cleanup_july_6
Assign -1 to LCD_PINS_D4-7 if not defined
2017-07-07 03:22:47 -05:00
Scott Lahteine a3aa798f6d Merge pull request #7257 from thinkyhead/bf_Creality_CR10
Support for Creality CR-10
2017-07-07 03:22:27 -05:00
João Brázio 2065591daf Add support for BQ heated bed kit with Hephestos 2 2017-07-07 03:10:38 -05:00
essgcee 61be28133d Support for Creality CR-10
Creality board is a Melzi / Sanguinololu variant, but using different pins for LCD control (and maybe other minor variations)
2017-07-06 23:08:10 -05:00
Scott Lahteine 9248a90a4c Assign -1 to LCD_PINS_D4-7 if not defined 2017-07-06 22:47:51 -05:00
Scott Lahteine ce834bb78e Merge pull request #7255 from thinkyhead/bf_cleanup_july_6
Use FastIO for spindle, probe test, and case light
2017-07-06 22:03:27 -05:00
Scott Lahteine 5ef1e5ef60 Tweaks for M43 2017-07-06 21:47:50 -05:00
Scott Lahteine c7732db99d Fix: Use of digitalRead, digitalWrite breaks on AT90USB 2017-07-06 21:25:56 -05:00
Scott Lahteine f713f25fa5 Clean up excess whitespace 2017-07-06 21:24:30 -05:00
Scott Lahteine 2cb308fb53 Merge pull request #7253 from thinkyhead/bf_busy_protocol
"Keepalive" is now "Busy protocol"
2017-07-06 16:39:50 -05:00
Scott Lahteine fc9ce65095 Add BUSY_WHILE_HEATING for hosts that need it 2017-07-06 16:28:57 -05:00
Scott Lahteine 504d26341a Merge pull request #7251 from thinkyhead/bf_simplify3d_workaround
Patch M23 to work around Simplify3D bug
2017-07-06 14:45:04 -05:00
Scott Lahteine c6d430670a Clear SHOW_BOOTSCREEN with no LCD 2017-07-06 14:21:27 -05:00
Scott Lahteine 11c589c3ec Fix compile issue with G38
Fixes #7250
2017-07-06 14:21:27 -05:00
Scott Lahteine 678914be25 Patch M23 to work around Simplify3D bug
Addressing #7227
2017-07-06 14:00:58 -05:00
Scott Lahteine ef94ddf53c Merge pull request #7238 from thinkyhead/bf_probe_manual_G33
Add PROBE_MANUALLY support to G33
2017-07-04 18:18:32 -05:00
LVD-AC 3efe4aeef8 Add PROBE_MANUALLY support to G33 2017-07-04 18:06:54 -05:00
Scott Lahteine 28deff01b8 Fix a bug in mfup 2017-07-04 17:38:45 -05:00
Scott Lahteine cca1cca3a5 Merge pull request #7237 from thinkyhead/bf_cz_mapper
UTF-8 mapper for Czech
2017-07-04 16:45:13 -05:00
Scott Lahteine a2babb532d Merge pull request #7217 from benlye/add-kill-action
Add configurable action command to send when printer is killed
2017-07-04 16:44:08 -05:00
Petr Zahradník 8c34233452 UTF-8 mapper for Czech 2017-07-04 15:51:23 -05:00
Scott Lahteine b8066fb36f Merge pull request #7232 from fiveangle/disable_xyz_compatibility_check
DISABLE_[XYZ] compatibility check
2017-07-04 13:26:56 -05:00
Dave Johnson 20f6676d63 DISABLE_[XYZ] compatibility check
DISABLE_[XYZ] is incompatible with HOME_AFTER_DEACTIVATE and Z_SAFE_HOMING
2017-07-03 17:23:53 -07:00
Ben Lye c28749a567 Add kill action
Sends pre-defined string as action command when printer is kill.
2017-07-03 23:45:19 +01:00
Scott Lahteine df87278fce Add "CAP:PRINT_JOB:1" (M75 / M76 / M77) to M115 output 2017-07-03 15:59:06 -05:00
Scott Lahteine 4be8d7720e Fix spelling of "Chinese" 2017-07-03 15:24:49 -05:00
Scott Lahteine 760bf49a00 Merge pull request #7221 from thinkyhead/bf_fix_reachable
Fix for issues #6997 and #7152
2017-07-03 03:40:42 -05:00
LVD-AC 567941e341 Fix for issues #6997 and #7152
Probing with the effector in the printing area, but an eccentric probe (e.g. allen key) outside it but still touching the bed gives meaninfull information for calibration. Since calibration is most accurate when probing as close to the towers as possible the testing was way to restrictive hence this fix.
2017-07-03 02:53:49 -05:00
Scott Lahteine 57fff2e95e Merge pull request #7219 from thinkyhead/bf_update_git_scripts
Update Marlin+git helper scripts
2017-07-03 01:49:27 -05:00
Scott Lahteine 94c965fad6 Merge pull request #7220 from thinkyhead/bf_fix_eeprom_opts
Make all EEPROM optimization options available
2017-07-03 01:39:01 -05:00
Scott Lahteine 6a3967ee33 Corrections for probe_pt parameters 2017-07-03 01:34:27 -05:00
Scott Lahteine 534bffa7a9 Correct comment on ABL G29 2017-07-03 01:13:07 -05:00
Scott Lahteine e1e1a0c344 Provide a default CUSTOM_BOOTSCREEN_TIMEOUT 2017-07-03 01:13:07 -05:00
Scott Lahteine ab79933d1f Update Marlin+Github helper scripts 2017-07-03 01:13:07 -05:00
Scott Lahteine 69297b2d7b Make all EEPROM optimization options available 2017-07-02 20:47:03 -05:00
Scott Lahteine 015839fc50 Merge pull request #7212 from thinkyhead/bf_m48_real_probe
M48 needs a real probe
2017-07-02 16:22:47 -05:00
Scott Lahteine d609489b22 Drop setup_homepin 2017-07-02 02:27:09 -05:00
Scott Lahteine 167169e1bf Sanity check for a real probe with M48 2017-07-02 02:27:09 -05:00
Scott Lahteine 395a9f59ac Merge pull request #7211 from thinkyhead/bf_lcd_bootscreen
Use lcd_bootscreen for both
2017-07-02 02:11:07 -05:00
Scott Lahteine 14663efe0d Merge pull request #7210 from fiveangle/printrboard_revf_cleanup
Printrboard RevF cleanup
2017-07-02 01:02:26 -05:00
Scott Lahteine ae5923a3d0 Make lcd_bootscreen common to both 2017-07-02 00:47:36 -05:00
Scott Lahteine 859248433f Patch for gcode debug 2017-07-02 00:47:35 -05:00
Dave Johnson 09c90c2f6c Printrboard RevF Cleanup
-Update Arduino IDE extension descriptions
-Set default motor currents if not defined in Configuration_adv.h
-Support for MINIPANEL LCD
-Support for choosing internal or panel SD
2017-07-01 22:33:39 -07:00
Scott Lahteine 41e0955c27 Merge pull request #7208 from thinkyhead/bf_lcd_for_melzi
LCD for Melzi support
2017-07-02 00:32:13 -05:00
Scott Lahteine 232a10410d LCD_FOR_MELZI 2017-07-01 22:32:20 -05:00
Scott Lahteine 76c92a1fab Clean up some trailing spaces 2017-07-01 22:32:20 -05:00
Scott Lahteine 312f63dbe8 Merge pull request #7207 from thinkyhead/bf_update_ubl_lcd
Expose DISABLE_M503 option as a test option
2017-07-01 22:10:34 -05:00
Scott Lahteine cf96109056 Implement the EEPROM_CHITCHAT option 2017-07-01 21:48:18 -05:00
Scott Lahteine dcec7178d1 Expose DISABLE_M503 option as a test option 2017-07-01 21:31:28 -05:00
Scott Lahteine 3e78a01262 Merge pull request #7204 from thinkyhead/bf_update_ubl_lcd
UBL radar map corrections
2017-07-01 20:59:03 -05:00
Scott Lahteine 2ff967f3e6 Merge pull request #7205 from thinkyhead/bf_infitary_m508
Add configuration for Infitary M508 (i3 clone)
2017-07-01 20:11:02 -05:00
Tom 1ff7d10c80 Add configuration for Infitary M508 (i3 clone)
Based on Infitary's own firmware settings.
2017-07-01 20:04:08 -05:00
Scott Lahteine 4cb45c10dd Patch ubl lcd mesh map indentation 2017-07-01 19:47:52 -05:00
Scott Lahteine abd6ba62b4 Some cleanups for ubl lcd mesh map 2017-07-01 19:47:49 -05:00
Scott Lahteine f17bae1f70 Changes for ubl_lcd_map_control patch 2017-07-01 19:47:02 -05:00
Tannoo 8e0f3b7eba UBL radar map corrections 2017-07-01 19:00:44 -05:00
Scott Lahteine 009a6104c5 Merge pull request #7201 from Bob-the-Kuhn/intermittent_Teensy2++_G26_compile_issue
intermittent AT90USB & G26 compile problem (proposal)
2017-07-01 18:54:36 -05:00
Bob-the-Kuhn fcceed5be6 intermittent Teensy & G26 compile problem
===============================================

also an issue with ubl_motion.cpp
2017-07-01 14:41:24 -05:00
Scott Lahteine 457489d7ac Merge pull request #7187 from thinkyhead/bf_sanitycheck_G33
Add a sanity check for DELTA_AUTO_CALIBRATION
2017-06-30 11:39:09 -05:00
Scott Lahteine 30b327d24c Finish the solution for #7166 2017-06-29 15:17:39 -05:00
Scott Lahteine 6c97c5595c Add a sanity check for DELTA_AUTO_CALIBRATION 2017-06-29 15:03:19 -05:00
Bob-the-Kuhn 553d5ca283 Merge pull request #7183 from Bob-the-Kuhn/Fix_LETTER_OFF_in_gcode.h
Fix LETTER_OFF in gcode.h (make LETTTER_OFF return values that match param indices range)
2017-06-29 09:07:46 -05:00
Bob-the-Kuhn e6e3132f79 make LETTTER_OFF return values that match param indices range 2017-06-29 09:01:58 -05:00
Bob-the-Kuhn cd2ac3b759 Merge pull request #7182 from Bob-the-Kuhn/has__value_fix_
Correct has_value() when FASTER_GCODE_PARSER is enabled
2017-06-28 21:16:52 -05:00
Bob-the-Kuhn bfbf5f8200 correct value_bool() when FASTER_GCODE_PARSER is enabled
Also corrected compile issue when DEBUG_GCODE_PARSER and
AUTO_BED_LEVELING_UBL are both enabled.
2017-06-28 19:51:08 -05:00
Scott Lahteine 814925d692 Merge pull request #7179 from thinkyhead/bf_anet_a6
Add ANET A6 example configuration
2017-06-28 17:06:04 -05:00
Scott Lahteine 406ef69702 Move Anet A8 config to subfolder 2017-06-28 16:58:57 -05:00
Scott Lahteine 379926961c Add Anet A6 config, edit Anet A8 config 2017-06-28 16:58:57 -05:00
Scott Lahteine 5b03f23fa2 Bring configurations up to date, fix some comments 2017-06-28 16:41:49 -05:00
Scott Lahteine e3cedfa0ec Fix a compiler warning 2017-06-28 16:41:46 -05:00
Scott Lahteine bb0508b6cf Fix comment in M115 code 2017-06-28 13:08:33 -05:00
Scott Lahteine 5c1888467f Merge pull request #7170 from thinkyhead/bf_M217_echo_to_serial
Add A (action) and E (echo) parameters to M118
2017-06-28 02:13:13 -05:00
Scott Lahteine 85777a56c6 Add A (action) and E (echo) parameters to M118 2017-06-28 02:07:59 -05:00
Scott Lahteine d1e8d4cd9d Merge pull request #7167 from thinkyhead/bf_20x4_lcd_update
UBL Map Cleanup and LCD display
2017-06-28 01:20:22 -05:00
Scott Lahteine 797d6a97e7 Merge pull request #7168 from thinkyhead/bf_M217_echo_to_serial
M118 echo to serial
2017-06-28 01:12:09 -05:00
Scott Lahteine b492e0878d Changes to reduce and simplify 2017-06-28 01:10:30 -05:00
Ben Lye 98d362c2da Adding M118 command to send text to serial
Allows the user to send text to the serial console in order to
communicate with a host - sending debuging information or action
commands, for example.  Text must begin with '//' and this is added if
it is not already present at the beginning of the string.
2017-06-28 00:55:20 -05:00
Tannoo 80abc872f3 Updated to better support the coming "radar" 2017-06-27 22:51:58 -05:00
Tannoo e90cbf5c16 UBL Map Cleanup 2017-06-27 22:51:58 -05:00
Scott Lahteine ada836db29 Merge pull request #7007 from thinkyhead/bf_followups_friday
Followups for I2C_POSITION_ENCODERS
2017-06-27 22:51:24 -05:00
Scott Lahteine fc140c4962 Followup for I2C_POSITION_ENCODERS 2017-06-27 20:46:40 -05:00
Scott Lahteine f4246dc8ff Merge pull request #7165 from thinkyhead/bf_parser_shorthand
Use parser.seenval, add shorthand functions
2017-06-27 18:57:48 -05:00
Scott Lahteine 66faedb2b8 Merge pull request #6938 from thinkyhead/bf_prusa_multiplexer
Initial support for the Průša MK2 Multiplexer
2017-06-27 18:54:30 -05:00
Scott Lahteine bd776df8c1 Optimize seen_axis by moving 'X' to index 24 2017-06-27 18:47:11 -05:00
Scott Lahteine 05449cf6ee Add shorthand value accessors to gcode.h 2017-06-27 18:39:41 -05:00
Scott Lahteine 12f092c812 Cleanups to gcode.h, use seenval() 2017-06-27 17:57:00 -05:00
Scott Lahteine 941943c167 Apply const, spacing, etc. 2017-06-27 05:23:49 -05:00
Scott Lahteine 5b11b33854 Add support for Průša MK2 Multiplexer 2017-06-27 04:55:30 -05:00
Scott Lahteine a4a587a897 Fix spelling of Průša 2017-06-27 04:46:46 -05:00
Scott Lahteine ba1706a265 Fix spacing in gcode.cpp
Followup to #6940
2017-06-27 04:46:46 -05:00
Scott Lahteine c2c8aafda2 Merge pull request #7157 from thinkyhead/bf_g33_f_parameter
G33 F and Height bug fix
2017-06-27 04:36:22 -05:00
Scott Lahteine 627afb29df Merge pull request #7109 from tnw513/fix-italian
added missing italian translation
2017-06-27 04:12:30 -05:00
Scott Lahteine 61d00d8990 Merge pull request #7156 from benlye/benlye-fix-pinsdebug
Fix #ifdef AVR_AT90USB1286_FAMILY in pinsDebug
2017-06-27 04:11:46 -05:00
Scott Lahteine f0f9fb7465 Remove line that does nothing 2017-06-27 04:08:50 -05:00
LVD-AC 99592c8458 Update G33: Add F, fix height bug 2017-06-27 04:02:02 -05:00
Ben Lye 31514f453a Fix #ifdef AVR_AT90USB1286_FAMILY in pinsDebug
Can't compile with PINS_DEBUGING enabled on Atmega1284p because it tries
to enumerate pins 46 and 47 (which don't exist) because `#ifdef
AVR_AT90USB1286_FAMILY ` doesn't work as expected.
2017-06-27 08:04:40 +01:00
Scott Lahteine 134116b874 Merge pull request #7153 from thinkyhead/bf_czech_update
Updated Czech language
2017-06-26 17:34:15 -05:00
Scott Lahteine 89c6e92b66 Merge pull request #7144 from thinkyhead/bf_ubl_g26_p4_surface
Added option 'H' to G29 P4.
2017-06-26 16:34:48 -05:00
Petr Zahradník e80958b631 CZ Translate BLTouch and UBL
Fixup length
2017-06-26 16:15:31 -05:00
Scott Lahteine fe7e890b09 Fix issues with ADC_KEYPAD
Fixes #7150
2017-06-26 16:08:31 -05:00
dot-bob a1632cfa0a Added option 'H' to G29 P4.
- Added `H` to set a nozzle height adjustment to surface of the bed.
- Updated G29 P4 comments to reflect changes.
2017-06-25 17:14:08 -05:00
Scott Lahteine e687782875 Merge pull request #7134 from thinkyhead/bf_skynet_a3_ready
Add Skynet/ANET A10 support
2017-06-25 14:35:22 -05:00
Scott Lahteine 1446b5f01d Allow more avr variants with build_marlin* 2017-06-25 14:16:28 -05:00
Scott Lahteine efc6a9c1b8 Merge pull request #7136 from thinkyhead/bf_digipot_save
Edit digipot currents via LCD, save to EEPROM
2017-06-25 04:01:54 -05:00
dot-bob b3c36c98fd Edit digipot currents via LCD, save to EEPROM 2017-06-25 01:02:36 -05:00
Scott Lahteine 3c7bfe798d Various cleanups ahead of digipot save 2017-06-24 23:56:24 -05:00
Bob-the-Kuhn 9651d01e1a Add Skynet/ANET A10 support 2017-06-24 19:07:03 -05:00
Scott Lahteine eb314373bb Config spacing & consistency, group custom LCDs 2017-06-24 14:33:40 -05:00
Scott Lahteine 6c45fa7dcc Apply #elif in LCD conditionals 2017-06-24 13:56:33 -05:00
Scott Lahteine ece89bcf7a Merge pull request #7119 from thinkyhead/bf_vref_MCP4018
Fix: set digipot mcp4018 Vrefmax to 1.666V
2017-06-24 13:27:17 -05:00
Scott Lahteine afbc6e3e2f Update DELTA/SCARA config comments 2017-06-24 12:47:17 -05:00
Paweł Stawicki 1e47c17b46 Fix: set digipot mcp4018 Vrefmax to 1.666V 2017-06-24 12:35:34 -05:00
Scott Lahteine ebe6719e12 Merge pull request #7128 from thinkyhead/bf_enhanced_arcs
Enhance G2/G3 with 'P' and G17/G18/G19 Plane Select
2017-06-23 15:12:15 -05:00
Scott Lahteine 80a232419d CNC workspace planes and 'P' argument for G2/G3 2017-06-23 14:53:03 -05:00
Scott Lahteine 5fb0d401eb Formatting tweaks 2017-06-23 14:53:02 -05:00
Scott Lahteine ed04d0b6be Label DualXMode enums 2017-06-23 14:53:02 -05:00
Scott Lahteine 786cdea124 Ensure REPRAPWORLD_KEYPAD_MOVE_STEP is defined 2017-06-23 14:53:01 -05:00
Scott Lahteine ee7163fd3a Fix pinsDebug compile errors 2017-06-23 14:53:01 -05:00
Scott Lahteine a9f8e518bf Fix FILAMENT_WIDTH_SENSOR infinite loop issue
Addressing #6992 and #5851
2017-06-23 14:53:01 -05:00
Scott Lahteine a18324bc8d Give a more detailed issue template 2017-06-22 18:17:02 -05:00
Scott Lahteine 254a11b083 Merge pull request #7120 from thinkyhead/bf_sainsmart_link
Add link to F. Malpartida LiquidCrystal library
2017-06-22 14:04:23 -05:00
Scott Lahteine aeb6d465a4 Merge pull request #7118 from thinkyhead/bf_french_update
French update
2017-06-22 13:10:07 -05:00
Bob-the-Kuhn 325f09ea6c Add link to custom LiquidCrystal library by F. Malpartida 2017-06-22 13:07:08 -05:00
MagoKimbra d26c8cc5c8 fix_planner_refresh_e_positioning (#7103)
* fix_planner_refresh_e_positioning

* Fix
2017-06-22 12:59:22 -05:00
Gege2B c7f04fbcc7 French translation 2017-06-22 12:49:23 -05:00
Silvio Didonna 4171520729 added missing italian translation 2017-06-21 11:08:39 +02:00
Bob-the-Kuhn 41bfff14e2 Merge pull request #6991 from Bob-the-Kuhn/Mesh-with-babystepping
Mesh with BABYSTEP_ZPROBE_OFFSET: add sanity check
2017-06-20 16:36:22 -05:00
Scott Lahteine 424d0bae8b Merge pull request #7100 from thinkyhead/bf_HAL_prepare
Apply maths macros and type changes ahead of HAL
2017-06-20 01:15:23 -05:00
Scott Lahteine 5c59ee4e93 Use current (raw) Z if omitted from G29 WXY or G29 WIJ. 2017-06-20 00:10:52 -05:00
Scott Lahteine 37bc0fce62 Make G29 compatible with M206 Z and G92 Z
Use the raw position for mesh measurement. Otherwise the `M206` and
`M92` Z offsets will get canceled out by bed leveling. The downside is
`G29` will not compensate for a poorly set small `M206` fudge value.

To elaborate on this issue, imagine you are probing with a Z home
offset of -0.1, meaning when Z homes, -0.1 is the current position,
implying the ideal bed zero for the nozzle is 0.1mm higher than the Z
endstop. Ordinarily when printing, Z would raise 0.1mm higher.

What happens when we probe is that all points are measured with that
-0.1 included. So when bed leveling is enabled the `M206 Z` offset gets
exactly canceled out by the bed readings.
2017-06-20 00:09:59 -05:00
Scott Lahteine d5368461f9 Merge pull request #7098 from thinkyhead/bf_ubl_steps
Step-by-Step Menu addition
2017-06-19 23:12:52 -05:00
Scott Lahteine e907654d6a Do two or three fewer test builds 2017-06-19 23:08:45 -05:00
Scott Lahteine 6c45d0fd81 Apply maths macros and type changes ahead of HAL 2017-06-19 22:57:42 -05:00
Scott Lahteine 8a51e2960c Improve the experience of editing steps_per_mm 2017-06-19 22:17:15 -05:00
Scott Lahteine 725d9d9a56 Fix and improve LCD value editing display
- Fix: When "100.0" changes to "99.0" the LCD shows "199.0"
- Use 2 rows if needed on character LCD, (allowing longer labels…
Germany, et. al.)
- Known issue: A certain length label combined with a certain value
drawing function could, for example, display 99.0 on 1 line, but 100.0
on two lines. Workaround would be to pass a nominal value size argument.
2017-06-19 22:17:15 -05:00
Scott Lahteine 499bb85a95 Clean up, put ubl menu itemization closer at hand 2017-06-19 22:17:14 -05:00
Tannoo 90f5f82926 Step-by-Step Menu addition 2017-06-19 20:15:11 -05:00
Scott Lahteine 0c616700f3 Merge pull request #7097 from thinkyhead/bf_dac_percents_fix
Convert DAC percent to uint8_t
2017-06-19 17:58:55 -05:00
Florian Heilmann 6dcf42f1a7 Add Z Fade Height to M420 output if it is enabled (#7042)
* Add Z Fade Height to M420 Output

Echo the z-fade height when M420 is called, if it is enabled.

* Fix Whitespace

* Fix Compiler complaint

* Missing semi-colon
2017-06-19 17:53:07 -05:00
Bob-the-Kuhn a1c65fd3d5 convert DAC percent to uint8_t
=====================

add test to Travis
2017-06-19 17:46:41 -05:00
Scott Lahteine 7b79f443ef Merge pull request #7096 from thinkyhead/redo_DSE
Support for two switching extruders
2017-06-19 17:32:24 -05:00
Scott Lahteine 907cafcbfd Support for two switching extruders 2017-06-19 17:20:59 -05:00
Scott Lahteine 17f69f8ca2 Merge pull request #7094 from thinkyhead/bf_fix_advance_rate
Fix #5699 - LIN_ADVANCE freeze when ADV_RATE returns 0
2017-06-19 16:38:41 -05:00
Ross Allan cfcd069501 Fix #5699 - LIN_ADVANCE freeze when ADV_RATE returns 0 2017-06-19 14:02:17 -05:00
Scott Lahteine b8b7ef1902 Merge pull request #7090 from thinkyhead/bf_italian_refix
Fix Italian language mapper
2017-06-19 09:27:13 -05:00
Scott Lahteine 42f7f9e013 Merge pull request #7060 from bgort/i2cpefix
I2C Position Encoders Example Configs
2017-06-19 01:08:42 -05:00
Scott Lahteine 0b49bddec2 Fix Italian language mapper 2017-06-19 01:01:40 -05:00
Scott Lahteine 7e028ec429 Merge pull request #7089 from thinkyhead/bf_italian_update
Added missing Italian translations
2017-06-19 00:16:14 -05:00
Silvio Didonna 2e26a7c752 Added missing Italian translations 2017-06-18 23:37:48 -05:00
Scott Lahteine 2e1b7d3a22 Merge pull request #7079 from thinkyhead/bf_m600_fixes
M600 fixes
2017-06-18 23:32:07 -05:00
Scott Lahteine 4c3dc8bf07 Remove set_current_to_destination from resume_print
Addressing #7057
2017-06-18 23:01:13 -05:00
Scott Lahteine 4857a3ba48 Formatting and spelling 2017-06-18 23:01:12 -05:00
Thomas Moore 3d24c329af M600 fixes 2017-06-18 23:00:56 -05:00
Scott Lahteine 311f6aff72 Merge pull request #7078 from thinkyhead/bf_cleanups_fixes
Move lcd_refresh_zprobe_zoffset definition
2017-06-18 17:24:57 -05:00
Bob-the-Kuhn 8fb30aaed6 warn user of an invalid combination 2017-06-17 15:04:47 -05:00
Bob-the-Kuhn 6cb9bb27fe Move lcd_refresh_zprobe_zoffset definition 2017-06-16 21:46:33 -05:00
Scott Lahteine 43a95ae5ad Merge pull request #7071 from thinkyhead/bf_cleanups_fixes
Fix status message, apply #7058
2017-06-16 17:29:28 -05:00
Scott Lahteine dd1a84b23f Add Travis test for scrolling on DOGM 2017-06-16 14:48:01 -05:00
Scott Lahteine d4270f15a9 Spacing tweak in setup() 2017-06-16 14:21:05 -05:00
Scott Lahteine c61c0a9aeb Fix status message missing "blink" 2017-06-16 14:18:19 -05:00
Scott Lahteine 062131554f Followup to #7045 2017-06-16 14:18:19 -05:00
Jim Brown 3d043976f7 Add option to disallow filament change without homing first 2017-06-16 13:32:17 -05:00
Scott Lahteine 93da4e83f7 One more space on a short status message 2017-06-16 12:58:25 -05:00
Scott Lahteine 43c96eb31f Merge pull request #7070 from thinkyhead/bf_cleanups_fixes
Thursday cleanup / bugfixes
2017-06-15 15:43:46 -05:00
Scott Lahteine 7c95f762f2 Show LCD bed options even without thermal protection 2017-06-15 15:29:56 -05:00
Scott Lahteine 92eb55f246 Reject generous donation of trailing whitespace 2017-06-15 15:25:24 -05:00
Scott Lahteine 428be27893 Formatting adjustments 2017-06-15 15:25:24 -05:00
Scott Lahteine 8d5a37fb3d Support for a 5th stepper in stepper code 2017-06-15 15:25:23 -05:00
Scott Lahteine 7769a22064 Tweaks to temperature code 2017-06-15 15:25:23 -05:00
Scott Lahteine d9da126776 Cleanups for UBL / ultralcd.cpp 2017-06-15 15:22:36 -05:00
Scott Lahteine 499d5c3b24 Fix scrolling lcd message for DOGM 2017-06-15 15:07:39 -05:00
Scott Lahteine 7164fd499e Tweak to G33 P error 2017-06-15 14:43:40 -05:00
Scott Lahteine c10d763d98 Simpler prepare move conditions 2017-06-15 14:43:40 -05:00
Scott Lahteine 4ebff8eaa5 Drop fastio timer cruft 2017-06-15 14:43:40 -05:00
Scott Lahteine 09bc34f4dc Allow arbitrarily long retraction 2017-06-15 14:43:30 -05:00
Scott Lahteine 4414825e0d Merge pull request #7038 from thinkyhead/bf_PCA9632
PCA9632 PWM color LED support
2017-06-15 14:41:24 -05:00
Scott Lahteine 50c2702ba5 Merge pull request #7062 from Bob-the-Kuhn/AT90USB---UBL-compile-error
Fix two UBL compile errors (one is AT90USB only and one affects all)
2017-06-15 14:22:27 -05:00
Bob-the-Kuhn 9dda022705 fix compile errors
================================

Changed to conditional compile for AT90USB issue
2017-06-15 13:18:14 -05:00
Bob-the-Kuhn b3338ccb01 Merge pull request #6954 from Bob-the-Kuhn/Software-SPI-for-all-CPUs
SD card soft SPI - allow all CPU families to use it
2017-06-15 01:03:39 -05:00
Brian 40bb0cbf7a example configurations, etc. 2017-06-14 18:04:28 -04:00
Jim Brown 26d20ebcfc Don't allow filament change without homing first (#7054) 2017-06-13 17:11:37 -05:00
Roxy-3D 824f71d503 LCD Panel Interactive Mesh Editing (#7045)
Original Mesh Bed Leveling replacement put at top of UBL Menu Options to
help facilitate the removal of the Original Mesh Bed Leveling.

Radar display (and control) of the UBL Interactive Mesh Editing.
2017-06-12 18:26:49 -05:00
Scott Lahteine 445227c807 Fix missing LCD_STR_REFRESH 2017-06-12 01:28:52 -05:00
Scott Lahteine 699aa35df6 Code cleanup for G33 2017-06-12 01:25:40 -05:00
Scott Lahteine 570722a0fe Combine Travis tests to shorten required time 2017-06-12 01:09:24 -05:00
dot-bob 0bc66bf22c PCA9632 PWM color LED support
Add support for the PCA9632 PWM color LED driver used on the Ultimaker 2 and Wanhao Duplicator 6.
2017-06-12 01:09:24 -05:00
Luc Van Daele 896dfa0577 G33 eccentric probe fixes (#6850)
* excentric probe config fix

* undo last commit

* eccentric probe fix

* oops

* !stow after each probe

* deploy/stow fix

* E parameter + bit of cleanup

* comment

* LCD menu fix
2017-06-12 01:07:19 -05:00
Thomas Moore e47029199e Remove ADVANCED_PAUSE_FEATURE requirement for PROBING_HEATERS_OFF (#7000)
* Remove ADVANCED_PAUSE_FEATURE requirement for PROBING_HEATERS_OFF

* Add HEATER_IDLE_HANDLER conditional
2017-06-12 00:22:31 -05:00
Scott Lahteine 8326c1c279 Merge pull request #7005 from Diederikvanderpant/bugfix-1.1.x
added shift register pins for reprapworld keypad v1.1
2017-06-11 23:12:11 -05:00
Scott Lahteine 979a6a6459 Merge pull request #7037 from thinkyhead/bf_config_CL-260
CL-260 configs
2017-06-11 19:55:37 -05:00
Scott Lahteine 07f8da36d2 CL-260 configs 2017-06-11 19:40:13 -05:00
Scott Lahteine dce665a083 Merge pull request #7025 from magnuspub/patch-1
Mod in language_it.h
2017-06-11 19:09:46 -05:00
Scott Lahteine 7b09ab6bda Merge pull request #7033 from Bob-the-Kuhn/pinsDebug-&-dac_mcp4728-fixes
Fix pinsDebug problem & add capability to display more than 70 pins
2017-06-11 19:09:09 -05:00
Scott Lahteine 5bdb4bbc5e Merge pull request #7030 from thinkyhead/bf_circular_scroll
Circular scrolling of the status message
2017-06-11 19:07:38 -05:00
Scott Lahteine 634b7fa7d4 Merge pull request #7031 from thinkyhead/bf_save_218_bytes
Reduce Marlin by ~218 bytes
2017-06-11 19:05:45 -05:00
Federico 772275ab0c Create language_it.h 2017-06-11 10:37:34 +02:00
Bob-the-Kuhn 11e28f389e fix pinsDebug.h error, add capability to display more than 70 pins. 2017-06-10 22:01:15 -05:00
Scott Lahteine 21217d53df Circular scrolling of the status message 2017-06-10 20:56:00 -05:00
Scott Lahteine da8e946efb Reduce size of heater state print code 2017-06-10 20:26:17 -05:00
Scott Lahteine dde8bb7c8b Fix extrude_min_temp compiler warning 2017-06-10 20:07:36 -05:00
Scott Lahteine 83263076dc Merge pull request #7014 from fiveangle/fix_get-set_DrvPct_declarations
fix get/setDrvPct declarations
2017-06-10 19:06:50 -05:00
Scott Lahteine ec61b07836 Merge pull request #7027 from thinkyhead/bf_water_is_wet
Followup to German language update
2017-06-10 19:04:19 -05:00
Scott Lahteine 57a51fd5db Tweak some else clauses 2017-06-10 16:40:10 -05:00
Scott Lahteine fc89de6d8b Followup to German language update 2017-06-10 16:27:39 -05:00
Scott Lahteine 6c9b5ab8e8 Merge pull request #6929 from p3p/pr_issue_template
Add template for github issues
2017-06-10 16:16:20 -05:00
Federico 92011e3d8c Create language_it.h 2017-06-10 21:50:14 +02:00
Dave Johnson 7864b133a8 Fix get/setDrvPct declarations 2017-06-09 20:21:28 -07:00
Scott Lahteine 0b6b7c9c7e Merge pull request #7013 from thinkyhead/bf_german_update
Update language_de.h
2017-06-09 21:41:19 -05:00
Scott Lahteine f17a3c2474 Merge pull request #6889 from thinkyhead/bf_at90usb_mapping
Unify all AVR90USB pin mappings
2017-06-09 21:00:13 -05:00
Kai 5a72b6818e update language_de.h
Following #6990 some more translations and some grammar fixes
2017-06-09 19:45:09 -05:00
Scott Lahteine 4cc5444144 Merge pull request #7008 from Bob-the-Kuhn/Z_MIN_PROBE_ENDSTOP-and-Z_MAX_PIN
Can't use "#define Z_MIN_PROBE_PIN Z_MAX_PIN" in configuration.h
2017-06-09 19:42:56 -05:00
Scott Lahteine 51bc50214a Save 8 bytes of SRAM 2017-06-09 19:20:16 -05:00
Scott Lahteine 748bf32388 Unify AVR90USB: pinsDebug changes 2017-06-09 19:20:16 -05:00
Scott Lahteine 5426fc1735 Unify AVR90USB: Pins cleanup 2017-06-09 18:48:12 -05:00
Scott Lahteine 87d8223251 Unify AVR90USB: Pins remap to Arduino 2017-06-09 18:48:12 -05:00
Scott Lahteine b378deaf89 Unify AVR90USB: fastio changes 2017-06-09 18:21:57 -05:00
Scott Lahteine f4b76b1ee7 Merge pull request #7011 from thinkyhead/bf_serial_macros
Tweak serial macros
2017-06-09 17:58:20 -05:00
Scott Lahteine e94f79ccea Patch some serial macros 2017-06-09 17:17:23 -05:00
Scott Lahteine d91710e9aa Followup for UBL translated strings 2017-06-09 16:59:26 -05:00
Scott Lahteine 761df686bd Minor cleanup in gcode.h 2017-06-09 16:59:26 -05:00
Thomas Moore 897bc2ac1f Updates for ensure_safe_temperature (#6963)
* Updates for ensure_safe_temperature

* M600 fixes
2017-06-09 15:19:08 -05:00
Bob-the-Kuhn 1c107b3949 delete problem line 2017-06-09 11:53:36 -05:00
Diederik van der Pant 5b270417ed added shift register pins for reprapworld keypad v1.1
I recently upgraded my Marlin to V1.1.x and decided to publish my fix to make marlin compile properly when #define board megatronics 2 in combination with #define reprapworld keypad v1.1. It was previously described in the comments of a closed pull request. MarlinFirmware#472. All the buttons on the keypad are now operational.
2017-06-09 14:17:47 +02:00
bgort 2f55870edb [New Feature] I2C position encoder support (#6946)
* [New Feature] I2C position encoder support

I plan to continue improving/cleaning this up, as there areas that need work.

* let the cleanups begin.

* progress

* more progress

* comments, rename files, etc.

* clean

* Cleanups per thinkyhead

* a few more cleanups

* cleanups, bugfixes, etc.

* remove unnecessary passes_test(), additional cleanups/optimizations

* cleanups

* misc.

* Fix up I2CPEM.init() and a few other things.

* organize, fix, rename, etc.

* more optimization

* a few more tweaks
2017-06-09 08:06:23 -04:00
Bob-the-Kuhn f7dacd1f50 Merge pull request #6996 from Bob-the-Kuhn/change-to-DWORD
Fix type for max_acceleration_mm_per_s2 in configuration_store.cpp
2017-06-08 16:32:40 -05:00
Bob-the-Kuhn 28d72f48f1 change to DWORD 2017-06-08 16:15:02 -05:00
Bob-the-Kuhn 76a610cf81 Merge pull request #6995 from Bob-the-Kuhn/add-static
Add "static"
2017-06-08 15:01:00 -05:00
Bob-the-Kuhn 8d1d9040b6 add static 2017-06-08 14:59:21 -05:00
Bob-the-Kuhn a17ffe1ece Merge pull request #6985 from Kaibob2/patch-1
Fix for #6980 (case_light compile problem when EXTENDED_CAPABILITIES_REPORT is enabled)
2017-06-08 11:18:56 -05:00
Tannoo 731c8e6372 Translatable Strings for ubl_G29 (#6990) 2017-06-08 10:09:39 -05:00
Kai abb6b8ad54 update language_de.h (#6986)
There was quite a lot to translate this time. I'm not absolutely confident with the whole UBL stuff and it's a PITA to translate. I don't use any kind of levelling myself as i just have a perfectly level cast aluminium plate as bed.
So maybe someone who really uses it might take a closer look at it after it's merged.
2017-06-08 10:04:52 -05:00
Kai c2eff60d3f Fix for #6980
Line 7830 prevented successfull compilation when #define CASE_LIGHT_ENABLE is uncommented
2017-06-08 09:19:04 +02:00
Scott Lahteine 1419126721 Merge pull request #6965 from thinkyhead/bf_save_more_sram
Use createChar_P to save SRAM in bootscreen
2017-06-07 17:34:19 -05:00
Scott Lahteine a453be7357 Merge pull request #6973 from bgort/autoreportT
Enable AUTO_REPORT_TEMPERATURES by default
2017-06-07 17:33:40 -05:00
Scott Lahteine 1d615e0a67 Merge pull request #6976 from Tannoo/Leveling_in_About_Printer
Leveling type in About Printer
2017-06-07 17:26:21 -05:00
Scott Lahteine 707707d71a Fix LCD status message padding 2017-06-07 16:07:38 -05:00
Scott Lahteine e556ab1dff Find three-point leveling points on Delta 2017-06-07 16:07:38 -05:00
Scott Lahteine a27b08e6af Various code style tweaks 2017-06-07 16:07:38 -05:00
Scott Lahteine dac29e0f75 Cleaner failure of UBL without EEPROM 2017-06-07 16:07:38 -05:00
Scott Lahteine 9128d9ab45 Improve sanity checks with static_assert, organize 2017-06-07 16:07:38 -05:00
Scott Lahteine 6bb05c4543 Save 20b in smart_fill_mesh with PROGMEM 2017-06-07 16:07:38 -05:00
Scott Lahteine b7dc4d9973 Save 92b PROGMEM, 14b SRAM with extruder auto fan 2017-06-07 16:07:38 -05:00
Scott Lahteine c9e3caf928 Save lots of PROGMEM, ~20b SRAM with DIGIPOT_I2C 2017-06-07 16:07:38 -05:00
Scott Lahteine 4134a6b526 Save 88b PROGMEM, 48 bytes SRAM in settings.reset 2017-06-07 16:07:38 -05:00
Scott Lahteine 36cc03a9b4 Save 224b PROGMEM, 48b SRAM in get_homing_bump_feedrate 2017-06-07 16:07:38 -05:00
Scott Lahteine 2a41f0ff84 Save 28b PROGMEM in ultralcd.cpp (line_to_current) 2017-06-07 16:07:38 -05:00
Scott Lahteine e6d10f6ddd Spend 48b PROGMEM to save 16b SRAM
...by moving `homing_feedrate_mm_s` to PROGMEM.
2017-06-07 16:07:38 -05:00
Scott Lahteine 97e13a30ba Save over 100 bytes SRAM in pin_is_protected 2017-06-07 16:07:38 -05:00
Scott Lahteine 45c74406cf Recover 32 bytes of SRAM in Marlin bootscreen code 2017-06-07 16:07:38 -05:00
Scott Lahteine e1c5a43247 Cleanup stepper current control config options 2017-06-07 16:07:38 -05:00
Scott Lahteine efc198f952 Spacing, const, comments 2017-06-07 16:07:38 -05:00
Scott Lahteine 7f0945d2b1 Merge pull request #6978 from thinkyhead/fix_z_endstop_adj
Fix z_endstop_adj initializer
2017-06-07 16:07:21 -05:00
Scott Lahteine 4406fba994 Fixes #6975 2017-06-07 11:14:30 -05:00
Scott Lahteine 19b62c14f0 Add a script so Travis can test for intentional failure 2017-06-07 10:35:54 -05:00
Scott Lahteine d28f5d8a78 Fix: z_endstop_adj is never initialized 2017-06-07 10:29:56 -05:00
Scott Lahteine 5d5ff36446 Fix a compile error with _lcd_set_z_fade_height 2017-06-07 10:29:56 -05:00
Tannoo b88957e0d4 Leveling type in About Printer
Show the Leveling system in use on the About Printer screen.
2017-06-07 06:28:33 -06:00
Brian dd071a4a65 Enable AUTO_REPORT_TEMPERATURES by default 2017-06-07 02:52:35 -04:00
bgort 8db1197c9b Enable extended capabilities report by default (#6969)
Ref #5139
2017-06-07 02:36:34 -04:00
bgort 82e662fc69 Remove requirement for LCD when UBL is used. (#6971)
* Remove requirement for LCD when UBL is used.

* fix previous oversights

* further refinement - error messages for P2 & P4

* require R on G26 when not using LCD; default to all points
2017-06-07 02:24:36 -04:00
Tannoo 2c2b991b59 UBL Manual Build Menu Option (#6972)
One click option to manually build UBL mesh.
2017-06-06 22:14:18 -05:00
Roxy-3D 0dd0033b33 Save up to 94 bytes of RAM on 20x4 LCD Display machines (#6964)
* Save up to 94 bytes of RAM on 20x4 LCD Display machines

Moved the custom screen characters out of RAM into Program Memory.  With
SD-Card support and the Progress Bar enabled, this saves 94 bytes of RAM
memory.

This was tested using the example_configurations/FolgerTech-i3-2020
files.  So a couple small changes to those files snuck into this Pull
Request.

Probably...  We can find similar savings in the Graphics LCD code it we
comb through it.   And if so...  That is the place we really need to
save RAM memory!

* Tidy up white space and indentation
2017-06-05 17:02:00 -05:00
Bob-the-Kuhn ba0bd33c38 Removed check for 2560 family 2017-06-04 22:16:27 -05:00
Scott Lahteine 04b07a6ecc Unused var in Stepper 2017-06-04 17:25:16 -05:00
Scott Lahteine eb8af486d2 Ensure safe temperature for M600 2017-06-04 17:25:16 -05:00
Scott Lahteine bfe7fbe5c0 Maintain message scroll rate 2017-06-04 17:25:15 -05:00
Scott Lahteine 6411d65c48 Fix Morgan SCARA S2 calculation 2017-06-04 12:24:09 -05:00
Scott Lahteine 46752588b9 Merge pull request #6948 from Bob-the-Kuhn/redundant_temperature
fix redefinition errors for redundant_temperature
2017-06-04 12:16:09 -05:00
Scott Lahteine 5938dae200 Merge pull request #6950 from MagoKimbra/fix_g29_3_point
Fix G29 with 3 point
2017-06-04 12:15:44 -05:00
Scott Lahteine c5e0f08e35 Merge pull request #6951 from fixoid/patch-4
Initializing extruder/nozzle servo when turning on the printer
2017-06-04 12:13:05 -05:00
Scott Lahteine 1e2ccca063 Merge pull request #6952 from thinkyhead/bf_final_fixups_123
General cleanup before release
2017-06-04 11:51:07 -05:00
Scott Lahteine e4937b0285 Cleanup of spacing and formatting 2017-06-04 11:31:43 -05:00
fixoid 1aab9906e6 Initializing extruder/nozzle servo when when turning on the printer 2017-06-04 16:57:24 +03:00
MagoKimbra 663ff7f92a Fix G29 with 3 point 2017-06-04 14:39:31 +02:00
oldmcg 9f295581f0 Ubl delta fixes and improvements (#6941)
* Change all direct changes of ubl.state.active to
  set_bed_leveling_enabled() which handles apply/unapply
  leveling to maintain current_position consistency.

Fix invalidation of UBL mesh to invalid unreachable
  mesh points as well (delta corners).

Fix UBL_DELTA unapply_leveling logic and when
it gets applied, including fade_height changes.

Add optional M114 D for detailed position information,
disabled from compilation by default (M114_DETAIL).

* UBL_DELTA raw and inline kinematics

* UBL planner fall through fix

* consistent variable names

* Cleanup orphaned code and whitespace changes.
Use _O2.

* compile warnings cleanup

* Remove redundant #ifdef condition
2017-06-03 17:11:43 -05:00
Bob-the-Kuhn c34d7a29a6 fix redefinition errors for redundant_temperature
Removing redundant_temperature from public section and leaving it in the
private section
2017-06-03 16:40:14 -05:00
Bob-the-Kuhn 862def2ef4 Merge pull request #6947 from Bob-the-Kuhn/allow-GCODE_DEBUG-when-UBL-enabled
Allow DEBUG_GCODE_PARSER when UBL is enabled
2017-06-03 13:34:46 -05:00
Bob-the-Kuhn 6a5d3b580d fix "hex_address not defined" when UBL is enabled 2017-06-03 13:19:55 -05:00
Scott Lahteine d336e413aa Merge pull request #6942 from thinkyhead/bf_cleanups_friday
General cleanup after recent commits
2017-06-03 00:48:57 -05:00
Scott Lahteine 789b2928a8 Tweak scrolling message code 2017-06-02 23:45:53 -05:00
Scott Lahteine fc7d7f87b4 Init probe test pin with FastIO 2017-06-02 23:45:52 -05:00
Scott Lahteine 0282452cea Make Parser::seen volatile 2017-06-02 23:45:52 -05:00
Scott Lahteine 9a305a467b Patch LCD Contrast menu item 2017-06-02 23:45:52 -05:00
Scott Lahteine 90ccac4bcf Clean up after recent commits 2017-06-02 23:45:52 -05:00
Bob-the-Kuhn fff50d3958 Merge pull request #6940 from Bob-the-Kuhn/Gcode---allow-XY
Gcode.cpp - spaces and parameters
2017-06-02 21:21:32 -05:00
Bob-the-Kuhn 2130f10de8 allow space between parameter and value 2017-06-02 19:57:22 -05:00
Bob-the-Kuhn ebda4663c3 for discusion 2017-06-02 19:42:43 -05:00
Scott Lahteine e2c3695e11 Merge pull request #6932 from thinkyhead/bf_zrib_2.0
Support for ZRIB v2.0 Control Board
2017-06-02 16:54:34 -05:00
FATALHERMIT 911079104e Support for ZRIB v2.0 Control Board 2017-06-02 12:05:46 -05:00
Scott Lahteine 65a0212866 Easier override of FILWIDTH_PIN 2017-06-02 12:05:46 -05:00
Scott Lahteine 147d9d76fc Merge pull request #6928 from Bob-the-Kuhn/Fix-case-light-logic-on-Azteeg-X3-boards
Fix case light logic on Azteeg_X3 boards.
2017-06-01 20:14:15 -05:00
Scott Lahteine 9118e135f9 Merge pull request #6931 from thinkyhead/bf_malyan_m150
Malyan m150 configurations
2017-06-01 19:52:38 -05:00
guntherv73 4288c4fb4f Configurations for Malyan M150 2017-06-01 19:26:29 -05:00
Scott Lahteine 1919cb0d1e Config cleanups 2017-06-01 19:26:16 -05:00
Scott Lahteine e800743268 Merge pull request #6921 from tcm0116/pause_flash
Fix issues with advanced pause
2017-06-01 18:04:25 -05:00
Christopher Pepper 61db0fd102 Add issue template for github 2017-06-01 20:33:39 +01:00
Bob-the-Kuhn 9a9bbfc57c Fix case light logic on Azteeg_X3 boards. 2017-06-01 12:33:24 -05:00
Thomas Moore a32f7b329c Fix heater status display for advanced pause 2017-06-01 12:29:47 -05:00
Scott Lahteine ac33a378c0 Merge pull request #6922 from thinkyhead/bf_probe_options
Prevent illegal leveling combinations
2017-06-01 11:12:02 -05:00
Scott Lahteine 445865ea03 REPRAPWORLD_KEYPAD is NEWPANEL but not ULTIPANEL 2017-05-31 23:48:03 -05:00
Scott Lahteine 4296a8b74e For status scrolling, pad a short message 2017-05-31 23:48:03 -05:00
Scott Lahteine 4a96433b7e Simplify counting of printable characters 2017-05-31 23:45:41 -05:00
Scott Lahteine 8d69394ae1 Fix LCD printing of progmem strings 2017-05-31 23:36:57 -05:00
Scott Lahteine c74d4dede6 Prevent illegal leveling combinations
Addressing issue #6901
2017-05-31 23:36:57 -05:00
Scott Lahteine 155aa62fb0 Merge pull request #6912 from thinkyhead/bf_better_pulse_delay
Account for dual XYZ in pulse delay cycles estimate
2017-05-31 22:21:47 -05:00
Scott Lahteine a5fa586642 Preferred patch to gcode.h 2017-05-31 21:18:16 -05:00
Bob-the-Kuhn 4ecd41ef90 Merge pull request #6915 from Bob-the-Kuhn/gcode.h-2
gcode.h - another compile error
2017-05-31 14:03:33 -05:00
Bob-the-Kuhn 1b41e1f645 another compile error
only seen if

#if ENABLED(TEMPERATURE_UNITS_SUPPORT)
      ...
    #if
ENABLED(ULTIPANEL) && DISABLED(DISABLE_M503)
2017-05-31 13:59:49 -05:00
Bob-the-Kuhn 65bd4c8c94 Merge pull request #6797 from Bob-the-Kuhn/M355-case-lightimprovements-(1.1.x)
M355 case light improvements (replaces PR #5685)
2017-05-31 13:33:59 -05:00
Bob-the-Kuhn 7ed0761e09 Merge pull request #6914 from Bob-the-Kuhn/Gcode.h-bug-fix
gcode.h - fix compile error
2017-05-31 13:29:19 -05:00
Bob-the-Kuhn 9657e7d3ee copied file changes from PR #5685
==============================

Configuration_adv.h changes

==============================

add "live" LCD update

==============================

P & S version

==============================

final (hopefully) tested version

==============================

update M115 capabilities print

==============================

Menu changes portion of the requested changes

==============================

changed USEABLE_HARDWARE_PWM from a function to a series of macros

==============================

changes per review
2017-05-31 13:22:38 -05:00
Bob-the-Kuhn 8206bb9bb9 fix compile error
invalid conversion from 'const char*' to 'char*' [-fpermissive]
2017-05-31 13:17:01 -05:00
Scott Lahteine df91346188 Account for dual XYZ in pulse delay cycles estimate 2017-05-31 12:23:28 -05:00
Scott Lahteine 6354b40231 Merge pull request #6903 from thinkyhead/bf_fix_delta_m24_m125
Patch M24 / M125 for delta
2017-05-31 00:03:20 -05:00
Scott Lahteine 7236109f2a Patch M24 / M125 for delta 2017-05-30 23:07:29 -05:00
Scott Lahteine be17033762 Fix case light menu toggle 2017-05-30 14:03:45 -05:00
Scott Lahteine 89b93058e3 Merge pull request #6887 from christianh17/PR-sanitycheck
enable DEACTIVATE_SERVOS_AFTER_MOVE with switching nozzle
2017-05-30 13:43:39 -05:00
Scott Lahteine 05b66234ae Merge pull request #6895 from thinkyhead/bf_user_commands
Custom user commands menu
2017-05-30 13:40:50 -05:00
Scott Lahteine 84a0a77c59 Merge pull request #6852 from tcm0116/mixing_extruder_lin_advance
Generate error if MIXING_EXTRUDER and LIN_ADVANCE are both enabled
2017-05-30 13:37:51 -05:00
Scott Lahteine d33ae33103 Merge pull request #6897 from thinkyhead/bf_fix_lcd_scrolling
Fix LCD scrolling character counting
2017-05-30 03:45:59 -05:00
Scott Lahteine 266ae8912a Formatting in _draw_heater_status 2017-05-30 03:32:16 -05:00
Scott Lahteine 6b9ca16f36 Patch lcd_print edge limit code 2017-05-30 03:32:15 -05:00
Tannoo 74d6dee920 User Command (Script) Menu
The menu (commands / scripts) is configurable in `Configuration_adv.h`.

- Added conditionals.
- Changed script handling.
- Slimmed and working!
- Added Status message.
- Returning to lcd status screen now!
- Example Configs Updated.
- Cleanups by @thinkyhead
2017-05-30 02:33:57 -05:00
Scott Lahteine d9c8072037 Edit PROPORTIONAL_FONT_RATIO comment 2017-05-30 01:29:39 -05:00
Scott Lahteine bad432add7 Merge pull request #6894 from thinkyhead/bf_lcd_draw_order
Fix LCD to draw after value changes
2017-05-30 00:02:00 -05:00
Scott Lahteine 46b32e4548 Cleanup LCD interface, add lcd_reset_status 2017-05-29 22:16:13 -05:00
Scott Lahteine ca99d67ede Fix UBL "Info screen" menu items 2017-05-29 19:55:26 -05:00
Scott Lahteine 2c7a39bc0e Fix LCD print aborted message 2017-05-29 19:52:01 -05:00
Scott Lahteine 0f1e8c195d Draw on LCD after value has changed 2017-05-29 19:42:30 -05:00
Scott Lahteine 5d6366d4e6 Merge pull request #6893 from thinkyhead/bf_lcd_leveling_fixes
Patch PROBE_MANUALLY + LCD_BED_LEVELING
2017-05-29 18:15:22 -05:00
Scott Lahteine 51587c4b43 Rename Feedrate to Velocity to match prior naming 2017-05-29 17:54:15 -05:00
Scott Lahteine 9677f3f2f5 Patch up LCD Bed Leveling menu 2017-05-29 17:51:11 -05:00
Scott Lahteine fc2eaab7f3 Show home option in level bed menu 2017-05-29 17:51:10 -05:00
Scott Lahteine c6a7adc293 Patch G29 A and Q arguments to bypass setup 2017-05-29 17:51:10 -05:00
Scott Lahteine 4cece2d72e Use NAN for G29 W omitted parameters 2017-05-29 17:51:10 -05:00
Scott Lahteine 2d71569138 Fix spacing in JSON output 2017-05-29 17:51:10 -05:00
Scott Lahteine b2d3c8aedd Have G28 do a refresh of the display 2017-05-29 17:51:10 -05:00
Scott Lahteine 50ab9c2e04 General cleanup of spacing, comments 2017-05-29 15:34:14 -05:00
Scott Lahteine f1e33afda4 Return to Bed Leveling menu when done 2017-05-29 15:31:02 -05:00
Scott Lahteine 78d8c598e1 Fix lcd_synchronize with message 2017-05-29 15:31:02 -05:00
Scott Lahteine eb39d6e3e2 Don't draw progress bar until it has 1% 2017-05-29 15:31:01 -05:00
Scott Lahteine 194f8b2f55 Start at Z=0 in manual probing 2017-05-29 15:31:01 -05:00
Scott Lahteine 6f89db11f0 Allow lcd_setstatusPGM to reset the alert level 2017-05-29 15:31:00 -05:00
Scott Lahteine 25114414cd Merge pull request #6860 from thinkyhead/bf_case_light_toggle
Case light as a toggle menu item
2017-05-28 18:30:55 -05:00
Scott Lahteine 3fe333143c Case light as a toggle menu item 2017-05-28 14:32:07 -05:00
Scott Lahteine d013bddfa8 Merge pull request #6876 from thinkyhead/bf_extend_leveling_menu
Extend the ABL/MBL Bed Leveling menu
2017-05-28 14:19:02 -05:00
Scott Lahteine 58556991da Merge pull request #6877 from thinkyhead/bf_scrolling_status
Scrolling status message (option)
2017-05-28 14:12:36 -05:00
Scott Lahteine 01e7e234c6 Add more options to the Bed Leveling menu 2017-05-28 14:04:28 -05:00
Scott Lahteine 0cbe448edf Split up Control > Motion submenu 2017-05-28 12:52:24 -05:00
Scott Lahteine a3645ec921 Reference op with variable name 2017-05-28 11:33:22 -05:00
Scott Lahteine 71367fd518 Scrolling status message option 2017-05-28 11:26:28 -05:00
Scott Lahteine b0eae68f57 Prevent bed temperature being set too high 2017-05-28 11:11:17 -05:00
Scott Lahteine 493f0b0c62 Fix some compiler warnings 2017-05-28 11:06:33 -05:00
christianh17 f379a326cc enable DEACTIVATE_SERVOS_AFTER_MOVE with switching nozzle
When using switching nozzle it should be possible to disable the servo after move. Do it only if you do not need the servo power to keep the position.
2017-05-28 15:33:28 +02:00
Scott Lahteine 33279a1e02 Code style tweak to gcode.h 2017-05-27 19:47:26 -05:00
Ernesto Martinez ac959b12ee Updates to language_es.h based on latest updates. (#6871)
Spanish language updates
2017-05-27 19:08:39 -05:00
Scott Lahteine 55c700d537 Tweak to gcode.h 2017-05-26 22:11:31 -05:00
Bob-the-Kuhn f0d545b950 Merge pull request #6866 from Bob-the-Kuhn/Parser-fix
Parser fix
2017-05-26 15:12:59 -05:00
Bob-the-Kuhn 868e7db4ae value check was looking at the code 2017-05-26 14:49:42 -05:00
Thomas Moore fb5e0ffe16 Unify M600 and M125 pause features (#6407)
* Unify M600 and M125 pause features
* Cleanup per thinkyhead's comments
* Rename filament_change_menu_response to advanced_pause_menu_response
* Include HAS_BED_PROBE in QUIET_PROBING
* Update gMax example file
* is_idle() is out of scope without the braces
* Convert FT-i3-2020 to Advance Pause names...
* Allow pause even if not printing
2017-05-26 13:01:02 -05:00
Scott Lahteine 73ed0c63b4 Merge pull request #6858 from thinkyhead/bf_leveling_patch
Fixes for PROBE_MANUALLY and LCD_BED_LEVELING
2017-05-26 12:13:43 -05:00
Scott Lahteine b3a97b5013 Patch up LCD level bed menus 2017-05-25 23:53:31 -05:00
Scott Lahteine 78af2b1444 Fix PROBE_MANUALLY via G-code 2017-05-25 23:53:31 -05:00
Scott Lahteine 082da23391 One fewer EOL in M503 output 2017-05-25 23:53:31 -05:00
Scott Lahteine b1a4788593 Add .ino.cpp to .gitignore 2017-05-25 23:28:42 -05:00
Scott Lahteine b15e531464 Fix screen change on character display 2017-05-25 15:29:14 -05:00
Thomas Moore 44e657766e Add incompatibility error to Sanity Check for MIXING_EXTRUDER and LIN_ADVANCE 2017-05-25 08:06:27 -05:00
Scott Lahteine 735405b2a4 Merge pull request #6848 from thinkyhead/bf_scara_M665
Add M665 for SCARA
2017-05-24 20:51:51 -05:00
Scott Lahteine ffa901f373 Merge pull request #6839 from thinkyhead/bf_day_ending_in_y
UBL ultralcd.cpp patches
2017-05-24 17:55:44 -05:00
Scott Lahteine 361cbba113 Use M665 to set SCARA angle offsets 2017-05-24 17:49:24 -05:00
Scott Lahteine 5ed63a5724 Apply const in prepare_kinematic_move_to 2017-05-24 17:49:24 -05:00
Scott Lahteine 5cbe0244c5 Fixes for spindle/laser and SCARA probe bounds 2017-05-24 17:49:23 -05:00
Scott Lahteine 1f52c9f5df Neater Megatronics 3 pins 2017-05-24 17:49:23 -05:00
Scott Lahteine af81cb4cbb Patch for M503 output 2017-05-24 17:49:09 -05:00
Scott Lahteine 0392329cb9 Merge pull request #6634 from thinkyhead/bf_fresh_gcode_parser
New GCode Parser
2017-05-24 16:16:50 -05:00
Scott Lahteine 1d167a6874 Some cleanup, fixes for ultralcd.cpp UBL code
- Free up 30 bytes of SRAM in UBL LCD code
- Fix BUILD_ABS_MESH temperature
- Fix UBL indentation in ultralcd.cpp
- UBL vars lowercase, "convert to positive" sensibly
2017-05-24 01:10:42 -05:00
Scott Lahteine f4028fe088 New GCode Parser - Implementation 2017-05-23 14:15:10 -05:00
Scott Lahteine 002a06c507 New GCode Parser - Configuration 2017-05-23 14:15:07 -05:00
Scott Lahteine 2dfb7c212c Merge pull request #6836 from thinkyhead/bf_fix_ubl_motion
One more mesh_index_to_npos update
2017-05-23 13:21:36 -05:00
Scott Lahteine ad915b667e One more mesh_index_to_npos update
Followup to #6827
2017-05-23 13:02:50 -05:00
Scott Lahteine 4ce228f2a0 Merge pull request #6833 from thinkyhead/bf_move_g7
G42: Fix and extend
2017-05-23 11:49:50 -05:00
Scott Lahteine 2881f0a48d Fix, extend G42 with P (probe) parameter
- Also fix handling of SCARA and misuse of `codenum`.
2017-05-23 04:55:42 -05:00
Scott Lahteine d252d1b6a2 Merge pull request #6831 from thinkyhead/bf_move_g7
Move G7 to G42
2017-05-23 03:02:57 -05:00
Scott Lahteine 6d574883a0 Merge pull request #6830 from thinkyhead/bf_redraw_flags
Use redraw flag for both types of LCD
2017-05-23 03:02:13 -05:00
Brian 82ca6248e2 Move G7 to G42
See: #6777
2017-05-22 23:21:35 -05:00
Scott Lahteine 26ffa558a3 Use redraw flag for both types of LCD 2017-05-22 18:34:54 -05:00
Scott Lahteine 3ff7515527 Merge pull request #6817 from cbusillo/patch-1
missing enable for M605 for duplication mode
2017-05-22 18:07:11 -05:00
Scott Lahteine 62d8e35adc Merge pull request #6827 from thinkyhead/bf_day_ending_in_y
Make UBL a complete singleton
2017-05-22 17:51:03 -05:00
Scott Lahteine 34cfbc90cd Use new attribute macros in more places 2017-05-22 17:38:58 -05:00
Scott Lahteine 85b967657e Embed G26/G29 in ubl class, with enhancements 2017-05-22 17:38:58 -05:00
Scott Lahteine c99bd69889 Apply const float & more 2017-05-22 17:38:36 -05:00
Scott Lahteine ad5638f78c Cleanup some fastio code 2017-05-22 17:38:36 -05:00
Scott Lahteine e271521c39 Single user_canceled function in G26 2017-05-22 17:38:36 -05:00
Scott Lahteine c2ea22da49 Clean up whitespace 2017-05-22 17:38:36 -05:00
Scott Lahteine ceb62fc7e1 Fixes #6828: M428 bug 2017-05-22 17:34:03 -05:00
oldmcg 48f7652143 UBL G29 -P3.1 smart fill (#6823)
* UBL G29 -P3.1 mesh fill with distance-weighted least squares fit.

* Back to original -O0 on G29 for now.
2017-05-22 12:33:50 -05:00
Scott Lahteine 850203fb3a Merge pull request #6816 from thinkyhead/bf_lcd_live_editing
Constrain LCD status message rendering
2017-05-22 11:15:35 -05:00
Roxy-3D 3129260c44 Misc. Clean Up (#6822)
* Misc. Clean Up

Mostly UBL related clean up.
- But fixed a bug in the thermistortables.
- Made G26 more responsive to user aborts.
- Added sanity checks for older name for UBL_MESH_VALIDATION.
- Made G29 P4 able to edit invalidated mesh points
- Restore a reasonable Fade Height for UBL when creating new state information
- Get UBL's Topology Map to look a little bit better
- Make sure the user doesn't see a blank screen when doing Mesh Editing.

* Huh???   GitHub Desktop screwed up!

* get the planner object in scope

* Fix out of scope z_fade_height

* Travis timed out...

I need a change so I can force a new commit and sync.
2017-05-21 22:09:51 -05:00
cbusillo 3b4116e73b missing enable for M605 for duplication mode
I believe gcode_M605 will not be called when using DUAL_NOZZLE_DUPLICATION_MODE without this change.
2017-05-21 13:54:20 -04:00
Scott Lahteine 5e8892d6b5 Show Restore Failsafe item with EEPROM off 2017-05-21 12:52:44 -05:00
Scott Lahteine 76af9ac7c5 tweaks 2017-05-21 12:51:58 -05:00
Scott Lahteine ba5910ab6c Constrain LCD status message rendering 2017-05-21 12:35:16 -05:00
Scott Lahteine a83f6db679 Merge pull request #6815 from MagoKimbra/fix_ultralcd_lcd_contrast
Fix set_lcd_contrast
2017-05-21 12:10:02 -05:00
MagoKimbra 2c309a8f7c Fix set_lcd_contrast 2017-05-21 19:01:44 +02:00
Scott Lahteine 22dbb2117c Merge pull request #6812 from thinkyhead/bf_day_ending_in_y
Cleanup code, organize & document fastio pin mappings
2017-05-21 11:39:04 -05:00
Roxy-3D 364f8fb613 Update Configuration.h files to better names (#6814)
Changed UBL_G26_MESH_EDITING to UBL_G26_MESH_VALIDATION
Added UBL_MESH_EDIT_MOVES_Z to prepare for that change (coming next)
2017-05-21 11:10:22 -05:00
Scott Lahteine d7fda2fe49 Formatting, const in G33 2017-05-21 10:40:05 -05:00
Scott Lahteine 1519b0e7c1 Split up fastio.h, document pin mappings 2017-05-21 10:33:27 -05:00
Scott Lahteine 49599caade General cleanup to utf_mapper.h 2017-05-21 10:33:27 -05:00
Scott Lahteine 02f15f6775 UBL-related cleanup, spacing, standards
Reference: #6804
2017-05-21 10:33:26 -05:00
Scott Lahteine 52e20aeab3 Pins-related cleanup, formatting 2017-05-21 07:18:03 -05:00
Scott Lahteine ea906e4da7 Merge pull request #6810 from thinkyhead/bf_lcd_live_editing
Add "live editing" option to LCD menus
2017-05-21 06:11:52 -05:00
Scott Lahteine c2ca85aeb2 Merge pull request #6811 from thinkyhead/bf_temp_float_stuff
Restore current temp accessors to float
2017-05-21 06:10:31 -05:00
Scott Lahteine 11fc9564c9 Add live editing option to LCD menu 2017-05-21 05:29:46 -05:00
Scott Lahteine 8a0a5cfccc Temp-related cosmetic changes 2017-05-21 04:49:25 -05:00
Scott Lahteine b29dbbd5e4 Use uint16_t for temps 2017-05-21 04:48:53 -05:00
Scott Lahteine ebcd1aaf88 Access hotend/bed temperatures as float 2017-05-21 04:46:31 -05:00
Scott Lahteine 0e1f0efc4b Merge pull request #6809 from thinkyhead/bf_G33_evolves
G33 updates
2017-05-20 20:12:36 -05:00
Scott Lahteine 6ce2b1ff4a G33 evolutionary changes 2017-05-20 19:23:39 -05:00
Scott Lahteine b3a38fd300 Clean up bugfix readme 2017-05-20 19:20:53 -05:00
Scott Lahteine 3c061a9f9a UBL tabs, whitespace, spelling, etc. 2017-05-19 14:16:50 -05:00
Scott Lahteine dc2d215355 Merge pull request #6791 from thinkyhead/bf_ubl_pringle
Disable PROBE_MANUALLY for UBL
2017-05-19 07:50:58 -05:00
Scott Lahteine 75badae2f8 Disable PROBE_MANUALLY for UBL
Plus some other UBL tweaks.
2017-05-19 07:13:18 -05:00
Scott Lahteine 94a4af1d7f Merge pull request #6773 from thinkyhead/bf_lcd_patch_e5
Patch LCD code for 5th extruder
2017-05-18 15:26:55 -05:00
Scott Lahteine 5970fe72d1 Merge pull request #6782 from bgort/azteegtweak
Tweak Azteeg X3 PRO _pins.h so Viki2 will work for those without a case light
2017-05-18 15:26:16 -05:00
Brian 01f452c37c Tweak Azteeg X3 PRO _pins.h so Viki2 will work for those without a case light.
- add comment explaining that the Panucatt Viki2 wiring diagram uses pin 44
2017-05-18 13:00:13 -04:00
bgort 47245675fc Merge pull request #6777 from bgort/g7
Add `G7` gcode command to move between UBL mesh points
2017-05-18 06:44:13 -04:00
Brian e09b4ce4a5 Add checking 2017-05-17 19:46:16 -04:00
Brian 13599a73c7 Add G7 gcode command to move between UBL mesh points
- can be augmented in the future to enable for other leveling systems

Quite simple, but did not want to modify `G1` as the additional checking would slow it down.

Tested & working.
2017-05-17 19:05:36 -04:00
bgort e16743da45 Merge pull request #6775 from bgort/m421fix
Fix recent regressions, &c.
2017-05-17 17:42:35 -04:00
Brian 43c24f0027 Fix recent regressions, &c.
- fix broken `M421` due to less-than-careful optimization
- add HOME_AFTER_DEACTIVATE define to advanced config so not everyone has to rehome after steppers are deactivated
- misc. cleanups (remove unused label, unused variables)
2017-05-17 17:21:46 -04:00
Scott Lahteine 3843a5151a Patch LCD code for 5th extruder, EEPROM reset 2017-05-17 15:33:51 -05:00
Scott Lahteine 6c064bb7d6 Some probe_pt error-handling 2017-05-17 15:33:51 -05:00
bgort aad1acc418 Merge pull request #6772 from bgort/meshstor
Fix broken EEPROM save/load
2017-05-17 12:42:14 -04:00
Brian 3370329751 Fix broken EEPROM save/load 2017-05-17 12:41:27 -04:00
Scott Lahteine f0fe26c411 Ensure Arduino.h and configs are included for serial.cpp 2017-05-17 05:07:35 -05:00
Scott Lahteine ffb5353294 Merge pull request #6738 from thinkyhead/bf_config_crc_rebase
Implement CRC16, develop mesh allocation table
2017-05-17 04:44:00 -05:00
Scott Lahteine e806e6419a Merge pull request #6768 from thinkyhead/rc_spindle_m3_m5
Spindle / Laser support
2017-05-17 04:39:32 -05:00
Scott Lahteine d6f49c6626 Merge pull request #6752 from jdelahayes/bugfix-1.1.x
Update french language
2017-05-17 04:32:28 -05:00
Scott Lahteine 55a87da036 SPINDLE/LASER implementation 2017-05-17 04:26:15 -05:00
Scott Lahteine ffe0e2d19a SPINDLE/LASER pins changes 2017-05-17 04:23:06 -05:00
Scott Lahteine 99c4900a98 SPINDLE/LASER config changes 2017-05-17 04:23:06 -05:00
Scott Lahteine a3abfeac47 Mark strings needing translation 2017-05-17 03:49:33 -05:00
Scott Lahteine 7f4e4b1212 UBL name/state methods 2017-05-17 03:49:32 -05:00
Brian 7852369987 Implement CRC16, develop mesh allocation table
- Add crc16 utility function
 - Implement CRC16 for config store, remove old checksum, increment layout version
 - Move UBL mesh store/load to MarlinSettings; increment UBL_VERSION
 - Begin to lay out MAT structure, prototype functions, etc.
 - Rename ubl.state.eeprom_storage_slot to .storage_slot
 - Misc. optimization
 - Cleanup/standardize/improve some messages

This is a work in progress!
2017-05-17 03:49:19 -05:00
Scott Lahteine 00d358d92d Fix a PROBE_MANUALLY bug in ultralcd.cpp 2017-05-17 03:49:19 -05:00
Scott Lahteine 13a06711ad Add a Travis test for UBL + DELTA 2017-05-17 03:49:19 -05:00
Scott Lahteine 4dc49f8424 Merge pull request #6762 from thinkyhead/bf_noz_vs_ext_servo
Separate SWITCHING_NOZZLE and SWITCHING_EXTRUDER
2017-05-16 19:53:07 -05:00
fixoid c2321b1cdd Separate SWITCHING_NOZZLE and SWITCHING_EXTRUDER 2017-05-16 19:25:17 -05:00
Scott Lahteine 455a24f6ff Merge pull request #6764 from thinkyhead/bf_cleanups_tuesday
Prevent home_all_axes picking up XYZ parameters from command
2017-05-16 19:13:15 -05:00
Scott Lahteine 238fb53617 Patch home_all_axes to ignore G28 XYZ parameters 2017-05-16 16:18:38 -05:00
Scott Lahteine 6b6630e11b Clean up trailing whitespace and tabs 2017-05-16 16:06:18 -05:00
Roxy-3D d30e478f97 Fix incorrectly optimized find_closest_mesh_point_of_type() function (#6761) 2017-05-16 15:24:24 -05:00
oldmcg 5a9e52a3e0 Use COPY_XYZE macro to copy exactly 4 elements (#6758)
Fix undefined DELTA_PROBEABLE_RADIUS for UBL_DELTA
2017-05-16 11:47:51 -05:00
Roxy-3D 8606644343 M48 Fix for Delta Configuration Files & UBL G29 only homes when necessary (#6757)
* Fix M48 for Delta's  There was a scope issue: DELTA_PROBEABLE_RADIUS wasn't getting defined.

* Check if the specified G29 command requires homing
2017-05-16 11:23:50 -05:00
Tannoo 0cd398c25d UBL Menu Updates (#6751)
Things should be pretty stable for a while.   
But it wouldn't surprise me if the Delta people have a need for a few special commands.
2017-05-16 08:45:31 -05:00
Johann Delahayes a5737cba7c Update french language 2017-05-16 12:27:42 +02:00
Scott Lahteine 0fef9a2983 Remove "ubl." prefix from calls within ubl method 2017-05-16 01:19:45 -05:00
Scott Lahteine 14a4257c7b UBL tabs, whitespace, spelling, etc. 2017-05-16 01:19:45 -05:00
Scott Lahteine 56e2e331ed UBL G29: replace 'O' with 'T'
Since we already used 'T' for `G29` Topology Report in the past, and since 'T' is available…
2017-05-16 01:18:41 -05:00
Scott Lahteine 091f94a6bf Fix up M421 and some comments 2017-05-16 01:14:03 -05:00
Scott Lahteine 4ec4ecff1a Reduce find_closest_mesh_point_of_type a little 2017-05-16 01:14:03 -05:00
Scott Lahteine f1a1c6873e Patch lcd_implementation_status_screen compiler warning 2017-05-16 00:59:50 -05:00
moebyusDev 2266c0780d fixed spanish lang
It was missing MSG_FILAMENT_CHANGE_HEAT_2 and MSG_FILAMENT_CHANGE_HEATING_2
2017-05-16 00:35:36 -05:00
oldmcg b213a45efb UBL_DELTA post merge cleanup (#6705)
* UBL_DELTA post merge cleanup:
   fix fade_height, lost during some previous merge
   fix float cx,cy which are not const
   move repeated z_cxcy calc line inside loop
   style fixes and comment fixes/alignment

* Update ubl_motion.cpp

remove unnecessary parentheses

* Update Conditionals_post.h

Change name of define to more accurate meaning:
UBL_GRANULAR_SEGMENTATION_FOR_CARTESIAN
which is not and should not be the default for cartesians with UBL.
2017-05-16 00:30:29 -05:00
Roxy-3D 6f86c46fa6 Fix typo that caused scope issues for DELTA (#6750) 2017-05-15 23:13:45 -05:00
Roxy-3D 1fbcbc05f6 UBL no longer flout's the sacred GCode standard (#6745)
Also clean up ubl_motion.cpp debug info and fix declaration of cx & cy
2017-05-15 16:25:01 -05:00
Scott Lahteine c262ea92e0 Merge pull request #6733 from abusca/Euskera
Updated Basque translation
2017-05-15 02:30:11 -05:00
Scott Lahteine b17bcd56da Merge pull request #6736 from thinkyhead/bf_axis_unhomed
More constraint on axis_unhomed_error
2017-05-14 17:20:04 -05:00
Scott Lahteine 267f77b18b More constraint on axis_unhomed_error 2017-05-14 16:03:02 -05:00
Aaron Busca 645096b87a Updated Basque translation
Updated Basque translation with new strings.
2017-05-14 18:29:50 +02:00
Roxy-3D 40d95a4e23 Update the gMax files to display better with Proportional Fonts (#6727)
Update the gMax files to display better with Proportional Fonts
2017-05-13 16:33:04 -05:00
Roxy-3D c06af63f87 G26's default behaviour ought to be the entire mesh (#6726)
Adding the capability to specify ahead of time how much of the validation pattern to print made it so by default G26 only did one circle and no connecting lines.

It is more natural for the unsophisticated user to just do the entire mesh (bed).   We default the repetition count to GRID_MAX_POINTS+1 to insure we get every last one of them!
2017-05-13 15:53:44 -05:00
Roxy-3D 15040821e0 Setup FolgerTech-i3-2020 files better for the user (#6724)
UltiPanel was enabled, but technically, it is a REPRAP_DISCOUNT_SMART_CONTROLLER
Either configuration works on the machine.  But we want it 'Right'.

Setup the Proportional Font spacing so columns line up nicer on PronterFace and Repetier Host.
2017-05-13 15:14:03 -05:00
Scott Lahteine 2da4398fb5 Merge pull request #6716 from thinkyhead/bf_ubl_prepare_move
Fix prepare_move... for UBL
2017-05-13 06:22:03 -05:00
Scott Lahteine 67c9b1e332 Update M665 comment, fix M665 code_value code. 2017-05-13 05:11:29 -05:00
Scott Lahteine 37399e3cb5 Fix prepare_move_to_destination_cartesian for UBL 2017-05-13 04:13:19 -05:00
Scott Lahteine a7fb55ea6d Use GRID_MAX_POINTS. Some formatting 2017-05-12 06:57:19 -05:00
Scott Lahteine e51b5774db Merge pull request #6699 from mtowara/patch-1
Bugfix PRINTER_EVENT_LEDS
2017-05-12 05:58:25 -05:00
Scott Lahteine 056350d9bf Merge pull request #6656 from FHeilmann/fix_fwretract_pos_z_move
Fix FWRetract with positive z-moves during retracted state
2017-05-12 05:56:08 -05:00
Scott Lahteine 0d48fd4b6b Merge pull request #6697 from thinkyhead/bf_wednesday_cleanup
Wednesday-Thursday cleaning up after
2017-05-12 05:33:21 -05:00
Scott Lahteine 0e582bcfb7 Fix #6691 - redundant line in M665 2017-05-12 05:17:38 -05:00
Markus Towara 68ae7c8d7a Bugfix PRINTER_EVENT_LEDS
Extra closing curly bracket terminates while loop early if PRINTER_EVENT_LEDS defined
2017-05-12 12:13:23 +02:00
Scott Lahteine ba29da56e0 Add disclaimer for verboten parameters 2017-05-12 02:34:53 -05:00
Scott Lahteine 0696dda470 Cleanups to UBL_DELTA 2017-05-12 02:34:53 -05:00
Scott Lahteine cbfca29522 M421 tweaks, just to use const 2017-05-12 01:32:34 -05:00
Scott Lahteine 233f824dd6 Define GRID_MAX_POINTS 2017-05-12 01:32:34 -05:00
Scott Lahteine b17e2d3dcd Apply const in Marlin_main.cpp 2017-05-12 01:32:33 -05:00
Scott Lahteine 92fbea2906 Add some GCodes to the header of Marlin_main.cpp 2017-05-12 01:32:33 -05:00
Scott Lahteine 94e90ca26c Tweak M80/M81 descriptions 2017-05-12 01:32:33 -05:00
Scott Lahteine 301958b3e0 Simplify mfdoc, mfpub 2017-05-12 01:32:33 -05:00
Scott Lahteine ee50dfaaf3 Adjust G26 arguments 2017-05-12 01:32:33 -05:00
Scott Lahteine b0ba5cae73 Fix a spelling boo 2017-05-12 01:32:33 -05:00
oldmcg 91841d75c9 UBL_DELTA (#6695)
UBL on Delta's....     Should be close!    Should not affect any Cartesian printer.
2017-05-11 22:33:47 -05:00
bgort 445003dbb8 Merge pull request #6694 from bgort/g29p2b
UBL:  Minor improvement to G29 P2
2017-05-11 20:44:43 -04:00
bgort f01a14e7d0 Merge pull request #6689 from bgort/m421mod
M421:  Add 'adjust closest point' capability
2017-05-11 19:08:42 -04:00
Brian 5a5dba6fc8 UBL: Minor improvement to G29 P2
- allow H code value to override probing height
- minor cleanups
2017-05-11 18:54:34 -04:00
Brian ae676490c9 M421: Add 'adjust closest point' capability
- Split M421 into separate versions for bilinear and ubl
- Fix minor issue in G26
2017-05-11 12:10:38 -04:00
Scott Lahteine 2819228d4f Merge pull request #6681 from thinkyhead/bf_better_mfpub
Better mfpub
2017-05-10 23:05:47 -05:00
Scott Lahteine 9a688d1456 Merge pull request #6682 from thinkyhead/bf_M80_s_arg
"M80 S" to report the state of the PSU pin
2017-05-10 20:29:01 -05:00
Roxy-3D b63e82f309 M421 Mesh Point Offset and misc. UBL clean up (#6685)
* M421 Mesh Point Offset and misc. UBL clean up

Allow M421 to accept an offset as well as absolute value for a specified
mesh point.
And misc. UBL clean up to reduce redundent code.

* Better error checking for M421

* Fix M421 Y index bug

I just noticed....  We've had a Y index bug for who knows how long?
2017-05-10 18:54:10 -05:00
Pablo Ventura 539e0c2f31 "M80 S" to report the state of the PSU pin 2017-05-10 17:58:58 -05:00
Scott Lahteine 60a4ca1182 Better mfpub 2017-05-10 17:45:58 -05:00
bgort df42428281 Merge pull request #6665 from bgort/font
Add proportional font adjustment ratio
2017-05-10 17:30:51 -04:00
Brian 2604742191 Add proportional font adjustment ratio
- update example configs
2017-05-10 17:19:03 -04:00
bgort b3407a371b Merge pull request #6676 from bgort/g26zhop
G26: Add 0.5mm Z-bump between circles to minimize pattern scraping
2017-05-10 17:12:05 -04:00
bgort c33d99c5b2 Merge pull request #6680 from bgort/g26repeat
G26:  Add 'Repeat' Option
2017-05-10 17:11:34 -04:00
Bob-the-Kuhn 7325035aac Merge pull request #6637 from Tannoo/UBL_Menu_System_1.1
UBL Menu System 1.1
2017-05-10 15:54:48 -05:00
Brian f7a201b0d0 G26: Add 'Repeat' Option
- Allows for specifying number of points to print/validate, using 'R' code like with G29 P4 Rx
- Moved the code for Random to 'M' so we could be consistent with G29 P4
- G26 instructions indenting/cleanup
2017-05-10 16:52:08 -04:00
Brian 9c5957fc77 G26: Add 0.5mm Z-bump between circles to minimize pattern scraping 2017-05-10 16:11:59 -04:00
bgort bbb2b86c34 Merge pull request #6672 from bgort/ublmotion
UBL Cleanup/Bugfix
2017-05-10 14:23:07 -04:00
Brian 4da14b14f4 UBL Cleanup/Bugfix
- Fix bug in ubl_line_to_destination
- Improve/fix output of some ubl.h functions
2017-05-10 13:56:17 -04:00
Tannoo 66db6c3acc UBL Menu System 1.1
/**
     * UBL System submenu
     *
     *  Prepare
     * - Unified Bed Leveling
     *   - Activate UBL
     *   - Deactivate UBL
     *   - Mesh Storage
     *       Memory Slot:
     *       Load Bed Mesh
     *       Save Bed Mesh
     *   - Output Map
     *       Map Type:
     *       Output Bed Mesh Host / Output Bed Mesh CSV
     *   - UBL Tools
     *     - Build Mesh
     *         Build PLA Mesh
     *         Build ABS Mesh
     *       - Build Custom Mesh
     *           Hotend Temp:
     *           Bed Temp:
     *           Build Custom Mesh
     *         Info Screen
     *       - Build Cold Mesh
     *       - Fill-in Mesh
     *           Fill-in Mesh
     *           Smart Fill-in
     *           Manual Fill-in
     *           Info Screen
     *         Continue Bed Mesh
     *         Invalidate All
     *         Invalidate Closest
     *     - Validate Mesh
     *         PLA Mesh Validation
     *         ABS Mesh Validation
     *       - Custom Mesh Validation
     *           Hotend Temp:
     *           Bed Temp:
     *           Validate Mesh
     *         Info Screen
     *     - Edit Mesh
     *         Fine Tune All
     *         Fine Tune Closest
     *       - Adjust Mesh Height
     *           Height Amount:
     *           Adjust Mesh Height
     *         Info Screen
     *     - Mesh Leveling
     *         3-Point Mesh Leveling
     *       - Grid Mesh Leveling
     *           Side points:
     *           Level Mesh
     *         Info Screen
     *   - Output UBL Info
     */
2017-05-10 12:14:43 -05:00
bgort efd93169e5 Merge pull request #6668 from bgort/pio3
PIO Cleanup
2017-05-10 07:25:19 -04:00
Brian f1cccd65c2 platformio.ini env_default=xxxxx has to match one of the labels in the env:xxxxx, otherwise nothing happens when you pio run 2017-05-10 07:11:13 -04:00
bgort 192db2ab1b Merge pull request #6666 from bgort/M100fix
Fix compiler complaint related to M100
2017-05-10 07:03:59 -04:00
Brian 3b0127cf8e Fix compiler complaint related to M100 2017-05-09 21:45:44 -04:00
Scott Lahteine 59ab971f81 Merge pull request #6658 from thinkyhead/bf_cleanup_tuesday
Patch spacing, const, .gitignore
2017-05-09 16:22:48 -05:00
Scott Lahteine 11104f177b Apply const in BABYSTEPPING 2017-05-09 12:37:23 -05:00
Scott Lahteine 081bf1f879 Patch #else / #endif comments 2017-05-09 12:37:23 -05:00
Scott Lahteine 9a364990d9 Update .gitignore 2017-05-09 12:37:22 -05:00
Scott Lahteine e1e043d0d0 Merge pull request #6657 from thinkyhead/bf_cleanup_tuesday
Fix M100 compiler warnings, general patches
2017-05-09 12:05:01 -05:00
Scott Lahteine a9487c9443 Reduce redundancy in BLTOUCH conditionals 2017-05-09 11:52:24 -05:00
Scott Lahteine 8d961b51cc Eliminate M100 compiler warnings? 2017-05-09 11:32:15 -05:00
Scott Lahteine fe1fce5f56 DevIoT patch 2 2017-05-09 11:28:39 -05:00
bgort efb9ce24d9 Merge pull request #6645 from tcm0116/bltouch_config
Automatically define Z_MIN_PROBE_ENDSTOP_INVERTING for BLTouch
2017-05-09 09:49:16 -04:00
bgort e2f07917ab Merge pull request #6644 from tcm0116/bltouch_menu
Move BLTouch LCD menu from Main to Main/Control
2017-05-09 09:49:02 -04:00
Florian Heilmann fe96376a73 Fix FWRetract with positive z-moves during retracted state 2017-05-09 13:54:57 +02:00
Scott Lahteine 47cae2929f Patch platformio.ini to fix build error in DevIoT
For compatibility with DevIoT, until that can be solved.
2017-05-08 20:27:14 -05:00
Scott Lahteine 5402eaf9bd Merge pull request #6647 from thinkyhead/bf_pwm_cleanup
Rename software PWM variables for clarity
2017-05-08 18:53:23 -05:00
Scott Lahteine 911a87e006 Disable SCARA feedrate scaling by default 2017-05-08 14:41:03 -05:00
Scott Lahteine f04d1096d4 Link to users in README.md 2017-05-08 14:23:01 -05:00
Scott Lahteine 71396f77d3 Cleanups following recent commits 2017-05-08 14:23:01 -05:00
Scott Lahteine dca48f0e63 Move platformio.ini back to Marlin folder - it works there 2017-05-08 14:23:01 -05:00
Scott Lahteine a6dafb058e Small reduction in error code size 2017-05-08 13:58:09 -05:00
Scott Lahteine a1e04942a2 Cleanup to software PWM variables 2017-05-08 13:51:45 -05:00
Thomas Moore a20d0794e6 Automatically define Z_MIN_PROBE_ENDSTOP_INVERTING for BLTouch 2017-05-08 16:28:44 +00:00
Thomas Moore 3279337f47 Move BLTouch LCD menu from Main to Main/Control 2017-05-08 15:21:01 +00:00
bgort 83b6bc8e05 Merge pull request #6638 from bgort/silentprobing2
Cleanup previous implementation of new quiet probing
2017-05-08 10:21:36 -04:00
Brian 6cb0fa4128 Cleanup previous implementation of new quiet probing
Saves a few lines of code.
2017-05-08 08:13:46 -04:00
bgort 4b7f8ad9c6 Merge pull request #6610 from bgort/pio-improvements2
PlatformIO-related changes
2017-05-08 07:52:42 -04:00
Scott Lahteine 232e8682d1 Merge pull request #6633 from thinkyhead/bf_temp_units
Minor patches and cleanup
2017-05-07 21:56:52 -05:00
Scott Lahteine 56ca47ab9d Patch configuration temp units 2017-05-07 21:32:01 -05:00
Scott Lahteine 421dd62800 Adjust spacing of "spaces" 2017-05-07 21:28:54 -05:00
Scott Lahteine 26dba44cd3 Patch redundant lcd settings 2017-05-07 21:28:54 -05:00
Scott Lahteine 34b5041576 Spacing adjustment, ubl_G29 2017-05-07 21:28:54 -05:00
Scott Lahteine 6c2e6ea38e Patch mfqp for use directly with MarlinDocumentation 2017-05-07 21:28:54 -05:00
Scott Lahteine 1c4ed8b106 Note 5 extruders in config comments 2017-05-07 21:28:54 -05:00
Scott Lahteine 6e4a5cc8c6 Patch missing const in temp_abs 2017-05-07 21:13:44 -05:00
bgort d35e2fda10 Merge pull request #6622 from bgort/silentprobing
Improve BLTOUCH_HEATERS_OFF functionality
2017-05-07 21:33:44 -04:00
Scott Lahteine 6ed52fb765 Adjust spacing in LSF 2017-05-07 19:11:52 -05:00
Roxy-3D 110afff415 More misc UBL fixes and update gMax examples (#6632)
I think I forgot to Sync before I committed last time.   Some UBL
changes did not stick.

Also, update the gMax configuaration.h file so other than unique numbers
and settings, it exactly matches the default configuration.h file.
2017-05-07 19:02:24 -05:00
Roxy-3D d92fa40c62 misc. UBL fixes (#6631)
* Restore LSF functionality

Some of the typo's persisted...   Hopefully this gets them all fixed.

* Restore user's expectations of how G28 should behave

* Allow Nozzle size control with ornery host programs
2017-05-07 18:23:48 -05:00
Brian faa270071d Improve BLTOUCH_HEATERS_OFF functionality
- rename to PROBING_HEATERS_OFF
 - move heater pausing functionality into thermalManager
   - add variables, pause(), ispaused(), other functions
 - add fan pausing functionality -> PROBING_FANS_OFF
 - add probing_pause() wrapper
 - move pausing into do_homing_move() and do_probe_move() to minimize quiet time and so other probe types can benefit
 - example configs
2017-05-07 16:22:08 -04:00
bgort 787fdc95bb Merge pull request #6623 from lrpirlet/AllowUBLG29ToWork
G29 P1 stops reporting Invalid location with this patch
2017-05-07 09:42:42 -04:00
lrpirlet d66e9efac5 G29 P1 stops reporting Invalid location with this patch 2017-05-07 15:07:26 +02:00
Scott Lahteine 8908b15471 Merge pull request #6614 from thinkyhead/bf_temp_units
Support temperature units in M503
2017-05-06 20:41:04 -05:00
Scott Lahteine ce507deb9f Support temperature units in M503 2017-05-06 20:24:51 -05:00
bgort a59066bca9 Various improvements - mostly UBL-related (#6607)
UBL Clean up.
2017-05-06 18:59:16 -05:00
Brian 0446dd3ad8 PlatformIO-related changes
- move platformio.ini out of source directory to be more consistent with 'normal' PlatformIO usage
  - facilitates IDE integration
- add related .gitignores
2017-05-06 06:22:10 -04:00
Scott Lahteine bef9791ea3 Fix mfrb and mfpub 2017-05-05 14:32:16 -05:00
Scott Lahteine 66bedc1a24 Merge pull request #6600 from thinkyhead/bugfix_first_fixes
Update git helper scripts, config comments
2017-05-05 13:48:16 -05:00
Scott Lahteine 77769e284f Edit configuration comments 2017-05-05 13:32:31 -05:00
Scott Lahteine d14b068147 Tweak git helper scripts 2017-05-05 13:32:31 -05:00
Scott Lahteine 6876e79d42 Tweak command index increment 2017-05-05 13:32:31 -05:00
Scott Lahteine 7fcb5c1424 Minor fix in K8200 readme 2017-05-05 11:25:11 -05:00
Scott Lahteine 0cc4b08b93 Merge pull request #6587 from zlowred/bugfix-1.1.x
Fixed USE_CONTROLLER_FAN #define usage
2017-05-05 01:02:09 -05:00
Max Matveev 267f3a03d9 Fixed USE_CONTROLLER_FAN #define usage 2017-05-04 23:38:29 +02:00
bgort ae7c602031 fix error in M105 output -- use SERIAL_PROTOCOL for ints instead of SERIAL_PROTOCOL_F (#6584)
also removed wayward 'address of' ampersand in setTargetHotend and setTargetBed parameters
2017-05-04 16:09:45 -05:00
Scott Lahteine 3cd9af2409 bugfix-1.1.x ReadMe, Version, helper scripts 2017-05-04 07:17:10 -05:00
Scott Lahteine c095ee9ce9 Readme Version 1.1.0 2017-05-04 07:17:10 -05:00
Scott Lahteine 28e597f945 Merge pull request #6570 from FHeilmann/patch-2
Fix broken fwretract recovery extruder feedrate
2017-05-04 07:15:19 -05:00
Florian Heilmann 15268770f5 Fix broken fwretract recovery extruder feedrate
When both lowering and recovery are performed using the same "prepare_move_to_destination()" the extruder recovery feedrate ends up being ignored and, instead, is only capped by either the maximum e-speed or the time it takes to perform the z-lowering. 
Performing the two moves separately from each other ensures a correct recovery feedrate.
2017-05-04 11:34:28 +02:00
Scott Lahteine 58210c3a19 Merge pull request #6568 from thinkyhead/rc_bilinear_extension
Add EXTRAPOLATE_BEYOND_GRID option to bilinear leveling
2017-05-04 00:46:05 -05:00
Scott Lahteine da08e11acd Add EXTRAPOLATE_BEYOND_GRID option to bilinear leveling 2017-05-04 00:19:07 -05:00
Scott Lahteine 6834e36871 Merge pull request #6567 from thinkyhead/rc_sdcard_stop
Shutdown heaters, autotemp on SD Cancel
2017-05-03 23:54:29 -05:00
Scott Lahteine 399efd66ed Click to resume 2017-05-03 22:26:06 -05:00
Scott Lahteine 1196e3ca59 SDCard print completion can use "M0" 2017-05-03 22:24:03 -05:00
Scott Lahteine 6854f08d22 Shut down autotemp in disable_all_heaters 2017-05-03 20:54:26 -05:00
Thomas Moore acec237092 Shutdown heaters and fan after canceling a print from the SD card 2017-05-03 20:43:09 -05:00
Scott Lahteine 11b6a3cbb6 Fix regression in least_squares_fit.cpp 2017-05-03 19:21:44 -05:00
Scott Lahteine e1b85ff67b Merge pull request #6559 from thinkyhead/rc_more_optimal
Compact smart_fill_mesh slightly
2017-05-03 19:07:36 -05:00
Scott Lahteine 9890141f7b M100 tweak 2017-05-03 17:28:09 -05:00
Scott Lahteine 2658cc707a Treat temperature as integer, when possible 2017-05-03 17:27:25 -05:00
Scott Lahteine 1b2c7ec20a Make G26 compatible with inches and thermal unit modes 2017-05-03 17:12:48 -05:00
Scott Lahteine 241bdffe65 Dress up Bilinear Leveling code 2017-05-03 17:12:35 -05:00
Scott Lahteine 67ecf06cc4 Patch issue in gcode_M900
Noted in #6550
2017-05-03 15:26:00 -05:00
Scott Lahteine de5e485ed7 Explicit upward angle solution 2017-05-03 01:19:44 -05:00
Scott Lahteine ecdf68735f Compact smart_fill_mesh slightly 2017-05-03 01:06:58 -05:00
Scott Lahteine 628391304f Merge pull request #6552 from thinkyhead/rc_more_ubl_cleanup
Further cleanup of UBL
2017-05-02 22:46:04 -05:00
Scott Lahteine 902fe76db9 Merge pull request #6556 from thinkyhead/rc_use_controller_fan
Implement USE_CONTROLLER_FAN as a feature
2017-05-02 22:43:26 -05:00
Scott Lahteine 7ba7474a73 Drop extra parens from address-of operator 2017-05-02 22:22:23 -05:00
Scott Lahteine 0bf5add075 Use UBL_MESH_(MIN|MAX)_[XY] for G29 move limits 2017-05-02 22:22:23 -05:00
Scott Lahteine b8ba3b7647 Use 'sq' macro where possible 2017-05-02 22:22:23 -05:00
Scott Lahteine 66eba3346b Remove G29 lcd control debugging 2017-05-02 22:22:23 -05:00
Scott Lahteine 3517154135 Reduce code size, fix bug in smart_fill_mesh 2017-05-02 22:22:23 -05:00
Scott Lahteine c4e34adcf1 Apply formatting, coding standards to UBL 2017-05-02 22:22:23 -05:00
Scott Lahteine f4239e62b1 Merge pull request #6557 from thinkyhead/rc_hotend_status_item
Keep refreshing LCD if hotend status is on-screen
2017-05-02 22:04:21 -05:00
Scott Lahteine fc857c5b78 Merge pull request #6549 from thinkyhead/rc_bltouch_refix
Fix BLTOUCH_HEATERS_OFF bug
2017-05-02 21:53:09 -05:00
Thomas Moore b39f634252 Continuously update LCD when hotend status is displayed in Filament Change screens 2017-05-02 21:49:40 -05:00
Scott Lahteine 2c13922c46 Implement USE_CONTROLLER_FAN as a feature 2017-05-02 20:18:52 -05:00
Scott Lahteine 492bc536bf Modify debug methods to take PSTR 2017-05-02 17:53:40 -05:00
Bob-the-Kuhn e5a27d9f36 G29 P2 & P4 bug fixes & improvements 2017-05-02 17:53:40 -05:00
Scott Lahteine b93be716cf Remove trailing whitespace 2017-05-02 17:53:40 -05:00
Scott Lahteine 76eca9732d Fix mis-named language string define in Dutch 2017-05-02 16:08:09 -05:00
Scott Lahteine 806f670092 Merge pull request #6511 from Bob-the-Kuhn/UBL--G26-minor-improvements
UBL: G26 minor improvements
2017-05-02 16:06:22 -05:00
Scott Lahteine 0803c9d997 Merge pull request #6533 from thinkyhead/rc_autocal_patches
General cleanup of G33
2017-05-02 16:01:02 -05:00
Scott Lahteine 46a5cab6fb Merge pull request #6548 from thinkyhead/rc_fix_dual_z_endstops
Fix Dual-Z endstop conditional test
2017-05-02 16:00:49 -05:00
Brian ff5fed137f Fix BLTOUCH_HEATERS_OFF bug 2017-05-02 15:53:52 -05:00
Scott Lahteine ca1dd739a3 Organize ubl.h defines by the files they serve 2017-05-02 15:47:06 -05:00
Scott Lahteine 0449f69179 Cleanup patch to recent merge 2017-05-02 15:47:06 -05:00
LVD-AC da2abad636 Various cleanups of G33
- update comment section
- redefined P5 grid
- minor clean to probe radius routine
- updated EEPROM version to V37 according remark in #6517
2017-05-02 15:47:06 -05:00
Bob-the-Kuhn 7ce613db0a Fix Conditionals test for endstop plug used by Z2 or probe. 2017-05-02 15:41:47 -05:00
Scott Lahteine ef750ae86b Towards supporting Z2 in Endstops::report_state 2017-05-02 15:39:32 -05:00
Scott Lahteine c03c623951 Sanity-check Z2 endstop assigned to a nonexistent pin. 2017-05-02 15:39:00 -05:00
Scott Lahteine 70f31b6c76 Throw an error if no E stepper is free for X2, Y2, Z2 2017-05-02 15:13:47 -05:00
Scott Lahteine ac69eca586 Merge pull request #6538 from bgort/ubl_gridlbls
Fix, cleanup, prettify `G29 O` output
2017-05-02 14:09:18 -05:00
Scott Lahteine 99b11db1a1 Merge pull request #6537 from thinkyhead/rc_cleanup_sunday
Various leveling-related patches
2017-05-02 00:59:59 -05:00
Roxy-3D 41e63bbb7c Fix Horizontal and Vertical UBL optimization bug. (#6540)
* Fix Horizontal and Vertical optimization bug.

And drastically reduce the debug code foot print....

* Yeah Baby!

The debug print is going A - OK !
2017-05-01 23:52:33 -05:00
Scott Lahteine e79b335367 Patches for leveling reactivation in G28 / M48 2017-05-01 17:38:57 -05:00
Brian 92e22c3bf2 Fix, cleanup, prettify G29 O output 2017-05-01 18:19:57 -04:00
Scott Lahteine 7d5cd7e0d7 Tweak set_bed_leveling_enabled 2017-05-01 16:46:52 -05:00
Scott Lahteine ed81e9b3d3 Adjust leveling conditionals 2017-05-01 16:46:48 -05:00
Scott Lahteine a64e5659ce Clean up G26 external references, private vars 2017-05-01 15:17:52 -05:00
Scott Lahteine 2887c20788 Add a function to home all axes (i.e., gcode_G28) 2017-05-01 15:03:37 -05:00
Scott Lahteine 8f895d5e01 Merge pull request #6530 from thinkyhead/rc_cleanups_2
Fixes for DUAL_NOZZLE_DUPLICATION_MODE
2017-05-01 12:34:11 -05:00
Scott Lahteine 8002672938 Fixes for DUAL_NOZZLE_DUPLICATION_MODE 2017-05-01 12:20:25 -05:00
Scott Lahteine f69acde966 Merge pull request #6528 from MarlinFirmware/revert-6416-negative-mesh-fix
Revert "Fix for Meshpositions if printer has negative endstop positions"
2017-05-01 11:51:13 -05:00
Scott Lahteine 8bd63aafb9 Merge pull request #6527 from thinkyhead/rc_cleanups_2
Patch DELTA_HEIGHT, BLTOUCH init
2017-05-01 11:28:43 -05:00
Scott Lahteine 4803a4322e Revert "Fix for Meshpositions if printer has negative endstop positions" 2017-05-01 11:25:07 -05:00
Scott Lahteine 4f74c416a4 Patch for BLTOUCH_HEATERS_OFF 2017-05-01 11:13:40 -05:00
Scott Lahteine 1823a6ea29 Patch for missing DELTA_HEIGHT 2017-05-01 11:05:35 -05:00
Scott Lahteine 984c210dec Merge pull request #6519 from thinkyhead/rc_cleanups_2
Various fixes for compiler warnings
2017-05-01 02:46:34 -05:00
Scott Lahteine d814e468d2 Fix set_heaters_for_bltouch and usage
- Only call `set_heaters_for_bltouch` when actually deploying/stowing
- Clear `next_emi_protection` when re-enabling heaters
2017-05-01 02:27:52 -05:00
Brian 4e1448e75a Various fixes for compiler warnings
add BLTouch-related messages in english and (rusty) french;
add missing endstops.h in ultralcd.cpp;
fix misc. compiler warnings;
fix lsf_reset - ZERO macro can't handle a pointer as it would only memset the size of the pointer, not the size of the entire struct
2017-05-01 02:12:40 -05:00
Scott Lahteine fc9919b749 Merge pull request #6515 from thinkyhead/rc_cleanup_sunday
Some minor cleanups to code formatting
2017-04-30 22:58:16 -05:00
Scott Lahteine c12bc51a59 cardreader.cpp spacing tweak 2017-04-30 22:27:47 -05:00
Scott Lahteine 46b714a52f Cleanup spacing in pinsDebug.h 2017-04-30 22:27:26 -05:00
Scott Lahteine 88141ca717 Remove things that aren't pins from pinsDebug_list.h 2017-04-30 22:24:51 -05:00
Scott Lahteine ff35b11d08 Resolve compiler complaint about memset volatile * 2017-04-30 22:24:03 -05:00
Scott Lahteine ff95a9850a Merge pull request #6516 from thinkyhead/rc_meaningful_branch_name
Need to define this for Rigidboard V2
2017-04-30 22:17:41 -05:00
Scott Lahteine 0b421e97c9 Rename some (unused) OMCA pins 2017-04-30 22:16:44 -05:00
Scott Lahteine c2c9f01c8e Patch newly-introduced bug in IS_Z2_OR_PROBE 2017-04-30 20:17:10 -05:00
Scott Lahteine 819df5e06d Cleanups to pins debugging 2017-04-30 20:17:10 -05:00
Scott Lahteine 42824b0e1f Use new serial spacing function to save PROGMEM 2017-04-30 20:14:42 -05:00
Scott Lahteine cd72901fb7 Cleanups to UBL code 2017-04-30 20:14:42 -05:00
Bob-the-Kuhn ce87c7803e implement G26 changes per review 2017-04-30 19:05:25 -05:00
jaysonkelly 769817ce5e Need to define this for Rigidboard V2
Motor current defaults need to be defined for Rigidboard
2017-04-30 19:04:27 -05:00
Scott Lahteine 39c6c5621b Merge pull request #6416 from SkyNet3D/negative-mesh-fix
Fix for Meshpositions if printer has negative endstop positions
2017-04-30 17:38:41 -05:00
Scott Lahteine 671a44b8aa Merge pull request #6410 from teemuatlut/LVD-Delta
Delta auto-calibration updates
2017-04-30 16:39:51 -05:00
Scott Lahteine 5d5c9a040a Merge pull request #6509 from thinkyhead/rc_config_patches
Configuration cleanup
2017-04-30 16:10:27 -05:00
Scott Lahteine d480b6f75a Enable E1 stepper for DUAL_NOZZLE_DUPLICATION_MODE 2017-04-30 16:01:01 -05:00
Bob-the-Kuhn dcde202157 Add startup notice & update host temperatures while waiting
Right now G26 doesn't send a notice to the host that it's running.  It's
not until the heaters are at temperature that you know for sure if it's
running or not.

Added host temperature prints so that someone watching the host
interface will see the temperatures change during the warm up period.
Updates are sent every 5 seconds.
2017-04-30 15:51:58 -05:00
Scott Lahteine 54751e8557 Put DISTINCT_E_FACTORS adjacent to the affected settings 2017-04-30 15:30:31 -05:00
Scott Lahteine 0dbe4b3e54 Edit configurations to reduce verbosity, arrange logically 2017-04-30 15:30:31 -05:00
Scott Lahteine 0750933bc6 Merge pull request #6490 from Bob-the-Kuhn/Missing-X-stop
Endstop not enabled if pin is zero
2017-04-30 15:09:36 -05:00
bgort 5ace3699b1 Output (commented) coordinates on G29 S-1; helps identify the x/y points that correspond with i/j coordinates, which eases manual tweaking of z values (#6507) 2017-04-30 14:59:34 -05:00
Scott Lahteine d7d4378481 Remove inaccurate version description 2017-04-30 14:57:19 -05:00
Scott Lahteine f169c04604 Merge pull request #6491 from thinkyhead/rc_cleanup_wednesday
Various cleanups for recent merges
2017-04-30 14:56:48 -05:00
Scott Lahteine 6d63255ddc Merge pull request #6508 from bgort/pio_improvements
PlatformIO-related improvement
2017-04-30 14:53:22 -05:00
LVD-AC cafc48dff8 little oops 2017-04-30 22:17:49 +03:00
Brian 627730948d Add U8glib as a dependency to platformio.ini for those who use PlatformIO; this makes compiling even easier as u8glib will be downloaded and included automatically.
Also added the new .pio-related directory to .gitignore, and a few ignores for those who use cmake.
2017-04-30 15:13:51 -04:00
bgort 5974d8e168 change G26 default nozzle size to 0.4, consistent with instructions (#6506) 2017-04-30 13:23:46 -05:00
LVD-AC 471a321624 leaner code for probe routine 2017-04-30 19:15:16 +03:00
bgort 3c0d5ba0a1 allow idle() to be called - fixes sometimes crash/hang in G29 I; (#6505) 2017-04-30 10:22:31 -05:00
Roxy-3D 2509587b5a Correct over optimization of pre-initialized variables (#6500)
* Correct over optimization of pre-initialized variables

NEAR_ZERO() works most of the time...  But it leaves corner cases
uncovered.  We need to explicitly check if these variables are +/-
infinity.

* Correct over optimization of pre-initialized variables
2017-04-29 22:01:29 -05:00
LVD-AC 585c00a728 Proposed changes
This is what I did yesterday:

- basicly gave the tests more comprehensive names; put all the
declarations at the top; got rid of the magic negative C-value (renamed
to P + A, O, T)

- "cos(RADIANS(180 + 30 * axis)) * (1 + circles * 0.1 * ((zig_zag) ? 1 :
-1)) * delta_calibration_radius" compiles wrong is zig_zag statement is
without brackets

- DELTA_TOWER_ANGLE_TRIM reset to 3 values (the calcs use the 3th value
to normalize will not compile otherwise)

-Wrote 3 dummies to keep EEPROM lenght the same

-Reset the configs to the 'original' with autocal + menu disabled (but
can be enabled of course)
2017-04-29 18:53:14 +03:00
Scott Lahteine 29fa241617 Initial patches to G33 2017-04-29 15:29:49 +03:00
Scott Lahteine 12ce051b55 Add a function to output spaces to serial 2017-04-29 15:29:49 +03:00
Scott Lahteine 42f4c53254 Starting on G33 rewrite 2017-04-29 15:29:49 +03:00
Scott Lahteine baf3b91460 DELTA_TOWER_ANGLE_TRIM only needs AB 2017-04-29 15:29:49 +03:00
Scott Lahteine 6424068412 Merge pull request #6495 from emartinez167/Spanish-language-changes
Last three Spanish language strings
2017-04-29 05:43:04 -05:00
emartinez167 27cd165adf Last three Spanish language strings
Updates as per @thinkyhead request.
2017-04-29 11:33:30 +08:00
Scott Lahteine 2cc9774f34 Apply bltouch_menu
As proffered in #6252
2017-04-28 18:43:03 -05:00
Scott Lahteine 1a111180de Clean up set_heaters_for_bltouch 2017-04-28 18:32:39 -05:00
Scott Lahteine 7db805930a Cleanup configurations 2017-04-28 18:32:39 -05:00
Scott Lahteine 8bf3a3fcdb Remove inaccurate comments from ubl.h 2017-04-28 18:32:38 -05:00
Scott Lahteine 47557d5a19 Fix up formatting in ubl.h 2017-04-28 18:32:38 -05:00
Scott Lahteine 0a8e09c723 Clean up excess whitespace, comment formatting 2017-04-28 18:32:38 -05:00
Scott Lahteine a35c681453 Clean up least_squares_fit 2017-04-28 17:33:28 -05:00
Bob-the-Kuhn 40089249c3 add PIN_EXISTS to HAS_xyz_MIN macro 2017-04-28 16:47:59 -05:00
Scott Lahteine 8020069371 Apply coding standards for indentation 2017-04-28 15:43:06 -05:00
Scott Lahteine dabca83742 Merge pull request #6437 from Kaibob2/patch-1
Update language_de.h
2017-04-28 14:47:47 -05:00
Kai 3d0a4c4ea9 Update language_de.h 2017-04-28 21:09:10 +02:00
Silvio 6bf1d50188 Added missing translations (#6458) 2017-04-28 13:49:16 -05:00
Mehmet Sutas 404f767d44 Update language_tr.h (#6463) 2017-04-28 13:48:31 -05:00
Petr Zahradnik 5e701524f8 Update language_cz.h for new translations (#6465)
* Update language_cz.h for new translations

* Correction translate

* Revert correction back to hotend
2017-04-28 13:47:43 -05:00
gege2b 0a92ce7a98 Completed french translation (#6475) 2017-04-28 13:46:09 -05:00
Ernesto Martinez ff4fb42e7d Add new strings as per recent changes in RCBugFix (#6482)
Adding missing strings to Spanish language, as per changes recently
done to the RCBugFix branch.
2017-04-28 13:45:22 -05:00
paulusjacobus 67d1fc5556 Update language_nl.h (#6478)
updated the RCbugfix release with additional Dutch translations
2017-04-28 13:42:39 -05:00
benlye 8c6b4537a6 Fix issue in itostr4sign with numbers <100 (#6487)
The first character in the string wasn't blanked if the number went from >= 100 to <100, resulting in artefacts in the displayed string.
2017-04-28 13:35:11 -05:00
LVD-AC 4ea8d0f89b Solved "The Travis CI build failed " 2017-04-28 19:55:21 +03:00
LVD-AC ed6b361e27 cleanup ready to squash 2017-04-28 18:09:18 +03:00
LVD-AC 7a6a1ef583 M666 normalize positive values to <=0
M666

+ tower radians absolute value
2017-04-28 18:05:24 +03:00
Roxy-3D 4075b95519 Allow BL-Touch users to control heaters during probe event (#6485)
The Configuration.h file entries for BL-Touch have been updated to:
```cpp
//#define BLTOUCH
//#define BLTOUCH_DELAY 375      // (ms) Enable and increase if needed
//#define BLTOUCH_HEATERS_OFF // if defined the printer's heaters are
turned off during probe event
```
2017-04-28 09:19:55 -05:00
Roxy-3D 6e8ecb908a Shut down heaters during BL-Touch probe event
The electro-magnetic interference from the bed and nozzle are affecting
the BL-Touch repeatability for some users.   This problem can be helped
by shutting down the heaters during the actual probe event and then
quickly turning them back on.

Because this code is messing with the heaters, it is written in a
paranoid manner.  It only turns the heaters back on if everything is
EXACTLY as it expects things to be.  The BL-Touch probe must have been
put into a deployed state less than 20 seconds prior, or the stow()
function will NOT turn the heaters on.

This code has been tested and works for both G28 and probing functions.
2017-04-27 18:52:58 -05:00
LVD-AC d8102aeca8 Cn negative : no tower angle calibration
Giving a negative number of probe points disables the tower angle
correction calibration ('4point' instead of '7point' solution)

EEPROM version updated
2017-04-27 21:13:07 +03:00
Roxy-3D 3601f08e87 Better tuned FolgerTech i3-2020 example file 2017-04-27 11:16:38 -05:00
Roxy-3D a20b7d9581 Better tuned Example file for FolgerTech i3-2020
Also setting up Z-Probe on the machine.
2017-04-27 11:16:38 -05:00
Kai bf2fe46062 Update language_de.h 2017-04-27 10:13:02 +02:00
Kai 11d34be060 Update language_de.h 2017-04-27 10:06:26 +02:00
Scott Lahteine 817ecb9ff4 Merge pull request #6453 from thinkyhead/rc_cleanup_wednesday
Minor cleanups, work-in-progress
2017-04-26 19:41:52 -05:00
Roxy-3D 22f6e277af Get example files fully into compliance
Change to support new name GRID_MAX_POINTS_XY
Start UBL at version 1.0 in the CUSTOM_MACHINE_NAME
2017-04-26 16:22:17 -05:00
LVD-AC a9bc1d30cc z_offset change
Avoids to have to recalibrate the delta_height after a z_offset change
2017-04-26 21:57:11 +03:00
Roxy-3D ec26e23e7e Add my two 'Nice' machines as example configurations
These are my two 'Nice' machines.  Both are good example machines.  The
FolgerTech i3-2020 is probably the best value kit on the market right
now.  And it has developed a 'Cult Following' of hobbiests.  I'll always
have an up to date Configuration.h file set for it, so it may as well be
an example configuration.

And the gCreate gMax 1.5+ is the best printer I've ever seen that runs
Marlin.  For sure, I'll always have up to the minute Configuration.h
files for this printer also.   I've moved over to using the gMax as my
primary development machine for Marlin.   So...  Besides being a good
machine, it is a nice convienience for me to have this Configuration.h
file as an 'Example'.
2017-04-26 12:46:12 -05:00
Scott Lahteine adb8e68592 Fix stuck "Print Aborted" LCD message
Fixes #6393
2017-04-26 06:24:23 -05:00
Scott Lahteine 096b927102 Minor optimization of FILAMENT_WIDTH_SENSOR 2017-04-26 06:24:23 -05:00
Scott Lahteine 5bdb0b567d Cosmetic patches 2017-04-26 06:24:23 -05:00
Kai 38ae7f4238 Added more translation strings
There are some quite tricky ones which are hardly translateable.
Maybe @Sebastianv650 can review this
2017-04-26 11:58:11 +02:00
Scott Lahteine 4d96d3eab1 Bootscreen delay after clear, then set chars
Fixes #6426
2017-04-25 23:37:28 -05:00
Scott Lahteine 5512130d6c Only set Compare Mode for channel A
Fixes #6445
2017-04-25 23:14:16 -05:00
Roxy-3D d467e97679 Smart-Fill and Mesh-Tilting (both 3-point and grid) working!
Also...   The memory corruption issue may be fixed.   The GCC compiler
was inlining static functions and this caused the G29() stack frame to
become much larger than the AVR could handle.
2017-04-25 21:03:41 -05:00
Scott Lahteine a699967ec8 Merge pull request #6443 from thinkyhead/rc_interrupt_fastio
Patch fastio.h with Timer 2 interrupt support
2017-04-24 20:09:41 -05:00
Scott Lahteine 2823bf0874 Update fastio.h with special handling for Timer 2 2017-04-24 16:58:22 -05:00
Scott Lahteine fd535e111a Fix up XYZ_CONSTS_FROM_CONFIG macro 2017-04-24 14:05:11 -05:00
Kai 03c2f756b9 Update language_de.h 2017-04-24 13:32:16 +02:00
LVD-AC dcf30a69d6 Allowing #define DELTA_TOWER_ANGLE_TRIM[C_AXIS]
More consistent with M665 where C-value is allowed as well, then
normalized
2017-04-23 14:51:24 +03:00
Brian f41fb2b635 Numerous UBL-related changes:
* relocated ubl state to config. store:
 * removed a number of ubl state variables and padding which were largely unused - saved 58 bytes of both SRAM and EEPROM;
 * modified ubl sanity_check - no longer checks removed state variables that were otherwise unused, where checking didn't seem to accomplish anything, ultimately;
 * removed pre_initialized state, saving 64 bytes of SRAM;
 * removed automatic saving of UBL state after UBL activation/deactivation;
* consolidated multiple GRID_MAX_POINTS_X/Y to 'Global Leveling' section of EEPROM;
* minor update to G29 Sx notes/instructions;
* renamed mesh load and save parameter to 'slot' from 'm' for clarity;
2017-04-22 18:44:39 -05:00
Brian f1a4758cef use progmem instead of sram for mesh_index_to_x/ypos array;
fix maximum mesh_index_ array size at 16 (15+1);
2017-04-22 18:34:49 -05:00
Scott Lahteine d5ec34e7ed Merge pull request #6431 from thinkyhead/rc_bilinear_super_optimize
Minor cleanup, optimize number-to-string
2017-04-22 17:05:24 -05:00
Scott Lahteine 87d240042a Optimize number-to-string functions, no-fan display 2017-04-22 16:23:15 -05:00
Scott Lahteine 959566cf0a Update note about M163 / M164 2017-04-22 16:23:15 -05:00
Scott Lahteine 830851df13 Spend some SRAM to optimize bilinear leveling 2017-04-22 16:19:31 -05:00
Scott Lahteine 091179d960 bed_level_grid => z_values (also *_virt array) 2017-04-22 16:19:31 -05:00
Scott Lahteine 23cdbbb2d3 Add a method to refresh bilinear bed level after a change 2017-04-22 16:19:30 -05:00
Scott Lahteine ccda63c473 Drop the accessor form for LCD value editing 2017-04-22 16:19:30 -05:00
Scott Lahteine 10da175be5 Fix a pair of compiler complaints 2017-04-22 16:19:30 -05:00
Scott Lahteine ff0018e287 Format hex values as uppercase 2017-04-21 21:42:41 -05:00
android444 77aa16005d Polish font
Add polish font for GLCD displays only.
HD44780 work properly without polish character.
Update language_pl.h.
2017-04-21 21:42:41 -05:00
teemuatlut 244f67590e Delta probe height bug solved 2017-04-22 02:23:56 +03:00
Hans Raaf 406a83ff2d Fix for Meshpositions if printer has negative endstop positions 2017-04-22 00:16:16 +02:00
benlye 3ed737425d Fix typo in new SET_COM macro 2017-04-21 15:08:18 -05:00
Brian 88649b06a6 use planner.z_fade_height, etc. instead of private, ubl-specific g29 fade height 2017-04-21 09:09:09 -05:00
LVD-AC 004928148c Tower angles
Adding '7-point' tower angle correction calibration
2017-04-21 12:48:45 +03:00
LVD-AC 76ec7a0f80 Adding upto 7*7 probe grids
- adding Cn 5, 6 and 7
2017-04-21 11:58:39 +03:00
LVD-AC d4f593d200 Delete 'expert level'
and getting rid off verbose level 3 and configuration_adv settings
2017-04-21 11:58:39 +03:00
LVD-AC 13c8493878 M665 rework and related issues (all delta's)
- Making M665 compatible with repetier (see
http://reprap.org/wiki/G_code#M665:_Set_delta_configuration)

- M665 B also sets the radius for manual calibration menu

- Converting tower ajustment definitions to arrays - tower angle
corrections compatible with Esher 3D wizzard

- Only tower angles need to be adjustable with M665 and stored to EEPROM
- tower radius and diag rod can be adjusted in the FW only with #define
2017-04-21 11:58:39 +03:00
Scott Lahteine e66d9f1313 Merge pull request #6406 from thinkyhead/test_remote
Refresh Marlin git helper scripts
2017-04-20 23:45:24 -05:00
Scott Lahteine dd436ceeb7 Add 'mfdoc' and 'mfpub' scripts to help with documentation 2017-04-20 21:37:26 -05:00
Scott Lahteine 78308b1c0b New git helper scripts 'mfadd' and 'mfqp'
- `mfadd` adds and fetches a user’s fork of Marlin
- `mfqp` invokes `git commit -m`, `mfrb`, `git push -f`
2017-04-20 21:37:25 -05:00
Scott Lahteine 7b4c245de3 Improve existing git helper scripts 2017-04-20 21:37:25 -05:00
Scott Lahteine 06f4776be4 mfprune: fetch remotes, offer checkout option 2017-04-20 21:37:25 -05:00
Scott Lahteine c73b62447c Merge pull request #6403 from thinkyhead/rc_flsun_clean
FLSUN and trailing whitespace cleanup
2017-04-20 20:48:41 -05:00
Scott Lahteine e0e069c6d8 Clean up trailing whitespace 2017-04-20 17:52:07 -05:00
Scott Lahteine 9b94210394 Bring FLSUN config more up to date 2017-04-20 17:52:06 -05:00
Scott Lahteine b0aa256bc0 Updates for all configs 2017-04-20 17:52:05 -05:00
Scott Lahteine b6ed69571a Merge pull request #6400 from thinkyhead/rc_interrupt_macros
Add and apply interrupt helper macros
2017-04-20 17:17:21 -05:00
Scott Lahteine ee46ce1743 Add and apply interrupt helper macros 2017-04-20 16:04:29 -05:00
Scott Lahteine 6131c62499 General cleanup 2017-04-20 16:04:29 -05:00
benlye 2c86dfd3b5 Fix compiler type conversion errors after LCD changes 2017-04-20 16:04:29 -05:00
Scott Lahteine 55f9e76610 Merge pull request #6367 from thinkyhead/rc_cleanup_followup
Cleanup after some direct commits
2017-04-20 15:13:24 -05:00
Scott Lahteine d38a792a91 Merge pull request #6382 from MagoKimbra/fix_configuration_store
Fix double definition in configuration_store
2017-04-20 15:06:58 -05:00
Scott Lahteine b98bc034ae Replace c_assert hack with static_assert 2017-04-19 13:07:35 -05:00
Scott Lahteine 5eb2b1a790 Clear up G29 compiler warnings 2017-04-19 13:07:35 -05:00
Scott Lahteine 4ce2a63db0 Apply const, spacing to Marlin_main.cpp 2017-04-19 13:07:34 -05:00
Scott Lahteine e97f1284c1 Cleanup of pins testing code 2017-04-19 13:07:34 -05:00
Scott Lahteine e9b53ae00c Cleanup after some direct commits
https://github.com/MarlinFirmware/Marlin/commit/5e9726530ff21d3bc62beaa6
ac1b9437c276130a
2017-04-19 13:07:34 -05:00
Scott Lahteine e05d050a1e Add hex routine to print an address 2017-04-19 13:07:34 -05:00
Scott Lahteine 4542282f5e Fix broken TOGGLE macro in fastio.h 2017-04-19 12:38:13 -05:00
MagoKimbra ed52275a14 Fix double definition in configuration_store 2017-04-18 17:57:40 +02:00
Scott Lahteine de569e3d4e Merge pull request #6327 from Bob-the-Kuhn/M43-toggle-&-Z-probe-fixes
M43 Toggle & Z servo test - fix bug & add another check
2017-04-18 03:21:57 -05:00
Scott Lahteine f33a650ecc Merge pull request #6368 from thinkyhead/rc_linear_advance_eeprom
Add Linear Advance values to EEPROM and LCD
2017-04-18 02:54:12 -05:00
Scott Lahteine a00ae4790a Replace M905 with unique code M900 2017-04-17 16:39:37 -05:00
Scott Lahteine 1286d9603d Clean up and organize ultralcd.cpp 2017-04-17 16:39:36 -05:00
Scott Lahteine 3cdf78a79f MSG_VOLUMETRIC => MSG_FILAMENT 2017-04-17 16:39:36 -05:00
Thomas Moore f8e77d6545 Add Linear Advance values to EEPROM and enable configuration of K via LCD 2017-04-17 16:39:36 -05:00
Scott Lahteine eb2d073dae Add M905 R for setting the E/D ratio directly 2017-04-17 16:39:36 -05:00
Scott Lahteine 69dfa54a84 Use code_value_linear_units for known-linear axes 2017-04-17 16:39:36 -05:00
Scott Lahteine b956f2642b Show M503 report with current linear units 2017-04-17 16:39:36 -05:00
Scott Lahteine ba4a005ceb Merge pull request #6373 from mtowara/mt_makefile_fix
Fix Makefile build
2017-04-17 16:16:37 -05:00
towara 150b15c311 fix compiler errors generated by more stringent flags in Makefile:
- use volatile for registers
- avoid implicit casts
2017-04-17 11:59:47 +02:00
towara f6095c9325 fix missing serial.cpp in Makefile 2017-04-17 11:59:03 +02:00
Scott Lahteine 871f92378c Tweak headings in EEPROM structure 2017-04-16 18:42:33 -05:00
Scott Lahteine bf2548be4a Merge pull request #6362 from tcm0116/babystepping
Only queue babysteps if axis is in a known position
2017-04-16 17:46:06 -05:00
Scott Lahteine bddd75aa5c Merge pull request #6363 from dot-bob/display_reset
Identifed a display initialization issue.
2017-04-16 17:44:44 -05:00
dot-bob 9c410ddf68 Fixed an issue where a display with a hardware reset pin (LCD_RESET) may not get initialized properly. 2017-04-15 22:45:15 -06:00
Thomas Moore 72a7fac461 Only queue babysteps if axis is in a known position 2017-04-15 23:19:43 -05:00
Roxy-3D 5e9726530f Setup to find data corruption and general clean up
This data corruption problem is very difficult.  Just changing the code
a little bit changes whether the problem even happens and what is
affected.  I need these changes in the main branch so I can operate with
the extra debug code always available and turned on.

Everything is setup such that if M100 is turned off or DEBUG(ECHO) is
turned off, the code is not affected.   M100 has been made a little bit
more inteligent so it can display the serial command buffers in a more
meaningful way (because the data corruption seems to often times end up
in that area).
2017-04-15 19:26:43 -05:00
Scott Lahteine e519e95953 Merge pull request #6358 from thinkyhead/rc_doubleclick_fix
Show Cancel/Continue screen for ABL "Level Bed"
2017-04-15 17:25:37 -05:00
Scott Lahteine a81606c680 Show Cancel/Continue screen for ABL "Level Bed" 2017-04-15 16:51:03 -05:00
Scott Lahteine 51021bc7b8 Merge pull request #6353 from thinkyhead/rc_endstop_coolness
Clean up endstop triggering code
2017-04-15 16:49:54 -05:00
Scott Lahteine 857dec0990 Merge pull request #6342 from benlye/benlye-fix-softspi
Fix softspi variant conditional for 1284p
2017-04-15 16:33:50 -05:00
Scott Lahteine 4e04383d18 Merge pull request #6354 from thinkyhead/rc_doubleclick_fix
Fix undefined symbol if DOUBLECLICK_FOR_Z_BABYSTEPPING and HAS_BED_PROBE defined
2017-04-15 16:06:29 -05:00
Thomas Moore 8dd0492e68 Show lcd_babystep_zoffset screen if DOUBLECLICK_FOR_Z_BABYSTEPPING is enabled and HAS_BED_PROBE is defined 2017-04-15 14:44:50 -05:00
benlye 0a2f60fab4 Make spi.h inclusion conditional
spi.h is only needed if HEATER_0_USES_MAX6675 is defined, so making its inclusion conditional on HEATER_0_USES_MAX6675 being defined.
2017-04-15 16:22:42 +01:00
Bob-the-Kuhn 60471b7592 minor improvements
Configuration_store.cpp - changed a couple of print statements so the
values were printed.  The old method resulted in the formula being
printed.

ubl_G29
1) added support for R option to P4.  Now probes all points unless R is
present and the number is greater than 0.

2) P2 - moved map print statement so it showed the point that was
currently being probed,  The old location did this only for the first
point.

3) P4 - Moved the map print for the same reason.

ultralcd.cpp - changed "Mesh Editor :" to "Mesh Editor" because the LCD
draw routine puts a ":" in automatically so you end up with an extra ":"
using the old message.
2017-04-15 09:31:55 -05:00
Scott Lahteine 25a61e9061 Improve motion-based endstop triggering code 2017-04-15 06:16:50 -05:00
Scott Lahteine 5a97a7be97 Merge pull request #6352 from thinkyhead/rc_patch_menu_bug
Fix compiler warning about z-offset callback
2017-04-15 03:35:16 -05:00
Scott Lahteine a2356c2825 Fix compiler warning about z-offset callback 2017-04-15 02:50:27 -05:00
Scott Lahteine 3a40e637cd Merge pull request #6350 from thinkyhead/rc_more_dualx_logging
Add more Dual X logging
2017-04-15 02:02:54 -05:00
Scott Lahteine 037c964d26 Reverse bools on prepare_move sub-functions 2017-04-15 01:08:19 -05:00
Scott Lahteine d9c4333806 Extra logging of Dual X modes 2017-04-15 01:08:19 -05:00
Scott Lahteine 8cccf69ef7 Merge pull request #6348 from thinkyhead/rc_tmc2130_clean_clean
TMC2130 update. Fixes, tune-ups, new features
2017-04-14 23:40:56 -05:00
Scott Lahteine 4067d15c92 Cleanup, extend TMC2130 implementation 2017-04-14 23:00:00 -05:00
Scott Lahteine d60c02c5b1 Cleanup, extend TMC2130 configuration 2017-04-14 22:43:56 -05:00
Scott Lahteine 0e97b3d6d0 Fix some configuration spacing 2017-04-14 22:36:10 -05:00
Scott Lahteine cf6f483378 Merge pull request #6187 from thinkyhead/rc_flsun_delta_autocal
Delta: DELTA_HEIGHT, G33 Auto-Calibrate, drop M206/M428, add M665 H
2017-04-14 22:32:12 -05:00
Scott Lahteine 24882adfbf Allow NO_WORKSPACE_OFFSETS with DELTA_AUTO_CALIBRATION
- On `DELTA` the `M665 H` option supplants `M206`
- On `DELTA` `NO_WORKSPACE_OFFSETS` only reverts `G92` behavior
- Spawn 4 conditionals based on `NO_WORKSPACE_OFFSETS`
- Optimize coordinate space conversion for `DELTA` workspace
- To keep EEPROM version, retain `home_offset[XYZ]`, just ignore XY
2017-04-14 21:56:49 -05:00
Bob-the-Kuhn 1acb84ba02 fix 1 bug, add error messages
===============================================

make changes requested by reviewers

===============================================

add M43 test to Travis, fix EOL, remove trailing spaces
2017-04-14 20:57:45 -05:00
Scott Lahteine 40dfafbe89 Add Travis CI test for FLSUN config 2017-04-14 19:46:31 -05:00
LVD-AC 8821963873 Implement delta auto-calibration and delta_height 2017-04-14 19:46:31 -05:00
Scott Lahteine b305699046 Merge pull request #6341 from benlye/benlye-lcd_babystep_zoffset
Fix lcd_babystep_zoffset()
2017-04-14 19:11:46 -05:00
LVD-AC 03bda24d19 Add delta auto-calibration and configuration for Flsun AC 2017-04-14 19:08:14 -05:00
Scott Lahteine 396bd7b377 Update "firstpush" to open branch commits on Github 2017-04-14 19:06:31 -05:00
Scott Lahteine 1bd25fd2b3 Clean up config spacing, section headings, etc. 2017-04-14 19:06:31 -05:00
Scott Lahteine 153b0ae967 Tweak Delta Printer configuration note 2017-04-14 19:06:06 -05:00
Scott Lahteine 81ffd98dd9 Allow faux leveling 2017-04-14 19:06:06 -05:00
Scott Lahteine 2355d87e11 Merge pull request #6346 from thinkyhead/rc_broken_abl_test
Add support for SOLENOID_PROBE
2017-04-14 18:36:32 -05:00
Scott Lahteine f4685c28b7 Reorder Conditionals_post.h and add comments 2017-04-14 18:18:21 -05:00
Scott Lahteine 5135be14ea Include Travis CI tests for 5 extruders / e-steppers 2017-04-14 18:18:20 -05:00
Scott Lahteine 0ac2b5c045 Additional 5 extruders support (solenoids, microstepping) 2017-04-14 18:18:20 -05:00
Scott Lahteine fd2a0784ba Add support for SOLENOID_PROBE 2017-04-14 17:24:36 -05:00
Scott Lahteine 5803ba43a9 Expose EXT_SOLENOID as an advanced option 2017-04-14 17:24:36 -05:00
Scott Lahteine ea734f910b Use direct pin manipulation whenever possible 2017-04-14 16:55:35 -05:00
Scott Lahteine 19d0c6a0c0 Patch to init W with RGBW_LED 2017-04-14 16:55:23 -05:00
Scott Lahteine 3e079660b0 Never define SLED_PIN 2017-04-14 16:36:32 -05:00
Scott Lahteine 76765a8279 Merge pull request #6337 from thinkyhead/rc_core_endstop_fix
CORExx endstop detection fixes
2017-04-14 14:24:58 -05:00
benlye 1a447d0047 Fix variant conditional for 1284p 2017-04-14 18:46:09 +01:00
benlye 1f9ee42750 Fix lcd_babystep_zoffset()
Resolve 'steps_to_mm was not declared in this scope' compilation error after recent changes to merge babystepping with M851
2017-04-14 18:38:35 +01:00
Bob-the-Kuhn 445d39e95a CORExx endstop detection fixes
1. The CORExx printers were checking more endstop axis than needed.

2. Removed all the CORE_xx_NOT logic.  The motor_direction(xx) routine
always returns the correct data so it is not needed.  It was actually
cause the wrong direction to be checked in some cases.

3. Made the logic/defines for X, Y & Z axis all the same.  The old logic
checked inappropriate configurations for Y and didn't check all the
correct configurations on Z.

4. Added a check for zero steps before the X, Y & Z axis.  Previously
would check the they axis even if there were no movement.
2017-04-13 21:43:37 -05:00
Roxy-3D 28fec61f92 M100 Fixes and Features
All the memory accesses need to be unsigned char in  order to avoid
false errors being detected.   Two new features are available for
developers to call into the M100 functionality to look for data
corruption.
2017-04-13 18:20:53 -05:00
Scott Lahteine 2f2835e622 Merge pull request #6332 from thinkyhead/rc_babystep_zprobe
Make BABYSTEP_ZPROBE_OFFSET an optional feature
2017-04-13 16:50:08 -05:00
Scott Lahteine 52c3ace102 Add BABYSTEP_ZPROBE_OFFSET as an optional feature 2017-04-13 16:29:43 -05:00
Scott Lahteine cd4e6abec8 Group BABYSTEPPING options together 2017-04-13 16:26:45 -05:00
Scott Lahteine 972c9655e9 Merge pull request #6245 from thinkyhead/rc_babystep_zprobe
BABYSTEPPING updates Z probe offset
2017-04-13 16:06:07 -05:00
Scott Lahteine 60ac41a32c Add code to handle changes to zprobe_zoffset 2017-04-13 15:46:35 -05:00
Scott Lahteine 8fa4209916 Movement/adjustment should be reverse of probe offset change 2017-04-13 15:46:05 -05:00
Thomas Moore 361655828f Use babystepping to adjust bed probe z-offset 2017-04-13 15:46:05 -05:00
Scott Lahteine 36e5c7c389 Merge pull request #6330 from thinkyhead/rc_improvements
Sanity check per-axis options' array sizes
2017-04-13 13:08:44 -05:00
Scott Lahteine 02fca543bb Merge pull request #6272 from thinkyhead/rc_adc_variable_rate
Make ADC sensor reading frequency adjustable
2017-04-13 12:49:31 -05:00
Scott Lahteine 34308368c0 Sanity check per-axis settings for size 2017-04-13 11:35:20 -05:00
Scott Lahteine ac96ae89f9 Apply const in Stepper::isr 2017-04-13 06:20:36 -05:00
Scott Lahteine 2fa1e882d0 Merge pull request #6325 from thinkyhead/rc_M20_with_size
Simplified M20 with size
2017-04-13 05:06:52 -05:00
Bob-the-Kuhn 1b12fea0fa simplified M20 with size 2017-04-13 04:56:58 -05:00
Scott Lahteine 4022b971db Merge pull request #6315 from thinkyhead/rc_unify_M421
Unify M421
2017-04-12 19:43:28 -05:00
Scott Lahteine b236562354 Merge pull request #6306 from thinkyhead/cleanup_after_6302
Adjustments to M100
2017-04-12 19:12:27 -05:00
Scott Lahteine 5e4f4d387f Swap MBL z_values dimensions to [X][Y] 2017-04-12 17:24:05 -05:00
Scott Lahteine f81b518a03 Add Travis tests for optional M100 features 2017-04-12 17:07:22 -05:00
Scott Lahteine 063f641651 Unify M421 2017-04-11 15:46:13 -05:00
Scott Lahteine 6d5400dc31 Merge pull request #6240 from thinkyhead/rebuild_rgb_led
Extend RGB LED with Printer Events
2017-04-11 15:16:57 -05:00
Scott Lahteine dac21ec680 Add support for an RGBW LED 2017-04-11 12:58:55 -05:00
Scott Lahteine e7746ffee4 Extend RGB LED support, adding Printer Events 2017-04-11 12:15:41 -05:00
Scott Lahteine c7063eb55c theTarget => target_temp 2017-04-11 12:15:41 -05:00
Scott Lahteine 36bda2bade Add HAS_RESUME_CONTINUE shorthand macro 2017-04-11 12:15:40 -05:00
Scott Lahteine 53e6c33c37 2 is DXC_DUPLICATION_MODE 2017-04-11 12:15:40 -05:00
Scott Lahteine a2cb0a3d54 Use multiply for delta probe constraint 2017-04-11 12:15:40 -05:00
Scott Lahteine 6487c96a4a Merge pull request #6313 from Kaibob2/patch-10
Allow 10mm Movements for Z-Axis
2017-04-11 12:04:10 -05:00
Scott Lahteine 944218f7da Merge pull request #6309 from thinkyhead/rc_fix_minimum_pulse
Fix MINIMUM_STEPPER_PULSE calculations
2017-04-11 11:54:26 -05:00
Kai 001bc14255 Allow 10mm Movements for Z-Axis
I use the movement options via LCD quite often. Especially to get the nozzle out of the way. I see no reason, why the 10mm option is disabled for the Z-Axis, this is why i always delete this line when i compile a new version.
If this is unwanted, please just close this PR
2017-04-11 18:39:26 +02:00
Scott Lahteine 6a9b008044 Fix MINIMUM_STEPPER_PULSE maths 2017-04-11 11:11:17 -05:00
Scott Lahteine 68773f4486 Simplify stepper macros by renaming enable/disable macros 2017-04-11 11:10:26 -05:00
Scott Lahteine e02a5a6371 Add macros for delays by machine cycle 2017-04-11 09:18:32 -05:00
Scott Lahteine 4ea447959e Merge pull request #6311 from thinkyhead/rc_bare_M109_M190
Have M109 / M190 do nothing with no parameters
2017-04-11 06:10:31 -05:00
Scott Lahteine ecc537015a Have M109 / M190 do nothing with no parameters 2017-04-11 05:06:25 -05:00
Scott Lahteine 03aa9a390e Apply coding standards to M100, break up into functions 2017-04-10 21:09:43 -05:00
Scott Lahteine 48c16fc6ef Merge pull request #6307 from thinkyhead/rc_less_no_reentrance
Only lcd_synchronize needs no_reentry
2017-04-10 20:58:32 -05:00
Scott Lahteine 4fcfe926d6 Only lcd_synchronize needs no_reentry 2017-04-10 20:13:23 -05:00
Scott Lahteine 67fb7f82ac Merge pull request #6283 from thinkyhead/rc_eeprom_z_fade
Save / restore z_fade_height in EEPROM
2017-04-10 20:05:20 -05:00
Scott Lahteine eff5af569b Merge pull request #6300 from MagoKimbra/rc_fix_mesh_report
Fix mbl_mesh_report
2017-04-10 19:37:19 -05:00
Scott Lahteine 4a18968c10 Merge pull request #6297 from Kaibob2/patch-9
Fix EPROM -> EEPROM
2017-04-10 19:35:30 -05:00
Roxy-3D ba85faabc0 Fix M100 Free Memory Checker
M100 had numerious changes and quit working.   Part of the problem is
the overloading of the SERIAL_PROTOCOL functions.   Also, some of the
address arithmatic was changed to use char *ptr and passing ptr into the
SERIAL_PROTOCOL functions caused them to try to print a string instead
of a number.     M100 is working again.   Let's keep it that way!

M100 has been expanded to now have a function  int
free_memory_is_corrupted()  that can be called from other code to see if
the free space is still contiguous.  It may make sense to add a flag to
control its verbose nature but right now, the extra chit chat is very
helpful to know int free_memory_is_corrupted()  is doing the right thing
and what it found at various points when it was called.     A 'Show &
Tell' is coming up with int free_memory_is_corrupted().
2017-04-10 15:33:55 -05:00
Kai 3b82db5fe9 Missing semicolon in ultralcd.cpp
When PARK_HEAD_ON_PAUSE is defined Marlin won't compile because of two missing semicolon.
2017-04-10 14:45:51 -05:00
MagoKimbra 7d2e637867 Fix mbl_mesh_report 2017-04-10 20:50:19 +02:00
Kai afeb0452ef Fix EPROM -> EEPROM
These fixes are neede because before it showed the englisch text even if language = de was selected
2017-04-10 18:37:00 +02:00
Scott Lahteine 7f950a80c0 Make ADC sensor reading frequency adjustable 2017-04-09 22:18:21 -05:00
Scott Lahteine dad907b923 Merge pull request #6293 from thinkyhead/rc_move_toshiba
Put TOSHIBA with other stepper driver options
2017-04-09 22:08:36 -05:00
Scott Lahteine 786af73e24 Convert config code to a static class 2017-04-09 22:06:41 -05:00
james94jeans2 5b9476fe78 Added z_fade_height to EEPROM-Settings
Firmware was forgetting the z_fade_height in Planner, set by M420 Z<f>,
after each reset or loading settings from EEPROM. Added the float
z_fade_height to EEPROM-Storage, now remembers the value.
2017-04-09 21:16:58 -05:00
Scott Lahteine 9343f6a95f Put TOSHIBA with other stepper driver options 2017-04-09 20:52:49 -05:00
Scott Lahteine 7a704af5e6 Merge pull request #6284 from thinkyhead/rc_wt150_rebase
wt150 (Mightyboard Rev E) & RRD Full Graphic Smart Controller
2017-04-09 20:27:44 -05:00
Scott Lahteine 2bde7940e0 Merge pull request #6289 from zlowred/RCBugFix
Fixed comparison of float values to NaN
2017-04-09 19:39:04 -05:00
Max Matveev 2031fb913b Fixed comparison of float values to NaN 2017-04-09 20:28:46 +02:00
Scott Lahteine e48a52a530 Patch a display issue with LCD_DECIMAL_SMALL_XY
The `ftostr4sign` function got munged by the `WITHIN` patch
2017-04-09 10:25:35 -05:00
Scott Lahteine 1a3cd6a090 Merge pull request #6213 from thinkyhead/rc_gitattributes
Init bed_level_virt_interpolate on EEPROM load
2017-04-09 08:13:11 -05:00
Scott Lahteine 314a02e2d5 Toggle with XOR 2017-04-09 07:58:47 -05:00
Scott Lahteine cfad4736cd Merge pull request #6285 from thinkyhead/rc_cheaptronic_v2
Cheaptronic V2
2017-04-09 07:09:23 -05:00
Scott Lahteine 8bc0d90b00 Init bed_level_virt_interpolate on EEPROM load 2017-04-09 07:04:20 -05:00
MD 20dd5376b8 Cheaptronic V2
Add support for new electronics
www.reprapobchod.cz
2017-04-09 06:57:43 -05:00
Scott Lahteine 4cdda5615b Bring other configs up to date with wt150 changes 2017-04-09 06:45:42 -05:00
Paweł Stawicki 9b0885f4f6 Allow boards without a thermistor 2017-04-09 06:45:41 -05:00
Paweł Stawicki 64cfcebe66 Update SlowSoftI2CMaster link. MightyBoard digipots I2C bus has no resistors. 2017-04-09 06:45:03 -05:00
Paweł Stawicki 0eb16d9ff7 Add example config for the wt150 printer with RepRapDiscount Full Graphic Smart Controller 2017-04-09 06:44:54 -05:00
Paweł Stawicki 652bedfa18 Add RepRapDiscount Full Graphic Smart Controller support to MIGHTYBOARD REVE 2017-04-09 06:44:53 -05:00
Paweł Stawicki 44cdebb8f1 Add software spi support for max6675 2017-04-09 06:44:53 -05:00
Paweł Stawicki 191fec009f Add digipot i2c control for MCP4018 2017-04-09 06:44:53 -05:00
Scott Lahteine e5b16081cb Update TinyBoy2 configurations 2017-04-09 06:44:53 -05:00
Scott Lahteine 1855534f20 Config files cleanup 2017-04-09 06:44:52 -05:00
Scott Lahteine 2f5e934a19 Merge pull request #6282 from thinkyhead/rc_cleanup_and_5_extruders
Additional missed patches
2017-04-09 04:35:08 -05:00
Scott Lahteine c26a315d0b Additional missed patches 2017-04-09 04:24:23 -05:00
Scott Lahteine 635f182478 Merge pull request #6281 from thinkyhead/rc_cleanup_and_5_extruders
More patches for 5 extruders
2017-04-09 04:07:22 -05:00
Scott Lahteine 39617e10b8 Patch configs comment formatting 2017-04-09 03:49:16 -05:00
Scott Lahteine c54f6cf23d Updates to support 5 extruders 2017-04-09 03:49:16 -05:00
Scott Lahteine 2b88ccd0aa Apply UBL mesh bounds to remaining configs 2017-04-09 03:49:15 -05:00
Scott Lahteine 60be3d264b Macros to print floats, hiding imprecision 2017-04-09 03:48:40 -05:00
Scott Lahteine b356d73239 Merge pull request #6278 from thinkyhead/pr_delta_angles
Followup to additional delta trim options
2017-04-08 22:25:57 -05:00
Jimmy Envall f78d44e91a Added support for delta tower angle corrections. 2017-04-08 21:13:44 -05:00
Scott Lahteine d3b4d84586 Merge pull request #6277 from thinkyhead/pr_roxy3d_rcbugfix
Unify UBL Command Parsing
2017-04-08 20:17:46 -05:00
Scott Lahteine 98c9de11e1 Merge pull request #6266 from thinkyhead/rc_cleanup_after
Cleanup after recent merges
2017-04-08 20:08:15 -05:00
Scott Lahteine d4ce839351 Cleanup following Pins Debug update 2017-04-08 18:59:57 -05:00
Scott Lahteine c7a8f7970b Formatting / cleanup 2017-04-08 18:59:57 -05:00
Scott Lahteine 29d4ec8257 Support 5 extruder auto fans 2017-04-08 18:59:57 -05:00
Scott Lahteine 824f3c1c0d Fix up configuration comments 2017-04-08 18:59:56 -05:00
Scott Lahteine 995ed90248 Clean up Filament Width Sensor comments 2017-04-08 18:59:56 -05:00
Scott Lahteine 5a7b810fdd General comment cleanup 2017-04-08 18:58:33 -05:00
Scott Lahteine 0027c22839 Drop extraneous calls to lcd_update 2017-04-08 18:58:33 -05:00
Scott Lahteine d6db7a9b03 patch "step_remaining" 2017-04-08 18:13:20 -05:00
Scott Lahteine cbc2331187 Use LCD_MESSAGEPGM over lcd_setstatuspgm 2017-04-08 18:04:39 -05:00
Scott Lahteine 3729510b1e Set and check main parameter values, report all errors 2017-04-08 17:15:55 -05:00
Roxy-3D 34d3ed9ab1 These items were removed from the UBL Command Parsing
Having these items randomly (and errorniously) disappear cost me several
hours of work yesterday.
2017-04-08 15:30:20 -05:00
Scott Lahteine 15edb41cee Patches to UBL 2017-04-08 14:59:14 -05:00
Roxy-3D 14cf527bb8 Getting setup for debugging 2017-04-08 14:59:14 -05:00
Scott Lahteine f8408036f2 Merge pull request #6264 from thinkyhead/rc_five_extruders
Support up to 5 extruders in Marlin
2017-04-07 12:48:56 -05:00
Bob-the-Kuhn 5212cb8304 Merge pull request #6271 from Bob-the-Kuhn/MCP4728-consistency-2
MCP4728 consistency ... Finish name change
2017-04-07 11:31:19 -05:00
Bob-the-Kuhn f7fc49c3a3 Finish name change
DAC_STEPPER_DFLT wasn't changed to DAC_MOTOR_CURRENT_DEFAULT in all
places on PR #6124
2017-04-07 11:05:24 -05:00
Scott Lahteine 832064e4f2 Implementation changes to support 5 extruders 2017-04-07 10:46:37 -05:00
Scott Lahteine 04050237f0 Header and pins changes to support 5 extruders 2017-04-07 10:46:36 -05:00
Scott Lahteine 2a84122edd Configuration changes to support 5 extruders 2017-04-07 10:46:35 -05:00
Scott Lahteine edf18977c1 Patch pins files hotends/e-steppers sanity check 2017-04-07 10:46:33 -05:00
Scott Lahteine dc84678fc1 Fix HOTEND_STATUS_ITEM for graphical display 2017-04-06 23:07:30 -05:00
Scott Lahteine a0de5d94e2 Merge pull request #6258 from benlye/benlye-bilinearfix2
Better fix for bilinear Z offset and G29 Z (update to #6251)
2017-04-06 20:51:57 -05:00
Scott Lahteine b23aef5b8d Merge pull request #6190 from Bob-the-Kuhn/Stop-and-Kill-prints---round-2
Message for every KILL and STOP (also need delays)
2017-04-06 20:40:12 -05:00
Roxy-3D 945303c0d5 eleminate bootscreen.h 2017-04-06 19:55:41 -05:00
Roxy-3D ef3da3971e Update ubl.h 2017-04-06 19:55:41 -05:00
Roxy-3D 8644dc170b get synchronized to current file names 2017-04-06 19:55:41 -05:00
Roxy-3D 1451b7eacf UBL's Grid Based Leveling code
Pretty much...  The code is in place.  Still more work to do.    But it
has a lot of hooks and variables in other code, so commit and merge
before I pick up a million 'Conflicts'.
2017-04-06 19:55:41 -05:00
Bob-the-Kuhn 549055f20c Merge pull request #6124 from Bob-the-Kuhn/MCP4728-consistency
MCP4728 consistency & fix ultralcd.cpp (PRINTRBOARD Rev F and RIGIDBOARD V2)
2017-04-06 16:35:50 -05:00
Bob-the-Kuhn a77875c9d2 Merge pull request #6114 from Bob-the-Kuhn/try2-add-BLTouch-retry
Another BLTouch retry place (replaces PR #6108)
2017-04-06 16:25:55 -05:00
Bob-the-Kuhn 3b9ff2cb12 Merge pull request #5676 from Bob-the-Kuhn/configuration.h
Configuration.h - reword Z PROBE section
2017-04-06 16:18:34 -05:00
Bob-the-Kuhn 6643d553f6 # This is a combination of 2 commits.
# This is the 1st commit message:

MCP4728 consistency & fix ultralcd.cpp

The MCP4728 DAC controls the stepper motor current strenth on the
PRINTRBOARD Rev F and RIGIDBOARD V2 boards.

PR #5792 on 9 FEB 2017 implemented default drive percentages but only on
the RIGIDBOARD V2.

This change moves the default settings to Configuration_adv.h.

Also, ultralcd.cpp won't compile because of a type def conflict.
Changed it to match the one in stepper_dac.cpp

===========================================================

reword stepper curent section for clarity

===========================================================

change name & improve comments

===========================================================

changed name from A4JP to SCOOVO_X9H per PR #6139

# This is the commit message #2:

fix typo
2017-04-06 16:16:27 -05:00
Bob-the-Kuhn a44b3432c1 add BLTouch retry to a second place & add/update delays
=================================================

implement requested changes

=================================================

remove delays (they're in another PR) & move return
2017-04-06 16:13:07 -05:00
Bob-the-Kuhn a5abc61fb9 Merge pull request #6219 from Bob-the-Kuhn/Servo-probe-and-toggle-pins
M43 - add Toggle utility and Z servo utility (replaces PR #5864)
2017-04-06 16:10:50 -05:00
Bob-the-Kuhn f87012a063 Merge pull request #5762 from Bob-the-Kuhn/Z_DUAL_ENDSTOP-make-offset-a-configuration-item
Z_DUAL_ENDSTOPS -  make offset a configuration item
2017-04-06 16:09:15 -05:00
Bob-the-Kuhn 3b8926bd09 improved wording, consolidation of info, BLTouch warning
==============================================

clarified BLTouch calculation & changed comment delimitters/flags

I found it hard to pickout the various sections in this area so I
changed most comments from // style to /** ... */

Made the BLTouch calculation simpler and clarified the units of measure
for the result.

============================================

add changes to example configurations

============================================

add TinyBoy2 to this PR & add BLTouch Delay
2017-04-06 16:06:01 -05:00
Scott Lahteine 55d296aaf0 pinsDebug with more features, uses less RAM
I've just uploaded a major change to pinsDebug.
The big change was creating an array in FLASH that contained every
active pin definition. That reduced the RAM memory usage considerably
but increased the FLASH usage.
Creating the array requires going through the pin list twice. Rather
than having two copies of it in the code I moved the list out to another
file (pinsDebug_list.h) and then just did two #includes.
From the user’s view they’ll see the following changes:
1. Now reports all the names assigned to a pin
2. The port is now reported in addition to the pin number.
3. When PWM0A & PWM1C share a pin, both PWMs are reported
4. More PWM/Timer info is reported
One new item that may cause some concern is the usage of the LINE
predefined preprocessor macro. It may not be available if the Arduino
IDE goes to a different compiler.

Includes support for 1284 & 1286 families.

Memory usage changes when enabling PINS_DEBUGGING:
ATmega2560
FLASH
.           without   52576
.           with new  64592
.           with old  62826
.           new-out   12016
.           old-out   10250
.           new-old   1766
.
RAM
.           without   2807
.           with new  2875
.           with old  3545
.           new-out   68
.           old-out   738
.           new-old   -670

==================================================================

minor changes - mostly formatting

1) added newline to end of teensyduino file

2) changed flag name from TEENSYDUINO to TEENSYDUINO_IDE.  Got warnings
about redefining TEENSYDUINO

3) removed some trailing spaces

reduce PROGMEM size & update pin list

Reduced PROGMEM usage by
1) converting often used macro to a function
2) moved as much as possible into the function

This required creating two arrays of address pointers for the PWM
registers.

==================================================================

update with new M3, M4, M5 pin names

==================================================================

report I/O status for unused/unknown pins
2017-04-06 16:06:01 -05:00
Scott Lahteine e116723b8b Adjust indentation in ubl.h 2017-04-06 16:06:00 -05:00
Scott Lahteine 1b3a26f2f5 Rename all UBL files with a ubl_ prefix 2017-04-06 16:06:00 -05:00
Scott Lahteine d13991ae18 Use same config name for all mesh dimensions 2017-04-06 16:05:59 -05:00
Bob-the-Kuhn f9686a108c add Z servo test and toggle pins to M43 2017-04-06 15:59:38 -05:00
Scott Lahteine 62cbaa302e Z_DUAL_ENDSTOP - make offset a configuration item
The offset for Z_DUAL_ENDSTOP (z_endstop_adj) is already in Marlin.
This PR just makes it a configuration item.

z_endstop_adj is initialized in two places so both had to be modified.
2017-04-06 15:57:10 -05:00
Bob-the-Kuhn 3b6333c613 Merge pull request #5668 from Bob-the-Kuhn/pinsDebug-PROGMEM
pinsDebug with more features, uses less RAM
2017-04-06 15:51:45 -05:00
Scott Lahteine c9e35004e7 pinsDebug with more features, uses less RAM
I've just uploaded a major change to pinsDebug.
The big change was creating an array in FLASH that contained every
active pin definition. That reduced the RAM memory usage considerably
but increased the FLASH usage.
Creating the array requires going through the pin list twice. Rather
than having two copies of it in the code I moved the list out to another
file (pinsDebug_list.h) and then just did two #includes.
From the user’s view they’ll see the following changes:
1. Now reports all the names assigned to a pin
2. The port is now reported in addition to the pin number.
3. When PWM0A & PWM1C share a pin, both PWMs are reported
4. More PWM/Timer info is reported
One new item that may cause some concern is the usage of the LINE
predefined preprocessor macro. It may not be available if the Arduino
IDE goes to a different compiler.

Includes support for 1284 & 1286 families.

Memory usage changes when enabling PINS_DEBUGGING:
ATmega2560
FLASH
.           without   52576
.           with new  64592
.           with old  62826
.           new-out   12016
.           old-out   10250
.           new-old   1766
.
RAM
.           without   2807
.           with new  2875
.           with old  3545
.           new-out   68
.           old-out   738
.           new-old   -670

==================================================================

minor changes - mostly formatting

1) added newline to end of teensyduino file

2) changed flag name from TEENSYDUINO to TEENSYDUINO_IDE.  Got warnings
about redefining TEENSYDUINO

3) removed some trailing spaces

reduce PROGMEM size & update pin list

Reduced PROGMEM usage by
1) converting often used macro to a function
2) moved as much as possible into the function

This required creating two arrays of address pointers for the PWM
registers.

==================================================================

update with new M3, M4, M5 pin names

==================================================================

report I/O status for unused/unknown pins
2017-04-06 14:46:28 -05:00
Scott Lahteine 7dfe2cc132 Merge pull request #6254 from thinkyhead/rc_ubl_rename
Group all UBL files via a common prefix
2017-04-06 05:46:18 -05:00
Scott Lahteine 4abd53f65a Adjust indentation in ubl.h 2017-04-06 05:36:16 -05:00
Scott Lahteine f5c5c1f771 Rename all UBL files with a ubl_ prefix 2017-04-06 05:33:27 -05:00
Scott Lahteine 11430b6d33 Merge pull request #6256 from thinkyhead/rc_unify_grid_size
Use same config name for all mesh dimensions
2017-04-06 05:30:28 -05:00
benlye f1d50ac1dc Fixing bilinear Z offset and G29 Z
The fix in #6251 for bilinear Z offset was flawed and broke the Z parameter of G29 for bilinear levelling.  This is reverted and a different fix is used for the double-addition of the Z-probe offset to the bilinear correction grid.
2017-04-06 07:41:46 +01:00
Scott Lahteine eb1e6aa29b Use same config name for all mesh dimensions 2017-04-06 00:42:52 -05:00
Scott Lahteine 034e912c85 Merge pull request #6248 from thinkyhead/rc_marlin_scad_mesh
Add hidden option to output Bilinear grids in JSON
2017-04-06 00:36:45 -05:00
Scott Lahteine c961dd084d Add hidden option to output Bilinear grids in JSON 2017-04-05 23:43:17 -05:00
Scott Lahteine bc09e862a9 Re-enable .cpp as LF in .gitattributes 2017-04-05 22:30:30 -05:00
Scott Lahteine df7b4252fd Reduce M420 code for UBL slightly 2017-04-05 22:30:29 -05:00
Scott Lahteine 8866158d03 Add LEVELING_DATA as a capability 2017-04-05 22:30:28 -05:00
benlye 0a2b4f3486 Fix bilinear levelling z offset
Since run_probe was altered to return the probe Z position rather than the nozzle Z position bilinear levelling has been broken because the Z-offset has been applied twice - once in the run_probe function, and then again in the G29 code for bilinear levelling.
2017-04-05 22:01:40 -05:00
Scott Lahteine 44a849bdce Fix broken M206/M428/G92 offsets 2017-04-05 22:01:37 -05:00
Roxy-3D 52978e5ba5 Fix spelling mistake when UBL's mesh is Inactive 2017-04-02 20:07:09 -05:00
Roxy-3D 0423e93c42 Fix M421 AUTO_BED_LEVELING_BILINEAR and AUTO_BED_LEVELING_UBL
M421 was not connected up for AUTO_BED_LEVELING_BILINEAR.
M421 needed to migrate mesh data to new UBL EEPROM layout.
2017-04-02 16:46:37 -05:00
Scott Lahteine 3412950abc Merge pull request #6209 from thinkyhead/rc_psu_zero
Power Supply 0 as "General"
2017-04-02 16:44:42 -05:00
Roxy-3D 3e9e94801f Fix problem described in issue # 6175
As it turns out...   an unsigned int can not go to less than 0,  so the
loop never terminates.
2017-04-02 13:00:27 -05:00
Scott Lahteine a37a605fee Merge pull request #6217 from thinkyhead/rc_fix_invisibles_to_most
Patch .gitattributes till UBL line endings are fixed
2017-04-02 12:52:26 -05:00
Scott Lahteine 01a293b6e3 Patch .gitattributes till UBL line endings are fixed 2017-04-02 12:50:02 -05:00
Scott Lahteine 289e3d6844 Merge pull request #6215 from thinkyhead/rc_bed_false_alarm
Fix thermal runaway when nonexistent bed temp is set
2017-04-02 11:59:58 -05:00
Scott Lahteine 1c69a155cf Merge pull request #6214 from thinkyhead/rc_bltouch_delay_opt
Configurable delay for BLTouch servo emulation
2017-04-02 11:59:34 -05:00
Scott Lahteine 948728e63b Fix line-endings in UBL_G29 2017-04-02 11:48:26 -05:00
Scott Lahteine 699310d1d2 Fix: Thermal runaway if nonexistent bed's temp is set 2017-04-02 11:48:10 -05:00
Scott Lahteine c56eec29f0 Configurable delay for BLTouch servo emulation 2017-04-02 11:14:53 -05:00
Scott Lahteine deaad78df9 Merge pull request #5678 from Bob-the-Kuhn/G38-optional-double-tap
G38 bug fix, made double touch optional & reverted to Z_MIN_PROBE
2017-04-02 10:32:04 -05:00
Scott Lahteine b3e9977f97 Merge pull request #6212 from thinkyhead/rc_gitattributes
Fix LCD preheat menus
2017-04-02 09:54:13 -05:00
Scott Lahteine 5bce731962 Fix LCD preheat menus 2017-04-02 09:32:22 -05:00
Scott Lahteine 9faa8c4704 Merge pull request #6210 from thinkyhead/rc_gitattributes
Add .gitattributes to normalize line endings
2017-04-02 08:56:51 -05:00
Scott Lahteine 4c72167af3 Prevent a warning on echo_command 2017-04-02 08:36:58 -05:00
Scott Lahteine 9b5fd9522e Fix formatting, order for a UBL change 2017-04-02 07:15:40 -05:00
Scott Lahteine f0ef8a1cbd Add .gitattributes to normalize line endings 2017-04-02 06:47:52 -05:00
Tannoo 54173c80ad Power Supply 0 as "General" 2017-04-02 06:21:34 -05:00
Scott Lahteine 883c6762c4 Merge pull request #6208 from thinkyhead/rc_parity_with_32bit
Patch MarlinSerial to match up with 32-bit version
2017-04-02 05:13:03 -05:00
Scott Lahteine a2775d0c70 can wstring be removed? 2017-04-02 04:43:33 -05:00
Scott Lahteine de4e19f17e Patch MarlinSerial to match up with 32-bit version 2017-04-02 04:39:18 -05:00
Scott Lahteine 34b23ff312 Merge pull request #6202 from thinkyhead/rc_fix_broken_ubl
Patching up UBL, vetting recent commits
2017-04-02 03:51:38 -05:00
Scott Lahteine 2cbc7b4b73 Relocate serial macros and functions 2017-04-02 01:05:25 -05:00
Scott Lahteine eaa66f3c46 Indent MarlinSerial code 2017-04-02 01:05:25 -05:00
Scott Lahteine 7a7a80e6c5 status_printf => lcd_status_printf_P 2017-04-02 01:05:25 -05:00
Scott Lahteine 0e6ec34228 Use PSTR versions of lcd_status... to save SRAM 2017-04-02 00:45:39 -05:00
Scott Lahteine 34e2420b9b Apply const args, clean up find_closest_circle_to_print 2017-04-01 23:15:41 -05:00
Scott Lahteine e19fbd27ce Minor spelling patch 2017-04-01 23:08:00 -05:00
Scott Lahteine 790a3e9a8c Remove extraneous check of UBL_G26_MESH_EDITING 2017-04-01 23:03:40 -05:00
Scott Lahteine 7310110ec0 Fix logic of UBL::fade_scaling_factor_for_z 2017-04-01 22:52:48 -05:00
Scott Lahteine a7aa70e79a Merge pull request #6201 from thinkyhead/rc_fix_broken_ubl
Fix broken auto#.g, some other regressions
2017-04-01 22:14:04 -05:00
Scott Lahteine 1a775cecac Revert behavior of enqueue_and_echo_commands_P 2017-04-01 21:53:46 -05:00
Scott Lahteine 79d42d87c1 Syntax cleanup 2017-04-01 21:53:46 -05:00
Scott Lahteine b47fd31c37 Revert some changes to UBL 2017-04-01 21:53:45 -05:00
Bob-the-Kuhn 185337e787 add delays to allow stop & kill messages to get out 2017-04-01 00:23:14 -05:00
Scott Lahteine 63abb65146 Update description of PINS_DEBUGGING 2017-03-31 18:57:48 -05:00
Scott Lahteine f75aa4d5be Merge pull request #6050 from thinkyhead/rc_probe_manually
Add PROBE_MANUALLY — ABL without a probe
2017-03-31 12:27:33 -05:00
Scott Lahteine 73e193da1d Implement LCD_BED_LEVELING for PROBE_MANUALLY 2017-03-31 11:50:18 -05:00
Scott Lahteine fcadc7bb1a Implement the "manual" option for ABL 2017-03-31 11:50:18 -05:00
Scott Lahteine 9e22184936 Add a "manual" option for ABL 2017-03-31 11:50:18 -05:00
Scott Lahteine 541165e878 Merge pull request #6181 from thinkyhead/rc_ubl_further_fixes
Further adjustments to UBL code
2017-03-31 11:35:02 -05:00
Scott Lahteine b19a15fa7f Within applied to UBL 2017-03-31 11:12:57 -05:00
Scott Lahteine 342ee458ae Additional UBL fixes, optimizations 2017-03-31 11:12:57 -05:00
Scott Lahteine a5e085cbea Have run_probe() return probe Z, not nozzle Z 2017-03-31 09:27:49 -05:00
Scott Lahteine 4487d22d56 Apply FIXFLOAT macro 2017-03-31 09:27:48 -05:00
Scott Lahteine 6cac0f43eb MBL fiddle 2017-03-31 09:27:48 -05:00
Scott Lahteine 25a6bfa7ed Add and apply WITHIN macro 2017-03-31 09:27:48 -05:00
Scott Lahteine 81136c1e82 Merge pull request #6177 from thinkyhead/rc_tinyboy
Support for TinyBoy 2 3D printer (and its OLED display)
2017-03-31 04:31:47 -05:00
Scott Lahteine 93aad54dc1 Clean up code, remove _now command function 2017-03-31 04:17:31 -05:00
Stefan Brüns 6ba6c92a81 Add example configuration for TinyBoy L10/L16
The TB2 is a Indiegogo funded 3d printer. It uses a MKS SMELZI V1.0
main board (based on MELZI, i.e. Sanguinololu). I comes as a complete kit,
including display and panel.
Two variants exists, L10 and L16, with a height of 100 and 160 mm.
The heating function of the provided bed can enabled by soldering a
thermistor and some wires to it.

Signed-off-by: Stefan Brüns <stefan.bruens@rwth-aachen.de>
2017-03-31 04:05:35 -05:00
Stefan Brüns 0fe57ad4f5 Add Support TinyBoy2 OLED/Encoder panel
The OLED is driven by an SSD1306, connected to the board via
I2C, the rotary encoder is connected to 3 GPIO pins.

Signed-off-by: Stefan Brüns <stefan.bruens@rwth-aachen.de>
2017-03-31 04:05:34 -05:00
Scott Lahteine baadb11536 Merge pull request #6174 from thinkyhead/rc_ubl_continued
UBL additional cleanup
2017-03-31 03:39:50 -05:00
Scott Lahteine 65ca6472ba Make G26 compatible with G92 and M206 2017-03-31 02:20:20 -05:00
Scott Lahteine 4902fd4e95 More data in UBL class, make it a static class
- Make all `unified_bed_leveling` data/methods static
- Move some UBL-related variables into the class
- Replace `map_[xy]_index_to_bed_location` with `mesh_index_to_[xy]pos`
2017-03-31 02:20:20 -05:00
Scott Lahteine edbc024d76 Disable UBL_G26_MESH_EDITING by default 2017-03-31 02:20:20 -05:00
Scott Lahteine 9e4bd6b3b5 Further repairs to UBL, comments, spacing 2017-03-31 02:20:20 -05:00
Bob-the-Kuhn f3618c3337 Reduce UBL RAM usage by making G26/G29 optional 2017-03-31 02:20:19 -05:00
Scott Lahteine e746d68a12 Merge pull request #6176 from thinkyhead/rc_mbl_abl_optimize
Make MBL a static class, use lookup for index-to-point conversion
2017-03-31 02:12:49 -05:00
Scott Lahteine c9eb1d6ab7 Make MBL a static class, use lookup for index-to-point conversion 2017-03-31 01:28:07 -05:00
Scott Lahteine de9d2cddc3 Merge pull request #6152 from thinkyhead/rc_cleanup_6150_etc
UBL cleanup, optimization
2017-03-30 17:40:29 -05:00
Scott Lahteine 9217e4b8ec Various UBL cleanups and bug fixes 2017-03-30 17:09:49 -05:00
Scott Lahteine 9924199802 Merge pull request #5908 from thinkyhead/rc_fix_slowdown
General minor cleanup
2017-03-29 21:43:33 -05:00
Scott Lahteine 0e71e7b2fb Cleanup to planner.cpp 2017-03-29 06:48:07 -05:00
Scott Lahteine f105cad43c Marlin: Slight cleanup to Marlin_main.cpp 2017-03-29 06:40:29 -05:00
Scott Lahteine 499f9e04e1 Marlin: Temperature soft-PWM cleanup 2017-03-29 06:37:27 -05:00
Scott Lahteine 7ddd94dc61 Merge pull request #5994 from StefanBruens/fix_Makefile_errors
Fix makefile errors, cleanup
2017-03-29 06:32:08 -05:00
Scott Lahteine af09095f03 Merge pull request #6154 from thinkyhead/rc_fil_sensor_vs_sd
Show Filament Width on LCD when SD is disabled
2017-03-29 05:24:48 -05:00
Remo Kallio d38b1bc4b1 Show filament width sensor values in LCD constantly if SD card support is not enabled. 2017-03-29 04:03:08 -05:00
Scott Lahteine e3459ec178 Merge pull request #5989 from MagoKimbra/rc_fix_delta_angles
Fix delta_angles
2017-03-29 03:35:18 -05:00
Scott Lahteine 592300922c Merge pull request #6149 from thinkyhead/rc_scara_feedrate
Convert feedrate on SCARA from mm/s to deg/s
2017-03-29 03:31:44 -05:00
Scott Lahteine f49aec057f Tweak "can not" => "can't" in RUMBA pins 2017-03-29 01:04:50 -05:00
Scott Lahteine 0a23a1bb3b Dynamic feedrate on SCARA, converting target mm/s to deg/s 2017-03-28 17:21:07 -05:00
Roxy-3D d8724bb546 Get G29's P1 (Automated Probing) working again.
Incorrect optimizations of data types and ternary operators caused some
issues.
2017-03-28 17:11:02 -05:00
Scott Lahteine 8d53298a6d Merge pull request #6139 from thinkyhead/rc_a4jp_scoovo
Board A4JP should be SCOOVO_X9H
2017-03-28 14:06:39 -05:00
Scott Lahteine c7f6ee9c93 Board A4JP should be SCOOVO_X9H 2017-03-27 22:22:13 -05:00
Scott Lahteine 8c07ac7f7c Merge pull request #6133 from thinkyhead/rc_use_safe_delay
Use safe_delay to ensure watchdog reset
2017-03-27 00:18:02 -05:00
Scott Lahteine a9fc30ae2e Use safe_delay to ensure watchdog reset 2017-03-26 23:49:56 -05:00
Roxy-3D 171904b6c7 Make G29 What command print reliably and fix G29 P1 bug Waldo found 2017-03-26 17:05:58 -05:00
Roxy-3D 9d3ac66f73 Map clean up of UBL
UBL's maps are cleaner.   And with a 1 value, G29 O 1  will generate a
map suitable to be Cut & Pasted into Excel so a Suface Map can be
generated.
2017-03-25 18:55:05 -05:00
Roxy-3D 9a1949a91e Cleaned up G26 ready to replace existing one at MarlinFirmware/Marlin 2017-03-25 10:15:40 -05:00
Roxy-3D aec85ad45a Start of process to get UBL running again.
The wait_for_user change totally broke UBL.   But there is stuff wrong
now in the thermal code and/or LCD Panel code.
2017-03-24 18:38:27 -05:00
Scott Lahteine b47eaf14ae Merge pull request #6109 from thinkyhead/rc_soft_pwm_dither
PWM dithering followup
2017-03-24 18:21:07 -05:00
Scott Lahteine 34d1c41b5f Merge pull request #6111 from benlye/benlye-patch-echo_command
Fix type conversion issue with echo_command
2017-03-24 17:57:28 -05:00
Scott Lahteine 7d65911c00 Merge pull request #6110 from thinkyhead/rc_bilinear_and_m851
Adjust bilinear grid in M851
2017-03-24 17:51:25 -05:00
benlye 6a601aca35 Fix type conversion issue with echo_command
With the the current definition of echo_command I cannot compile RCBugFix (Arduino IDE 1.8.1) with the error "invalid conversion from 'const char*' to 'char*'".  This change resolves that.
2017-03-24 17:23:02 +00:00
Scott Lahteine 009a6ddd39 Adjust bilinear grid in M851 2017-03-24 06:28:59 -05:00
Scott Lahteine eab7854a73 Merge pull request #6074 from thinkyhead/rc_immediate_shove
Immediate commands take precedence
2017-03-24 05:52:27 -05:00
Stefan Brüns 5699e2b881 Add SOFT_PWM_DITHER to other configurations 2017-03-24 05:02:24 -05:00
Scott Lahteine 5a2abeca78 Merge pull request #6100 from thinkyhead/rc_soft_pwm_dither
Enhancement of PWM, with dithering
2017-03-24 04:57:40 -05:00
Scott Lahteine 043be2856b Use "& 0x3F" instead of "% 64" 2017-03-24 04:13:50 -05:00
Stefan Brüns 6a040a6967 SOFT_PWM: Do not switch off heaters twice on pwm_count wraparound
After wraparound, pwm_count <= pwm_mask holds, thus soft_pwm_X <= pwm_count
guarantees soft_pwm_X < pwm_mask is true, and the heater will be switched
off in the first branch.
Do not evaluate the pwm conditions a second time, this reduces the
instruction count (4 instructions per PWM) and text size (6 byte).

Signed-off-by: Stefan Brüns <stefan.bruens@rwth-aachen.de>
2017-03-24 04:13:50 -05:00
Stefan Brüns 0a74774af1 soft_pwm: avoid useless refetches of pwm_count
The compiler is not able to reuse the value of pwm_count, but reloads it
on every evaluation, if is stored in a static variable, as it cannot prove
it will be unchanged. A variable with local scope may not be modified from
the outside, so its value can be reused.
Doing so reduces text size and instruction count.

Signed-off-by: Stefan Brüns <stefan.bruens@rwth-aachen.de>
2017-03-24 04:13:50 -05:00
Stefan Brüns 35a55d5757 SOFT_PWM: Implement dithering if SOFT_PWM_SCALE is 1 or more
If dithering is enabled, the remainder of the soft_pwm_X duty value at
turnoff time is added to the next cycle. If e.g. the duty is set to 9 and
SCALE is set to 2, the PWM will be active for 8 counts for 3 cycles and
12 counts on each fourth cycle, i.e. the average is 9 cycles.

This compensates the resolution loss at higher scales and allows running
fans with SOFT_PWM with significantly reduced noise.

Signed-off-by: Stefan Brüns <stefan.bruens@rwth-aachen.de>
2017-03-24 04:13:36 -05:00
Stefan Brüns 2aed66a955 temperature: Fix SOFT_PWM off by one
A 128 step PWM has 127 intervals (0/127 ... 127/127 duty). Currently, a
PWM setting of 1/127 is active for 2/128, i.e. double the expected time,
or, in general n+1/128 instead of n/127.
Fixes issue#6003.

Signed-off-by: Stefan Brüns <stefan.bruens@rwth-aachen.de>
2017-03-24 04:13:36 -05:00
Scott Lahteine 4433b63d7a Merge pull request #6099 from thinkyhead/rc_cleanup_ubl_1
Patch till UBL is integrated with planner-based leveling
2017-03-24 02:07:55 -05:00
Scott Lahteine b5711a99a2 Patches to bring UBL closer to compliance 2017-03-24 01:37:52 -05:00
Scott Lahteine d076c1b604 Apply some general cleanup to code 2017-03-24 01:37:51 -05:00
Scott Lahteine d1e6b0e21a Reduce STEP_PULSE_CYCLES code slightly 2017-03-24 00:50:05 -05:00
Scott Lahteine 783338a0b8 Add UBL_MESH_EDIT_ENABLED to configs 2017-03-24 00:44:55 -05:00
Scott Lahteine 8d54ffbf05 Adjust vector_3 code with const, some optimization 2017-03-23 19:41:42 -05:00
Roxy-3D 8ee2612ebb The hex nibble routine can print again!
The code to print a hex nibble got broke.   SERIAL_ECHO( (char) ) isn't
suitable for its use.
2017-03-23 16:08:37 -05:00
Roxy-3D b8e4a6970b Get UBL up and running again
All the changes to get the code into compliance with Marlin coding
standards made UBL sick.   This pretty much gets UBL back up and
running.
2017-03-23 16:08:37 -05:00
Roxy-3D 5de1da2b3c Make UBL honor the #define ENABLE_LEVELING_FADE_HEIGHT option 2017-03-23 16:08:37 -05:00
Scott Lahteine 8f9face956 Merge pull request #6088 from rafaljot/patch-3
Update Marlin_main.cpp
2017-03-23 01:51:51 -05:00
Scott Lahteine 782634b6c9 Merge pull request #6081 from Sebastianv650/MIN_STEPPER_PULSE_for_Babystepping
Add MINIMUM_STEPPER_PULSE ability to babystepping
2017-03-22 21:57:36 -05:00
Scott Lahteine d29ab8f2a6 Merge pull request #6075 from thinkyhead/rc_cleanup_ubl_1
Additional cleanup of UBL code
2017-03-22 21:45:59 -05:00
Scott Lahteine af2ea23e9c EXTRUDER_RUNOUT_PREVENT uses buffer_line_kinematic 2017-03-22 20:51:12 -05:00
Scott Lahteine cd882b88db #if defined => #ifdef / PIN_EXISTS 2017-03-22 20:51:11 -05:00
Scott Lahteine e244399766 Additional cleanup of UBL code 2017-03-22 20:51:10 -05:00
Bob-the-Kuhn 0934563b97 G38 optional double touch
Made the double touch portion a conditional compile based on the
PROBE_DOUBLE_TOUCH flag.

==============================================

Bugfix

The current G38 only stopped a move if it involved the Z axis.

Moved all the G38 code to it's own section and put it where it would
always be executed no matter what axis was moving or if the endstop was
enabled.

Also added a comment to configuration_adv to alert the user the double
tap had to be turned on.

==============================================

Change G38 back to using Z_MIN_PROBE

There's no Z_MIN endstop if Z_DUAL_ENDSTOPS is enabled and you have them
set to the top of the gantry.

G38 started out as using the Z_MIN_PROBE pin.  I don't remember why we
changed it to the Z_MIN endstop.
2017-03-22 15:08:49 -05:00
Scott Lahteine cc3204509c UBL patch from Bob-the-Kuhn 2017-03-22 07:54:20 -05:00
Scott Lahteine 100c9bc52d Merge pull request #6079 from thinkyhead/rc_audio_feedback
Standard audio feedback. Use for settings store/load/reset
2017-03-22 07:35:57 -05:00
Scott Lahteine b904b5ae8d Audible feedback for settings store/load/reset 2017-03-22 02:15:21 -05:00
Sebastianv650 bf57eb2447 Protect Babystepping against other ISRs
Especialy against stepper ISR.
This is even more important when a minimum pulse width is set,
increasing the runtime of a babystep.
2017-03-21 18:05:44 +01:00
Sebastianv650 80830919dc Add MINIMUM_STEPPER_PULSE ability to babystepping 2017-03-21 17:50:38 +01:00
rafaljot 6da949bbf0 Update Marlin_main.cpp
Sometimes after killing heaters are still on.
2017-03-21 15:06:01 +01:00
Roxy-3D 72f7b14e66 Make G29's Interactive Mesh Editor Work 2017-03-20 12:52:51 -05:00
Roxy-3D 3fd74b121f Get G29's Interactive Mesh Editor running
G29 P4 R O  should work now.
2017-03-20 12:52:51 -05:00
Roxy-3D 1d58558bec Spelling fix 2017-03-20 12:52:51 -05:00
Scott Lahteine 2573f4dd05 Merge pull request #6052 from thinkyhead/rc_lift_on_pause
Add PARK_HEAD_ON_PAUSE feature / M125
2017-03-20 03:36:31 -05:00
Scott Lahteine 48c6284c91 Immediate commands take precedence 2017-03-19 21:50:48 -05:00
Scott Lahteine 786fe2ba2a Include PARK_HEAD_ON_PAUSE in Travis testing 2017-03-19 18:34:58 -05:00
Roxy-3D b3c4f71c6f Merge pull request #6071 from Roxy-3D/RCBugFix
Allow FWRETRACT with UBL Enabled
2017-03-19 16:54:57 -05:00
Roxy-3D 76c270fdf2 Allow FWRETRACT with UBL Enabled
The retraction flag in UBL's G26 was conflicting with the FWRETRACT option.

All fixed!
2017-03-19 15:43:12 -06:00
Roxy-3D 06c31daa53 Merge pull request #6070 from Roxy-3D/RCBugFix
Allow G29 P1 R to generate the mesh
2017-03-19 16:34:48 -05:00
Roxy-3D c377c59d47 Allow G29 P1 R to generate the mesh
Fix the logic change that happened when UBL got merged.
2017-03-19 15:13:33 -06:00
Scott Lahteine ff0dd162b7 PARK_HEAD_ON_PAUSE implementation 2017-03-19 07:27:35 -05:00
Scott Lahteine 26473cab6d Add PARK_HEAD_ON_PAUSE feature 2017-03-19 05:06:55 -05:00
Scott Lahteine 4cf51157b3 Use XYZE rather than NUM_AXIS 2017-03-19 01:14:39 -05:00
Scott Lahteine 4c7f14752a Add disable_e_steppers function 2017-03-19 01:14:39 -05:00
Scott Lahteine 8eb29f91e6 Patch filament change options and beep code 2017-03-19 01:14:39 -05:00
Scott Lahteine 56c9dfc83b Merge pull request #6066 from thinkyhead/rc_felix_fix
Update Felix config for UBL
2017-03-19 01:11:02 -05:00
Scott Lahteine 9b2b53f63a Merge pull request #6042 from thinkyhead/rc_fix_toolchange_z
Move Z last in tool-change for SWITCHING_EXTRUDER
2017-03-19 00:34:41 -05:00
Scott Lahteine f98fb6b38e Update Felix config for UBL 2017-03-19 00:28:48 -05:00
Scott Lahteine 7cabe81373 Merge pull request #6057 from thinkyhead/rc_followup_6054
Followup 6054 with some cleanup
2017-03-18 13:49:20 -05:00
Scott Lahteine 4bca27ab89 Fix Kelvin conversion
Thanks to @ospalh -- #6056
2017-03-18 13:23:08 -05:00
Scott Lahteine 143ab8f329 Remove Roxy's personal configurations 2017-03-18 12:35:02 -05:00
Scott Lahteine 2512871a36 Patch configs UBL followup 2017-03-18 12:32:03 -05:00
Scott Lahteine 27b5666e15 Move Allen Key probe definition to the top 2017-03-18 12:27:37 -05:00
Scott Lahteine 77cf648ed3 Move menu selection past static items in 1 screen 2017-03-18 12:26:21 -05:00
Scott Lahteine 2c630a1b5c Merge pull request #6054 from thinkyhead/rc_ubl_renewal
UBL for RCBugFix — cleanup, rebase, patch
2017-03-18 12:07:57 -05:00
Scott Lahteine 0492a3a8f1 Merge pull request #6027 from Bob-the-Kuhn/add_kill_info
Message for every KILL and STOP
2017-03-18 11:49:35 -05:00
Scott Lahteine fba22652fc Add UBL testing to Travis 2017-03-18 11:35:21 -05:00
Scott Lahteine 6618346148 Patches to work around "register spill" compiler bug 2017-03-18 11:35:21 -05:00
Scott Lahteine be7dd90382 Add Thermistor 75: MGB18 silicon pad 2017-03-18 11:35:20 -05:00
Scott Lahteine f890ceba9e Add 'tags' to .gitignore 2017-03-18 11:35:20 -05:00
Scott Lahteine b0a9c82c31 Fix single-char echo and pinMode usage 2017-03-18 11:35:20 -05:00
Scott Lahteine fb60aa3736 UBL implementation 2017-03-18 11:35:20 -05:00
Scott Lahteine 238b8fd2a3 UBL core and support files 2017-03-18 11:35:19 -05:00
Scott Lahteine cf94688925 Univeral Bed Leveling - configuration 2017-03-18 11:35:19 -05:00
Scott Lahteine 03aa424ccb Merge pull request #6053 from thinkyhead/rc_clean
Remove extraneous whitespace
2017-03-18 03:26:45 -05:00
Scott Lahteine af644871bf Merge pull request #6045 from thinkyhead/rc_remove_raw_kinematics
Remove delta optimization concepts… for now
2017-03-18 03:26:24 -05:00
Scott Lahteine 77491dd924 Remove extraneous whitespace 2017-03-18 03:17:39 -05:00
Scott Lahteine ed4f9d7e1c Merge pull request #6046 from robbycandra/RCBugFix-ignore_visual_studio_files
Ignore Visual Studio Files
2017-03-17 22:25:01 -05:00
Scott Lahteine d15f25539b Merge pull request #6031 from thinkyhead/rc_mbl_z_unhack
MBL: Disable sw endstops instead of altering Z
2017-03-17 17:20:35 -05:00
Robby Candra 0dada36e5a Ignore Visual Studio Files 2017-03-17 22:13:46 +07:00
Scott Lahteine b865b21d32 Can't use Z fade height with DELTA 2017-03-17 08:34:47 -05:00
Scott Lahteine 1e57b0c269 Remove delta interpolation concept 2017-03-17 06:32:11 -05:00
Scott Lahteine e46898f8e5 Remove kinematic optimizations 2017-03-17 06:30:22 -05:00
Scott Lahteine 11f1fdfab4 _lcd_level_bed_position => manual_probe_index 2017-03-17 06:05:17 -05:00
Scott Lahteine 0e410c9dfd Software endstop options as simple switches 2017-03-17 06:05:17 -05:00
Scott Lahteine d01b915085 Implement soft_endstops_enabled for clamping 2017-03-17 06:05:17 -05:00
Scott Lahteine e4649c9044 Add HAS_SOFTWARE_ENDSTOPS macro 2017-03-17 06:05:17 -05:00
Scott Lahteine 3e927ff204 Replace MBL Z hacking 2017-03-17 06:05:17 -05:00
Scott Lahteine 4e53124681 Merge pull request #6039 from Bob-the-Kuhn/M114-sync-with-stepper
M114 - wait for move completion before reporting position
2017-03-17 05:22:46 -05:00
Scott Lahteine 734f9ea133 Merge pull request #6040 from thinkyhead/rc_sanity_use_assert
Simplify some sanity checks with static_assert
2017-03-17 05:22:17 -05:00
Scott Lahteine f02af83d42 Remove some extraneous spaces 2017-03-16 23:59:11 -05:00
Scott Lahteine 672e45652e Improved solution to tool-change bug 2017-03-16 23:59:10 -05:00
Scott Lahteine 23f1cfb46f Fix stuck CHDK pin as suggested in #6041 2017-03-16 21:49:39 -05:00
Scott Lahteine 0b22069e82 Merge pull request #6021 from Bob-the-Kuhn/BUG-FIX--Switching-extruder-tool-change-Z-height
Bug Fix: Switching extruder tool change leaves Z in wrong position
2017-03-16 21:15:20 -05:00
Scott Lahteine e7e4500629 Simplify some sanity checks with static_assert 2017-03-16 16:31:34 -05:00
Bob-the-Kuhn 34ff0c3439 M114 - wait for move completion before reporting position 2017-03-16 15:10:45 -05:00
Bob-the-Kuhn b31604a492 Message for every KILL and STOP
No more mystery halts & resets

Moved messages to language.h

Added current command to inactive timeout message
2017-03-15 21:05:11 -05:00
Roxy-3D 48925b7298 Merge pull request #6032 from Kaibob2/patch-7
Update language_de.h
2017-03-15 10:31:09 -05:00
Kai 13b44d019b Update language_de.h
Addition of missing strings to match language_en.h
2017-03-15 16:06:52 +01:00
Bob-the-Kuhn 685ed5393a Bug Fix: Switching extruder tool change leaves Z in wrong position
The tool_change function saves the current_position to the destination
array soon after starting.  Later in the switching extruder section, the
destination array is modified when moving the Z axis up & down.  A later
section of tool_change moves the head back to the “original location”
using the destination array.  This later section assumes that the
destination array hasn’t been modified.

The fix is to save the destination Z position and then restore it after
the Z movements have completed.

Going back to using the current_position array for the switching
extruder Z axis moves (and  leaving the destination array untouched)
doesn’t fix the problem.

This bug was introduced by the “Make tool_change kinematic compatible”
commit # 847429eff4 which was merged on 10
Oct 2016 as part of PR 4982.

This bug was discovered in Issue 5966.
2017-03-14 02:36:24 -05:00
Scott Lahteine 51353f8fea Merge pull request #6000 from trivalik/NoWorkspaceWarning
prevent warning with define of NO_WORKSPACE_OFFSETS
2017-03-12 00:00:51 -06:00
Scott Lahteine 54dada56a7 Merge pull request #6010 from MagoKimbra/rc_fix_bug_set_position_mm
Fix BUG set_position_mm
2017-03-12 00:00:16 -06:00
MagoKimbra a4a9bd8bc9 Fix BUG set_position_mm
Set postion must have axis and not E_AXIS + active_extruder.
2017-03-11 14:13:39 +01:00
Trivalik 71ac6f9d42 prevent warning with define of NO_WORKSPACE_OFFSETS 2017-03-09 23:49:57 +01:00
Stefan Brüns 9ba6c051a1 Makefile: add nozzle.cpp too CXXSRC list
The file is required by the optional NOZZLE_PARK_FEATURE.

Signed-off-by: Stefan Brüns <stefan.bruens@rwth-aachen.de>
2017-03-09 03:08:49 +01:00
Stefan Brüns 9cc8d495b8 Makefile: remove no longer existing search paths
ArduinoAddons has been removed from Marlin, remove any references to it.
Replace HARDWARE_SRC and HARDWARE_DIR with its expanded equivalents.

Signed-off-by: Stefan Brüns <stefan.bruens@rwth-aachen.de>
2017-03-09 01:46:47 +01:00
Stefan Brüns bf563e62c1 Makefile: add printcounter.cpp too CXXSRC list
The file is required by the optional PRINTCOUNTER feature.

Signed-off-by: Stefan Brüns <stefan.bruens@rwth-aachen.de>
2017-03-09 01:45:54 +01:00
Stefan Brüns ddecc1441d Makefile: Fix linker error
Instantiation of the static singleton instance thermalManager in general
requires locking, but we know its safe to do without.

Add -fno-threadsafe-statics to avoid using locking primitives, which
result in linking errors:
	undefined reference to `__cxa_guard_acquire'
	undefined reference to `__cxa_guard_release'

Signed-off-by: Stefan Brüns <stefan.bruens@rwth-aachen.de>
2017-03-09 01:45:38 +01:00
MagoKimbra 37a26dfc09 Fix delta_angles 2017-03-08 09:23:30 +01:00
Scott Lahteine 6caf0830ae Merge pull request #5985 from thinkyhead/rc_better_endstops_init
Use SET_INPUT_PULLUP where appropriate
2017-03-08 00:08:30 -06:00
Scott Lahteine 2defb1d748 Use SET_INPUT_PULLUP where appropriate 2017-03-07 23:43:33 -06:00
Scott Lahteine deb9d0dabd Merge pull request #5984 from thinkyhead/rc_delta_angles
Add delta_tower_angle_trim
2017-03-07 19:41:24 -06:00
Scott Lahteine 58b3e98878 Use arrays for delta tower parameters 2017-03-07 19:00:22 -06:00
Scott Lahteine 47242a40bb Apply updated changes for delta_tower_angle_trim 2017-03-07 18:15:11 -06:00
Jimmy Envall 00b6b3da79 Added support for delta tower angle corrections. 2017-03-07 16:35:58 -06:00
Scott Lahteine 7c9e2e2a1a Merge pull request #5981 from thinkyhead/rc_tmc2130_redo
TMC2130 Library: @teemuatlut replaces @makertum
2017-03-07 16:23:52 -06:00
Scott Lahteine 5a456c832a Apply TMC2130 to example configurations 2017-03-07 04:22:06 -06:00
Scott Lahteine 45f949d833 TMC2130 Library: @teemuatlut replaces @makertum 2017-03-07 04:22:06 -06:00
Scott Lahteine 33f8a8a344 Merge pull request #5973 from thinkyhead/rc_circle_pattern
Add circle pattern to nozzle clean
2017-03-06 04:47:01 -06:00
Scott Lahteine 94b3e0a483 Merge pull request #5959 from benlye/benlye-fixm48
Remove extra carriage return in M48 V1 output
2017-03-06 04:24:28 -06:00
Scott Lahteine a9a1971295 Merge pull request #5972 from thinkyhead/rc_cooldown_before
Fix preheat menu formatting
2017-03-06 03:21:29 -06:00
Scott Lahteine 6aa81255a9 Patch and clean up "flsun" kossel. Followup to #5911. 2017-03-06 03:15:00 -06:00
Scott Lahteine b2270b3f3e Apply prior nozzle clean update 2017-03-06 03:14:59 -06:00
Marek Pikuła 7698c5617a Added circle nozzle cleaning parameters to example configurations 2017-03-06 03:04:58 -06:00
Marek Pikuła 6836b94eea Added circle pattern for nozzle cleaning feature 2017-03-06 03:03:00 -06:00
Scott Lahteine 3b75518ef6 Merge pull request #5911 from aphex3k/flsun_kossel_mini
Configuration.h and Configuration_adv.h for the kossel mini by flsun
2017-03-06 02:26:01 -06:00
Scott Lahteine 3830778852 Apply NO_WORKSPACE_OFFSETS to lcd menu 2017-03-06 02:21:42 -06:00
Scott Lahteine 7e3aab889d Fix preheat menu formatting 2017-03-06 02:07:07 -06:00
Scott Lahteine fea0d3f20f Endstop and temp-isr general cleanup 2017-03-06 02:07:07 -06:00
Scott Lahteine aef08e8780 Compact some macro substitutions 2017-03-06 02:07:07 -06:00
Scott Lahteine 2f620f86d9 Merge pull request #5970 from thinkyhead/rc_cooldown_before
Preheat Hotend Only menu items
2017-03-06 01:56:05 -06:00
Scott Lahteine 02de8e6f18 Merge pull request #5957 from MagoKimbra/rc_stepper_indirection_fix
Stepper indirection fix tmc driver
2017-03-06 01:16:40 -06:00
Scott Lahteine 6c5312559c Menu item to preheat only the hotend 2017-03-06 01:14:54 -06:00
Scott Lahteine 9d0142e8ae Move Change Filament above Cooldown 2017-03-06 01:13:12 -06:00
Scott Lahteine 0c55095c5e Move Cooldown above Preheat 2017-03-06 01:13:12 -06:00
Scott Lahteine c15c65f18a Merge pull request #5971 from thinkyhead/rc_fix_e_factors
Patch DISTINCT_E_FACTORS bug
2017-03-06 01:11:17 -06:00
Scott Lahteine bfb0007573 Patch DISTINCT_E_FACTORS bug 2017-03-05 23:19:31 -06:00
Scott Lahteine be98016674 Merge pull request #5963 from thinkyhead/rc_no_offsets_optim
New option: NO_WORKSPACE_OFFSETS
2017-03-05 21:46:49 -06:00
Scott Lahteine 8e89a802f7 Document PROTOCOL_VERSION 2017-03-05 04:43:46 -06:00
Scott Lahteine 87b03b16bd Use a macro for array copies 2017-03-05 04:43:46 -06:00
Scott Lahteine e141f3a03f Optimize coordinate transformation
Pre-compute the combined position shift and home offset to save a
single float fetch-and-add per conversion. Great for delta/scara and
bed leveling.
2017-03-05 04:43:16 -06:00
Scott Lahteine 5f7e85398b Implement NO_WORKSPACE_OFFSETS 2017-03-05 04:43:15 -06:00
Scott Lahteine 05abe853f9 New option: NO_WORKSPACE_OFFSETS 2017-03-05 04:43:15 -06:00
Scott Lahteine 20addc6e32 Merge pull request #5955 from thinkyhead/rc_eeprom_fail_better
Display a message for EEPROM version mismatch
2017-03-04 17:15:07 -06:00
benlye dead89062a Update Marlin_main.cpp
Remove unnecessary line break from M48 V1 output.
2017-03-04 17:58:10 +00:00
MagoKimbra ae277aebc6 Stepper indirection fix tmc driver 2017-03-04 12:17:39 +01:00
Scott Lahteine 8f4e4b1995 Display a message for EEPROM version mismatch 2017-03-04 01:20:36 -06:00
Scott Lahteine 177ad245f6 Merge pull request #5953 from thinkyhead/fix_fc_e_index
Fix submenu hotend status display
2017-03-04 00:12:29 -06:00
Scott Lahteine cea3ea772c Fix submenu hotend status display 2017-03-03 22:12:22 -06:00
Scott Lahteine b27f69ba51 Merge pull request #5813 from thinkyhead/rc_fix_makrpanel
Fix MAKRPANEL assignments
2017-03-03 21:40:49 -06:00
Scott Lahteine 1ef6ccd919 Merge pull request #5951 from thinkyhead/rc_print_2d_array
Reduce code size (40b, or 166b with bilinear subdivision)
2017-03-03 21:27:44 -06:00
Scott Lahteine b9b203bfb2 Merge pull request #5950 from thinkyhead/rc_cleanup_mar3
General cleanup, const usage, var naming
2017-03-03 21:25:34 -06:00
Scott Lahteine 53f5086905 Fix MAKRPANEL assignments
MAKRPANEL is a DOGLCD+ULTRA_LCD+NEWPANEL so customize its pins within
that block.
2017-03-03 21:22:21 -06:00
Scott Lahteine 98c7b682ca General cleanup, const usage, var naming 2017-03-03 20:57:49 -06:00
jes 369bfc8a1e Reduce code size (40b, or 166b with bilinear subdivision) 2017-03-03 20:36:32 -06:00
Scott Lahteine 21fb347eee Merge pull request #5948 from thinkyhead/rc_fix_status_printf
Fix "Heating..." message
2017-03-03 12:28:27 -06:00
Scott Lahteine 0d13412105 Fix "Heating..." message 2017-03-03 12:12:51 -06:00
Scott Lahteine 5065636023 Merge pull request #5934 from thinkyhead/rc_advance_ed_ratio
LIN_ADVANCE: Fixed E/D ratio option
2017-03-03 03:24:41 -06:00
Scott Lahteine 903808bb97 Merge pull request #5943 from thinkyhead/catalan_march_2017
Update Catalan language
2017-03-03 03:13:51 -06:00
divendres 75ad82baab Update Catalan language 2017-03-02 20:40:06 -06:00
Scott Lahteine 34253497d4 Babysteps code tweak
As suggested by https://github.com/MarlinFirmware/Marlin/pull/5887#issuecomment-283832163
2017-03-02 20:35:45 -06:00
Scott Lahteine e309e980ce Merge pull request #5942 from thinkyhead/rc_cleanup_finish_5887
Clean up and finish #5887
2017-03-02 20:26:13 -06:00
Scott Lahteine fb4aead2b1 Clean up and finish #5887 2017-03-02 20:16:29 -06:00
Scott Lahteine b3e2bd6f29 Reduce E_D_ratio code 2017-03-02 01:00:37 -06:00
Sebastianv650 de6c40ed8f Add option to fix E/D ratio
Work around for slicers producing buggy gcode.
2017-03-02 01:00:37 -06:00
Scott Lahteine eeb490221f Remove BEEPER_PIN override in pins_RIGIDBOARD.h
Resolves #5926. This override is no longer needed since the RAMPS LCD controller pins were fixed.
2017-03-01 18:26:29 -06:00
Roxy-3D 11e892bd84 Merge pull request #5887 from Roxy-3D/RCBugFix
Double Click of Encoder Wheel Jumps to Z-BabyStepping
2017-03-01 17:15:02 -07:00
Scott Lahteine cbeff12f8a Merge pull request #5933 from teemuatlut/lcd_days_hours
Fix formatting of SD print time hours above one day
2017-03-01 15:44:10 -06:00
Scott Lahteine 8a4e9d08a3 Merge pull request #5931 from thinkyhead/rc_core_endstop_fix
Fix CoreYX / YZ / ZX endstop logic
2017-03-01 15:32:11 -06:00
teemuatlut 9175d16660 Fix formatting of print time hours above one day 2017-03-01 18:55:25 +02:00
Scott Lahteine b6d9eb229f Extend Core endstop commentary 2017-03-01 10:01:50 -06:00
Bob-the-Kuhn c5e08e8761 CoreYX/YZ/ZX needs different endstop logic than CoreXY/YZ/XZ
In the endstop testing section, add the "reverse" logic in addition to "normal" core handling.

In CoreXY/YZ/XZ steppers rotating the same direction gives X movement. Opposing directions produces Y movement.

In CoreYX/ZY/ZX this is reversed. Same = Y, Opposite = X.

----

Fixes the issue where the Y endstop was being checked when moving in the X direction, etc.
2017-03-01 09:40:24 -06:00
Scott Lahteine 05b217c0d0 Merge pull request #5930 from thinkyhead/rc_lcd_timeout_config
Make LCD_TIMEOUT_TO_STATUS configurable
2017-02-28 19:42:27 -06:00
Scott Lahteine c759c26cca Make LCD_TIMEOUT_TO_STATUS configurable
As suggested in
https://github.com/MarlinFirmware/Marlin/issues/5570#issuecomment-283059
065
2017-02-28 19:02:50 -06:00
Michael Henke 47729918fc enable ENSURE_SMOOTH_MOVES 2017-02-27 20:42:49 -08:00
Michael Henke 330b981912 created Configuration.h and Configuration_adv.h for the kossel mini sold by flsun 2017-02-25 21:31:37 -08:00
Scott Lahteine 493e738575 Merge pull request #5910 from thinkyhead/rc_more_nozzle_wipe
Bidirectional Zig-Zag Nozzle Wipe
2017-02-25 22:03:33 -06:00
Colin Gilgenbach 48b7e0f8d8 Nozzle Wipe Vertical Zig-Zag
- Add configuration support for zigzags in either the X or Y axis, for
wipe pads significantly longer in one dimension.
- Add configuration for default number of zig-zag triangles, vs. a
magic number in `Marlin_main.cpp`.
- Update description of auto nozzle wiping to match functionality
2017-02-25 21:52:43 -06:00
Scott Lahteine f17b81b765 Add MAPPER_C2C3 to French language 2017-02-25 18:49:00 -06:00
Roxy-3D 7e607b06eb Better comments on DOUBLE_CLICK_TIME_WINDOW 2017-02-23 13:13:57 -07:00
Scott Lahteine f9e4717f5b Merge pull request #5892 from thinkyhead/rc_msg_heating_pstr
Use PSTR for MSG_HEATING
2017-02-22 12:26:08 -06:00
Scott Lahteine 34cba42104 Use PSTR for MSG_HEATING 2017-02-22 11:30:19 -06:00
Roxy-3D 584d147a02 fixup the indentation 2017-02-22 07:23:54 -07:00
Roxy-3D e443e0e2a9 Fix scoping issues for double click to Z-Babystepping 2017-02-21 18:15:28 -07:00
Roxy-3D 17d1cd7c09 Double Click of Encoder Wheel Jumps to Z-BabyStepping 2017-02-21 18:08:19 -07:00
Roxy-3D 48d862377a Double Click of Encoder Wheel Jumps to Z-BabyStepping 2017-02-21 18:04:31 -07:00
Scott Lahteine cfdc189796 Merge pull request #5856 from thinkyhead/rc_fix_bad_comment
Remove non-applicable comment on MANUAL_Z_HOME_POS
2017-02-20 17:54:30 -06:00
Scott Lahteine 2efdc72aa5 Merge pull request #5876 from thinkyhead/rc_hotend_status
Add status_printf to print messages to the lcd status line.
2017-02-20 17:29:27 -06:00
dot-bob cd68380ce6 Add status_printf to print messages to the lcd status line.
Also add a hotend indicator to the heating message displayed on the lcd status line.
2017-02-20 15:26:54 -06:00
Scott Lahteine 012aff6823 Merge pull request #5862 from thinkyhead/rc_fix_a_thing
Finish reducing of ABL_BILINEAR_SUBDIVISION
2017-02-18 21:36:28 -06:00
Scott Lahteine b9187020c4 Finish reducing of ABL_BILINEAR_SUBDIVISION 2017-02-18 20:01:19 -06:00
Scott Lahteine e282b72151 Remove non-applicable comment on MANUAL_Z_HOME_POS 2017-02-18 05:14:43 -06:00
Scott Lahteine 49d562d23d Merge pull request #5855 from thinkyhead/rc_followup_5840
Apply DISTINCT_E_FACTORS to sync_from_steppers
2017-02-18 04:51:01 -06:00
Scott Lahteine 57f92a4632 Apply DISTINCT_E_FACTORS to sync_from_steppers
Followup to #5840
2017-02-18 04:36:41 -06:00
Scott Lahteine 4da8b1494b Merge pull request #5854 from thinkyhead/rc_fixup_m600
M600 cleanup and bugfix
2017-02-18 04:27:13 -06:00
Scott Lahteine dd02dba6e6 Merge pull request #5840 from MagoKimbra/rc_fix_lin_advanced_step_to_mm
Fix steps_to_mm for active extruders
2017-02-18 04:25:53 -06:00
Scott Lahteine 6e0b3fcc08 Optimize M600 heater status LCD items 2017-02-18 04:08:00 -06:00
Scott Lahteine 44b4e116bd Commentary / style in gcode_M600 2017-02-18 04:08:00 -06:00
Scott Lahteine 561904345f Tweak config ordering for M600 2017-02-18 00:01:31 -06:00
Scott Lahteine 7fdc620ef7 Merge pull request #5850 from thinkyhead/drop_some_comments
Remove some old code comments
2017-02-17 16:45:44 -06:00
Scott Lahteine 284d6de9da Remove some old code comments 2017-02-17 15:25:56 -06:00
MagoKimbra 3685224c1a Fix steps_to_mm for active extruders 2017-02-15 21:45:39 +01:00
Scott Lahteine babe1d211c Merge pull request #5794 from thinkyhead/rc_m600_improve
M600 wait for heatup, prevent stepper timeout, etc.
2017-02-15 05:38:06 -06:00
Scott Lahteine 4578c573fe Pause the print job timer while in M600 2017-02-15 05:29:34 -06:00
Scott Lahteine bfe6f71794 Simplify filament_change_beep function 2017-02-15 05:29:34 -06:00
Scott Lahteine 8289ea1316 Use a short name for the filament "endstop" 2017-02-15 05:29:34 -06:00
Scott Lahteine d9dcef8a87 Spacing, coding standards 2017-02-15 05:29:34 -06:00
Scott Lahteine 931914e679 Apply M600 updates to all configs 2017-02-15 05:29:34 -06:00
Roxy-3D 8bf0b496b9 Improve M600 with timeout, wait for heatup. 2017-02-15 05:29:34 -06:00
Scott Lahteine 58b8e0cae7 Merge pull request #5837 from thinkyhead/rc_fix_mbl_homing
Fix broken homing in MBL
2017-02-15 04:48:30 -06:00
Tannoo c40fe2113c Fix for broken MBL
LCD call was waiting forever, causing the system to hang.
2017-02-15 04:39:22 -06:00
Scott Lahteine 4d4745c0eb Parenthesize some menu defines for safety 2017-02-14 23:12:27 -06:00
Scott Lahteine 20ef0a6e27 Merge pull request #3152 from thinkyhead/sd_alpha_sort
SD files alphabetical sort in LCD menus
2017-02-14 21:48:57 -06:00
Scott Lahteine 47f9883b0f Dynamic allocation for SDCARD_SORT_ALPHA 2017-02-14 21:37:25 -06:00
Scott Lahteine a561bd5e3a New feature: SDCARD_SORT_ALPHA 2017-02-14 21:37:24 -06:00
Scott Lahteine c04d6b5aa6 Merge pull request #5829 from thinkyhead/rc_fix_isr_reentry
Combine fixes for LIN_ADVANCE and temperature ISR
2017-02-14 20:36:58 -06:00
Scott Lahteine 467f01435f Merge pull request #5816 from thinkyhead/rc_abl_virt_reduce
Reduce memory use by ABL_BILINEAR_SUBDIVISION slightly
2017-02-14 08:41:44 -06:00
Scott Lahteine 97b6fb6381 Reduce / optimize LIN_ADVANCE code 2017-02-14 07:52:03 -06:00
Sebastianv650 271ced7341 Prevent re-entering of temperature ISR
If Marlin is inside the temperature ISR, the stepper ISR is enabled. If
a stepper event is now happening Marlin will proceed with the stepper
ISR. Now, at the end of the stepper ISR, the temperatre ISR gets enabled
again. While Marlin proceed the rest of the temperature ISR, it's now
vulnerable to a second ISR call.
2017-02-14 07:52:03 -06:00
Sebastianv650 1b59766fcb Cleanup position_float
Hopefully fixes Marlin #5481
2017-02-12 13:09:06 +01:00
Scott Lahteine a950c31e2d Merge pull request #5815 from thinkyhead/rc_pulses_per_step
Give encoder pulse/steps conditionals their own block
2017-02-12 04:14:00 -06:00
Scott Lahteine 7176de8605 Merge pull request #5814 from thinkyhead/hotend_loop_always
Make HOTEND_LOOP more consistent, let compiler optimize it
2017-02-12 04:13:14 -06:00
Scott Lahteine adec219ca5 Merge pull request #5811 from thinkyhead/fix_two_strings
No space after X: or A: in M114 output
2017-02-12 04:11:51 -06:00
jes eaa829b58c Reduce memory use by ABL_BILINEAR_SUBDIVISION slightly 2017-02-12 04:09:48 -06:00
Scott Lahteine 1c99ca82d8 Give encoder pulse/steps conditionals their own block 2017-02-12 03:57:57 -06:00
Scott Lahteine e44294bb4d Make HOTEND_LOOP more consistent, let compiler optimize it 2017-02-12 02:50:38 -06:00
Scott Lahteine 701f4a6d9d Merge pull request #5729 from Bob-the-Kuhn/guaranteed-BLTouch-detection
guaranteed BLTouch detection
2017-02-12 01:13:35 -06:00
Scott Lahteine c15b9a6a06 No space after X: or A: in M114 output 2017-02-12 00:10:03 -06:00
Scott Lahteine e1702816f6 Fix SD_CHECK_AND_RETRY condition
Addressing #5806
2017-02-11 23:55:56 -06:00
Scott Lahteine c64ecf95e2 Merge pull request #5808 from thinkyhead/rc_delta_float_radius
Cast DELTA_PRINTABLE_RADIUS to float in sq()
2017-02-11 23:43:46 -06:00
Scott Lahteine 1bc5be3bdf Cast DELTA_PRINTABLE_RADIUS to float in sq()
Addressing #5625
2017-02-11 23:28:39 -06:00
Bob-the-Kuhn 0369f97ec1 guaranteed BLTouch detection
To guarantee that the 5mS pulse from a BLTouch is recognized you need to
have the endstops.update() routine run twice in that 5mS period.

At 200 steps per mm, my system has problems  below a feedrate of 120 mm
per minute.

Two things were done to guarantee the two updates within 5mS:
1) In interrupt mode, a check was added to the temperature ISR.  If the
endstop interrupt flag/counter is active then it'll kick off the endstop
update routine every 1mS until the flag/counter is zero.  This
flag/counter is decremented by the temperature ISR AND by the stepper
ISR.

2) In poling mode, code was added to the stepper ISR that will make sure
the ISR runs about every 1.5mS.  The "extra" ISR runs only check the
endstops.  This was done by grabbing the intended ISR delay and, if it's
over 2.0mS, splitting the intended delay into multiple smaller delays.
The first delay can be up to 2.0mS, the next ones 1.5mS (as needed) and
the last no less than 0.5mS.

=========================================

BLTouch error state recovery

If BLTouch already active when deploying the probe then try to reset it
& clear the probe.

If that doesn't fix it then declare an error.

Also added BLTouch init routine to startup section
2017-02-11 12:01:34 -06:00
Scott Lahteine 1e4d4e5915 Fix typo in language_uk
Thanks to @pavlus for this one
2017-02-10 15:34:31 -06:00
Scott Lahteine 7fe7a0c8be Merge pull request #5793 from thinkyhead/rc_adjust_probe_output
Adjust probe_pt() terminal output to respect probe z-offset
2017-02-09 23:05:02 -06:00
Scott Lahteine 633c253bc1 Merge pull request #5792 from thinkyhead/rc_default_dac_vals
Default DAC values for RigidBoard V2
2017-02-09 22:56:03 -06:00
Florian Heilmann 7bbc31704c Adjust probe_pt() terminal output to respect probe z-offset 2017-02-09 22:54:22 -06:00
Scott Lahteine 6dac1fe07e Merge pull request #5701 from tohara/RCBugFixCmake
Updated CMakeLists
2017-02-09 22:45:05 -06:00
Scott Lahteine a245656db3 Merge pull request #5713 from gege2b/RCBF-French
French translation : Added missing strings as well as missing accents
2017-02-09 22:43:56 -06:00
jaysonkelly 713931338a Default DAC values for RigidBoard V2 2017-02-09 22:39:00 -06:00
Scott Lahteine fb11e52cd2 Merge pull request #5787 from thinkyhead/rc_bob_pins_added
pinsDebug for 644/1284 & USB646/1286 families
2017-02-09 15:07:55 -06:00
Bob-the-Kuhn ae706233a8 pinsDebug for 644/1284 & USB646/1286 families
added conditional compilation for PWMs 1C & 3C

add Teensyduino compatibility

==========================================

changes per review - minor formatting changes

1) remove non-printable character at the end of line 687

2) split a really long comment into two lines

3) got rid of some trailing spaces

============================================

Made pinsDebug_Teensyduino.h the same between this PR and PR 5668 which
is for a re-written pinsDebug.h file.

The changes were:
1) added copyright @ GNU license header
2) a blank line crept in.
2017-02-09 07:24:02 -06:00
Gege2B 22dfcc9a71 French translation : Added missing strings as well as missing accents 2017-01-17 23:29:23 +01:00
Tom Haraldseid 1d65b4b316 Updated CMakeLists 2017-01-15 13:39:26 +08:00
Scott Lahteine 9b5515926a Merge pull request #5696 from thinkyhead/rc_volumetric_default
Allow enabling volumetric filament on config load
2017-01-14 05:48:51 -08:00
Robert Kirk 0d147ead66 Allow enabling volumetric filament on config load 2017-01-14 04:37:49 -08:00
Scott Lahteine d3cb1a86be Merge pull request #5691 from AnHardt/fix5677
Fix M110 without leading N
2017-01-14 03:22:26 -08:00
AnHardt fa26767efe Replace all remaining 'boolean' with 'bool' 2017-01-13 13:03:52 +01:00
AnHardt f6858d9974 Fix M110 without leading N
Store N in the right variable.
This is too rarely used.

"mea culpa, mea culpa, mea maxima culpa"
2017-01-13 12:33:50 +01:00
Scott Lahteine 0c0c840ba8 Merge pull request #5683 from emartinez167/EMartinez-Changes
Updates to some incorrectly ended strings in the Spanish translation
2017-01-12 07:49:15 -08:00
Scott Lahteine 738b87091a Merge pull request #5684 from Kaibob2/patch-6
Update language_de.h
2017-01-12 07:48:41 -08:00
Kai 25dae3bccc Update language_de.h
Small corrections
2017-01-12 16:06:58 +01:00
emartinez167 7292145f4e Fix for some wrong strings
On last commit, some strings were ended with the incorrect character.
This fixes it.
2017-01-12 22:35:04 +08:00
emartinez167 3dee35888e Merge remote-tracking branch 'MarlinFirmware/RCBugFix' into EMartinez-Changes 2017-01-12 22:22:52 +08:00
Scott Lahteine 93a9aa6b76 Merge pull request #5682 from thinkyhead/rc_spanish_jan
Updates to Spanish language
2017-01-12 06:14:10 -08:00
Scott Lahteine 7a9c1a279b Merge pull request #5681 from thinkyhead/rc_prevent_boot_loop
Reset watchdog in SD init to prevent reboot
2017-01-12 06:13:56 -08:00
Scott Lahteine e409c7f9e8 Merge pull request #5645 from esenapaj/From-microseconds-to-milliseconds
From "microseconds" to "milliseconds"
2017-01-12 06:02:55 -08:00
emartinez167 020c6af7b0 Updates to Spanish language
Add missing Spanish language definitions.
2017-01-12 05:53:39 -08:00
Hans Raaf d29cc8f7bc Reset watchdog in SD init to prevent reboot
If the watchdog is enabled and bootscreen + SD card checks take too long, Marlin may hang at boot time because of the reset loop. We have this happen all the time with the Anet board if no SD card is inserted.
2017-01-12 05:33:38 -08:00
Scott Lahteine 7743849608 Merge pull request #5680 from thinkyhead/rc_configs_puhlease
code_value_float tweak
2017-01-12 05:22:47 -08:00
Scott Lahteine 16357fbfdf Merge pull request #5619 from Ocarthon/RCBugFix
Disable SD Detect for K8400
2017-01-12 05:22:03 -08:00
Scott Lahteine e57c0fce66 Move MOSFET changes above #include for RIGIDBOARD
Correction to #5629
2017-01-12 04:46:49 -08:00
Scott Lahteine c376f6a2cb code_value_float tweak 2017-01-12 04:38:09 -08:00
Scott Lahteine fb3c30e24c Fix lcd_wait_for_homing causing menu to block
As a showcase function for how to do waiting in the lcd menu, this function should be preserved.
2017-01-12 04:37:23 -08:00
Scott Lahteine f8ae0fd29f Merge pull request #5647 from manianac/RCBugFix-PrepareMenuFix
Fix empty Prepare menu
2017-01-12 04:20:18 -08:00
Robert Kirk aab5118c6a Remove error causing break command
Use index macro instead of e
2017-01-01 17:47:01 -05:00
esenapaj d38e335272 From "microseconds" to "milliseconds"
delay() is milliseconds
2017-01-02 01:19:33 +09:00
Scott Lahteine 34d5eb5201 Merge pull request #5589 from thinkyhead/rc_configs_puhlease
Better sanity check for FILAMENT_CHANGE_FEATURE, FILAMENT_RUNOUT_SCRIPT
2016-12-30 04:56:30 -08:00
emartinez167 a2fe24f319 Fix some errors and update a message 2016-12-29 23:34:42 +08:00
Philip Standt 8ae2bc7e2e Disable SD Detect for K8400 2016-12-28 23:21:18 +01:00
emartinez167 0844da794d Updates to Spanish language
Add missing Spanish language definitions.
2016-12-24 22:11:14 +08:00
Scott Lahteine 4061fca1ad Sanity checks for FILAMENT_CHANGE_FEATURE and FILAMENT_RUNOUT_SCRIPT 2016-12-23 19:55:12 -08:00
Scott Lahteine 5ab7b91615 Comment on filament runout sensor config 2016-12-23 19:50:27 -08:00
Scott Lahteine 922c67f17d Merge pull request #5588 from thinkyhead/rc_remove_biv25
Drop biv2.5 delta configurations
2016-12-23 19:14:50 -08:00
Scott Lahteine 78459d5de1 Merge pull request #5587 from thinkyhead/rc_never
Define ADV_NEVER, ADV_RATE
2016-12-23 19:00:57 -08:00
Scott Lahteine 8c6c048551 drop biv2.5 delta configurations 2016-12-23 18:56:07 -08:00
Scott Lahteine 92dbeebf40 Define ADV_NEVER, ADV_RATE 2016-12-23 18:43:23 -08:00
Scott Lahteine 71378f72af Merge pull request #5577 from manianac/RCBugFix-M600Dryrun
Allow M600 when dryrun debugging
2016-12-22 19:07:05 -08:00
Robert Kirk 306c184b1a Allow M600 when dryrun debugging 2016-12-21 20:30:51 -05:00
Scott Lahteine fe2ea2906f Merge pull request #5573 from thinkyhead/rc_unify_stepper_isr
LIN_ADVANCE with unified stepper ISR
2016-12-21 02:53:32 -08:00
Sebastianv650 84c685f8b5 First draft of Unified Stepper / E Advance ISR 2016-12-21 01:34:39 -08:00
Scott Lahteine 83021d82c6 Merge pull request #5502 from AnHardt/symbol-strings
Add symbol-strings
2016-12-21 00:51:59 -08:00
Scott Lahteine 036eccfd6e Merge pull request #5572 from Kaibob2/patch-5
Update language_de.h
2016-12-21 00:50:40 -08:00
Scott Lahteine b794b76836 Merge pull request #5567 from AnHardt/fix5194
Fix 5194
2016-12-21 00:49:52 -08:00
Scott Lahteine 451ba5df01 Merge pull request #5516 from esenapaj/Suppress-warning
Suppress warning
2016-12-21 00:00:35 -08:00
Scott Lahteine 92dbc63949 Merge pull request #5571 from esenapaj/Update-Japanese-translation
Update Japanese translation
2016-12-20 23:59:55 -08:00
Kai ade72535c4 Update language_de.h
Added tarnslation for
```
#define MSG_DEBUG_MENU 
#define MSG_PROGRESS_BAR_TEST
```
2016-12-21 08:57:39 +01:00
Scott Lahteine 06153add6b Merge pull request #5565 from thinkyhead/rc_negative_retract_in_menu
Followup to #5550 - spacing before "mm"
2016-12-20 18:42:37 -08:00
esenapaj ab6b005867 Suppress warning 2016-12-21 09:13:03 +09:00
AnHardt 61f15ef7e7 Fix 5194
I have been a bit too radical in cleaning up this section.
2016-12-21 00:45:29 +01:00
esenapaj 60515ff700 Update Japanese translation
・Add new translation
2016-12-21 08:44:07 +09:00
Scott Lahteine 1e419655f3 Followup to #5550 - spacing before "mm" 2016-12-20 02:27:54 -08:00
Scott Lahteine 1a26ce1cdc Merge pull request #5550 from FHeilmann/patch-2
Allow negative retract values in the LCD
2016-12-20 02:10:22 -08:00
Scott Lahteine bec30c89e7 Merge pull request #5522 from esenapaj/Add-description-for-dual-x
Add description for choice of DEFAULT_DUAL_X_CARRIAGE_MODE
2016-12-20 01:31:53 -08:00
Florian Heilmann 780dabf32b Merge pull request #8 from thinkyhead/rc_negative_retract_in_menu
Replace "+mm" with "mm." Allow negative recover-swap length.
2016-12-20 10:31:07 +01:00
Scott Lahteine 7739c0affa Change "+mm" to "mm" in most languages
- Japanese and Chinese still need update
2016-12-20 01:16:51 -08:00
Scott Lahteine 1cba425308 Allow negative recover-swap length from LCD 2016-12-20 01:16:08 -08:00
Scott Lahteine 298a8c6a3c Merge pull request #5561 from thinkyhead/rc_no_case_light
Support for M335 case light "no case light"
2016-12-20 01:06:59 -08:00
Scott Lahteine 644f45cbd8 Merge pull request #5563 from akaJes/m600
FILAMENT_CHANGE_FEATURE allowed in idle mode
2016-12-20 01:06:10 -08:00
Scott Lahteine 4213330d22 Merge pull request #5562 from thinkyhead/rc_char_lcd_tweaks
Fix various LCD-related issues
2016-12-20 01:03:38 -08:00
Scott Lahteine 0d2fc13516 Place "Level Bed" closer to "Auto Home" 2016-12-20 00:51:03 -08:00
Scott Lahteine b031d28ebf Encoder events should not skip stripes 2016-12-20 00:21:51 -08:00
Scott Lahteine 22881f38b9 Fix updating of "bool" menu items 2016-12-20 00:21:51 -08:00
Scott Lahteine eb68715b94 No "Cooldown" menu if heaters are off 2016-12-20 00:21:51 -08:00
Jesus 4ed976b5ff m600 fixes 2016-12-20 09:47:46 +02:00
Damien 4e2639942b Support for M335 case light "no case light" 2016-12-19 23:23:08 -08:00
Scott Lahteine 18ba31e9b5 Add Debug Menu with LCD_PROGRESS_BAR_TEST as an example 2016-12-19 22:57:14 -08:00
Scott Lahteine 03af5961b0 Hide (or remove) custom character change on boot screen 2016-12-19 22:27:28 -08:00
Scott Lahteine 1642f5ed31 Add macro to some en strings 2016-12-19 22:27:28 -08:00
Scott Lahteine dbb2d56c89 Correct comment on watchdog timer 2016-12-19 22:27:28 -08:00
Scott Lahteine 41a30923f3 Merge pull request #5559 from thinkyhead/rc_minimum_gcc_version
Throw an error for gcc before 4.7
2016-12-19 19:50:44 -08:00
Scott Lahteine 04f77df6c0 Merge pull request #5560 from thinkyhead/rc_bl_status
Have bed leveling status output current status, not requested.
2016-12-19 19:18:06 -08:00
Scott Lahteine 6d6a1db6ec Apply const to _EEPROM_writeData value param 2016-12-19 18:50:43 -08:00
Robert Kirk f724ef5820 Have bed leveling status output current status, not requested. 2016-12-19 18:47:45 -08:00
Scott Lahteine 20218e553d Merge pull request #5527 from MagoKimbra/rc_configuration_store_fix_size
Fix size
2016-12-19 18:47:28 -08:00
Scott Lahteine dcfbe2bd3c Throw an error for gcc before 4.7 2016-12-19 18:30:51 -08:00
Scott Lahteine 82fde7df2e Merge pull request #5512 from AnHardt/speed-compare-bbr
Optimize handling of block_buffer_runtime()
2016-12-19 18:21:06 -08:00
Scott Lahteine 64a44f697c Merge pull request #5557 from thinkyhead/rc_thermistor_breakup
Split up thermistor tables
2016-12-19 15:01:18 -08:00
Scott Lahteine 8986225752 Spacing, cleanup in speed_lookuptable.h 2016-12-19 14:52:45 -08:00
Scott Lahteine e12c8e5cac Split up thermistor tables 2016-12-19 14:47:54 -08:00
Florian Heilmann a7334fd2a0 Allow negative retract values in the LCD
This can already be done via G-Code, so adding the capability to the LCD should be straight forward.
2016-12-19 14:19:06 +01:00
AnHardt 292eb365c6 Optimize handling of block_buffer_runtime()
millis_t is long - divisions take for ever.

Return a kind of millisecond instead of microsecond -
divided by 1024 instead of 1000 for speed. (2.4% error)

That does not matter because block_buffer_runtime is
already a too short estimation.
Shrink the return-type.
2016-12-19 11:47:28 +01:00
esenapaj 6854f44bf2 Add description for choice of DEFAULT_DUAL_X_CARRIAGE_MODE 2016-12-19 02:21:10 +09:00
Scott Lahteine 3f6f036f7c Merge pull request #5524 from thinkyhead/rc_optional_dogm_splitup
Report EEPROM data size, not final index
2016-12-16 18:55:48 -08:00
MagoKimbra 86ba7e4542 Fix size
Fix size for writeData and readData.
For bilinear grid 11 x 11 for example, size is 4 (float) x 11 x 11 = 484. uint8_t max is 255.
2016-12-16 14:49:33 +01:00
Scott Lahteine f9f75c8016 Fix USE_RAW_KINEMATICS in prepare_kinematic_move_to 2016-12-15 23:15:38 -08:00
Scott Lahteine 87921f390a Clarify what are "logical" positions in the planner 2016-12-15 23:15:38 -08:00
Scott Lahteine a4f10f59c3 Write the E parameter length correctly 2016-12-15 23:15:38 -08:00
Scott Lahteine 2e904cb4f9 Merge pull request #5514 from esenapaj/Update-Japanese-translation
Update Japanese translation
2016-12-15 21:38:40 -08:00
Scott Lahteine 0b6817e0f9 Merge pull request #5505 from android444/patch-4
Update for translations language_pl.h
2016-12-15 21:38:18 -08:00
Scott Lahteine 3bd76f60e4 Report EEPROM data size, not final index 2016-12-15 20:26:28 -08:00
Scott Lahteine 78d6d6e076 Merge pull request #5452 from thinkyhead/rc_save_your_mesh
Save Bed Leveling to EEPROM
2016-12-15 20:23:01 -08:00
Scott Lahteine 0d0aa6c20d Patch type for max_acceleration_mm_per_s2 save/restore 2016-12-15 20:05:42 -08:00
Scott Lahteine d4f5418802 Merge pull request #5517 from esenapaj/Fix-for-PR-#5255
Fix for the PR #5255 (Case light menu (3rd attempt))
2016-12-15 20:01:22 -08:00
Scott Lahteine fa7010b0a1 Merge pull request #5515 from esenapaj/Remove-unnecessary-tabs-and-spaces
Remove unnecessary tabs and spaces
2016-12-15 19:58:32 -08:00
Scott Lahteine 6d7b1cdf6c Add M421 for ABL Bilinear 2016-12-15 19:39:11 -08:00
Scott Lahteine 32e65dc429 Extend M420 to print state and, with V, the matrix / mesh 2016-12-15 19:39:11 -08:00
Scott Lahteine d04258753b Don't throw away the bed level matrix on G28 2016-12-15 19:21:18 -08:00
Scott Lahteine 8f0f225d10 Save ABL Planar Matrix to EEPROM 2016-12-15 19:21:15 -08:00
Scott Lahteine e2429a9da1 Generalize Bed Leveling flag in EEPROM 2016-12-15 19:20:52 -08:00
Scott Lahteine e42fd7813a Save ABL Bilinear Grid to EEPROM 2016-12-15 19:20:48 -08:00
Scott Lahteine 492b68f8e3 Better EEPROM read/write error handling 2016-12-15 19:08:44 -08:00
Scott Lahteine 55722c09da Use "UNPROBED" for un-probed bed_level_grid points 2016-12-15 19:08:44 -08:00
Scott Lahteine 2643404ac8 Throw an error in M420 if can't enable 2016-12-15 19:08:43 -08:00
Scott Lahteine b1539394fd Use planner.unapply_leveling to undo tilt in G29 2016-12-15 19:08:43 -08:00
Scott Lahteine 04636f78eb Re-enable MBL/ABL after M48 2016-12-15 19:08:43 -08:00
Scott Lahteine 9b41638672 Minor tweak to G29 grid points 2016-12-15 19:08:42 -08:00
Scott Lahteine daa2cad21f Fix comment on G29 to include 'Z' 2016-12-15 19:08:42 -08:00
Scott Lahteine 8244fefcc2 Tweak call to reset_bed_level in G29 2016-12-15 19:08:42 -08:00
Scott Lahteine 0995a5d734 Fixup reset_bed_level 2016-12-15 19:08:42 -08:00
Scott Lahteine 1b2fb2bdc7 ABL_GRID_POINTS_* => ABL_GRID_MAX_POINTS_* 2016-12-15 19:08:41 -08:00
Scott Lahteine b091c9ceb7 Merge pull request #5520 from esenapaj/Fix-for-commented-section
Fix for commented section of Config_RetrieveSettings()
2016-12-15 18:16:30 -08:00
esenapaj d486361c69 Fix for commented section of Config_RetrieveSettings() 2016-12-16 04:34:47 +09:00
esenapaj 88157ba529 Fix for the PR #5255 (Case light menu (3rd attempt)) 2016-12-16 00:57:32 +09:00
esenapaj 069c6b38dd Remove unnecessary tabs and spaces 2016-12-16 00:21:32 +09:00
esenapaj 9c8116aedf Update Japanese translation
・Add new translation
2016-12-16 00:06:58 +09:00
AnHardt 57b1275cde Add symbol-string to _de
Add symbol-string for _de
to reduce the frquencey of regenerating 'mappers' and 'fonts'
with the new utf-system.
2016-12-15 14:37:18 +01:00
android444 3363d2c937 Update for translations language_pl.h 2016-12-14 17:32:33 +01:00
Scott Lahteine 7ca4f16a5c Merge pull request #5430 from thinkyhead/rc_optional_dogm_splitup
Move Hollow Frame options to config-adv
2016-12-14 04:55:15 -08:00
Scott Lahteine 06af3b62ba Move HOLLOW_FRAME options to config_adv 2016-12-14 04:31:27 -08:00
Scott Lahteine 67ca6c7bfe Codestyle tweaks to ultralcd.cpp 2016-12-14 04:20:33 -08:00
Scott Lahteine 8d9fcd8e6f Merge pull request #5495 from AnHardt/autoadjusting_display-updates
Adaptive screen updates for all kinds of displays
2016-12-14 04:16:26 -08:00
Scott Lahteine 77a360912d Merge pull request #5491 from yhfudev/devel-rcbugfix-language-headers
UTF-8 language header files
2016-12-14 02:23:09 -08:00
Scott Lahteine efb8b8425c Merge pull request #5493 from thinkyhead/rc_fix_recover_unhop
Prevent retract un-hop at wrong height
2016-12-14 02:20:08 -08:00
AnHardt d0e24e0876 Adaptive screen updates for all kinds of displays
The target here is to update the screens of graphical and char base
displays as fast as possible, without draining the planner buffer too much.

For that measure the time it takes to draw and transfer one
(partial) screen to the display. Build a max. value from that.
Because ther can be large differences, depending on how much the display
updates are interrupted, the max value is decreased by one ms/s. This way
it can shrink again.
On the other side we keep track on how much time it takes to empty the
planner buffer.
Now we draw the next (partial) display update only then, when we do not
drain the planner buffer to much. We draw only when the time in the
buffer is two times larger than a update takes, or the buffer is empty anyway.

When we have begun to draw a screen we do not wait until the next 100ms
time slot comes. We draw the next partial screen as fast as possible, but
give the system a chance to refill the buffers a bit.

When we see, during drawing a screen, the screen contend has changed,
we stop the current draw and begin to draw the new content from the top.
2016-12-13 18:44:34 +01:00
yhfudev 2dbd38ce16 tag the utf-8 strings 2016-12-13 11:54:35 -05:00
Scott Lahteine 94ffb58da7 Prevent retract un-hop at wrong height 2016-12-13 08:24:12 -08:00
Scott Lahteine 0772c8e55f Merge pull request #5487 from thinkyhead/rc_easier_move_axis
Rearrange Move Menu, Fix up Delta Calibration
2016-12-13 07:07:05 -08:00
Scott Lahteine b2c8de856b Merge pull request #5478 from AnHardt/stepspermm
Replace ftostr62sign with ftostr62rj
2016-12-13 07:05:42 -08:00
Scott Lahteine 1fd8185d37 Merge pull request #5492 from thinkyhead/rc_fix_language_es
Fix multiple definitions of message macros in the language-es.h
2016-12-13 06:57:52 -08:00
yhfudev 1cdffdede7 fix multiple definitions of message macros in the language-es.h 2016-12-13 06:48:38 -08:00
Scott Lahteine b67f8cb499 Merge pull request #5490 from jbrazio/update-bqhp2
Update the bq Hephestos 2 example configuration
2016-12-13 05:04:24 -08:00
Scott Lahteine 93b2833347 Move Menu: Select axis first, resolution after 2016-12-13 03:11:14 -08:00
Scott Lahteine 48aa0f6475 Merge pull request #5475 from AnHardt/utf-mapper-tr
utf8-mapper for Turkish
2016-12-13 03:03:22 -08:00
Scott Lahteine b9ee0d7bd3 Merge pull request #5488 from thinkyhead/rc_fade_compiler_warn
Patch fade_factor compiler warning
2016-12-13 03:00:47 -08:00
Scott Lahteine 641e0936d4 Patch up Delta Calibration Menu 2016-12-13 02:42:28 -08:00
Scott Lahteine b4dbf4d18a Non-reentrant "Moving..." screen to safely wait in LCD 2016-12-13 02:42:27 -08:00
Scott Lahteine 7b625e0048 Patch fade_factor compiler warning 2016-12-13 02:29:01 -08:00
Scott Lahteine 6fa8fd15e2 Add negative temperatures for Thermistor 1
Changes from #5485 by @AndKe
2016-12-13 02:06:16 -08:00
Scott Lahteine 2b5d424394 Use handle_reprapworld_keypad for keypad handling 2016-12-13 01:41:08 -08:00
Scott Lahteine 887ed73c9b Expose delta_clip_start_height for use by others 2016-12-13 01:41:08 -08:00
João Brázio 3f75edb1d6 Updated bq Hephestos 2 example configuration 2016-12-13 09:26:07 +00:00
Scott Lahteine 6080ac566a Merge pull request #5483 from thinkyhead/rc_aragonese_fixup
Update Aragonese translation
2016-12-12 18:26:07 -08:00
Daniel Martinez b796e7031d Update Aragonese translation 2016-12-12 17:36:33 -08:00
AnHardt cd2b74e88d Replace ftostr62sign with ftostr62rj
`ftostr62sign()` is used only when displaing/editing
Steps/mm. A sign is not needed - the value is always positive.
Because the number part is long there is no't much place for the values name.
With this PR the is one more char for the name possible.
2016-12-12 20:25:20 +01:00
AnHardt 795541f87e utf8-mapper for Turkish
The non utf8 version of turkish is a bit unhandy.

Delete `language_tr.h`
Rename `language_tr_utf.h` to `language_tr.h`
Provide a propper utf8-mapper for Turkish and use it.
2016-12-12 15:56:59 +01:00
Scott Lahteine 7c71bb2900 Merge pull request #5471 from thinkyhead/rc_planner_report_m503
Patch to show E factors in M503
2016-12-11 17:47:41 -08:00
Scott Lahteine 39401b7472 Patch to show E factors in M503 2016-12-11 17:37:29 -08:00
Scott Lahteine 6b50230022 Merge pull request #5447 from thinkyhead/rc_update_dutch
Dutch cleanup, ordering, placeholders
2016-12-10 22:13:20 -08:00
Scott Lahteine 2c97c11731 Merge pull request #5454 from thinkyhead/rc_fix_delta_g29
Fix G29 starting height on DELTA
2016-12-10 22:10:33 -08:00
Scott Lahteine 8239c45b30 Merge pull request #5448 from thinkyhead/rc_eeprom_bump
EEPROM: Prolong life. Better support for `DISTINCT_E_FACTORS`.
2016-12-10 22:06:00 -08:00
Scott Lahteine 21ed43df5f New Dutch terms 2016-12-10 21:59:45 -08:00
Scott Lahteine 4bc6536f54 Move to safe zone on DELTA if using do_blocking_move_to* 2016-12-10 21:28:24 -08:00
Scott Lahteine 6f389158d7 Compile less code with EEPROM off 2016-12-09 06:05:32 -08:00
Scott Lahteine f2301a2a04 Add e-stepper count to EEPROM (for planner vars) 2016-12-09 06:05:31 -08:00
Scott Lahteine 53c9fca0f6 Only write to EEPROM when a byte changes 2016-12-09 06:05:31 -08:00
Scott Lahteine 72fe995c42 Merge pull request #5449 from AnHardt/volatile-bbru
Make block_buffer_runtime_us volatile
2016-12-09 05:57:45 -08:00
AnHardt 13eebd11cf volatile_block_buffer_runtime_us
`block_buffer_runtime_us` is mangled in the planner and in the stepper-ISR.
So it needs to be volatile and interrupt protected.
2016-12-09 14:49:02 +01:00
Scott Lahteine 8383f35b40 Merge pull request #5445 from thinkyhead/rc_reduce_jerk_code
Slightly shrink jerk and advance code
2016-12-09 02:54:03 -08:00
Scott Lahteine 52f8924f6e Merge pull request #5446 from gege2b/RCBugFix-french
Update french translation (LIGHTS str)
2016-12-09 02:49:32 -08:00
Gege2B 40453c1b9a Update french translation (LIGHTS str) 2016-12-09 11:18:29 +01:00
Scott Lahteine fc2fc828b3 Prettify LIN_ADVANCE code with the positive condition 2016-12-09 00:29:07 -08:00
Scott Lahteine 1929502e15 Add const to some variables 2016-12-09 00:29:06 -08:00
Scott Lahteine 2da4d22520 Pretty up ADVANCE code 2016-12-08 22:51:28 -08:00
Scott Lahteine af024e1d7c Pretty up coast / reverse jerk code 2016-12-08 22:50:25 -08:00
Scott Lahteine 3f3b5c86d8 Slightly shrink code for jerk-based reduction of safe_speed 2016-12-08 22:24:29 -08:00
Scott Lahteine dfdb180db4 Merge pull request #5440 from AnHardt/simplify-long_move
Simplify long_move()
2016-12-08 18:03:20 -08:00
AnHardt 87fe20b5f5 Simplify long_move()
We are not really interested in, if there are blocks.
All information we need is in `block_buffer_runtime_us`.
2016-12-09 00:13:35 +01:00
Scott Lahteine 574d9c7d3d Merge pull request #5432 from Kaibob2/patch-2
Update language_de.h
2016-12-08 13:14:04 -08:00
Scott Lahteine f089279263 Merge pull request #5431 from esenapaj/Suppress-warnings,-etc
Suppress warnings, etc
2016-12-08 13:10:12 -08:00
Scott Lahteine d92ccb230c Merge pull request #5438 from AnHardt/patch-long_move
Patch long_move()
2016-12-08 13:08:36 -08:00
Scott Lahteine a1e0842c8b Merge pull request #5436 from esenapaj/Remove-redundant-E,-etc-plan-B
Remove redundant "E", etc plan B
2016-12-08 13:06:07 -08:00
AnHardt 706b240251 Patch long_move()
While the last move in the planner_buffer is running
it's duration is already subtracted from block_buffer_runtime_us.
2016-12-08 21:03:26 +01:00
esenapaj a298a58684 Remove redundant "E" 2016-12-09 02:27:34 +09:00
Kai 390a6d976a Update language_de.h
#define MSG_ENDSTOP_ABORT  doesn't fit in Display 
See https://github.com/MarlinFirmware/Marlin/issues/5401#issuecomment-265714487
2016-12-08 12:18:19 +01:00
esenapaj e9393c3634 Suppress warnings, etc
・Suppress warnings
・Remove unused variable "did_update"
2016-12-08 17:47:59 +09:00
Scott Lahteine 4ea87b8f34 Merge pull request #5414 from thinkyhead/rc_sanitycheck_inverting
Sanity-check inverting for Z probe and Z endstop
2016-12-08 00:28:33 -08:00
Scott Lahteine da6a094424 Sanity-check inverting and pullups for Z probe and Z endstop
`Z_MIN_ENDSTOP_INVERTING` must match `Z_MIN_PROBE_ENDSTOP_INVERTING`
when using `Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN`.
This is easy to overlook.
2016-12-08 00:12:19 -08:00
Scott Lahteine a9f64537ff Merge pull request #5429 from thinkyhead/rc_mention_M205
Fix compile error with LCD_I2C_VIKI
2016-12-07 22:16:57 -08:00
Scott Lahteine 3fb43c11fc Fix compile error with LCD_I2C_VIKI 2016-12-07 23:29:45 -06:00
Scott Lahteine c1e1f63ffa Merge pull request #5424 from thinkyhead/rc_mention_M205
Include M205 note in configurations
2016-12-07 18:18:59 -06:00
Scott Lahteine aa241c63b3 Include M205 note in configurations 2016-12-07 14:45:44 -06:00
Scott Lahteine c8a95ec514 Merge pull request #5413 from MagoKimbra/rc_fix_mesh
Fix Mesh without Fade Height
2016-12-07 03:16:02 -06:00
Scott Lahteine 35ad9626f1 Merge pull request #5410 from thinkyhead/rc_polish_update
Update Polish language, reduce filament change messages
2016-12-07 03:15:53 -06:00
Scott Lahteine 01e5d46ea7 Patch some planner compile errors 2016-12-07 02:26:24 -06:00
MagoKimbra 5383212a28 Fix Mesh without Fade Height 2016-12-07 09:23:42 +01:00
Scott Lahteine dbe1dc1452 Merge pull request #5406 from Rigid3D/RCBugFix
Turkish Translation Update
2016-12-07 00:56:08 -06:00
Scott Lahteine 66f1b7cce3 Merge pull request #5409 from thinkyhead/rc_croatian_update
Updates to Croatian language
2016-12-07 00:55:45 -06:00
Scott Lahteine 4783a59249 Remove filament-change empty lines from languages 2016-12-07 00:53:03 -06:00
Scott Lahteine 1705099c3e Save space by not defining unused filament change message lines 2016-12-07 00:53:03 -06:00
Scott Lahteine 29bc83ead8 Optimize findMissingTranslations.sh 2016-12-07 00:53:02 -06:00
android444 9b1f4b514b Update Polish language
Translation of messages in English to Polish.
2016-12-06 22:28:33 -06:00
Robert Marko 84f7e1de04 Updates to Croatian language 2016-12-06 22:24:12 -06:00
Scott Lahteine b6bb4daea9 Merge pull request #5408 from esenapaj/README-and-Version-for-1.1.0-RCBugFix
README and Version for 1.1.0-RCBugFix
2016-12-06 22:21:19 -06:00
esenapaj 08cdaaf19b README and Version for 1.1.0-RCBugFix
Sync with RC8
2016-12-07 10:43:58 +09:00
Mehmet Sutas f4663cb677 Update language_tr_utf8.h 2016-12-07 00:21:56 +03:00
Mehmet Sutas b4fd115d4e Update language_tr.h 2016-12-07 00:20:07 +03:00
Scott Lahteine 83c5026db1 Ignore homing button when SD printing
As suggested in #5404 by @android444
2016-12-06 14:22:34 -06:00
Scott Lahteine 312caef472 Merge pull request #5398 from thinkyhead/rc_croatian_cleanup
Fix Croatian spacing, extra #endif
2016-12-06 03:22:19 -06:00
Scott Lahteine 46b65773ea Fix Croatian spacing, extra #endif 2016-12-06 03:10:37 -06:00
Scott Lahteine 3f2faac9d1 Merge pull request #5388 from thinkyhead/rc_subdivide_bilinear
Subdivide Bilinear Grid with Catmull Rom Splines
2016-12-05 20:28:50 -06:00
Scott Lahteine b5b5edd9ad Merge pull request #5394 from thinkyhead/rc_drop_board_99
Remove mystery-board 99
2016-12-05 20:28:35 -06:00
Scott Lahteine c48901f355 Remove mystery-board 99 2016-12-05 20:16:50 -06:00
akaJes d7b948610a Experimental bilinear subdivision option 2016-12-05 20:11:24 -06:00
Scott Lahteine 6253b765aa Merge pull request #5389 from thinkyhead/distribute_screen_updates
Distribute GLCD screen updates in time
2016-12-05 20:08:33 -06:00
Scott Lahteine b203901143 Merge pull request #5393 from AnHardt/Fix-auto_report_temperatures
Fix auto_report_temperatures()
2016-12-05 19:38:23 -06:00
AnHardt 59a27ed27d Fix auto_report_temperatures()
The `auto_report_temperatures` needs a linefeed to be recognized by Repetier Host.
2016-12-06 01:26:44 +01:00
AnHardt a6fbd4a5d8 Distribute GLCD screen updates in time
Currently we draw and send the screens for a graphical LCD all at once.
We draw in two or four parts but draw them directly behind each other.
For the tested status screen this takes 59-62ms in a single block.
During this time nothing else (except the interrupts) can be done.
When printing a sequence of very short moves the buffer drains - sometimes until it's empty.

This PR splits the screen update into parts.
Currently we have 10 time slots. During the first one the complete screen is drawn. (60,0,0,0,0,0,0,0,0,0,0)
Here i introduce pauses for doing other things. (30,30,0,0,0,0,0,0) or (15,15,15,15,0,0,0,0,0,0)
Drawing in consecutive time slots prevents from lagging too much. Even with a 4 stripe display all the drawing is done after 400ms.
Previous experiments with a even better distribution of the time slots like
(30,0,0,0,0,30,0,0,0,0) and (15,0,15,0,15,0,15,0,0,0) did not feel good when using the menu, because of too much lag.

Because of the previous PRs to speed up the display updates and especially reducing the difference between drawing 2 or 4 stripes,
it now makes sense for the REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER to go from 2 to 4 stripes. This costs about 1-2ms per complete
screen update, but is payed back by having partial updates lasting only the half time and two additional brakes. Also ~256 byte of
framebuffer are saved in RAM.

13:45:59.213 : echo: #:17 >:13 s:30;   #:16 >:13 s:29;   S#:33 S>:26 S:59
13:46:00.213 : echo: #:16 >:14 s:30;   #:17 >:13 s:30;   S#:33 S>:27 S:60
13:46:01.215 : echo: #:17 >:13 s:30;   #:16 >:13 s:29;   S#:33 S>:26 S:59
13:46:02.215 : echo: #:16 >:13 s:29;   #:16 >:14 s:30;   S#:32 S>:27 S:59
13:46:03.214 : echo: #:17 >:13 s:30;   #:17 >:13 s:30;   S#:34 S>:26 S:60
13:46:04.214 : echo: #:16 >:13 s:29;   #:16 >:14 s:30;   S#:32 S>:27 S:59
13:46:05.212 : echo: #:16 >:14 s:30;   #:17 >:13 s:30;   S#:33 S>:27 S:60
13:46:06.212 : echo: #:17 >:13 s:30;   #:16 >:13 s:29;   S#:33 S>:26 S:59

03:30:36.779 : echo: #:8 >:7 s:15;   #:10 >:7 s:17;   #:8 >:6 s:14;   #:8 >:7 s:15;   S#:34 S>:27 S:61
03:30:37.778 : echo: #:8 >:6 s:14;   #:10 >:7 s:17;   #:9 >:7 s:16;   #:8 >:6 s:14;   S#:35 S>:26 S:61
03:30:38.778 : echo: #:8 >:6 s:14;   #:11 >:7 s:18;   #:8 >:6 s:14;   #:8 >:7 s:15;   S#:35 S>:26 S:61
03:30:39.777 : echo: #:8 >:6 s:14;   #:10 >:7 s:17;   #:8 >:8 s:16;   #:8 >:6 s:14;   S#:34 S>:27 S:61
03:30:40.780 : echo: #:8 >:6 s:14;   #:11 >:7 s:18;   #:8 >:6 s:14;   #:8 >:6 s:14;   S#:35 S>:25 S:60
03:30:41.780 : echo: #:9 >:6 s:15;   #:10 >:7 s:17;   #:8 >:6 s:14;   #:9 >:6 s:15;   S#:36 S>:25 S:61
03:30:42.779 : echo: #:8 >:6 s:14;   #:10 >:8 s:18;   #:8 >:6 s:14;   #:8 >:6 s:14;   S#:34 S>:26 S:60
03:30:43.778 : echo: #:9 >:6 s:15;   #:10 >:7 s:17;   #:8 >:7 s:15;   #:9 >:6 s:15;   S#:36 S>:26 S:62

#: draw a stripe
>: transfer a stripe
s: sum of of draw and transfer for one stripe
S#: sum of draws for a complete screen
S>: sum of transfers for a complete screen
S: time to draw and transfer a complete screen
2016-12-05 12:22:54 -06:00
Scott Lahteine f882355994 Merge pull request #5318 from Sebastianv650/Account_for_LCD_improvements
Account for LCD improvements in ENSURE_SMOOTH_MOVES
2016-12-05 11:23:58 -06:00
Scott Lahteine 20e834461d Merge pull request #5385 from thinkyhead/rc_ftostr4sign_decimal
Show decimal for small numbers in ftostr4sign
2016-12-05 11:22:45 -06:00
Scott Lahteine b6b100c471 Merge pull request #5371 from thinkyhead/rc_extruders_can_differ
Allow distinct factors for multiple extruders
2016-12-05 11:22:31 -06:00
Scott Lahteine 1aca2dfe0c Merge pull request #5387 from thinkyhead/rc_polish_update
Polish language update – plus placeholders
2016-12-05 10:52:20 -06:00
Scott Lahteine 449d9cbf60 Add placeholders for Polish translatable strings 2016-12-05 10:37:00 -06:00
c64pl 643dc4b64e Update language_pl.h
Fixed translations
2016-12-05 10:37:00 -06:00
Scott Lahteine 0974b75fb6 Merge pull request #5386 from thinkyhead/rc_galician_update
Galician language update.
2016-12-05 10:36:26 -06:00
Rafa Couto 2b9115330d Galician language update. 2016-12-05 10:11:28 -06:00
Scott Lahteine 1f3e2440bc Merge pull request #5175 from thinkyhead/rc_dualx_homing
Unpark when using Z_SAFE_HOMING with Dual X
2016-12-05 10:02:56 -06:00
Scott Lahteine d5bf1684fe Implement as optional feature LCD_DECIMAL_SMALL_XY
And reduce the function size to simplify
2016-12-05 09:26:05 -06:00
Guthenberg bfb8d3b53e Show more decimals in Display, if possible
_123, -123, _-12, __-1  plus  1234, 12.3, -1.2
2016-12-05 09:05:46 -06:00
Scott Lahteine 1e30d1da47 Simplify itostr4sign
- This function becomes obsolete if ftostr4sign is re-written.
2016-12-05 09:05:46 -06:00
Scott Lahteine 82a187acae Merge pull request #5359 from AnHardt/update-de
Add missing translations to lang-de
2016-12-05 07:31:28 -06:00
Scott Lahteine 4bafdf4b66 Support DISTINCT_E_FACTORS in LCD Motion Menu 2016-12-05 07:26:18 -06:00
Scott Lahteine 3391c785c6 Support for distinct E factors 2016-12-05 07:26:18 -06:00
Scott Lahteine 0dfe95eaba Adjust formatting in Planner 2016-12-05 07:26:17 -06:00
Scott Lahteine c9c6e084ce Merge pull request #5383 from thinkyhead/rc_fixup_5378
Fix rows error in DOGM
2016-12-05 07:24:44 -06:00
Scott Lahteine 09587f7c0d Fix rows error in DOGM 2016-12-05 07:14:11 -06:00
Scott Lahteine c47e07d129 Fix Dual X software endstops 2016-12-05 06:51:41 -06:00
Scott Lahteine 4217e9653e Adjust park code in tool_change 2016-12-05 06:51:41 -06:00
Scott Lahteine b20405db31 Only DXC_AUTO_PARK_MODE should auto-move in tool_change 2016-12-05 06:48:43 -06:00
Scott Lahteine ca24af7d5d Dual X with home_z_safely is not parked 2016-12-05 06:43:26 -06:00
Scott Lahteine 0e15b4f434 Dual X set_axis_is_at_home can use x_home_pos for both 2016-12-05 06:43:26 -06:00
Scott Lahteine 54109dfaec Reduce code size for Dual X un-park 2016-12-05 06:43:26 -06:00
Scott Lahteine fe96f74db1 Use const arguments in Dual X helper functions 2016-12-05 06:43:26 -06:00
Scott Lahteine 41278c1e8b Apply LOGICAL_POSITION to home positions on Dual X 2016-12-05 06:43:26 -06:00
Scott Lahteine 053fb55af6 Fix modes ordering in prepare_move_to_destination_dualx 2016-12-05 06:43:26 -06:00
Scott Lahteine ee50928eee Make LOGICAL and RAW position macros ternary-compatible 2016-12-05 06:43:26 -06:00
Scott Lahteine 56dd15c0ad Use SET_INPUT for PS_ON_PIN in kill 2016-12-05 06:43:26 -06:00
Scott Lahteine 200cf3e9f9 Merge pull request #5381 from thinkyhead/rc_fix_fade_factor
Properly apply fade_factor to MBL
2016-12-05 06:06:13 -06:00
Scott Lahteine 84ff78c1e3 Pass the fade factor to mbl.get_z 2016-12-05 03:01:51 -06:00
Scott Lahteine 85c2b96685 Apply const to MBL class methods 2016-12-05 02:50:59 -06:00
Scott Lahteine c06161b773 Use apply_leveling, not MBL directly 2016-12-05 01:53:36 -06:00
Scott Lahteine 818f8b93d3 Merge pull request #5378 from thinkyhead/rc_duration_rj
Better alignment of elapsed print time
2016-12-04 22:42:23 -06:00
Scott Lahteine 9d88a61d52 Better alignment of elapsed print time 2016-12-04 21:30:49 -06:00
Scott Lahteine 21c7b7ef87 Merge pull request #5374 from thinkyhead/rc_lcd_edit_tweaks
Fix garbled negative values on LCD
2016-12-04 16:32:12 -06:00
Scott Lahteine 0b53d78046 Tweak editable items for debugging 2016-12-04 03:51:10 -06:00
Scott Lahteine 0b9b529745 Merge pull request #5368 from thinkyhead/rc_croatian_update
Save PROGMEM with string changes
2016-12-03 19:37:23 -06:00
Scott Lahteine fccc97de6d Save PROGMEM with string changes
Unlike RAM-based strings, PROGMEM strings aren’t consolidated by the
compiler.
2016-12-03 19:21:46 -06:00
AnHardt e7fc353f08 Add missing translations to lang-de 2016-12-03 20:51:49 +01:00
Scott Lahteine ea13c68515 Merge pull request #5365 from thinkyhead/rc_croatian_update
Add placeholders for Bulgarian translation
2016-12-03 12:30:22 -06:00
Scott Lahteine 3f2cb376e0 Add placeholders for Bulgarian translation 2016-12-03 12:14:02 -06:00
Scott Lahteine b22d37ba52 Merge pull request #5364 from thinkyhead/rc_croatian_update
Update Croatian to include missing strings
2016-12-03 11:37:42 -06:00
Robert Marko b796a687ca Update Croatian to include missing strings
Added all missing strings according to English
2016-12-03 11:15:41 -06:00
Scott Lahteine 3bb76b254d Merge pull request #5363 from thinkyhead/rc_fix_hotend_offset_M503
Fix hotend offset report in M503
2016-12-03 10:28:49 -06:00
Scott Lahteine 255ed80164 Fix hotend offset report in M503 2016-12-03 10:17:35 -06:00
Scott Lahteine 7273a18c8d Merge pull request #5358 from thinkyhead/rc_fixup_scripts
Enhance findMissingTranslations, format the output
2016-12-03 09:37:32 -06:00
Scott Lahteine b44f06a296 Extend findMissingTranslations, reformat output 2016-12-03 08:48:51 -06:00
Scott Lahteine 1dfe39f0d7 Merge pull request #5351 from petrzjunior/RCBugFix
[LANGUAGE] Update Czech (Case light)
2016-12-03 03:52:18 -06:00
Petr Zahradník c66f3ed34b Update Czech 2016-12-03 10:32:34 +01:00
Scott Lahteine cbf208ea1f Merge pull request #5348 from Kaibob2/patch-1
Update language_de.h
2016-12-03 01:53:24 -06:00
Scott Lahteine a2660cf688 Merge pull request #5347 from tnw513/fix-italian
Added missing translations
2016-12-03 01:52:45 -06:00
Scott Lahteine 27dd5acc22 Fix set_led_color for BLINKM
Follow-up to #5330
2016-12-03 01:51:11 -06:00
Kai 8530c32309 Update language_de.h
Grammar corrections
2016-12-02 19:40:36 +01:00
Silvio Didonna f1d5ffa211 Added missing translations 2016-12-02 18:49:39 +01:00
Scott Lahteine b0361ebe4f Merge pull request #5343 from thinkyhead/rc_invert_case_light
Allow case light pin to be active low
2016-12-02 01:17:11 -06:00
Scott Lahteine f60b4f8659 Allow case light pin to be active low 2016-12-01 23:32:34 -06:00
Scott Lahteine 3f4c02e42f Merge pull request #5259 from Sebastianv650/Allow_UART-ISR_inside_Stepper
Allow UART ISRs inside the stepper ISR
2016-12-01 23:17:42 -06:00
Scott Lahteine 115f81840b Merge pull request #5342 from thinkyhead/rc_reliable_redraw
Fix redraw in SD Card menus
2016-12-01 22:42:24 -06:00
Scott Lahteine d07229f185 Fix redraw in SD Card menus 2016-12-01 18:15:58 -06:00
Scott Lahteine 47b4b21308 Merge pull request #5331 from esenapaj/Fix-for-the-PR-#5072
Fix for the PR #5072 (Add predefined AUTO_FAN_PINs to pins files), etc
2016-12-01 13:37:02 -06:00
Scott Lahteine 14b1500525 Merge pull request #5338 from thinkyhead/rc_fix_fade_factor
Fix compile without ENABLE_LEVELING_FADE_HEIGHT
2016-12-01 12:06:39 -06:00
Scott Lahteine 8d14420331 Fix compile without ENABLE_LEVELING_FADE_HEIGHT 2016-12-01 11:37:24 -06:00
Scott Lahteine 415294801f Merge pull request #5330 from thinkyhead/rc_rgb_led
Support for an RGB LED using 3 pins
2016-11-30 14:14:00 -06:00
esenapaj 0909cf3d46 Adjust spacing 2016-11-30 19:39:39 +09:00
esenapaj 8e9e9c17b0 Follow-up the PR #5323 (Adding ukrainian language support)
・Update forgotten Configuration_adv.h of Felix\DUAL and K8400\Dual-head
2016-11-30 19:39:39 +09:00
esenapaj d92ce8849b Fix for the PR #5072 (Add predefined AUTO_FAN_PINs to pins files), etc
・Make descriptions the same as others
2016-11-30 19:39:38 +09:00
Scott Lahteine e00b380489 Merge pull request #5323 from akaJes/lang-ua
Adding ukrainian language support
2016-11-30 01:10:40 -06:00
Scott Lahteine 862e3c93d9 Merge pull request #5328 from esenapaj/Suppress-warning
Suppress warning
2016-11-30 01:05:20 -06:00
Scott Lahteine 65c50e062e Support for an RGB LED using 3 pins 2016-11-30 00:02:31 -06:00
esenapaj 3047f3c85c Suppress warning 2016-11-30 00:32:56 +09:00
jes f674246397 extend Configurations files 2016-11-29 15:04:36 +02:00
jes c90191faaf adding ukrainian laguage support 2016-11-29 14:49:45 +02:00
Sebastianv650 912704a0d8 Enable ISRs inside temperature ISR
to capture chars at UART at 250000 baud.
2016-11-28 20:08:50 +01:00
Sebastianv650 f62f4006af Account for LCD improvements in ENSURE_SMOOTH_MOVES
.. and give the hint to try lower values if possible.
2016-11-28 17:44:19 +01:00
Scott Lahteine 092e949b58 Merge pull request #5169 from thinkyhead/rc_core_inverted
Support for COREYX, COREZX, COREZY
2016-11-28 02:26:41 -06:00
Scott Lahteine e9e4208ff1 Merge pull request #5274 from Sebastianv650/improve_smooth_moves
Improvement for ENSURE_SMOOTH_MOVES
2016-11-28 02:22:08 -06:00
Scott Lahteine c7935bb0d2 Merge pull request #5299 from thinkyhead/rc_bed_correction_fade
Add a fade factor for mesh leveling
2016-11-28 02:07:51 -06:00
Scott Lahteine a69b1ee691 Merge pull request #5313 from thinkyhead/rc_fix_menu_actions
Keep drawing menu unless screen changes
2016-11-28 02:01:39 -06:00
Scott Lahteine 32ee3acf86 Merge pull request #5315 from thinkyhead/rc_fixup_material_menus
Refine material heatup menu items
2016-11-28 01:46:51 -06:00
Scott Lahteine c70a06daf1 lcd_save_previous_menu => lcd_save_previous_screen 2016-11-28 01:46:18 -06:00
Scott Lahteine 13ea43cc8d Only exit menu handler when the screen changes 2016-11-28 01:46:18 -06:00
Scott Lahteine f45b6a7762 Merge pull request #5314 from thinkyhead/case_light_menu_fix
Fix and optimize case-light code
2016-11-28 01:45:27 -06:00
Scott Lahteine 59fafb93b2 Merge pull request #5304 from AnHardt/pixel-shifting
MENU_HOLLOW_FRAME for the menu screens
2016-11-28 01:41:47 -06:00
Scott Lahteine 0951d385ce Don't set heater temperature above its maximum 2016-11-28 01:37:24 -06:00
Scott Lahteine c9193e856d Limit preheat parameters based on all nozzles 2016-11-28 01:37:24 -06:00
Scott Lahteine bb4529f7d2 PLA / ABS => Material 1 / 2 2016-11-28 01:37:24 -06:00
Scott Lahteine 61437d988a Fix and optimize case-light code 2016-11-28 01:34:52 -06:00
AnHardt 7a9fa78822 MENU_HOLLOW_FRAME for the menu screens
MENU_HOLLOW_FRAME for the menu screens and
some pixel shifting to optimize the look with tall fonts. (cn)
2016-11-27 22:59:05 +01:00
Scott Lahteine 20b0889602 Merge pull request #5303 from AnHardt/reduce-sripes
Not more then 4 stripes for u8g-devices
2016-11-26 18:47:43 -06:00
AnHardt 24ca1a6289 Not more then 4 stripes for u8g-devices
To optimise speed.
Costs well invested 128Byte of RAM.
2016-11-26 19:08:33 +01:00
Scott Lahteine 668e737893 Merge pull request #5288 from thinkyhead/rc_selective_rendering
Optimize graphical display with selective rendering
2016-11-26 06:54:41 -06:00
Scott Lahteine aee71c543e Minor formatting in language.h 2016-11-26 06:53:52 -06:00
Scott Lahteine 05d8d189f6 Adjust spacing in utf_mapper.h 2016-11-26 06:53:52 -06:00
Scott Lahteine 5460a529da Add option DOGM_SPI_DELAY_US 2016-11-26 06:53:52 -06:00
Scott Lahteine 71842b6a17 Apply const to LCD arguments and locals 2016-11-26 06:53:52 -06:00
Scott Lahteine b1abd7edef Optimize graphical display with selective rendering 2016-11-26 06:53:52 -06:00
Scott Lahteine 23935dd23a Merge pull request #5301 from AnHardt/fix-USE_BIG_EDIT_FONT
Fix USE_BIG_EDIT_FONT
2016-11-26 06:53:21 -06:00
AnHardt b91fab2d7d Fix USE_BIG_EDIT_FONT 2016-11-26 13:50:25 +01:00
Scott Lahteine 4cd73e183d Hide hidden files and folders 2016-11-26 06:26:28 -06:00
Scott Lahteine f6f77d34a1 Add a fade factor for mesh leveling 2016-11-26 03:41:26 -06:00
Scott Lahteine 679d37f83f Merge pull request #5298 from AnHardt/fonts-unterlaengen
Change font decent to -1 for tr and gr
2016-11-25 20:01:11 -06:00
AnHardt 75fdcc14b7 Activate font and mapper for el-gr 2016-11-26 02:30:37 +01:00
AnHardt a0004e7cd3 Change font decent to -1 for tt and gr
For speeding up font drawing unify font decent.
Tr and Gr have ben the only fonts with a font decent of -2.
Sorry for some, a bit compressd, but hopefully still readeble symbols.
2016-11-26 02:29:23 +01:00
Scott Lahteine 307f263f89 Merge pull request #5292 from esenapaj/Update-Japanese-translation
Update Japanese translation
2016-11-25 16:56:49 -06:00
Scott Lahteine 9d177c93a2 Merge pull request #5291 from esenapaj/Follow-up-the-PR-#5255
Follow-up the PR #5255 (Case light menu (3rd attempt))
2016-11-25 16:56:15 -06:00
esenapaj 7070143042 Update Japanese translation
・Add new translation
2016-11-24 21:10:40 +09:00
esenapaj ef97645002 Follow-up the PR #5255 (Case light menu (3rd attempt)) 2016-11-24 19:42:05 +09:00
Scott Lahteine 2a9b3376a9 Merge pull request #5289 from thinkyhead/rc_which_menu_actions
Drop "static" keyword in ultralcd.cpp function declarations
2016-11-23 23:04:05 -06:00
Scott Lahteine b97dafe4b8 Drop "static" keyword in ultralcd.cpp function declarations 2016-11-23 20:43:01 -06:00
Scott Lahteine 2e966f8e5b Patch Capabilities Report for "PROGRESS" 2016-11-23 19:31:46 -06:00
Scott Lahteine f60321d3e3 Merge pull request #5284 from thinkyhead/rc_turkish_update
Turkish update (squashed)
2016-11-23 14:57:52 -06:00
Mehmet Sutas a26668b10c Add UTF8 Turkish Translation 2016-11-23 14:19:16 -06:00
Mehmet Sutas 61aa796307 Added Human Readable Comments 2016-11-23 14:19:16 -06:00
Mehmet Sutas 6fb9c6fe07 Follow-up for #5167 Turkish Language
Add check for Turkish Font before setting better font for graphic displays
2016-11-23 14:19:15 -06:00
Scott Lahteine d891324830 Merge pull request #5258 from mosh1/mbl_speed_fix
Fix z feedrate value when doing mesh bed leveling. probe feedrate use…
2016-11-23 14:15:01 -06:00
Scott Lahteine 7f8133a51f Merge pull request #5255 from Kaibob2/CaseLightMenu
Case light menu (3rd attempt)
2016-11-23 13:46:33 -06:00
Kai e9b42f4f47 Update language_de.h 2016-11-23 19:29:19 +01:00
Kai 0c341f0c50 Added Menu entry for Case light 2016-11-23 19:29:15 +01:00
Scott Lahteine 3bc2273ac9 Comment M540 2016-11-21 18:08:00 -06:00
Scott Lahteine 14b74181f5 Merge pull request #5179 from thinkyhead/rc_TMC2130
TMC2130 "Silent StepStick" support
2016-11-21 14:10:52 -06:00
Scott Lahteine bb2114a060 Merge pull request #5264 from thinkyhead/rc_delta_safe_zone
Add an option for delta to home to the top
2016-11-21 13:56:44 -06:00
Scott Lahteine 38466b1d2f Merge pull request #5271 from esenapaj/Fix-for-the-PR-#5267
Fix for thePR #5267 (Introduce a +1234.56 format for over 999 steps/mm)
2016-11-21 13:55:56 -06:00
Scott Lahteine 9b96a4a53b Merge pull request #5246 from thinkyhead/rc_some_cleanup
Minor stepper cleanup
2016-11-21 13:55:25 -06:00
Sebastianv650 8190483eeb Improvement for ENSURE_SMOOTH_MOVES
Instead of waiting for a single long block, compare the complete block
buffer runtime for the long_move() check.
2016-11-21 17:58:24 +01:00
esenapaj da67037550 Fix for thePR #5267 (Introduce a +1234.56 format for over 999 steps/mm)
・Fix memory leak
2016-11-21 22:31:01 +09:00
Scott Lahteine 0f891e848b Merge pull request #5268 from esenapaj/Update-Japanese-translation
Update Japanese translation
2016-11-21 03:18:36 -06:00
Scott Lahteine c91325e904 Merge pull request #5267 from esenapaj/Introduce-a-+1234.56-format
Introduce a +1234.56 format for over 999 steps/mm
2016-11-21 03:17:52 -06:00
esenapaj 190a04c467 Update Japanese translation
・Change translation for 16 width LCD
2016-11-21 17:51:43 +09:00
esenapaj 7b836a4000 Introduce a +1234.56 format for over 999 steps/mm 2016-11-21 17:45:07 +09:00
Scott Lahteine 76f47aebb6 Travis test TMC2130 options 2016-11-21 00:52:19 -06:00
Scott Lahteine 3e0376b45e Reorder M114 and M119 gcode cases 2016-11-21 00:52:19 -06:00
Scott Lahteine 644fac5d34 Reduce all stepper_indirection init code with macros 2016-11-21 00:52:18 -06:00
Scott Lahteine 4e4f37b6c2 Code formatting for TMC and L6470 config options 2016-11-21 00:52:18 -06:00
Scott Lahteine 127e21ae00 Extend M122 for all steppers 2016-11-21 00:52:18 -06:00
Scott Lahteine bf5f5f44cc Make TMC2130 init code auto-configure
Simply apply enabled settings instead of requiring users to edit
stepper_indirection.cpp
2016-11-21 00:52:17 -06:00
Moritz d67c1d825f Add TMC2130 support 2016-11-21 00:17:45 -06:00
Scott Lahteine 11effeee2c Add an option for delta to home to the top 2016-11-20 23:12:07 -06:00
Sebastianv650 50059690e0 Allow UART ISRs inside the stepper ISR
If the stepper ISR takes too long, chars are lost which leads to serial
communication errors like "Line number not +1" or "Wrong checksum". In
worst case, the printer can even do crazy moves.

With this changes, UART interrupts are handled inside the stepper ISR.
This way, no chars should be lost.
2016-11-20 13:09:12 +01:00
Scott Lahteine 8bf07684d2 Merge pull request #5256 from AnHardt/e-interrupts-2
Endstop interrupt refinement
2016-11-20 02:27:02 -06:00
Moshen Chan 29b174bfb9 Fix z feedrate value when doing mesh bed leveling. probe feedrate uses XY_PROBE_SPEED 2016-11-19 16:34:41 -08:00
AnHardt 88b38eafd8 Endstop interrupt refinement
At the start of a move, check if the endstops are already triggered.
The 'change' interrupts will not see a change if already triggered.
2016-11-19 13:30:49 +01:00
Scott Lahteine 79c8591192 Merge pull request #5253 from thinkyhead/rc_smooth_move_ex-lax
Ensure smooth print moves even with LCD enabled
2016-11-19 01:38:41 -06:00
Scott Lahteine 0215cacb30 Merge pull request #5247 from esenapaj/Re-follow-the-PR-#4634
Re-follow the PR #4634 (Set language display charset in language.h)
2016-11-19 01:32:40 -06:00
Scott Lahteine 2cc32d85a3 Adjust ENSURE_SMOOTH_MOVES coding style 2016-11-19 01:28:48 -06:00
Scott Lahteine 072541f286 Update ENSURE_SMOOTH_MOVES in all configs 2016-11-19 01:28:47 -06:00
Sebastianv650 de89dc9f04 Ensure smooth print moves even with LCD enabled
lcd_update can take so much time that the block buffer gets drained if
there are only short segments. This leads to jerky printer movements for
example in circles and a bad print quality.

This change implements a simple check: Only if the block currently
executed is long enough, run lcd_update.
This also means the printer will not show actual values on the LCD nor
will it respond to buttons pressed. A option that keeps the menu
accessible is also available.
Aditionaly, slow down if a block would be so fast that adding a new
block to the buffer would take more time. In this case, the buffer would
drain until it's empty in worst case.
2016-11-19 01:28:47 -06:00
Scott Lahteine 7b95918e84 Merge pull request #5251 from thinkyhead/rc_cmake_support
Added CMake support
2016-11-18 23:53:09 -06:00
Scott Lahteine 87b6b19256 Patch CASE_LIGHT typo 2016-11-18 23:49:12 -06:00
Scott Lahteine 0be6167f14 Merge pull request #5250 from CONSULitAS/RCBugFix_K8200_backinsync_2016-11-18
K8200: Example configuration back in sync
2016-11-18 22:49:18 -06:00
Scott Lahteine de3eea920d Merge pull request #5252 from thinkyhead/rc_endstop_interrupt_followup
Endstop interrupts followup
2016-11-18 22:35:25 -06:00
Scott Lahteine eb714ee873 Move dummy thermistor opts, fix redundant sensor comment 2016-11-18 22:24:48 -06:00
Scott Lahteine 7a99c6ce4f Reformat temp sensor listing 2016-11-18 22:24:47 -06:00
Scott Lahteine 181cdb3cfe Move GCode list above include lines 2016-11-18 22:24:46 -06:00
Scott Lahteine 25d0c167bd More detailed static_assert messages 2016-11-18 22:24:46 -06:00
Scott Lahteine eb120e518c Followup to new endstop interrupts feature
- Fix typos, verbiage
- Fix naming of `setup_endstop_interrupts`
- Some formatting, indentation, spacing
2016-11-18 21:53:45 -06:00
Scott Lahteine 832fe284b4 Merge pull request #5184 from AnHardt/endstop_interrupts
Introduce endstop interrupts
2016-11-18 20:50:24 -06:00
tohara f579ec2e7a Added CMake support 2016-11-18 20:18:34 -06:00
CONSULitAS cbae44df64 K8200: Example configuration back in sync
Configuration.h: back in sync, new features configured
Configuration_adv.h: back in sync, new features configured
README.md: text updated
2016-11-18 22:55:02 +01:00
esenapaj 5db3738fe7 Re-follow the PR #4634 (Set language display charset in language.h) 2016-11-18 17:44:49 +09:00
Scott Lahteine 32247c1b80 Merge pull request #5244 from thinkyhead/rc_danish_nov_2016
Update to Danish language 10/11-2016
2016-11-18 01:29:25 -06:00
Scott Lahteine 6eb6f12c64 Patch up some language formatting 2016-11-18 01:16:58 -06:00
Bo Herrmannsen 8cffa60cc5 Update to Danish language 10/11-2016 2016-11-18 01:16:57 -06:00
Scott Lahteine 98600e1433 Minor stepper cleanup 2016-11-18 01:15:57 -06:00
Florian Heilmann d08867986e Add autotemp capabilities to M104
This allows M104 to pass the F and B parameters to enable autotemp as well
2016-11-17 11:28:19 -06:00
Sebastianv650 c11b2bb777 Bugfix LIN_ADV
Advance has nothing todo with Z_AXIS, strange copy&paste error?
2016-11-17 11:28:19 -06:00
Scott Lahteine ee0765e872 Merge pull request #5233 from esenapaj/Update-Japanese-translation
Update Japanese translation
2016-11-17 03:38:19 -06:00
Scott Lahteine 2330619da0 Merge pull request #5191 from petrzjunior/const
Replace const bool with #define for consistency
2016-11-17 03:37:32 -06:00
esenapaj b278b7a395 Update Japanese translation
Only adjust spacing
2016-11-17 09:05:51 +09:00
Petr Zahradník junior d7ce5d271b Replace const bool with #define for consistency 2016-11-16 18:55:21 +01:00
Scott Lahteine d63230d73e Merge pull request #5192 from Kaibob2/patch-7
Printer Stats / Completed prints line doesn't fit in display (when german)
2016-11-16 00:16:36 -06:00
Scott Lahteine 548b45026d Merge pull request #5214 from Sebastianv650/RCBugFix_planner_opt
Save some cycle inside the planner
2016-11-16 00:06:55 -06:00
Scott Lahteine 5d23e52d75 Merge pull request #5228 from thinkyhead/rc_keep_last_mix
Fix DIRECT_MIXING_IN_G1 to preserve the previous mix
2016-11-15 19:12:01 -06:00
Scott Lahteine db47aa983d Merge pull request #5226 from mtowara/RCBugFix
bump -std in Makefile to c++11
2016-11-15 16:13:32 -06:00
Scott Lahteine 99b0c1fe56 Fix DIRECT_MIXING_IN_G1 to preserve the previous mix 2016-11-15 16:12:26 -06:00
Scott Lahteine a0aad8d686 Merge pull request #5224 from thinkyhead/rc_limit_G30_xy
Fix G30 with limits, print correct probe XY
2016-11-15 15:20:12 -06:00
Markus Towara 23a675f621 reduce binary size of .hex
still a few bytes bigger than with arduino but nothing major
2016-11-15 21:57:15 +01:00
Markus Towara 5b6e2cecf5 bump c/c++ standard to gnu11
needed for constexpr
2016-11-15 21:54:12 +01:00
Scott Lahteine 410657b050 Fix G30 with limits, print correct probe XY 2016-11-15 14:10:28 -06:00
AnHardt f3eee02596 Introduce endstop interrupts
If ENDSTOP_INTERRUPTS_FEATURE is enabled this tries to set up interrupt routines
for all used endstop pins. If this worked without errors, `endstops.update()` is called
only if one of the endstops changed its state.

The new interrupt routines do not really check the endstops and react upon them. All what they
do, is to set a flag if it makes sense to call the endstop test we are used to.

This can be used on:
* ARM (DUE) based boards - all pins can raise interrupts,
* RAMPS - all 6 endstop pins plus some other on EXT-2 can raise interrupts,
* RAMPS based boards - as long the designers did not change the pins for the endstops or at least left enough,
* all boards, if there are enough pins that can raise interrupts, and you are willing/able to swap with pins dedicated to other purpose.
2016-11-15 12:07:41 +01:00
Sebastianv650 e3ffb58fbd Save some cycle inside the planner
planner.h:
fan speed is used to set integer variables, so no need for long.
Basicaly a byte should be enough for all the fan things, as it's 0-255?

planner.cpp:
Save some float multiplications.
We could squeeze out even more by defining feedrate_percentage,
saved_feedrate_percentage and flow_percentage as float instead of int.
Everytime they are used in the time-critical planner, they are casted to
float and multiplied by 0.01. Not done jet, as they are used in LCD menu
functions I don't know well enough.
2016-11-13 13:34:12 +01:00
Scott Lahteine 665b7f3893 Merge pull request #5212 from thinkyhead/rc_mixing_faster
Store mix factors as reciprocals and multiply
2016-11-12 18:47:11 -06:00
Scott Lahteine 60cc9342a4 Merge pull request #5188 from thinkyhead/rc_extended_host_support
Extended host support: M155 Auto temp report, M115 capabilities
2016-11-12 15:38:06 -06:00
Scott Lahteine f663220e87 Store Mix factors as reciprocals and multiply 2016-11-12 15:19:18 -06:00
Scott Lahteine ea3c08d249 Merge pull request #5186 from esenapaj/Follow-up-the-PR-#5167-etc
Follow up the PR #5167 (Add Turkish Language) again, etc
2016-11-12 13:11:54 -06:00
Scott Lahteine c488378532 Merge pull request #5205 from Sebastianv650/RCBugFix_stepperpatch
Remove useless line from stepper ISR
2016-11-12 12:43:07 -06:00
Scott Lahteine 7972378828 Merge pull request #5209 from floyd871/RCBugFix
Megatronics 3.0 has no SD-Card detect
2016-11-12 12:42:02 -06:00
Michael Neumann 8bdf303da0 Update pins_MEGATRONICS_3.h 2016-11-12 12:26:07 +01:00
Michael Neumann 3890366c83 Update pins.h 2016-11-12 12:25:45 +01:00
Michael Neumann c0d45ca7f2 Update boards.h 2016-11-12 12:24:47 +01:00
Sebastianv650 cdc18f8c22 Remove useless line from stepper ISR
The flag is already set inside planner.get_current_block(). Doing it
twice isn't making it better..
2016-11-11 19:35:03 +01:00
Kai 8e8b4398f3 Printer Stats / Completed prints line doesn't fit in display (when german) 2016-11-09 22:03:25 +01:00
Scott Lahteine b31a07e261 Stateful M355 with separate P parameter 2016-11-09 03:28:18 -06:00
Scott Lahteine c8d4cd35d8 Include more features in Travis testing 2016-11-09 02:32:59 -06:00
Scott Lahteine 3c9a838651 Extended capabilities report in M115 2016-11-09 02:32:58 -06:00
Scott Lahteine 68b866b5dd Add M155 - Auto-report temperature with interval 2016-11-09 02:32:58 -06:00
Scott Lahteine 68b46fb2c9 Allow send to i2c address 0 (broadcast) 2016-11-08 17:54:55 -06:00
Scott Lahteine 75bfde9945 M155=>M260, M156=>M261 2016-11-08 17:54:54 -06:00
esenapaj 2ae72b0491 Follow up the PR #5167 (Add Turkish Language) again, etc
・Update forgotten K8400\Dual-head\Configuration.h
・Adjust spacing
2016-11-09 06:31:21 +09:00
Scott Lahteine 06f2282f82 Merge pull request #5176 from thinkyhead/rc_filchange_feedback
Give instant feedback for filament change
2016-11-07 12:11:54 -06:00
Scott Lahteine dcfd7c69e8 Merge pull request #5163 from nzinov/RCBugFix
Improve G30 probing command - add optional arguments
2016-11-07 11:37:13 -06:00
Scott Lahteine e765eebfb0 Patch spacing in bilinear grid report 2016-11-07 04:08:25 -06:00
Scott Lahteine 7780052fb3 Give instant feedback for filament change 2016-11-07 03:48:16 -06:00
Scott Lahteine de6f2ef2a3 Merge pull request #5171 from esenapaj/Follow-up-the-PR-#5167-etc
Follow up the PR #5167 (Add Turkish Language), etc
2016-11-07 00:05:44 -06:00
esenapaj 24e3f7abe7 Update Turkish translation
・Add new translation
2016-11-07 04:59:18 +09:00
esenapaj be48792e9c Follow up the PR #5167 (Add Turkish Language), etc
・Remove all the #ifndef
・Follow the PR #4603 (Strip never-translated strings from language
files)
・Follow the PR #4634 (Set language display charset in language.h)
・Follow the PR #4936 (Put max_jerk vars in array, clean up jerk code)
・Adjust spacing
2016-11-06 23:59:02 +09:00
Scott Lahteine 1864b282c5 Implement reversed CORE options 2016-11-05 23:47:51 -05:00
Scott Lahteine e3c8318504 Add reversed CORE options 2016-11-05 23:47:46 -05:00
Scott Lahteine 5aee8d892c Merge pull request #5167 from thinkyhead/rc_turkish_squashed
Add Turkish Language
2016-11-05 21:31:34 -05:00
Rigid3D 2327764980 Add Turkish Language 2016-11-05 21:06:16 -05:00
Nikolay Zinov dea00bbcf1 improve G30 probing
Add optional parameters
X, Y for probe point
S sets stowing on and off
2016-11-05 13:22:45 +03:00
Scott Lahteine 1614c9d207 Merge pull request #5155 from thinkyhead/rc_core_babystepping
BABYSTEPPING-oriented cleanup
2016-11-03 23:46:04 -05:00
Scott Lahteine 00662b8635 Minor babystep cleanup patches 2016-11-03 23:31:45 -05:00
Scott Lahteine cad792e702 Reduce code for invariant lcd_detected 2016-11-03 23:31:45 -05:00
Scott Lahteine b23d255491 Move macros above Stepper::babystep 2016-11-03 23:31:45 -05:00
Scott Lahteine cc57d46158 Fix set_position for CoreYZ 2016-11-03 23:31:45 -05:00
Scott Lahteine 0269347682 Merge pull request #5141 from thinkyhead/rc_old_slowdown_what
OLD_SLOWDOWN does nothing, so remove it
2016-11-03 23:30:43 -05:00
Scott Lahteine e92e2b2446 Merge pull request #5144 from Sebastianv650/RCBugFix_LIN_ADV_wipe
Account for wipe moves
2016-11-03 23:19:25 -05:00
Scott Lahteine 28a039c0e1 Merge pull request #5154 from thinkyhead/rc_bilinear_splits
Don't define bilinear_line_to_destination on kinematic setups
2016-11-03 15:29:31 -05:00
Scott Lahteine 176aeafc19 Don't define bilinear_line_to_destination on kinematic setups 2016-11-03 14:10:07 -05:00
Sebastianv650 d448500643 Account for moves with negative E movements
Added a rule so that LIN_ADVANCE isn't used for moves with negative E movements (de_float will be negative in this cases).
I also added a more detailed comment to make it more clear what the if statement does.
2016-11-03 17:01:17 +01:00
Scott Lahteine 2185973e39 Merge pull request #5150 from thinkyhead/rc_bilinear_splits
Corrections to bilinear_line_to_destination
2016-11-03 04:54:39 -05:00
Scott Lahteine 236853df22 Corrections to bilinear_line_to_destination
- Allow more than 9x9 probe points
- Account for the probe starting position
2016-11-03 04:43:59 -05:00
Scott Lahteine 3b6a43f7ad Merge pull request #5148 from thinkyhead/rc_dual_tool_z_limit
Fix Z raise with DXC_AUTO_PARK_MODE
2016-11-02 21:52:44 -05:00
Scott Lahteine 0115e495fe Fix up Dual X switch blocks 2016-11-02 21:38:50 -05:00
Scott Lahteine 2495ab7af2 Make dual_x_carriage_mode an enumeration 2016-11-02 21:38:49 -05:00
Scott Lahteine d6c36f5bb9 Fix Z raise with DXC_AUTO_PARK_MODE 2016-11-02 21:36:50 -05:00
Scott Lahteine 0c79553fc5 Cast int to AxisEnum for some accessors 2016-11-02 17:42:24 -05:00
Scott Lahteine adbf1f7dca Add M355 to the GCodes list. 2016-11-02 16:43:52 -05:00
Scott Lahteine 63efc10599 Merge pull request #5134 from thinkyhead/rc_bilinear_split_lines
Split cartesian moves on grid boundaries with bilinear ABL
2016-11-02 16:14:55 -05:00
Scott Lahteine 12167bc8f3 OLD_SLOWDOWN does nothing, so remove it 2016-11-02 01:28:19 -05:00
Scott Lahteine 1ee0fdcad7 Merge pull request #5140 from esenapaj/Follow-up-the-PR-#5089
Follow-up the PR #5089 (Centralize click-handling in the LCD loop)
2016-11-02 01:13:56 -05:00
esenapaj c8c1a28f6f Follow-up the PR #5089 (Centralize click-handling in the LCD loop)
bool feedback is no longer used
2016-11-02 08:36:02 +09:00
Scott Lahteine b0be2e41ff Merge pull request #5136 from esenapaj/Follow-up-the-PR-#5133
Follow-up the PR  #5133 (M355 Case light)
2016-11-01 11:04:48 -05:00
esenapaj c3a105186d Follow-up the PR #5133 (M355 Case light)
・Add CASE_LIGHT_PIN into pinsDebug.h
2016-11-02 00:31:50 +09:00
Scott Lahteine ee5b8d6dc8 Split moves on grid boundaries with bilinear ABL on cartesian 2016-11-01 08:25:47 -05:00
Scott Lahteine 66744a6076 Merge pull request #5133 from thinkyhead/rc_M355_case_light
M355 Case light
2016-11-01 07:51:27 -05:00
Scott Lahteine 955d14acb0 Patch photo pin code style 2016-11-01 06:30:14 -05:00
Stanley ab3f966f5f Case light G-code M355
implemented G-Code M355 into Marlin
2016-11-01 06:30:14 -05:00
Scott Lahteine 8b44413498 Merge pull request #5124 from Sebastianv650/RCBugFix_LIN_ADV-Patch
BugFix for incorrect E-speed calculation
2016-11-01 05:13:17 -05:00
Scott Lahteine f418e82b15 Remove redundant definition of EN_C 2016-11-01 05:10:07 -05:00
Sebastianv650 f9bea7968f BugFix for incorrect E-speed calculation
The extrusion speed was wrong due to a not high enough precision of
esteps to XY steps, therefore now the target float values are used to
calculate the ratio between XY movement and extrusion speed.
The e_speed_multiplier8 was replaced by an absolute multiplier called
abs_adv_steps_multiplier8, therefore one multiplication and bitshift can
be saved inside the stepper ISR. Due to this, also extruder_advance_k is
better suited inside the planner and not the stepper files any more.
2016-11-01 08:08:47 +01:00
Scott Lahteine 9c108aea18 Merge pull request #5132 from thinkyhead/rc_fix_M43
Followup to #5118 - pins debugging cleanup
2016-11-01 02:05:21 -05:00
Bob-the-Kuhn c20b4098be 2 bug fixes & some minor changes
see detailed  description in PR #5118
2016-11-01 01:29:41 -05:00
Scott Lahteine fa6bf12697 Merge pull request #5118 from thinkyhead/rc_expanded_M43
Enhancements to M43 pins debugging
2016-10-31 08:29:53 -05:00
Scott Lahteine 3a107e280d Developer note in pins_MIGHTYBOARD_REVE.h 2016-10-31 08:22:39 -05:00
Scott Lahteine 85e307dcd8 No FAN0_PIN 2016-10-31 08:08:03 -05:00
Scott Lahteine ff3a8ca0d1 Use NUM_DIGITAL_PINS instead of custom DIO_COUNT 2016-10-31 08:08:03 -05:00
Scott Lahteine 04a1fac029 Some cleanup to M43 2016-10-31 08:08:03 -05:00
Scott Lahteine 24f6612551 Reduce and optimize endstop_monitor code 2016-10-31 08:08:03 -05:00
Scott Lahteine b4444e91ae Reduce code and build size of PWM_details 2016-10-31 08:08:02 -05:00
Scott Lahteine dbe414ef03 Squash redundant code in PWM_status 2016-10-31 08:08:02 -05:00
Scott Lahteine af26d22741 Clean up some spacing and semantics 2016-10-31 08:08:02 -05:00
Bob-the-Kuhn 81397d7a9a EXTRUDER_x_AUTO_FAN name change to Ex_AUTO_FAN
I stumbled across a name change that'll be used a lot so I'm updateing
the name list.
2016-10-31 08:08:02 -05:00
Bob-the-Kuhn c7f1f0dae6 Add endstop monitor & make pins report pretty 2016-10-31 08:08:02 -05:00
Scott Lahteine d567b426d5 Merge pull request #4894 from thinkyhead/rc_mightyboard_rev_e
Mightyboard Revision E preliminary support
2016-10-31 08:01:41 -05:00
Scott Lahteine 43df9ace4e Merge pull request #5110 from thinkyhead/rc_z2_min_allowed
Support Z2 min in M119 report
2016-10-31 07:59:45 -05:00
Scott Lahteine 8a4c51f313 Merge pull request #5115 from thinkyhead/rc_buffer_line_wait_later
Optimize buffer_line by calculating before wait-for-free-block
2016-10-30 16:46:18 -05:00
Scott Lahteine 23f05f8be7 Use bit-length types in block_t 2016-10-30 16:16:29 -05:00
Scott Lahteine 8dc7807d85 Add support for CoreYZ to planner.buffer_line 2016-10-30 16:16:28 -05:00
Scott Lahteine 1cf878fdb1 Calculate dm and e-steps earlier in planner 2016-10-30 16:16:28 -05:00
Scott Lahteine 75dbb71dd7 Replace block.busy with a block.flag bit 2016-10-30 16:16:28 -05:00
Scott Lahteine c7f22f688f buffer_line can calculate while it's waiting 2016-10-29 17:08:42 -05:00
Scott Lahteine 3c3fe1a1ba Merge pull request #5089 from thinkyhead/rc_break_m1_fix
Centralize click-handling in the LCD loop
2016-10-29 16:07:08 -05:00
Scott Lahteine f3720f4e81 const arguments to test_dual_z_endstops 2016-10-29 16:01:27 -05:00
Scott Lahteine 8cebd2a7db Arrange Z2 min before Z2 max 2016-10-29 01:54:19 -05:00
Scott Lahteine accabf088a Add support for Z2 min endstop to M119 2016-10-29 01:54:02 -05:00
Scott Lahteine 396434a445 Fix compiler warning in M145 2016-10-28 20:57:36 -05:00
Scott Lahteine 8e787304c9 const float ref args in planner.h 2016-10-28 20:57:36 -05:00
Scott Lahteine 07bfc45df8 Adjust spacing in gcode_M149 2016-10-28 20:57:36 -05:00
Scott Lahteine 1a2310c494 Make LCD preheat vars an array to reduce code size 2016-10-28 20:57:36 -05:00
Scott Lahteine 1226ae1912 Some cleanup in ultralcd.h 2016-10-28 20:57:21 -05:00
Scott Lahteine 50ee749082 Centralize click-handling in the LCD loop 2016-10-28 20:57:21 -05:00
Scott Lahteine 47ad97c35e Merge pull request #5109 from thinkyhead/rc_eeprom_M218_tool_offset
Save hotend_offset array (M218) in EEPROM
2016-10-28 20:08:29 -05:00
Scott Lahteine d095c7933b Merge pull request #5108 from MagoKimbra/Fix_M420
Fix Command M420
2016-10-28 19:23:40 -05:00
Scott Lahteine bff6bbdb12 Indentation in configuration_store.cpp 2016-10-28 18:55:42 -05:00
Scott Lahteine 97115d56f9 Print error for M500 with disabled EEPROM 2016-10-28 18:53:48 -05:00
Scott Lahteine 67ab54185b Save hotend_offset array (M218) in EEPROM 2016-10-28 18:45:23 -05:00
MagoKimbra dfcdbb437b Fix Command M420 2016-10-28 20:53:48 +02:00
Scott Lahteine c34dbfb248 Merge pull request #5072 from thinkyhead/rc_preset_auto_fans
Add predefined AUTO_FAN_PINs to pins files
2016-10-27 17:12:11 -05:00
Scott Lahteine 1e00f5a4bd Merge pull request #5097 from thinkyhead/rc_fix_endstop_issue
Don't trigger endstops that are actually Z2 or probe
2016-10-27 08:32:48 -05:00
Scott Lahteine 9a23f73765 Don't trigger endstops that are actually Z2 or probe 2016-10-27 08:12:17 -05:00
Scott Lahteine c07cc9e3f1 Revert changes made to z dual endstop test
#3631 broke z dual endstops. Solved by @Nocturnal42 in https://github.com/MarlinFirmware/Marlin/issues/5078#issuecomment-256572248
2016-10-27 07:41:39 -05:00
Scott Lahteine c4c53856a4 Merge pull request #5094 from esenapaj/Fix-for-the-PR-#5088
Fix for the PR #5088 (Handle M108 in M1 also with ULTIPANEL)
2016-10-26 21:51:18 -05:00
Scott Lahteine 2e3110539b Merge pull request #5095 from thinkyhead/rc_fix_bilinear_math
Fix bilinear grid constraints
2016-10-26 21:48:19 -05:00
Scott Lahteine 4ec7ed554d Merge pull request #5093 from esenapaj/Follow-up-the-PR-#5087-etc
Follow-up the PR #5087 (Fixed SERVO pins on Azteeg X3), etc
2016-10-26 21:23:34 -05:00
esenapaj d5a5042d23 Fix for the PR #5088 (Handle M108 in M1 also with ULTIPANEL) 2016-10-27 10:32:20 +09:00
Scott Lahteine 9cbedab91b Use DPM where possible 2016-10-26 18:38:32 -05:00
Scott Lahteine ad38d91692 Sanity check that auto fan pins can do PWM 2016-10-26 18:38:32 -05:00
Scott Lahteine 95275eb9b3 Predefine auto fan pins in some pins files 2016-10-26 18:38:32 -05:00
Scott Lahteine 3f94b15cef Fix bilinear grid constraints
Followup to #5090
2016-10-26 18:11:26 -05:00
Scott Lahteine d439fb95f7 Sanity check for the renamed options 2016-10-26 17:51:26 -05:00
Scott Lahteine b6aa894893 Rename auto fan pins and add auto fan flags 2016-10-26 17:51:26 -05:00
Scott Lahteine ada935de87 Allow TEMP_STAT_LEDS with only one LED defined 2016-10-26 17:51:26 -05:00
Scott Lahteine 4b056d8184 Fix warning in ultralcd.cpp 2016-10-26 17:51:26 -05:00
Scott Lahteine 9dfd029911 Fix bug in fastio.h _GET_TIMER 2016-10-26 17:51:25 -05:00
esenapaj 8b1d90e281 Follow-up the PR #5087 (Fixed SERVO pins on Azteeg X3), etc
・Add header
・Adjust spacing
2016-10-27 06:46:03 +09:00
Scott Lahteine bfd3b3c604 Merge pull request #5087 from Fulg/azteeg-x3-pins
Fixed SERVO pins on Azteeg X3
2016-10-26 06:01:16 -05:00
Scott Lahteine 208d720614 Merge pull request #5082 from Fulg/RCBugFix
Only issue MAXTEMP when heating
2016-10-26 05:55:33 -05:00
Scott Lahteine b5d9639dd0 Merge pull request #5090 from thinkyhead/rc_fix_bilinear_math
Fix for bilinear grid outside bounds
2016-10-26 05:45:17 -05:00
Scott Lahteine f0d673561f Fix for bilinear grid outside bounds 2016-10-26 05:00:03 -05:00
Scott Lahteine 24bcea6c02 Merge pull request #5088 from thinkyhead/rc_break_m1_fix
Handle M108 in M1 also with ULTIPANEL
2016-10-26 00:44:01 -05:00
Scott Lahteine 1ba1ec0db9 Handle M108 in M1 also with ULTIPANEL 2016-10-25 23:25:47 -05:00
Scott Lahteine 7ad33422e3 Clear dir_t size, not pointer size 2016-10-25 22:59:40 -05:00
Benoit Miller 1c716034ec Fixed SERVO pins on Azteeg X3 2016-10-25 17:11:26 -04:00
Benoit Miller 2aa12d78dc Only issue MAXTEMP when heating 2016-10-24 17:09:29 -04:00
Scott Lahteine 3fcf915808 Fix uninitialized var in reset_acceleration_rates 2016-10-24 11:55:41 -05:00
Scott Lahteine 14f824c3de Merge pull request #5071 from esenapaj/Extend-measuring-range-of-thermocouple
Extend measuring range of thermocouple for MAX31855
2016-10-24 02:00:12 -05:00
Scott Lahteine 1097a50694 Merge pull request #5070 from gcormier/rcbugfix
Fix #4995 - M48/G29 on CoreXY maybe others?
2016-10-24 00:56:36 -05:00
Scott Lahteine fed6cfc5f5 Merge pull request #5074 from Sebastianv650/Accel_calc_v2
Planner acceleration bugfix and speedup v2
2016-10-23 16:42:57 -05:00
Sebastianv650 c397b9d60a Planner acceleration bugfix and speedup v2
.) Use already existing inverse_millimeters instead of /
block->millimeters.
.) Prevent overflow during acceleration calculation by checking if float
is necessary. Idea modified from Sailfish.
.) Save two uint32_t or even float multiplications by checking if
step[AXIS] has steps and if max acceleration is lower than accel. If
not, there is no need to check this axis.
2016-10-23 12:47:46 +02:00
Scott Lahteine aa99bd8d13 Merge pull request #5068 from esenapaj/Fix-for-PR-#5066
Fix for the PR #5066 (Updated french translation)
2016-10-23 02:56:36 -05:00
esenapaj 70e287ca8c Extend measuring range of thermocouple for MAX31855 2016-10-23 10:22:39 +09:00
Greg Cormier f0aed9dac7 Fix #4995 - M48/G29 on CoreXY maybe others? 2016-10-22 20:45:13 -04:00
esenapaj e50992694f Fix for the PR #5066 (Updated french translation)
MSG_INFO_PRINT_TIME is still being used
2016-10-23 06:09:56 +09:00
Scott Lahteine 483082387c Merge pull request #5022 from esenapaj/Fix-for-the-PR-#4553
Fix for the PR #4553 (Save bytes for custom chars (Hitachi LCD))
2016-10-22 13:54:09 -05:00
Scott Lahteine 8b967a9ff0 Merge pull request #5058 from thinkyhead/rc_reverse_arrow_buttons
Apply encoder reverse options to keypad arrows
2016-10-22 13:52:35 -05:00
esenapaj 523c7eaa6c Fix for the PR #4553 (Save bytes for custom chars (Hitachi LCD)) 2016-10-23 03:29:00 +09:00
Scott Lahteine ca48a49fdb Merge pull request #5065 from petrzjunior/transl
[LANGUAGE] Update Czech (BLTOUCH and DAC strings)
2016-10-22 12:46:10 -05:00
Scott Lahteine f0744fc815 Merge pull request #5066 from thinkyhead/rc_french_update
Updated french translation
2016-10-22 12:45:51 -05:00
Gege2B 88b7f6eb46 Updated french translation 2016-10-22 12:30:22 -05:00
Scott Lahteine 3544c3632f Merge pull request #5062 from thinkyhead/rc_warnings_fix
Warnings fixed redux
2016-10-22 12:21:36 -05:00
Petr Zahradník junior 8323d78ed7 Translated BLTOUCH and DAC strings 2016-10-22 19:12:21 +02:00
Scott Lahteine e151f952a3 Apply encoder reverse options to keypad arrows 2016-10-22 11:51:33 -05:00
Scott Lahteine cfb47929ca Merge pull request #5060 from thinkyhead/rc_fix_ugly_code
Reduce, clean up MINTEMP / MAXTEMP test code
2016-10-22 11:27:30 -05:00
Josef Pavlik dca50737f5 fixed warning: ISO C++ forbids compound-literals 2016-10-22 11:23:16 -05:00
Josef Pavlik 0bd66807b2 fixed warning: extra ; 2016-10-22 11:12:29 -05:00
Josef Pavlik d35dc407a8 fixed warning: ISO C99 requires rest arguments to be used 2016-10-22 11:12:29 -05:00
Josef Pavlik c2b51af3ba fixed warning: ISO C does not permit named variadic macros 2016-10-22 11:12:29 -05:00
Scott Lahteine 0d3fc7dd89 Merge pull request #5059 from gcormier/fixbaby
Set defer delay back to false when exiting babystepping.
2016-10-22 10:59:17 -05:00
Scott Lahteine f888597197 Reduce, clean up code for mintemp/maxtemp tests 2016-10-22 10:31:03 -05:00
Scott Lahteine ad64723354 Move MAX_EXTRUDERS to pins.h 2016-10-22 10:07:51 -05:00
Scott Lahteine 5f5a55a0de Add a ZERO macro to clear arrays 2016-10-22 10:07:18 -05:00
Greg Cormier 0009725637 Set defer delay back to false when exiting babystepping. 2016-10-22 09:43:30 -04:00
Scott Lahteine 627f9d5285 Merge pull request #5056 from thinkyhead/rc_lin_adv_opt
LIN_ADVANCE optimizations
2016-10-22 07:06:39 -05:00
Scott Lahteine 0908329d96 Merge pull request #5057 from thinkyhead/rc_mbl_lcd_logical
Fix manual leveling coordinates
2016-10-22 06:31:02 -05:00
Scott Lahteine 14e60f0d3b Correct typo in configs
As pointed out by #5044
2016-10-22 05:56:32 -05:00
Scott Lahteine 1165e83263 MBL coordinates are logical 2016-10-22 05:55:44 -05:00
Scott Lahteine dbfabb4c0a Merge pull request #5043 from Kaibob2/patch-5
Correct grammar and translation in language_de.h
2016-10-22 05:52:54 -05:00
Scott Lahteine b19bba275f No LCD timeout during babystepping
As requested in #5031
2016-10-22 05:26:07 -05:00
Scott Lahteine b9109b2875 Improve LIN_ADVANCE commentary (all configs) 2016-10-22 05:03:09 -05:00
Sebastianv650 9818d97587 Fix Z-hops during retract/prime lead to blobs
We don't want to have retract/prime movements done with LIN_ADVANCE, that's also true with simultaneously executed Z-hops.
2016-10-22 04:54:59 -05:00
Sebastianv650 599649e45d Add formula for LIN_ADVANCE_K
With this formula, a start value for K for further fine-calibration can be calculated.
2016-10-22 04:54:59 -05:00
Scott Lahteine be7d245eff Merge pull request #5008 from thinkyhead/test_endstop_hits
Save some PROGMEM in MBL G28
2016-10-22 03:35:52 -05:00
Scott Lahteine 7c0e52256d Merge pull request #5053 from thinkyhead/rc_fix_baud_config
Patch BAUDRATE line in configs
2016-10-22 03:27:45 -05:00
Scott Lahteine 2783dcb4cc Save some RAM in MBL's G29 2016-10-22 02:52:56 -05:00
Scott Lahteine 4f5a8c05d5 Tweaks to endstops macros 2016-10-22 02:52:56 -05:00
Scott Lahteine 083d41a2c2 Remove redundant estep rate code from LIN_ADVANCE
As noted by https://github.com/MarlinFirmware/Marlin/pull/4971#issuecomment-252503295
2016-10-22 02:19:14 -05:00
Scott Lahteine 4f6bfabaad Patch BAUDRATE line in configs 2016-10-22 00:48:52 -05:00
Kai 2bfedb74d5 Correct grammar and translation in language_de.h
Made Filament change Text sound like correct german.
2016-10-19 14:56:46 +02:00
Roxy-3D 8ddd039e68 Merge pull request #5037 from esenapaj/Fix-for-the-commit-dc2cb84
Fix for the commit dc2cb84 (Revert acceleration limiting to avoid overflow)
2016-10-18 15:33:06 -05:00
esenapaj 1e1edeadd3 Fix for the commit dc2cb84 (Revert acceleration limiting to avoid overflow)
・Add forgotten '\'
2016-10-18 18:07:20 +09:00
Scott Lahteine dc2cb8454c Revert acceleration limiting to avoid overflow 2016-10-17 17:08:41 -05:00
Scott Lahteine 6ae5cf17a9 Merge pull request #5033 from esenapaj/Fix-freezing-with-MAX31855
Fix freezing and MINTEMP Error with MAX31855 thermocouple
2016-10-17 16:22:20 -05:00
Scott Lahteine f257c4bcae Merge pull request #5036 from thinkyhead/rc_dac_code_deps
Fix DAC current code
2016-10-17 16:19:00 -05:00
Scott Lahteine b80cc0cbb5 Fix DAC current code 2016-10-17 15:17:57 -05:00
esenapaj 385bd8a4a3 Fix freezing and MINTEMP Error with MAX31855 thermocouple 2016-10-16 07:33:14 +09:00
Scott Lahteine ca7275a67a Disable EXTRAPOLATE_FROM_EDGE by default 2016-10-14 14:44:28 -05:00
Scott Lahteine 0921c7da84 Merge pull request #4997 from thinkyhead/rc_jerk_from_mk2
Adapt Jerk / Speed code from Prusa MK2
2016-10-12 06:38:50 -05:00
Scott Lahteine 4d89652bc2 Apply minor optimizations to planner.cpp 2016-10-12 04:42:15 -05:00
Scott Lahteine 1092319b19 Adapt speed/jerk code based on Prusa MK2 branch 2016-10-12 04:42:14 -05:00
Scott Lahteine 37643fef63 Merge pull request #4972 from bgort/platformio-improvements
Move platformio directories out of source tree
2016-10-12 03:42:33 -05:00
Scott Lahteine 8e1cc9332a Replace block flag bools with flag bits
…and apply const to some method parameters
2016-10-10 23:17:49 -05:00
Scott Lahteine d41f2bdbd8 Merge pull request #4991 from thinkyhead/rc_max31855_fix
Patches for Stepper DAC and MAX31855
2016-10-10 20:12:06 -05:00
Scott Lahteine d2da14459f Merge pull request #4993 from thinkyhead/rc_planner_deps
Sort out some header dependencies
2016-10-10 20:11:27 -05:00
Scott Lahteine e7cf566fc5 Do kinematic segments with buffer_line_kinematic
This breaks the raw option, but in the future perhaps all planner moves
will be sent in raw form instead of logical.
2016-10-10 17:14:03 -05:00
Scott Lahteine a10e81dc2a Minor cleanup of set_bed_leveling_enabled 2016-10-10 17:14:03 -05:00
Scott Lahteine 029824bc49 Patch ADJUST_DELTA macro for SCARA 2016-10-10 17:14:03 -05:00
Scott Lahteine 5ce5a9c822 Marlin: planner.h tweak 2016-10-10 17:14:03 -05:00
Scott Lahteine d963020532 Sort out some header dependencies 2016-10-10 17:14:03 -05:00
Scott Lahteine e17f9b8b99 DAC patches
As suggested by #4985
2016-10-10 14:08:04 -05:00
Scott Lahteine 2cb5df8a56 Merge pull request #4984 from esenapaj/Small-fix-for-PR-#4980
Small fix for the PR #4980 (LIN_ADVANCE bug fix and optimization)
2016-10-10 13:30:47 -05:00
Scott Lahteine b6221df3f3 Merge pull request #4983 from MarlinFirmware/revert-4933-rc_drop_pid_func_range
Revert "Removal of PID functional range"
2016-10-10 13:29:54 -05:00
Scott Lahteine a07033a6c1 Merge pull request #4974 from esenapaj/Follow-up-the-PR-#4955
Fix and follow-up the PR #4955 (PINS_DEBUGGING and M43: Read pin states), etc
2016-10-10 13:27:52 -05:00
Scott Lahteine f8199b2cc1 Merge pull request #4982 from thinkyhead/rc_abl_bugfix
Fix planner with kinematics, delta ABL
2016-10-10 13:24:22 -05:00
esenapaj f41c60d4a4 Follow-up the PR #4955, etc
・More ANALOG NUMBERING to Analog Input
・Add comment header to all the section of all the pins files

・Sort sections as follows:
1. Some special definitions (USBCON, LARGE_FLASH, etc)
2. Servos
3. Limit Switches
4. Z Probe
5. Steppers
6. Temperature Sensors
7. Heaters / Fans
8. Misc. Functions
9. LCD / Controller

・Move MAX6675_SS into "Temperature Sensors" section
・Adjust spacing
2016-10-10 14:22:43 +09:00
esenapaj 00456b0cb3 Fix compilation errors 2016-10-10 14:22:43 +09:00
esenapaj cfb5c24bc9 Small fix for the PR #4980 (LIN_ADVANCE bug fix and optimization)
・Fix a comment about timer
2016-10-10 07:48:42 +09:00
Scott Lahteine 149b8d9e4b Handle MAX31855 error conditions 2016-10-09 17:12:50 -05:00
Scott Lahteine f4ec265363 Fix a typo 2016-10-09 16:45:29 -05:00
Scott Lahteine 4ec2d459e6 Fix mcp4728_setVref_all as followup to #4967 2016-10-09 16:45:00 -05:00
Scott Lahteine 1e551c0688 Revert "Squashed - Removal of PID functional range" 2016-10-09 16:27:45 -05:00
Scott Lahteine 4037df82b0 Merge pull request #4981 from esenapaj/Update-Japanese-language
Update Japanese translation, etc
2016-10-09 16:11:53 -05:00
Scott Lahteine e4e290d957 Make EXTRUDER_RUNOUT_PREVENT kinematic compatible 2016-10-09 15:58:33 -05:00
Scott Lahteine 847429eff4 Make tool_change kinematic compatible 2016-10-09 15:58:32 -05:00
Scott Lahteine a4a7ca10ca Make USE_DELTA_IK_INTERPOLATION compatible with ABL 2016-10-09 15:58:32 -05:00
Scott Lahteine c5cac486f5 Use a, b, c instead of lx, ly, lz 2016-10-09 14:34:24 -05:00
Scott Lahteine bbeaca5839 Merge pull request #4980 from thinkyhead/rc_lin_update
LIN_ADVANCE bug fix and optimization
2016-10-09 14:29:09 -05:00
Josef Pavlik f8c2473a71 Improve planner kinematics, fix delta ABL 2016-10-09 13:32:46 -05:00
Scott Lahteine 48761f2021 Patch delta endstop adjustment config 2016-10-09 13:32:45 -05:00
Josef Pavlik 28d41b48e3 delta endstop adjustment configurable 2016-10-09 13:09:34 -05:00
Scott Lahteine ff6b23cb0f Fix an issue with shifted LCD lines 2016-10-09 13:00:00 -05:00
Scott Lahteine e4d2662d81 Use some macros in M48 2016-10-09 12:21:05 -05:00
Scott Lahteine 3752d9aca8 Fix timer comments 2016-10-09 12:11:00 -05:00
Sebastianv650 a448cedbc5 LIN_ADVANCE bug fix and optimization
.) long to int: Extruder stalls at 10kHz / 20kHz step limits with long.
.) Take the delta_adv_steps calculation out of the step_loops loop. Wasted calculation performance if done inside.
.) >> 2 replaced by 3: Is divide by 8. Reason: Timer 0 runs at 16/8=2MHz, Timer 1 at 16/64=0.25MHz. ==> 2/0.25=8.
2016-10-09 11:55:02 -05:00
esenapaj b27080c1dd Update Japanese translation
・Add new translation
2016-10-10 01:52:51 +09:00
esenapaj 0780146034 Move DAC section from inside of the changing filament section 2016-10-10 01:17:46 +09:00
Scott Lahteine fc93796e42 Merge pull request #4967 from thinkyhead/rc_dac_menu
Revised DAC Drive Strength Menu
2016-10-09 00:52:48 -05:00
Brian 9c0404eae4 Move platformio directories out of source tree 2016-10-08 13:45:26 -04:00
Scott Lahteine a1b50f1102 Cleanup of code style 2016-10-07 15:57:24 -05:00
jaysonkelly 13c9dcc600 Add LCD menu for DAC 2016-10-07 15:13:03 -05:00
Scott Lahteine 00261cbfcb Merge pull request #4933 from thinkyhead/rc_drop_pid_func_range
Squashed - Removal of PID functional range
2016-10-07 15:07:55 -05:00
Scott Lahteine ee01def16d Merge pull request #4955 from thinkyhead/rc_debug_pins
PINS_DEBUGGING and M43: Read pin states
2016-10-07 14:47:34 -05:00
Scott Lahteine a0df34fd4c Add PINS_DEBUGGING advanced config option 2016-10-07 14:20:13 -05:00
Scott Lahteine e21bab5243 PINS_DEBUGGING and M43 Read Pins 2016-10-07 14:11:48 -05:00
Scott Lahteine 3c97fa6e29 Merge pull request #4963 from esenapaj/Fix-for-advance-algorithm
Move routine of direction signal of ADVANCE and LIN_ADVANCE from Stepper::isr() to Stepper::advance_isr()
2016-10-07 00:33:42 -05:00
Scott Lahteine 48e63c4730 Comment some globals 2016-10-06 22:06:33 -05:00
Scott Lahteine 9a6c66602f Fix formatting of extrapolate debug output 2016-10-06 17:04:22 -05:00
Scott Lahteine cd77eb5c40 Clear grid for bilinear G29 2016-10-06 17:00:53 -05:00
Scott Lahteine 53a0856f5c Print Y as int in print_bed_level 2016-10-06 16:46:54 -05:00
esenapaj f8df88f271 Move routine of direction signal of ADVANCE and LIN_ADVANCE from Stepper::isr() to Stepper::advance_isr() 2016-10-07 02:01:29 +09:00
Roxy-3D 30fee51e86 Merge pull request #4958 from bgort/m48_improvements
Improve M48 output; Add min, max, range, etc.
2016-10-06 10:02:22 -05:00
Brian 357854a7ef tweak variables; 2016-10-05 19:49:05 -04:00
Brian 48cf19151a Improve M48 output; Add min, max, range, etc. 2016-10-05 16:09:39 -04:00
Scott Lahteine c63cb45268 Fix thermal runaway timeout 2016-10-05 08:42:39 -05:00
Scott Lahteine e6164d254d Clean up GCode command short comments 2016-10-05 06:13:30 -05:00
Scott Lahteine 47bd142b29 Should marlinAnalogInputToDigitalPin use analogInputToDigitalPin? 2016-10-05 06:13:30 -05:00
Scott Lahteine bd8520e61d Label analog pins in a similar way
Some other pins formatting also
2016-10-05 06:13:30 -05:00
Scott Lahteine 0c0deb5194 Common pin_is_protected function 2016-10-05 04:41:27 -05:00
Scott Lahteine 49d77720d5 More support for 4th extruder or heater 2016-10-05 04:40:22 -05:00
Scott Lahteine 9dd56e61bd Merge pull request #4954 from thinkyhead/rc_more_debug_homing
Fix buzzer when both i2c and beeper pin are set
2016-10-05 03:39:47 -05:00
Scott Lahteine 46839c222a Comment and clean up some vars 2016-10-04 23:40:45 -05:00
Scott Lahteine 8910bb7c97 Fix buzzer conditional compile 2016-10-04 21:38:41 -05:00
Scott Lahteine de7e798e6f Replace single-char S_ECHOs with S_CHAR 2016-10-04 21:38:41 -05:00
Scott Lahteine 0e83f34174 Tweak debugging of probe_pt 2016-10-04 21:38:00 -05:00
Scott Lahteine cc02f6edf8 Merge pull request #4943 from esenapaj/Small-update-of-language_kana_h
Small update of language_kana.h
2016-10-04 03:21:57 -05:00
Scott Lahteine ca26011e3c Merge pull request #4941 from MagoKimbra/rc_fix_M205
Add note for M205
2016-10-04 03:21:20 -05:00
Scott Lahteine 9485aa8f13 Include negative Z probe offset in clearance move 2016-10-03 16:18:04 -05:00
Scott Lahteine 5c1eb595e6 Fix for G2/G3 negative radius
As suggested in #4940
2016-10-03 14:48:44 -05:00
esenapaj f09ae96f28 Small update of language_kana.h 2016-10-03 23:41:39 +09:00
MagoKimbra 7b37539fe7 Add note for M205 2016-10-03 08:54:15 +02:00
Scott Lahteine d5f598cd82 Tweak probe debug, add newline 2016-10-02 17:35:40 -05:00
Scott Lahteine c592ccb6f5 Patch max_jerk[Z] menu item 2016-10-02 10:12:47 -05:00
Scott Lahteine d80a79eb77 Use right-shift instead of / 2, why not? 2016-10-02 07:01:40 -05:00
Rerouter 02fe9cf558 Removal of functional range constraint
Also lined up the >> 1 and / 2 mentioned earlier in the unconstrained I term issue,
2016-10-02 07:01:40 -05:00
Rerouter 5f5d87cad3 Update Configuration.h 2016-10-02 07:01:40 -05:00
Scott Lahteine 6abfc96165 Merge pull request #4936 from thinkyhead/rc_more_debug_homing
Put max_jerk vars in array, clean up jerk code
2016-10-02 06:54:54 -05:00
Scott Lahteine 761593b74b Cleanup some vars, use of min/max 2016-10-02 06:34:56 -05:00
Scott Lahteine d19cfcfc1d max_jerk array, DEFAULT_XYJERK => DEFAULT_[XY]JERK 2016-10-02 06:34:56 -05:00
Scott Lahteine 911f7e436c Merge pull request #4934 from thinkyhead/rc_more_debug_homing
More detailed debugging of G28 delta
2016-10-02 03:17:58 -05:00
Scott Lahteine e7dc174f30 More detailed debugging of G28 delta 2016-10-02 02:18:57 -05:00
Scott Lahteine 473f4a17a8 Merge pull request #4914 from Rerouter/PID-Unconstrained-Itemp
Pid unconstrained itemp
2016-10-01 06:58:07 -05:00
Scott Lahteine bad8899ebc Merge pull request #4900 from thinkyhead/rc_g38_changes
Cleanup of G38.2 / G38.3
2016-10-01 06:57:17 -05:00
Scott Lahteine 73ce3a61c7 Cleanup, comment zigzag 2016-10-01 05:21:52 -05:00
Scott Lahteine 0d538f3db6 Add to all configurations 2016-10-01 05:00:53 -05:00
Scott Lahteine 919fe3e4b8 Rename feature to G38_PROBE_TARGET 2016-10-01 05:00:53 -05:00
Scott Lahteine a2864ab7fe Patched up, cleaned up 2016-10-01 05:00:53 -05:00
Bob-the-Kuhn 2911aa7ffa code changes to implement G38 commands
1) modified 3 code files
Marlin.h
Marlin_main.cpp
endstops.cpp

2) modified config files so I could test on my machine

Testing was done on an AzteegX3pro based machine.

The probe was hooked to the Z_MIN endstop.

My controller doesn't have a dedicated Z_PROBE input so I couldn't test
that functionality.

Verified that a large file (without any G38 commands) executed the same
before and after the changes.

Verified that the head moves as expected when G38.2 and G38.3 commands
are issued. Single & multiple axis moves were tested along with + and -
directions.

Code was added to the main ISR. In normal operation only one extra IF
statement is evaluated. I didn't notice any performance degradation
because of the added code.

The G38 commands are expected to be issued manually by the operator
during machine setup. The G38 commands wait until the machine is idle
before proceeding. That way the other commands are minimally impacted
by the extra ISR overhead when a G38 command is in the queue.

The G38 commands are very similar to the G28 commands except 1) only the
Z_PROBE is used and movement can be in the + or - direction.

See issue 4677 for a discussion on adding G38 commands to Marlin.
Feature request: add ability to use G38.2 command (CNC)
MarlinFirmware/Marlin#4677
2016-10-01 05:00:53 -05:00
Scott Lahteine 74d048e77e Merge pull request #4927 from thinkyhead/rc_bltouch_noraise
Don't check Z_MAX on raise when the probe pwns the pin
2016-10-01 04:52:56 -05:00
Scott Lahteine 4afa293289 Say "BLTOUCH" in machine info report 2016-09-30 17:13:27 -05:00
Scott Lahteine ed7d2694fc Don't check Z_MAX on raise when the probe pwns the pin 2016-09-30 16:41:30 -05:00
Rerouter 638b809d90 Merge pull request #3 from thinkyhead/rc_unconstrain_pid
Apply changes to all configs
2016-09-30 17:41:32 +10:00
Scott Lahteine 3bbdd48a4d Merge pull request #4918 from thinkyhead/rc_abl_patchups
Fix up ABL - Add PROBE_Y_FIRST option. Arduino 1.6.8 required.
2016-09-29 15:29:01 -05:00
Scott Lahteine dac7a75054 Merge pull request #4919 from thinkyhead/rc_k8400_stops
K8400 has 1xXY an 2xZ endstop plugs
2016-09-29 15:24:57 -05:00
Scott Lahteine fffc9fefa8 Apply changes to all configs 2016-09-29 02:17:33 -05:00
Scott Lahteine 587cb6c283 K8400 has 1xXY an 2xZ endstop plugs 2016-09-29 02:07:22 -05:00
Scott Lahteine d234bc160e Require Arduino 1.6.8 to compile 2016-09-29 02:00:27 -05:00
Scott Lahteine 2d2c9bdf92 Add PROBE_Y_FIRST option for probe order 2016-09-29 02:00:27 -05:00
Scott Lahteine c8c57e59fc Patch the end of G29 to sync plan position 2016-09-29 02:00:27 -05:00
Scott Lahteine 81b8c9f8ec Add XY parameters to G29 for mesh dimensions 2016-09-29 02:00:27 -05:00
Scott Lahteine 56cf674150 M420 can now enable/disable ABL 2016-09-29 02:00:26 -05:00
Scott Lahteine 06790977c4 Use updated position methods 2016-09-29 01:31:05 -05:00
Scott Lahteine e8f2604a6f Patch print_bed_level numbering 2016-09-29 01:31:05 -05:00
Scott Lahteine d066610514 Patch up bilinear_z_offset 2016-09-29 01:31:05 -05:00
Scott Lahteine 850e38d013 G30 will only disable bed leveling 2016-09-29 01:31:04 -05:00
Scott Lahteine 510ef5d14a Standard function to turn bed leveling on/off 2016-09-29 01:27:37 -05:00
Scott Lahteine ecf7cdde65 Augment planner/stepper getters/setters 2016-09-29 01:27:37 -05:00
Scott Lahteine 2febd8ec82 Double-touch debugging 2016-09-29 01:27:37 -05:00
Scott Lahteine b331077c32 Use stepper.get_axis_position_degrees 2016-09-29 01:27:37 -05:00
Scott Lahteine 0d9efb24f3 Fix up bilinear_z_offset 2016-09-29 01:26:22 -05:00
jaysonkelly 3b3d282f8e Adjusted values for Rigidboard Configuration
Rigidboard differs a little in configuration from the PrinterBoardRevF we modeled the code after.
2016-09-28 14:14:04 -05:00
Scott Lahteine 850259bb25 Watch bed temp also for Control menu item 2016-09-28 14:14:04 -05:00
esenapaj 92c03a44a9 Fix the PR #4899 (ABL: Enable by type. Bilinear for all.) etc.
About Configuration.h:
・Fix the PR #4899 (ABL: Enable by type. Bilinear for all.)
Remove Duplicated contents

・Fix the PR #4305 (Custom boot screen feature improvement)
Revert from "during boot" to "during bootup" in all the example
Configuration.h

・Fix the PR #4207 (Clean up, simplify and generalize the Allen-key-probe
code.)
Resolve and relocate the duplicated definitions in Z_PROBE_ALLEN_KEY
section

・Follow-up the PR #4805 (Additional documentation of Configuration.h)
Add forgotten changes to all the example Configuration.h

Adjust spacing

About Configuration_adv.h:
Add missing description of SLOWDOWN for DELTA

Adjust spacing
2016-09-28 14:14:04 -05:00
Rerouter 50e5ee4de4 Update Configuration.h 2016-09-28 17:38:09 +10:00
Rerouter 1a2f1d4974 Update temperature.cpp 2016-09-28 17:36:53 +10:00
Rerouter a765c98850 Removal of the constraints of the Iterm 2016-09-28 17:26:49 +10:00
Scott Lahteine 8b46eb3766 Fix bilinear interpolation 2016-09-27 03:18:49 -05:00
Scott Lahteine 5100bdac81 Improve Bilinear Grid
- Extrapolate properly for even numbered grid points
- Extrapolate using average, not median
- Improve bilinear grid report output
- Add debug output for bilinear extrapolation
- Add option to extrapolate from edge, not center
2016-09-27 00:03:19 -05:00
Scott Lahteine a3e91ec65e Add 'Q' option to G29 when debug leveling is on 2016-09-27 00:03:19 -05:00
Scott Lahteine 1fceda4fb0 Add leveling type and details to machine_info 2016-09-27 00:03:19 -05:00
Scott Lahteine e0e0166075 Fix auto bed leveling - turn on after successful G29 2016-09-27 00:03:19 -05:00
Scott Lahteine f4b9052529 Merge pull request #4899 from thinkyhead/rc_nonlinear_grid
ABL: Enable by type. Bilinear for all.
2016-09-26 15:25:09 -05:00
Scott Lahteine 18e40de39c Adjust final Z after bilinear G29 2016-09-26 00:22:22 -05:00
Scott Lahteine ea0dbee3c9 Enable ABL by type, support bilinear on cartesian 2016-09-25 23:35:37 -05:00
Scott Lahteine 9cebbabd05 Merge pull request #4893 from thinkyhead/rc_stat_led_check
Define status LED pins without condition
2016-09-25 18:50:47 -05:00
Scott Lahteine fd64233182 Merge pull request #4895 from thinkyhead/rc_implemented_codes
Include requirements in "Implemented Codes"
2016-09-25 11:49:31 -05:00
Scott Lahteine 5fff8d148b Clean up digital pots and microsteps 2016-09-25 11:16:22 -05:00
Scott Lahteine 570676d265 Include requirements in "Implemented Codes" 2016-09-25 07:50:33 -05:00
Scott Lahteine cb48292338 Use fastio for literal pins 2016-09-25 06:33:38 -05:00
Scott Lahteine 07703d2bd6 Use _PIN suffix on some pins 2016-09-25 06:33:38 -05:00
Scott Lahteine 203e519bf4 Sanity check for status LED pins 2016-09-25 06:33:38 -05:00
Scott Lahteine ba43277429 Always define status LED pins 2016-09-25 06:33:37 -05:00
Scott Lahteine ad691022d7 Fix up spacing in A4JP pins 2016-09-25 06:33:37 -05:00
Scott Lahteine fba0b67f7d Rename status led pins 2016-09-25 06:33:37 -05:00
Scott Lahteine 9d86c07702 Clean up some fastio.h spacing 2016-09-25 06:33:37 -05:00
Scott Lahteine ab84ed22ca No such thing as G6 and G7 pins 2016-09-25 05:28:22 -05:00
Scott Lahteine c2f13be750 Mightyboard Revision E 2016-09-25 05:28:04 -05:00
Scott Lahteine 041d127cd3 Match bltouch test in do_homing_move with new code 2016-09-24 23:58:08 -05:00
Scott Lahteine eb4fa8adf8 Merge pull request #4889 from thinkyhead/rc_tweaky_fix
Fix HEATERS_PARALLEL
2016-09-24 14:46:00 -05:00
Scott Lahteine 16461900c2 Fix for HEATERS_PARALLEL 2016-09-24 05:34:40 -05:00
Scott Lahteine 1583d37edd Comment on M851 case 2016-09-24 05:34:36 -05:00
Scott Lahteine 076f3a8284 unsigned char => uint8_t 2016-09-24 05:23:40 -05:00
Scott Lahteine 8935bed594 MIDDLE_DEAD_ZONE => MIDDLE_DEAD_ZONE_R 2016-09-24 05:18:36 -05:00
Scott Lahteine 6cf0952bf9 Merge pull request #4887 from thinkyhead/rc_autumn_fixups
Improve MINIMUM_STEPPER_PULSE
2016-09-24 03:23:42 -05:00
Scott Lahteine 8061f1fac9 Merge pull request #4888 from thinkyhead/fix_warnings_etc
Suppress warnings, fix nonlinear_z_offset
2016-09-24 03:22:49 -05:00
esenapaj 7bdc58a818 Suppress warnings, fix nonlinear_z_offset 2016-09-24 03:06:08 -05:00
Scott Lahteine 9ecea6f445 Merge pull request #4885 from esenapaj/Update-Japanese-translation
Update Japanese translation
2016-09-24 02:49:18 -05:00
Scott Lahteine eabff30e75 Improve MINIMUM_STEPPER_PULSE 2016-09-24 02:23:43 -05:00
esenapaj 3ed8f8331c Update Japanese translation
・Add new translation
2016-09-24 09:24:38 +09:00
Scott Lahteine da1644313d Merge pull request #4883 from esenapaj/Follow-up-the-PR-#4860
Follow-up the PR #4860 (Fix BLTOUCH string and SERVO_DELAY)
2016-09-23 16:39:37 -05:00
Scott Lahteine 903b8bb60c No need for auto_bed_leveling_was_enabled 2016-09-23 16:38:22 -05:00
esenapaj ee60225c07 Follow-up the PR #4860 (Fix BLTOUCH string and SERVO_DELAY) 2016-09-24 06:18:27 +09:00
Scott Lahteine d0796fc54c Merge pull request #4868 from thinkyhead/rc_autumn_fixups
Cleanups for the Autumn release
2016-09-23 16:11:37 -05:00
Scott Lahteine 0951bffcc0 Sanity check homing bumps 2016-09-23 15:39:02 -05:00
Scott Lahteine a9a21db39f No homing bump if bump distance is 0 (or less) 2016-09-23 15:39:02 -05:00
Scott Lahteine 2b4da57ea7 Patch Z safe homing for probe Z homing 2016-09-23 15:39:02 -05:00
Scott Lahteine c6dd539c84 Print error for M42 bad pin 2016-09-23 15:39:02 -05:00
Scott Lahteine 8b399610fb Skip raw moves to current position 2016-09-23 15:39:02 -05:00
Scott Lahteine 22ece0081e Pass array pointer to unapply_leveling 2016-09-23 15:39:01 -05:00
Scott Lahteine cbc158eb62 Add a proper flag for ABL enabled 2016-09-23 15:39:01 -05:00
Scott Lahteine 666e944336 Init xProbe/yProbe for compiler 2016-09-23 15:39:01 -05:00
Scott Lahteine 2c52e6ecf4 Clean up G28 MBL code 2016-09-23 15:39:01 -05:00
Scott Lahteine 0bf1054bb2 Patch do_homing_move for SCARA 2016-09-23 15:39:00 -05:00
Scott Lahteine 6ad0da661c Report position in G92 2016-09-23 15:39:00 -05:00
Scott Lahteine 199a7b5dd5 Tweak SCARA debugging 2016-09-23 15:39:00 -05:00
Scott Lahteine 865ad25781 Fix prepare_kinematic_move_to precision 2016-09-23 15:39:00 -05:00
Scott Lahteine 85e607153b Improve kinematic optimization options 2016-09-23 03:03:15 -05:00
Scott Lahteine 2846531f0b const argument in do_homing_move 2016-09-23 03:03:15 -05:00
Scott Lahteine cc639d7d9c Less indentation in Stepper::isr 2016-09-23 03:03:14 -05:00
Scott Lahteine 7dec8071b2 Always synchronize in Stepper::set_position 2016-09-23 03:03:14 -05:00
Scott Lahteine c6142aa2a1 Minor cleanups in Marlin_main.cpp 2016-09-23 03:03:14 -05:00
Scott Lahteine 0427f3cc3b Use memcpy/memset in planner 2016-09-23 03:03:14 -05:00
Scott Lahteine 6b9bf8e8fe Add Planner::sync_from_steppers
Use to sync the planner after an interrupted move (when not overriding
the logical position).
2016-09-23 03:03:14 -05:00
Scott Lahteine be11a8a938 Fix debug in Planner::buffer_line 2016-09-23 03:03:13 -05:00
Scott Lahteine b211df818e Make movement functions more available 2016-09-23 03:03:13 -05:00
Scott Lahteine 6335acbf5c Patch bug in linear unapply_leveling 2016-09-23 03:03:13 -05:00
Scott Lahteine 1370d9a52b Merge pull request #4875 from thinkyhead/rc_bltouch_update
Use probe clearance for bump when homing Z with probe
2016-09-22 16:57:08 -05:00
Scott Lahteine e8d5073a90 Use probe clearance for bump when homing Z with probe 2016-09-22 15:41:28 -05:00
Scott Lahteine dbe41245f1 Merge pull request #4821 from thinkyhead/rc_revert_to_raises
Z Raise/Clearance rather than Height
2016-09-22 15:30:07 -05:00
Scott Lahteine 747a2257dd Only deploy/stow BLTOUCH on downward move 2016-09-22 15:26:19 -05:00
Scott Lahteine e242946ac3 Patch G29 for linear leveling, reachable with probe 2016-09-22 15:26:19 -05:00
Scott Lahteine b800eb0fed Add probe option to position_is_reachable 2016-09-22 15:26:19 -05:00
Scott Lahteine fafafcf9d1 Use unapply_leveling in set_current_from_steppers_for_axis 2016-09-22 15:26:18 -05:00
Scott Lahteine e69d1e2879 Homing/probing feedrate, comments 2016-09-22 15:26:18 -05:00
Scott Lahteine 7d72ed688c Revert motor_current_setting to constexpr
We should use `constexpr` wherever it makes sense, for its added benefits. See http://stackoverflow.com/questions/13346879/const-vs-constexpr-on-variables
2016-09-22 15:26:18 -05:00
Scott Lahteine 145d9005d1 Fix BLTOUCH string and SERVO_DELAY 2016-09-21 01:45:23 -05:00
Scott Lahteine 2b7cc27c37 Merge pull request #4840 from thinkyhead/rc_G2_G3_arc_r_method
Add support for G2/G3 with R parameter
2016-09-21 01:30:37 -05:00
Scott Lahteine e0e10e0e45 Merge pull request #4859 from thinkyhead/rc_kinematic_and_scara
Kinematic and SCARA patches
2016-09-21 01:21:49 -05:00
Scott Lahteine 31f03c838a Only deploy/stow BLTouch for Z axis 2016-09-21 00:54:54 -05:00
Scott Lahteine 0c951436e4 Extend SCARA test, stress-test ABL_GRID_POINTS_* 2016-09-20 18:48:06 -05:00
Scott Lahteine 3913e04ac7 Add Delta kinematic optimization options 2016-09-20 18:48:06 -05:00
Scott Lahteine 8e31640229 Optimize prepare_kinematic_move_to 2016-09-20 18:48:06 -05:00
Scott Lahteine fd9b8ae4d4 Use position_is_reachable in G29, M48 2016-09-20 18:48:06 -05:00
Scott Lahteine 7194e4434f SCARA support in position_is_reachable 2016-09-20 18:48:06 -05:00
Scott Lahteine 1c5f9821c4 SCARA support in homeaxis 2016-09-20 18:48:05 -05:00
Scott Lahteine 92b4459f6c Simpler G92 for SCARA 2016-09-20 18:48:05 -05:00
Scott Lahteine 46cc2e3f6a Fix get_cartesian_from_steppers 2016-09-20 18:31:36 -05:00
Scott Lahteine 435c3ed404 Patch SCARA_move_to_cal for coordinate space 2016-09-20 18:31:36 -05:00
Scott Lahteine 5efb12e889 Simpler report_current_position for SCARA 2016-09-20 18:31:36 -05:00
Scott Lahteine 83fc5e1540 No line_to_* functions with IS_KINEMATIC 2016-09-20 18:31:36 -05:00
Scott Lahteine 59d39d7655 G0 direct move for SCARA 2016-09-20 18:31:36 -05:00
Scott Lahteine ad9d6870ed SCARA support in do_blocking_move_to 2016-09-20 18:31:36 -05:00
Scott Lahteine 8542ebcecd prepare_move_to_destination_raw => prepare_uninterpolated_move_to_destination 2016-09-20 18:31:36 -05:00
Scott Lahteine f900f97611 Update sw endstops in set_axis_is_at_home 2016-09-20 18:31:36 -05:00
Scott Lahteine 0d43cef1de M206 for MORGAN_SCARA 2016-09-20 18:31:36 -05:00
Scott Lahteine e94cb7a380 MORGAN_SCARA kinematics 2016-09-20 18:31:36 -05:00
Scott Lahteine 890bade2fa Additions, mods to SCARA config 2016-09-20 18:31:36 -05:00
Scott Lahteine 01f1028510 Try on "CLEARANCE" for size 2016-09-20 18:29:49 -05:00
Scott Lahteine 0e7d638a7a Revert to Probe Raise rather than Probe Height 2016-09-20 18:29:49 -05:00
Scott Lahteine 82b0014f5e Merge pull request #4856 from thinkyhead/rc_bltouch_update
Fix and extend BLTouch support
2016-09-20 17:13:52 -05:00
Scott Lahteine 51e42a2d77 Adjust BLTouch probe behavior
Addressing #4855
- Have the pin deploy only immediately before probing
- Have the pin retract immediately after every probe
2016-09-20 16:20:36 -05:00
Scott Lahteine 13523cbf29 Fix and extend BLTouch support 2016-09-20 16:20:36 -05:00
Scott Lahteine 5cbed13f41 'constexpr' => 'const' for PWM_MOTOR_CURRENT 2016-09-20 15:57:48 -05:00
Scott Lahteine be3a8f4126 Merge pull request #4857 from thinkyhead/rc_fix_travis_u8glib
Arduino 1.6.10, direct download U8glib in Travis CI
2016-09-20 15:52:53 -05:00
Scott Lahteine ed759626fe Arduino 1.6.10, direct download U8glib in Travis CI 2016-09-20 15:35:33 -05:00
Scott Lahteine 7ae351c92f Merge pull request #4842 from thinkyhead/rc_DISABLE_Z_MIN_PROBE_ENDSTOP_whassup
Drop DISABLE_Z_MIN_PROBE_ENDSTOP, clean up probe config
2016-09-20 12:16:51 -05:00
Scott Lahteine ba94c89e21 Merge pull request #4852 from esenapaj/Fix-for-advance-extrusion-algorithms
Fix for advance extrusion algorithms
2016-09-20 11:33:14 -05:00
Scott Lahteine e87ad155cc Merge pull request #4851 from thinkyhead/rc_linear_grid
Patch G29 for 3-point leveling
2016-09-20 11:29:59 -05:00
esenapaj 954563d603 Adjust spacing 2016-09-20 19:35:44 +09:00
esenapaj 7e9576dc5b Extend the e_steps[] from int to long for allowing more than 32,767 E steps
Probably needed for long straight lines when using high microstepping
2016-09-20 19:35:44 +09:00
esenapaj b04ed8f9c3 Fix inverted stepper signal of ADVANCED and LIN_ADVANCED 2016-09-20 19:35:44 +09:00
esenapaj 8692748ecd Fix broken direction signal of ADVANCED and LIN_ADVANCED
Remove a setting proccess of E direction in advance_isr()
2016-09-20 19:35:44 +09:00
Scott Lahteine e9ce42353e Patch G29 for 3-point leveling 2016-09-20 04:46:41 -05:00
Scott Lahteine c2744d8a8b Add support for G2/G3 with R parameter 2016-09-19 00:35:09 -05:00
Scott Lahteine e05af606a8 Clean up probe config options 2016-09-19 00:26:16 -05:00
Scott Lahteine 153e240cdd Probe conditionals to Conditionals_LCD.h 2016-09-19 00:25:53 -05:00
Scott Lahteine ff38a3c3b1 Use SD Detect Pin 53 for 3DRAG, K8200, and K8400
See #4316
2016-09-18 23:46:09 -05:00
Scott Lahteine 9a9e9afcf8 Merge pull request #4839 from thinkyhead/rc_bltouch_servo_nr
Better BLTOUCH support
2016-09-18 23:42:16 -05:00
Scott Lahteine f38a33a5d8 Add handling of BLTouch error state 2016-09-18 22:00:32 -05:00
Scott Lahteine c4dcfa254e Allow override of Z_ENDSTOP_SERVO_NR with BLTOUCH 2016-09-18 22:00:32 -05:00
Scott Lahteine 7d9ebda478 Remove redundant servo probe sanity check 2016-09-18 21:46:18 -05:00
Scott Lahteine f0beae7641 Fix stupid, stupid, stupid oversight in G29 update
Mea culpa!
2016-09-18 16:24:47 -05:00
Scott Lahteine 127d796420 Merge pull request #4837 from thinkyhead/rc_nonlinear_in_planner
Handle nonlinear bed-leveling in Planner
2016-09-18 15:31:51 -05:00
Scott Lahteine 77639672d7 Move NONLINEAR bed leveling to planner
This is in advance of moving non-linear bed leveling to the planner
class.
2016-09-18 13:50:38 -05:00
Scott Lahteine 9429c7db89 Use ABC indices in delta[] 2016-09-18 13:50:38 -05:00
Scott Lahteine 5f2f991192 Use 'logical' rather than 'target' or 'cartesian' 2016-09-18 13:50:38 -05:00
Scott Lahteine 40d3e854f6 Remove redundant extern delta[] 2016-09-18 13:39:47 -05:00
Scott Lahteine 2ebfbc4c8d Merge pull request #4836 from thinkyhead/rc_some_comments
Some comments, const args, debug output tweaks
2016-09-18 13:38:07 -05:00
Scott Lahteine 48fe2fdc9e Merge pull request #4835 from thinkyhead/rc_abl_non_square_grid
Allow non-square Auto Bed Leveling grid
2016-09-18 13:37:43 -05:00
Scott Lahteine e5505e3b33 Allow non-square leveling grid 2016-09-18 13:11:20 -05:00
Scott Lahteine 2fc9ad6657 Use const ref args in probe_pt 2016-09-18 12:58:43 -05:00
Scott Lahteine 2c2688d7ad Adjust comments, spacing 2016-09-18 12:58:42 -05:00
Scott Lahteine b9d19b0008 Tweak extrapolate_one_point 2016-09-18 12:58:42 -05:00
Scott Lahteine 3c0b591935 Fix nozzle position description 2016-09-18 12:58:42 -05:00
Scott Lahteine 18d8dd4c0f set_current_from_steppers_for_axis const arg 2016-09-18 12:58:42 -05:00
Scott Lahteine edfaf1c582 Stepper::report_positions patch 2016-09-18 12:58:42 -05:00
Scott Lahteine d1f4c3d73b Patch sync_plan_position comment 2016-09-18 12:58:41 -05:00
Scott Lahteine 0c25af30d4 Document homeaxis 2016-09-18 12:58:41 -05:00
Scott Lahteine e7882e45e3 Document set_axis_is_at_home 2016-09-18 12:58:40 -05:00
Scott Lahteine fef959c31a Merge pull request #4834 from thinkyhead/rc_code_bool
Standardize code_value_bool
2016-09-18 12:44:20 -05:00
Scott Lahteine 07ac9a1152 Merge pull request #4822 from blubbfish/patch-3
Tweak some german language strings
2016-09-18 11:38:22 -05:00
Scott Lahteine 661fe09ce7 Standardize code_value_bool 2016-09-18 11:32:32 -05:00
Scott Lahteine 20e5140e75 Merge pull request #4833 from thinkyhead/rc_no_scara_axis_scaling
Remove SCARA axis_scaling
2016-09-18 11:31:50 -05:00
Scott Lahteine 37258956d5 Merge pull request #4832 from thinkyhead/rc_fix_M0_M1
Enable M0/M1 with Emergency Parser
2016-09-18 11:31:36 -05:00
Scott Lahteine a501f430eb Enable M0/M1 with Emergency Parser 2016-09-18 11:14:10 -05:00
Philip Schell cd8b22b527 Tweak some german language strings
Change some string to get a better wording in german
2016-09-16 22:29:39 +02:00
Scott Lahteine 83a41c7ceb Remove SCARA axis_scaling 2016-09-16 15:21:18 -05:00
Scott Lahteine d41eeb62af Merge pull request #4781 from thinkyhead/rc_final_z_correction
Use simplified Z correction in G29 when possible
2016-09-16 15:14:19 -05:00
Scott Lahteine 502150046c Merge pull request #4805 from thinkyhead/rc_config_adjustment
Additional documentation of Configuration.h
2016-09-16 15:13:20 -05:00
Scott Lahteine a1812b55f6 Space out array values 2016-09-16 14:41:05 -05:00
Scott Lahteine d4599fd8ed Comment patches to Configuration.h 2016-09-16 14:41:05 -05:00
Scott Lahteine 723e983073 Default EXTRUDE_MAXLENGTH to 200mm 2016-09-16 14:41:04 -05:00
Scott Lahteine b08bd84f8e Merge pull request #4806 from blubbfish/patch-2
Update language_de.h
2016-09-16 14:39:20 -05:00
Scott Lahteine 939bf1057c Merge pull request #4820 from darrelhunt/RCBugFix
Fixing Pin Definition Files to Define USBCON
2016-09-16 14:33:38 -05:00
darrelhunt 7b8bfa4358 Update pins_TEENSYLU.h 2016-09-16 11:26:37 -07:00
darrelhunt 829c8592f2 Update pins_TEENSY2.h 2016-09-16 11:26:09 -07:00
darrelhunt e0aee20327 Update pins_SAV_MKI.h 2016-09-16 11:25:42 -07:00
darrelhunt 88d3fc0bcf Update pins_PRINTRBOARD.h 2016-09-16 11:25:14 -07:00
darrelhunt 4277221abb Update pins_BRAINWAVE_PRO.h 2016-09-16 11:24:32 -07:00
darrelhunt b8ecbe9116 Update pins_BRAINWAVE.h 2016-09-16 11:23:52 -07:00
darrelhunt 60f757077e Update pins_5DPRINT.h 2016-09-16 11:22:52 -07:00
Scott Lahteine 4ca837b6cf Merge pull request #4815 from tnw513/fix-italian
Added missing translation (Italian)
2016-09-15 19:08:28 -05:00
Silvio Didonna ff2b2d5939 Added missing translations 2016-09-16 01:17:58 +02:00
Philip Schell 2b11c3274c Update language_de.h 2016-09-15 15:16:11 +02:00
Philip Schell 54e6d12382 Update language_de.h
@MarlinFirmware/language-team updated german languagefile to the latest english version
2016-09-14 14:17:21 +02:00
Scott Lahteine 57564ae576 Use last probe point to correct Z when possible 2016-09-14 02:03:43 -05:00
Scott Lahteine e40646de42 Merge pull request #4803 from thinkyhead/rc_lcd_button_fix
Clear LCD button state, apply timer to all
2016-09-13 18:03:39 -05:00
Scott Lahteine 2fce217576 Merge pull request #4804 from thinkyhead/rc_fix_broken_G29
Fix some regressive typos in G29
2016-09-13 17:51:38 -05:00
Scott Lahteine 29f224594c Fix some regressive typos in G29 2016-09-13 17:31:02 -05:00
Scott Lahteine 5ecc7d9f25 Clear LCD button state, apply timer to all
Addressing #3007
2016-09-13 16:10:27 -05:00
Scott Lahteine 94d5cf8721 Merge pull request #4789 from thinkyhead/rc_better_leveling_etc
Various cleanups ahead of more…
2016-09-13 05:21:17 -05:00
Scott Lahteine 9b0931ef74 Apply fixed EXTRUDER_RUNOUT_PREVENT 2016-09-13 03:33:04 -05:00
Scott Lahteine b1a60e8954 Reformat, rearrange, tweak, and document
- Add comments to several functions
- Add an option to use Fast SQRT for Delta IK
- Group related functions together
- Outdent some leveling-related functions
2016-09-13 03:33:04 -05:00
Scott Lahteine 61284cbd8c Various code style adjustments 2016-09-13 03:33:04 -05:00
Scott Lahteine 788a16fc46 Clean up serial out code 2016-09-13 03:33:03 -05:00
Scott Lahteine 0e38bea79d Shrink 3-point leveling code 2016-09-13 03:33:03 -05:00
Scott Lahteine 4f75ce6957 Unify reset_bed_level for linear/non-linear 2016-09-13 03:33:03 -05:00
Scott Lahteine 41d8149bce Sanity check for more than 1 controller 2016-09-13 03:33:02 -05:00
Scott Lahteine 40785ce8ac Use count method for kinematic sanity check 2016-09-13 03:33:02 -05:00
Scott Lahteine 3236762e07 Clean up sanity check for LCD_PROGRESS_BAR 2016-09-13 03:33:02 -05:00
Scott Lahteine a9ed23225f bed_level => bed_level_grid 2016-09-13 03:33:02 -05:00
Scott Lahteine 82be65065c Fix up untilted_stepper_position and set_current_from_steppers_for_axis 2016-09-13 03:33:01 -05:00
Scott Lahteine d65f5d816f Patch to fix kinematics 2016-09-13 03:33:01 -05:00
Scott Lahteine e529c6407e Rename set_cartesian_from_steppers, cartesian_position 2016-09-13 03:33:01 -05:00
Scott Lahteine c109399bf6 Fix planner leveling and rename arguments
Use lx, ly, lz for “logical” positions
2016-09-13 03:33:01 -05:00
Scott Lahteine d4f21af6b3 sync_plan_position_delta => sync_plan_position_kinematic 2016-09-13 03:33:01 -05:00
Scott Lahteine acd1b6e9c0 Rename delta_grid spacing for general nonlinear 2016-09-13 03:33:00 -05:00
Scott Lahteine c5fa70809b Implement M0/M1 for EMERGENCY_PARSER 2016-09-13 03:33:00 -05:00
Scott Lahteine 786d1afb72 Add position_is_reachable, use in home_z_safely 2016-09-13 03:33:00 -05:00
Scott Lahteine b4034915f8 Move z safe homing to its own function 2016-09-13 03:33:00 -05:00
Scott Lahteine c84b14c77a Move delta homing to its own function 2016-09-13 03:32:59 -05:00
Scott Lahteine f9a192c7e3 Move setup() and loop() to the end 2016-09-13 03:32:59 -05:00
Scott Lahteine 8ff338c2b9 Patch stepper.h for SCARA 2016-09-13 03:32:59 -05:00
Scott Lahteine 74d7f5e57b Patch SCARA example config 2016-09-13 03:32:59 -05:00
Scott Lahteine 6ab54c60b1 Add conditionals for kinematics, leveling 2016-09-13 03:32:59 -05:00
Scott Lahteine 21514568fd Add enum for ALL_AXES 2016-09-13 03:32:58 -05:00
Scott Lahteine 413b61e64a Add HYPOT2 and float comparison macros 2016-09-13 03:32:58 -05:00
Scott Lahteine 0ea7ed6db6 Merge pull request #4797 from thinkyhead/rc_runout_comments
Fix comment on FILAMENT_RUNOUT_SENSOR
2016-09-13 02:25:26 -05:00
Scott Lahteine a6f6ed352b Fix comment on FILAMENT_RUNOUT_SENSOR 2016-09-13 02:14:34 -05:00
Scott Lahteine 48e14d049a Merge pull request #4710 from thinkyhead/rc_fix_leveling_maths
Bed leveling that accounts for home XYZ
2016-09-10 15:47:39 -05:00
Scott Lahteine 416821a71c Merge pull request #4765 from thinkyhead/rc_endstop_direction
Sanitycheck endstop plugs based on homing direction
2016-09-10 14:49:50 -05:00
Scott Lahteine 9248cfb0ad Bed leveling that accounts for home XYZ 2016-09-10 13:47:21 -05:00
Scott Lahteine 2e8fd70fb1 Merge pull request #4779 from thinkyhead/rc_cleanups_1
Minor code cleanup, tweak M109/M190
2016-09-10 13:47:05 -05:00
Scott Lahteine 6ac9d895ca Tweak Filament Width variables 2016-09-10 13:29:25 -05:00
Scott Lahteine 68ba45572e Don't say "heating complete" unless done 2016-09-10 13:29:25 -05:00
Scott Lahteine 2bfc6fe1b0 Move XYZ constants closer to the top 2016-09-10 13:25:44 -05:00
Scott Lahteine 12b94e419f Sanitycheck endstop plugs based on homing direction 2016-09-08 13:56:32 -05:00
Scott Lahteine 29c4f67a29 Additional path - followup to #4743 2016-09-07 15:08:12 -05:00
Scott Lahteine 8a8d6e00b7 Merge pull request #4756 from thinkyhead/rc_makefilefix
makefile fix for arduino 1.6.9 unzipped
2016-09-03 20:24:26 -05:00
Robert Bartl 494d5770b8 makefile fix for arduino 1.6.9 unzipped 2016-09-03 19:45:27 -05:00
Scott Lahteine 6f71bd7372 Merge pull request #4754 from thinkyhead/rc_mixing_regression
Unify counter_m and counter_M
2016-09-02 12:27:43 -05:00
Scott Lahteine 9bf78ef465 Fix capitalization of counter_m 2016-09-02 11:31:45 -05:00
Scott Lahteine 42b5616327 Try bool for direction instead of long 2016-09-02 11:28:48 -05:00
Scott Lahteine cbe9ab902c Merge pull request #4747 from thinkyhead/rc_sd_show_percent
Option to show SD percent on Graphical LCD
2016-09-02 07:44:42 -05:00
Scott Lahteine f20b2b21eb Optimize LCD string/char printing 2016-09-02 06:41:24 -05:00
Scott Lahteine 3b2f7ba225 Merge pull request #4748 from thinkyhead/rc_sd_print_timer
Patch duration_t toDigital method
2016-09-02 04:41:11 -05:00
Scott Lahteine dad94d2fef Merge pull request #4749 from thinkyhead/rc_minumum_minimum
Fix a misspelling of minimum
2016-09-02 04:41:00 -05:00
Kai 445d8215e4 Option to show SD percent on Graphical LCD 2016-09-02 02:17:36 -05:00
Scott Lahteine d07a913f21 Tweak to stepper advance e_steps update 2016-09-02 02:06:17 -05:00
Scott Lahteine aaef7c6b89 Fix a misspelling of minimum 2016-09-02 01:42:38 -05:00
Scott Lahteine ad659b5f91 Merge pull request #4725 from thinkyhead/rc_log_machine_info
Log machine info in G28 and G29
2016-09-01 23:58:59 -05:00
Scott Lahteine c6859a1e54 Handle hours >= 100 2016-09-01 23:54:48 -05:00
Kai 9f706a9635 Patch duration_t toDigital method 2016-09-01 23:34:15 -05:00
Scott Lahteine c3caa42630 Merge pull request #4738 from thinkyhead/rc_ensure_floats
Optimize stepper ISRs, plus cleanup, shorthand
2016-09-01 14:36:22 -05:00
Scott Lahteine 3ff657e729 Merge pull request #4727 from thinkyhead/rc_homing_together
Add heading for movement settings
2016-09-01 14:26:46 -05:00
Scott Lahteine 426f662586 Apply MINIMUM_STEPPER_PULSE in stepper advance_isr 2016-08-30 14:31:48 -05:00
Scott Lahteine 8c7ee4599e Optimize stepper advance_isr 2016-08-30 14:31:48 -05:00
Scott Lahteine 9725bcd099 Minor "optimizations" in stepper ISR 2016-08-30 14:21:43 -05:00
Scott Lahteine 4ec3d1ea58 Add some commentary to stepper ISR 2016-08-30 14:21:15 -05:00
Scott Lahteine d9bcc7bb45 Set a bool when a stepper block is done 2016-08-30 14:20:48 -05:00
Scott Lahteine 08f717e5f7 Use bit-size typedefs for some stepper vars 2016-08-30 14:19:49 -05:00
Scott Lahteine d554c1dda8 Clean up planner kernel pass methods 2016-08-30 14:16:13 -05:00
Scott Lahteine b2e5ec85d7 Add [XYZ]_CENTER conditionals 2016-08-30 14:15:41 -05:00
Scott Lahteine 7e20448a2d Add HOMING_Z_WITH_PROBE conditional 2016-08-30 13:29:26 -05:00
Scott Lahteine 0e4107da34 Minor cleanup of homeaxis, etc. 2016-08-30 13:29:26 -05:00
Scott Lahteine f1201e11c7 Improve the Jerk description 2016-08-29 12:39:21 -05:00
Scott Lahteine 3f038bef00 Heading for movement settings 2016-08-29 02:01:34 -05:00
Scott Lahteine fd2269f489 Log machine info in G28 and G29 2016-08-28 20:48:28 -05:00
Scott Lahteine 6eaf4f4909 Fix spacing of debug output in homeaxis 2016-08-28 19:43:33 -05:00
Scott Lahteine 1e6d1c39ea Improve verbiage of dropsegments sanity error 2016-08-28 19:40:32 -05:00
Scott Lahteine 0729a8f08d Use the probe travel height for pre-probe move
Instead of using the home_bump for Z to move close to the bed before doing a slow probe, use the probe travel height.
2016-08-28 19:13:08 -05:00
Scott Lahteine dd94d0b9d5 Fix bed probing bug without PROBE_DOUBLE_TOUCH
If `PROBE_DOUBLE_TOUCH` wasn't enabled, the probe move could be way too short! See #4701 for example.
2016-08-28 19:00:25 -05:00
Scott Lahteine 35a0c46f16 Tweak debug output for probe in G29 2016-08-28 18:44:44 -05:00
Scott Lahteine a82a89bc58 Merge pull request #4722 from thinkyhead/rc_minimum_stepper_pulse
MINIMUM_STEPPER_PULSE option
2016-08-28 10:03:32 -05:00
Scott Lahteine 73c5c312c9 Merge pull request #4723 from thinkyhead/rc_fix_some_text
Fix Danish encoding and an error message
2016-08-28 10:02:46 -05:00
Scott Lahteine a2572d2854 Fix Danish encoding and an error message 2016-08-28 09:51:06 -05:00
Scott Lahteine 759234af60 MINIMUM_STEPPER_PULSE option 2016-08-27 23:58:40 -05:00
Scott Lahteine 2cb63f0bf7 Merge pull request #4719 from thinkyhead/rc_delta_homing_patch
Marlin patches for homing, esp. Delta
2016-08-27 20:46:50 -05:00
Scott Lahteine 8241cf9901 Merge pull request #4720 from thinkyhead/rc_allow_stepper_omission
Patch stepper.cpp to allow omitting steppers
2016-08-27 20:36:22 -05:00
Scott Lahteine 7e893f4309 Merge pull request #4721 from thinkyhead/rc_temperature_isr_comments
Rc temperature isr comments
2016-08-27 20:36:03 -05:00
Scott Lahteine 73d86098b7 Marlin patches for homing, esp. Delta 2016-08-27 20:32:05 -05:00
Scott Lahteine 338bc768b1 Merge pull request #4717 from thinkyhead/rc_log_the_probe
Debug logging of nozzle type and offsets
2016-08-27 20:24:19 -05:00
Scott Lahteine fae92e3f3c Merge pull request #4718 from thinkyhead/rc_twibus_patch_20160827
TWIBus patch for proper use of Wire.requestFrom
2016-08-27 20:22:53 -05:00
Scott Lahteine a485a19052 Added optional planner logging 2016-08-27 20:12:22 -05:00
Scott Lahteine e9bfca5870 Additional comments for Temperature::isr 2016-08-27 20:12:22 -05:00
Scott Lahteine a255945f29 Add DEBUG_ALL enum 2016-08-27 20:12:22 -05:00
Scott Lahteine a28e15399f Patch stepper.cpp to allow omitting steppers 2016-08-27 20:11:17 -05:00
Scott Lahteine 2b226bc5c2 TWIBus patch for proper use of Wire.requestFrom 2016-08-27 20:09:28 -05:00
Scott Lahteine d641344d3a Remove redundant probe offset in homing 2016-08-27 19:58:56 -05:00
Scott Lahteine fb19a3cdec Merge pull request #4649 from thinkyhead/rc_boelle_danish_update
Danish update (18 Aug 2016)
2016-08-27 19:06:05 -05:00
Scott Lahteine 00638131e5 Debug logging of nozzle type and offsets 2016-08-27 15:21:01 -05:00
Scott Lahteine 8e9ac72191 Merge pull request #4709 from thinkyhead/rc_log_the_reason
Log whether homing with probe or endstop
2016-08-26 17:05:55 -05:00
Scott Lahteine 991a34aff2 Log whether homing with probe or endstop 2016-08-26 15:50:10 -05:00
Scott Lahteine 3b93b79f5c Merge pull request #4703 from bgort/RCBugFix
Add note suggesting RAMBo users use the RAMBo board type or platformio environment
2016-08-26 14:53:56 -05:00
Scott Lahteine 00cdb15cec Move invariant LCD strings to language.h 2016-08-26 02:48:57 -05:00
Bo Herrmannsen d2ae5b00d9 Danish up to date (18 Aug 2016) 2016-08-26 02:48:57 -05:00
Scott Lahteine 0c892357a7 Merge pull request #4693 from thinkyhead/rc_pins_cleanup_aug23
Cleanup of pins files, Conditionals
2016-08-25 21:35:36 -05:00
Scott Lahteine e78274a7f4 Consistent order/formatting of pins files 2016-08-25 20:59:45 -05:00
Scott Lahteine 11e9530111 Properly handle probe pin for BQ printers 2016-08-25 20:59:44 -05:00
Scott Lahteine 1968983f35 Move PROBE_SELECTED to an earlier point 2016-08-25 20:59:44 -05:00
Brian 2fae32f35f Add note suggesting RAMBo users use the RAMBo board type or platformio environment;
Add note that Viki 2.0 wiring diagram v1.2 has a mistake in it;
2016-08-25 15:05:29 -04:00
Scott Lahteine 2c3de5ee46 Merge pull request #4691 from esenapaj/Suppress-warnings
Suppress warnings
2016-08-24 21:35:18 -05:00
Scott Lahteine 37ac540a26 Fix unsigned/signed comparison in fanPin loop 2016-08-24 21:34:30 -05:00
esenapaj 1749a7fae3 Suppress warning 2016-08-24 00:18:06 +09:00
Scott Lahteine d07d85ac9f Ensure probe points at the delta edge are kept 2016-08-23 05:09:56 -05:00
Scott Lahteine 13e337ac4b Merge pull request #4688 from AnHardt/crittical_section
Repair MarlinSerial with TX-buffer
2016-08-23 03:31:12 -05:00
AnHardt 7e36b76af2 Repair MarlinSerial with TX-buffer
These '{' are important to avoid the redefinition of `unsigned char _sreg = SREG;`
at the same level.
Used in
```
#define CRITICAL_SECTION_START  unsigned char _sreg = SREG; cli();
```
2016-08-22 23:40:09 +02:00
Scott Lahteine 6b274e563d Merge pull request #4685 from thinkyhead/rc_gege2b_french
Update french language
2016-08-22 14:20:54 -05:00
Gege2B 1e65f1a1d8 Update french language 2016-08-22 12:46:58 -05:00
Scott Lahteine d8f4f263e0 Merge pull request #4673 from thinkyhead/rc_segments_steps_move
MIN_SEGMENTS_FOR_MOVE => MIN_STEPS_PER_SEGMENT
2016-08-21 09:34:06 -05:00
Scott Lahteine ab59280075 MIN_SEGMENTS_FOR_MOVE => MIN_STEPS_PER_SEGMENT
Follow-up to #4666
2016-08-21 08:56:03 -05:00
Scott Lahteine 27b80b1dd1 Merge pull request #4667 from thinkyhead/rc_M211_sw_endstop_switch
M211: Enable/Disable Software Endstops
2016-08-21 06:44:00 -05:00
Scott Lahteine f9e3347d6f Merge pull request #4669 from thinkyhead/rc_config_descriptions
PREVENT_DANGEROUS_EXTRUDE => PREVENT_COLD_EXTRUSION
2016-08-21 06:41:57 -05:00
Scott Lahteine 14a03727e1 Tweak serialprintPGM 2016-08-21 00:10:09 -05:00
Scott Lahteine 2f223b8c79 Use ABC and XYZ for "3" 2016-08-21 00:10:08 -05:00
Scott Lahteine 4cd1ad8f28 Adjustments to M209, G28, M605 2016-08-21 00:10:08 -05:00
Scott Lahteine e354cf5884 Apply sw_endstops_enabled to manual move 2016-08-21 00:10:08 -05:00
Scott Lahteine 280534c06f Add M211: Enable/Disable Software Endstops 2016-08-21 00:10:08 -05:00
Scott Lahteine 01d4703429 PREVENT_DANGEROUS_EXTRUDE => PREVENT_COLD_EXTRUSION
Also improve the documentation of this and related options, and set
EXTRUDE_MINTEMP to 170 everywhere.
2016-08-20 23:35:27 -05:00
Scott Lahteine a1f6cf1e5d Merge pull request #4665 from thinkyhead/rc_lcd_not_ultipanel
Clean up ultralcd code, dependencies on ULTIPANEL
2016-08-20 22:43:17 -05:00
Scott Lahteine 1a255afa36 Merge pull request #4666 from thinkyhead/rc_dropsegments_adj
dropsegments => MIN_SEGMENTS_FOR_MOVE
2016-08-20 22:42:16 -05:00
Scott Lahteine 374f8d2014 dropsegments => MIN_SEGMENTS_FOR_MOVE 2016-08-20 18:52:15 -05:00
Scott Lahteine 76c3f326ff Clean up DOGM code, comments 2016-08-20 18:33:12 -05:00
Scott Lahteine 71319adbb8 Wrap ULTIPANEL-dependent code 2016-08-20 18:33:11 -05:00
Scott Lahteine 305913545e Move number-to-string function to utility.* 2016-08-20 18:33:11 -05:00
Scott Lahteine 394c80c87b Merge pull request #4655 from thinkyhead/rc_serial_static
Optimize, reduce size of MarlinSerial
2016-08-20 15:51:57 -05:00
Scott Lahteine b15f8ca641 Merge pull request #4660 from MagoKimbra/Fix_Zig_Zag
Fix_Zig_Zag
2016-08-20 15:44:25 -05:00
MagoKimbra 28d1e5a946 Fix_Zig_Zag 2016-08-20 11:28:08 +02:00
Scott Lahteine 14395a1a96 Optimize, reduce size of MarlinSerial 2016-08-19 16:53:20 -05:00
Scott Lahteine 4d4c00d69c Merge pull request #4651 from thinkyhead/rc_homing_vs_leveling_z
Improvements to homing / leveling
2016-08-19 15:45:49 -05:00
Scott Lahteine f3a54316e6 Merge pull request #4652 from bgort/RCBugFix
Add Rambo support/env to platformio.ini; properly maps extended pins
2016-08-19 09:30:59 -05:00
Brian Gortney 8fae3e1f9f Add Rambo support/env to platformio.ini; properly maps extended pins 2016-08-19 07:11:23 -04:00
Scott Lahteine 12d72363cb Do Delta radius check without sqrt 2016-08-19 05:05:48 -05:00
Scott Lahteine 044f800be9 Use SERIAL_PROTOCOLLNPGM in G28 2016-08-19 04:45:33 -05:00
Scott Lahteine d309a9647d Include probe offset for moving "close to the bed" 2016-08-19 04:45:33 -05:00
Scott Lahteine 35a08eeaeb Use Z_HOME_DIR over axis_home_dir where we can 2016-08-19 04:45:32 -05:00
Scott Lahteine 99b22d5785 Default AUTO_BED_LEVELING_GRID_POINTS to 3 2016-08-19 04:45:32 -05:00
Scott Lahteine 9b1f3f7d12 Sanity-check DELTA + AUTO_BED_LEVELING_GRID_POINTS 2016-08-19 04:45:32 -05:00
Scott Lahteine 733453569b Merge pull request #4650 from thinkyhead/rc_percent_is_percent
extruder_multiplier => flow_percentage
2016-08-19 04:38:18 -05:00
Scott Lahteine 55355a4fb8 Make probed points more symmetrical 2016-08-19 04:32:03 -05:00
Scott Lahteine 1f776f6034 Tweak some code comments 2016-08-19 04:32:02 -05:00
Scott Lahteine 748228cf40 Use named indices for delta_grid_spacing 2016-08-19 04:32:02 -05:00
Scott Lahteine ead333e7da line_to_axis_pos => do_homing_move 2016-08-19 04:32:02 -05:00
Scott Lahteine 7a4ccd7967 Add do_probe_move with Z fixes 2016-08-19 04:32:02 -05:00
Scott Lahteine a1bad589c9 Augment debug/homing logging 2016-08-19 04:32:02 -05:00
Scott Lahteine 41b5c48129 Update software endstops if EEPROM is loaded 2016-08-19 04:32:01 -05:00
Scott Lahteine 628dcbc764 extruder_multiplier => flow_percentage 2016-08-18 22:13:47 -05:00
Scott Lahteine 6970c24ee6 Merge pull request #4642 from zenmetsu/ru-Lang
Ru lang updated
2016-08-18 17:11:46 -05:00
Jason Westervelt d222ee4de2 Update language_ru.h
Updated missing translations.  Caught up on change to MSG_HOME.
2016-08-17 13:55:44 -07:00
Scott Lahteine 464d594450 Merge pull request #4608 from thinkyhead/rc_more_twibus_tweaks
Additional details for I2C_SLAVE_ADDRESS
2016-08-15 19:37:03 -07:00
Scott Lahteine d63b8e2b2b Additional details for I2C_SLAVE_ADDRESS 2016-08-15 19:27:53 -07:00
Scott Lahteine 7427290d3a Merge pull request #4634 from thinkyhead/rc_lang_disp_char
Set language display charset in language.h
2016-08-15 19:25:56 -07:00
Scott Lahteine aa30550b21 Keep SIMULATE_ROMFONT only language.h 2016-08-15 19:11:31 -07:00
Scott Lahteine cec61c350d Set language display charset in language.h 2016-08-15 19:01:12 -07:00
Scott Lahteine 165d7abb1b Merge pull request #4625 from thinkyhead/rc_i2c_request_capture_flush
Add request, capture, flush to TWIBus
2016-08-15 18:15:43 -07:00
Scott Lahteine 0e6b41a34a Merge pull request #4624 from RicardoGA/RCBugFix
Update Spanish Lenguage
2016-08-15 18:15:23 -07:00
RicardoGA 507784b846 Fix Messages length 2016-08-15 10:30:51 -05:00
Scott Lahteine bd928a69ec Add request, capture, flush to TWIBus 2016-08-15 00:04:20 -07:00
RicardoGA 7b7f319ed5 Update Spanish Lenguage
Adds missing messages
2016-08-14 23:30:43 -05:00
Scott Lahteine 132322e4d9 Fix #4614: currentScreen only defined with ULTIPANEL 2016-08-14 00:29:46 -07:00
Scott Lahteine dcd26b0403 Merge pull request #4621 from thinkyhead/rc_fan_set_output
Init PWM-able AUTO_FAN pins with SET_OUTPUT
2016-08-13 21:22:27 -07:00
Scott Lahteine 79ba983782 Allow reply() to use const string with no warning 2016-08-13 21:05:44 -07:00
Scott Lahteine 27570c08ba Merge pull request #4620 from thinkyhead/rc_twibus_further
Further refinements of TWIBus
2016-08-13 20:56:09 -07:00
Scott Lahteine 3a0a94b21a Always init configured fan pins 2016-08-13 20:38:40 -07:00
Scott Lahteine c63003ed3e Use matching auto-fan flags 2016-08-13 20:38:40 -07:00
Scott Lahteine 3475fd7b0f Init PWM-able auto fan pins with SET_OUTPUT 2016-08-13 20:38:40 -07:00
Scott Lahteine abf9696db1 Loop fan-pins based on array size 2016-08-13 20:05:32 -07:00
Scott Lahteine e88575c8ec Init next_auto_fan_check_ms to zero 2016-08-13 20:05:32 -07:00
Scott Lahteine 7272ec5608 Update HAS_FAN flags for 4 auto fans 2016-08-13 20:05:32 -07:00
Scott Lahteine 7b21811a9a Flags for matching auto-fans 2016-08-13 20:05:32 -07:00
Scott Lahteine 97e0aed304 Further refinements of TWIBus 2016-08-13 18:32:41 -07:00
Scott Lahteine 38fa1b1939 Merge pull request #4196 from cimbalo/Platformio_support
Add working PlatformIO support
2016-08-12 17:32:09 -07:00
Scott Lahteine d7edc039af Merge pull request #4605 from thinkyhead/rc_3drag_fan_is_8
Fixup 3DRAG pins based on updated RAMPS pins
2016-08-12 17:30:27 -07:00
Scott Lahteine 7147c86e9f Merge pull request #4611 from tnw513/patch-2
Fix acceleration and feedrate following bq/Marlin
2016-08-12 17:30:02 -07:00
Silvio 923388e0c7 Fix acceleration and feedrate following bq/Marlin 2016-08-12 15:42:20 +02:00
Scott Lahteine 405afec393 Include decimeters in filamentUsed display 2016-08-12 05:16:43 -07:00
Scott Lahteine fef0e8ba86 Merge pull request #4610 from thinkyhead/rc_sd_pause_and_stop
Fix stopSDPrint so it works when paused
2016-08-12 04:09:22 -07:00
Scott Lahteine 192ac2dfd7 Squish some CardReader code 2016-08-12 03:32:42 -07:00
Scott Lahteine 61932b859e Fix bug in CardReader::stopSDPrint
If the SD print is paused, it cannot be stopped
2016-08-12 03:21:10 -07:00
Scott Lahteine 9e5d5a3b7c Merge pull request #4597 from tnw513/italian_fix
Added hyphenated strings for full graphic display
2016-08-12 02:37:53 -07:00
Silvio Didonna f999292eea added hyphenated letters for full graphic display and fixed some strings 2016-08-12 08:57:22 +02:00
Scott Lahteine 11027a56b6 Merge pull request #4606 from thinkyhead/rc_more_i2c_slave
Add an i2c request handler
2016-08-11 23:51:56 -07:00
Scott Lahteine 67f119d18b Add an i2c request handler 2016-08-11 18:09:18 -07:00
Scott Lahteine 2d3db5b5bd Fixup pins_3DRAG based on updated RAMPS pins 2016-08-11 15:49:47 -07:00
Scott Lahteine d29a64d4b3 Merge pull request #4603 from thinkyhead/rc_less_MSG_MOVE
Strip never-translated strings from language files
2016-08-11 14:21:58 -07:00
Scott Lahteine d6a7ca6553 Merge pull request #4584 from thinkyhead/rc_delta_cal_more
Use configured feedrates, center in DELTA_CALIBRATION_MENU
2016-08-11 14:04:05 -07:00
Scott Lahteine 64f15ac451 Merge pull request #4602 from thinkyhead/rc_marlinserial_clean
Minor cleanup of SdFatUtil.h, MarlinSerial.cpp
2016-08-11 13:42:16 -07:00
Scott Lahteine d3b432adca Strip never-translated strings from language files 2016-08-11 13:41:07 -07:00
Scott Lahteine 1a558ef486 Tweak MarlinSerial precursor 2016-08-11 12:47:06 -07:00
Scott Lahteine 802818f7ab Cleanup SdFatUtil.h 2016-08-11 12:47:06 -07:00
Scott Lahteine 52560e257f Merge pull request #4595 from thinkyhead/rc_i2c_slave
Add support for i2c slave address
2016-08-11 12:39:26 -07:00
Scott Lahteine 432e9a1f50 Use configured feedrates, center for DELTA_CALIBRATION_MENU 2016-08-11 12:05:55 -07:00
Scott Lahteine cd496dd9bd do_blocking_move_to can't be 'inline', takes const ref args 2016-08-11 12:05:55 -07:00
Scott Lahteine dd75fca4d9 Make M155 / M156 a bit more flexible 2016-08-11 00:52:01 -07:00
Scott Lahteine 30afac64c4 Merge pull request #4594 from thinkyhead/rc_fix_serial_output
Fix serial output for MBL, M303
2016-08-11 00:05:30 -07:00
Scott Lahteine e3efb04295 Shoehorn EXPERIMENTAL_I2CBUS into Travis test 2016-08-10 23:35:46 -07:00
Scott Lahteine a99ecf71d8 Add support for i2c slave address 2016-08-10 23:30:35 -07:00
Scott Lahteine b63d70b186 Fix serial output for MBL, M303 2016-08-10 18:49:52 -07:00
Scott Lahteine a36a168af2 Use the truly configured middle on Delta 2016-08-10 00:03:22 -07:00
Scott Lahteine 58c8e6cef2 Fixes #4576: Convert filamentUsed to long for display 2016-08-09 23:57:28 -07:00
Scott Lahteine 01f1f779a5 Followup to #4574, specify L for long 2016-08-09 23:43:37 -07:00
Scott Lahteine fa2467a834 Merge pull request #4578 from Kaibob2/patch-2
Update language_de.h with MSG_MOVE_E1 - E4
2016-08-09 23:04:15 -07:00
Kaibob2 1c7bd17e60 Update language_de.h with MSG_MOVE_E1 - E4
MSG_MOVE_E1 was missing
MSG_MOVE_E2 was missing
MSG_MOVE_E3 was missing
MSG_MOVE_E4 was missing

I assigned "0" to "MSG_MOVE_E1", "1" to "MSG_MOVE_E2" and so on, as this is what i assume to be the standard naming for the first (E0) and second (E1) extruder. This would have to be changed inthe other languages too :(
2016-08-09 20:49:26 +02:00
Scott Lahteine bd8ea21abe Merge pull request #4574 from thinkyhead/rc_graphical_days
Include days in Graphical LCD print timer
2016-08-08 23:53:31 -07:00
Scott Lahteine 880cdb553b Include days in Graphical LCD print timer 2016-08-08 23:21:36 -07:00
Scott Lahteine f4ac8c15e3 Merge pull request #4573 from thinkyhead/rc_mintemp_bed_later
Throw MINTEMP BED error only if heating
2016-08-08 23:02:42 -07:00
Scott Lahteine b7b5b50a84 Throw bed min temp error only if heating 2016-08-08 22:49:22 -07:00
Scott Lahteine d3ba878f70 Drop intermediate float in HEATER_0_USES_MAX6675 test 2016-08-08 22:49:22 -07:00
Scott Lahteine 3e8f9ecd1c Extend min/max_temp_error for the bed 2016-08-08 22:49:21 -07:00
Scott Lahteine 1f15f0df5f Merge pull request #4572 from thinkyhead/rc_digital_clock_100h
Show up to 99:59 in digital time
2016-08-08 22:28:29 -07:00
Scott Lahteine b772172c84 Merge pull request #4571 from thinkyhead/rc_proper_delta_calibration
Patch command order in delta calibration menu
2016-08-08 21:50:42 -07:00
Scott Lahteine 8100a4dace Fix a compile error in EMERGENCY_PARSER sanity check 2016-08-08 21:49:57 -07:00
Scott Lahteine 45f67164b6 Simplify the delay in kill() 2016-08-08 21:49:34 -07:00
Scott Lahteine 30b1c731b5 Show up to 99:59 in digital time 2016-08-08 21:26:34 -07:00
Scott Lahteine 3be4511230 Patch command order in delta calibration menu 2016-08-08 21:15:25 -07:00
Scott Lahteine 9afa060ed6 Merge pull request #4570 from thinkyhead/rc_proper_delta_calibration
Make DELTA_CALIBRATION_MENU more universal
2016-08-08 21:11:40 -07:00
Scott Lahteine 46c8862635 Merge pull request #4564 from AnHardt/max-spi-setup
MISO is an input
2016-08-08 21:01:15 -07:00
Scott Lahteine dad4702e85 Merge pull request #4569 from thinkyhead/rc_disable_slowdown_on_delta
Always disable SLOWDOWN for DELTA/SCARA
2016-08-08 20:58:40 -07:00
Scott Lahteine 88540d8ecf Fix: LCD displays SD status at startup 2016-08-08 20:53:18 -07:00
Scott Lahteine b16ea09498 Make DELTA_CALIBRATION_MENU more universal 2016-08-08 20:42:58 -07:00
Scott Lahteine 85c4d5d2b5 Include DELTA_CALIBRATION_MENU in DELTA travis test 2016-08-08 20:35:04 -07:00
Scott Lahteine 3a56836ead Always disable SLOWDOWN for DELTA/SCARA 2016-08-08 18:06:46 -07:00
AnHardt aa9b52b2e7 MISO is an input 2016-08-08 20:09:57 +02:00
Scott Lahteine 67c4acf750 Merge pull request #4562 from thinkyhead/rc_fix_z_dual_endstops
Fix Z_DUAL_ENDSTOPS with Z MIN Homing
2016-08-07 19:23:09 -07:00
Scott Lahteine 1edbea0fcb Merge pull request #4563 from thinkyhead/rc_explain_probe_heights
Explain that Z_PROBE_*_HEIGHT options are nozzle-relative
2016-08-07 19:22:19 -07:00
Scott Lahteine e113740fa3 Specify that Z_PROBE_*_HEIGHT is nozzle-relative 2016-08-07 17:54:17 -07:00
Scott Lahteine 462e189edd Move pullups after Z_DUAL_ENDSTOPS block 2016-08-07 17:43:02 -07:00
Scott Lahteine 367dad5902 Sanity check Z_DUAL_ENDSTOPS with DELTA 2016-08-07 17:08:41 -07:00
Scott Lahteine 5fca110e0d Fix Z_DUAL_ENDSTOPS with MIN homing 2016-08-07 17:08:41 -07:00
Scott Lahteine fc11f05c11 Merge pull request #4556 from thinkyhead/rc_all_feedrates_mm_s
Within Marlin, maintain most feed rates in mm/s
2016-08-07 16:14:16 -07:00
Scott Lahteine 7b2abe6fc8 Use steps_to_mm in extruder runout prevent 2016-08-07 00:28:52 -07:00
Scott Lahteine d320065320 Within Marlin, maintain most feed rates in mm/s 2016-08-07 00:28:52 -07:00
Scott Lahteine ed0b50ebee Merge pull request #4555 from thinkyhead/rc_mbl_index_rounding
Remove premature int-cast from MBL cell index methods
2016-08-06 23:34:01 -07:00
Scott Lahteine bad286d52f Save CPU by multiplying by pre-compiled values 2016-08-06 23:24:07 -07:00
Scott Lahteine dce6026e0e Remove premature cast to int 2016-08-06 23:01:29 -07:00
Scott Lahteine cffe77c537 Merge pull request #4553 from thinkyhead/rc_lcd_chars_save_ram
Save bytes for custom chars (Hitachi LCD)
2016-08-06 18:29:16 -07:00
Scott Lahteine 0a1a2fea30 Merge pull request #4554 from thinkyhead/rc_anhardt_rep-max6675
Repair SPI-pins, some other pins
2016-08-06 18:10:55 -07:00
Scott Lahteine 42927530fe Explicitly clear the screen in lcd_goto_screen 2016-08-06 18:10:39 -07:00
Scott Lahteine a6d2c2479f Minor cleanup of lcd_goto_screen calls 2016-08-06 18:10:39 -07:00
Scott Lahteine e47c8b9829 Save bytes for custom chars (Hitachi LCD) 2016-08-06 18:10:39 -07:00
Scott Lahteine 0ff5005c9b Allow connector flexibility for BQ ZUM Mega 2016-08-06 17:19:12 -07:00
Scott Lahteine 98437bd488 Allow override of CONTROLLERFAN_PIN with RAMPS EFF 2016-08-06 17:19:12 -07:00
Scott Lahteine 93eafa1785 Use DISABLED to check TEENSY pin option 2016-08-06 17:19:12 -07:00
AnHardt 98392abb78 Clean warnings for pins_BQ_ZUM_MEGA_3D.h 2016-08-06 17:19:12 -07:00
AnHardt 1f239ac9a7 Extend travis test to check MAX6675 2016-08-06 17:19:11 -07:00
Scott Lahteine 31cad77ba9 Chmod a+x opt_disable_adv 2016-08-06 17:19:11 -07:00
AnHardt 020cd32d28 Update restore_configs
for travis builds.
2016-08-06 17:19:11 -07:00
AnHardt 98e96feee9 Repair SPI-pins
SCK_PIN can't be defined as DIO[number] they mus be defined as pure number.
So rebuilding the structure of fastio.h in pins.h.
2016-08-06 17:19:11 -07:00
Scott Lahteine 7145bd085d Merge pull request #4551 from thinkyhead/rc_anhardt_rep_stow_allen
Make Allen Key Probe stow
2016-08-06 16:31:51 -07:00
Scott Lahteine a00783c41f Format probe stowed test code 2016-08-06 14:31:07 -07:00
AnHardt f37e8a31d7 Make Allen Key Probe stow
by switching off the tests for the probe before the stow move.
2016-08-06 14:30:38 -07:00
Scott Lahteine 5347f39fce Merge pull request #4542 from AnHardt/rep-de
Repair-language.de
2016-08-05 23:50:35 -07:00
Scott Lahteine 5ef4a5577c Merge pull request #4537 from thinkyhead/rc_fix_some_flaws
Patch up some flaws here and there
2016-08-05 23:49:57 -07:00
AnHardt 0d3b67a580 Repair-language.de 2016-08-06 01:00:40 +02:00
Scott Lahteine 938e6d15c4 Patch up some flaws, here and there 2016-08-05 08:17:37 -07:00
Scott Lahteine 3a3984e67a Merge pull request #4535 from thinkyhead/rc_old_symbols_first
Move tests for old symbols to the top of sanity check
2016-08-04 21:24:02 -07:00
Scott Lahteine d7b882e430 Move tests for old symbols to the top of sanity check 2016-08-04 21:03:55 -07:00
Scott Lahteine 479107d04f Merge pull request #4530 from Kaibob2/patch-1
Added / Update language_de.h
2016-08-04 16:58:50 -07:00
Scott Lahteine dddaeb3f8c Merge pull request #4528 from thinkyhead/rc_make_it_so
Z-Height options replace Z-Raise options
2016-08-04 13:46:44 -07:00
Kaibob2 1abd7fa670 Update language_de.h
Added german translation for MSG_INFO_PRINT_LONGEST and  MSG_INFO_PRINT_FILAMENT.
MSG_HEATING_COMPLETE changed from "Aufgeheizt" to "Extr. aufgeheizt"
MSG_HEATING changed from "Aufheizen" to "Extr. aufheizen"
2016-08-04 09:40:38 +02:00
Andrea Cimbalo 46196e9ee5 Add working PlatformIO support 2016-07-03 15:33:24 +02:00
1448 changed files with 1624185 additions and 95282 deletions
+275
View File
@@ -0,0 +1,275 @@
# Python CircleCI 2.0 configuration file
#
# Check https://circleci.com/docs/2.0/language-python/ for more details
#
version: 2
jobs:
build:
docker:
# specify the version you desire here
# use `-browsers` prefix for selenium tests, e.g. `3.6.1-browsers`
- image: circleci/python:2.7.13
# Specify service dependencies here if necessary
# CircleCI maintains a library of pre-built images
# documented at https://circleci.com/docs/2.0/circleci-images/
# - image: circleci/postgres:9.4
environment:
TEST_PLATFORM: "-e megaatmega2560"
working_directory: ~/Marlin
steps:
- checkout
- restore_cache:
paths:
- ~/.platformio
- ~/Marlin/.piolibdeps
keys:
- v1-dependencies-{{ checksum "~/Marlin/platformio.ini" }}
# fallback to using the latest cache if no exact match is found
- v1-dependencies-
- run:
name: install dependencies
command: |
sudo pip install -U platformio
# run tests!
- run:
name: run tests
command: |
#
#
# Fetch the tag information for the current branch
ls -la
git fetch origin --tags
#
# Publish the buildroot script folder
chmod +x buildroot/bin/*
export PATH=`pwd`/buildroot/bin/:${PATH}
# Generate custom version include
generate_version ./Marlin/src/inc
cat ./Marlin/src/inc/_Version.h
#
# Backup pins_RAMPS.h
#
cp Marlin/src/pins/pins_RAMPS.h Marlin/src/pins/pins_RAMPS.h.backup
#
env_backup
#################################
# Build all sample configurations
#################################
echo testing megaatmega2560 targets...
export TEST_PLATFORM="-e megaatmega2560"
echo use_example_configs adafruit/ST7565
use_example_configs adafruit/ST7565
build_marlin_pio ./ ${TEST_PLATFORM}
restore_configs
echo use_example_configs BQ/Hephestos
use_example_configs BQ/Hephestos
build_marlin_pio ./ ${TEST_PLATFORM}
restore_configs
echo use_example_configs BQ/Hephestos_2
use_example_configs BQ/Hephestos_2
build_marlin_pio ./ ${TEST_PLATFORM}
restore_configs
echo use_example_configs BQ/WITBOX
use_example_configs BQ/WITBOX
build_marlin_pio ./ ${TEST_PLATFORM}
restore_configs
echo use_example_configs AliExpress/CL-260
use_example_configs AliExpress/CL-260
build_marlin_pio ./ ${TEST_PLATFORM}
restore_configs
#echo use_example_configs Cartesio
#use_example_configs Cartesio
#build_marlin_pio ./ ${TEST_PLATFORM}
#restore_configs
echo use_example_configs delta/FLSUN/auto_calibrate
use_example_configs delta/FLSUN/auto_calibrate
build_marlin_pio ./ ${TEST_PLATFORM}
restore_configs
echo use_example_configs delta/FLSUN/kossel_mini
use_example_configs delta/FLSUN/kossel_mini
build_marlin_pio ./ ${TEST_PLATFORM}
restore_configs
echo use_example_configs delta/generic
use_example_configs delta/generic
build_marlin_pio ./ ${TEST_PLATFORM}
restore_configs
echo use_example_configs delta/kossel_mini
use_example_configs delta/kossel_mini
build_marlin_pio ./ ${TEST_PLATFORM}
restore_configs
echo use_example_configs delta/kossel_xl
use_example_configs delta/kossel_xl
build_marlin_pio ./ ${TEST_PLATFORM}
restore_configs
echo use_example_configs Felix
use_example_configs Felix
build_marlin_pio ./ ${TEST_PLATFORM}
restore_configs
echo use_example_configs Felix/DUAL
use_example_configs Felix/DUAL
build_marlin_pio ./ ${TEST_PLATFORM}
restore_configs
echo use_example_configs FolgerTech/i3-2020
use_example_configs FolgerTech/i3-2020
build_marlin_pio ./ ${TEST_PLATFORM}
restore_configs
echo use_example_configs gCreate/gMax1.5+
use_example_configs gCreate/gMax1.5+
build_marlin_pio ./ ${TEST_PLATFORM}
restore_configs
echo use_example_configs Geeetech/GT2560
use_example_configs Geeetech/GT2560
build_marlin_pio ./ ${TEST_PLATFORM}
restore_configs
#echo use_example_configs Geeetech/I3_Pro_X-GT2560
#use_example_configs Geeetech/I3_Pro_X-GT2560
#build_marlin_pio ./ ${TEST_PLATFORM}
#restore_configs
echo use_example_configs Infitary/i3-M508
use_example_configs Infitary/i3-M508
build_marlin_pio ./ ${TEST_PLATFORM}
restore_configs
use_example_configs Malyan/M200
build_marlin_pio ./ ${TEST_PLATFORM}
restore_configs
echo use_example_configs Micromake/C1/basic
use_example_configs Micromake/C1/basic
build_marlin_pio ./ ${TEST_PLATFORM}
restore_configs
echo use_example_configs Micromake/C1/enhanced
use_example_configs Micromake/C1/enhanced
build_marlin_pio ./ ${TEST_PLATFORM}
restore_configs
echo use_example_configs RepRapWorld/Megatronics
use_example_configs RepRapWorld/Megatronics
build_marlin_pio ./ ${TEST_PLATFORM}
restore_configs
echo use_example_configs RigidBot
use_example_configs RigidBot
build_marlin_pio ./ ${TEST_PLATFORM}
restore_configs
echo use_example_configs SCARA
use_example_configs SCARA
build_marlin_pio ./ ${TEST_PLATFORM}
restore_configs
echo use_example_configs Velleman/K8200
use_example_configs Velleman/K8200
build_marlin_pio ./ ${TEST_PLATFORM}
restore_configs
echo use_example_configs Velleman/K8400/Dual-head
use_example_configs Velleman/K8400/Dual-head
build_marlin_pio ./ ${TEST_PLATFORM}
restore_configs
echo use_example_configs Velleman/K8400
use_example_configs Velleman/K8400
build_marlin_pio ./ ${TEST_PLATFORM}
restore_configs
echo use_example_configs Wanhao/Duplicator6
use_example_configs Wanhao/Duplicator6
build_marlin_pio ./ ${TEST_PLATFORM}
restore_configs
# Requires manual load of https://github.com/stawel/SlowSoftI2CMaster
#use_example_configs wt150
#build_marlin_pio ./ ${TEST_PLATFORM}
#restore_configs
echo testing melzi targets...
export TEST_PLATFORM="-e melzi"
echo use_example_configs Anet/A6
use_example_configs Anet/A6
build_marlin_pio ./ ${TEST_PLATFORM}
restore_configs
echo use_example_configs Anet/A8
use_example_configs Anet/A8
build_marlin_pio ./ ${TEST_PLATFORM}
restore_configs
echo use_example_configs Creality/CR-10
use_example_configs Creality/CR-10
build_marlin_pio ./ ${TEST_PLATFORM}
restore_configs
echo use_example_configs Malyan/M150
use_example_configs Malyan/M150
build_marlin_pio ./ ${TEST_PLATFORM}
restore_configs
echo use_example_configs Sanguinololu
use_example_configs Sanguinololu
build_marlin_pio ./ ${TEST_PLATFORM}
restore_configs
echo use_example_configs TinyBoy2
use_example_configs TinyBoy2
build_marlin_pio ./ ${TEST_PLATFORM}
restore_configs
echo testing rambo targets...
export TEST_PLATFORM="-e rambo"
echo use_example_configs AlephObjects/TAZ4
use_example_configs AlephObjects/TAZ4
build_marlin_pio ./ ${TEST_PLATFORM}
restore_configs
echo testing at90usb1286_* targets...
export TEST_PLATFORM="-e at90usb1286_dfu"
#echo se_example_configs delta/kossel_pro
#use_example_configs delta/kossel_pro
#build_marlin_pio ./ ${TEST_PLATFORM}
#restore_configs
echo use_example_configs makibox
use_example_configs makibox
build_marlin_pio ./ ${TEST_PLATFORM}
restore_configs
echo testing sanguino_atmega644p targets...
export TEST_PLATFORM="-e sanguino_atmega644p"
echo use_example_configs tvrrug/Round2
use_example_configs tvrrug/Round2
build_marlin_pio ./ ${TEST_PLATFORM}
restore_configs
echo testing LPC1768 targets...
export TEST_PLATFORM="-e LPC1768"
echo use_example_configs Mks/Sbase
use_example_configs Mks/Sbase
build_marlin_pio ./ ${TEST_PLATFORM}
restore_configs
echo testing STM32F1 targets...
export TEST_PLATFORM="-e STM32F1"
restore_configs
echo use_example_configs STM32F10
use_example_configs STM32F10
build_marlin_pio ./ ${TEST_PLATFORM}
restore_configs
echo use_example_configs stm32f103ret6
use_example_configs stm32f103ret6
build_marlin_pio ./ ${TEST_PLATFORM}
restore_configs
echo testing DUE targets...
export TEST_PLATFORM="-e DUE"
#echo use_example_configs UltiMachine/Archim2
#use_example_configs UltiMachine/Archim2
#build_marlin_pio ./ ${TEST_PLATFORM}
#restore_configs
#
# Remove temp files from dependencies tree prior to caching
rm -rf ~/Marlin/.piolibdeps/_tmp_*
#
# Restore the environment
#
env_restore
- save_cache:
paths:
- ~/.platformio
- ~/Marlin/.piolibdeps
key: v1-dependencies-{{ checksum "~/Marlin/platformio.ini" }}
+19
View File
@@ -0,0 +1,19 @@
# Set the default behavior, in case people don't have core.autocrlf set.
* text=auto
# Files with Unix line endings
*.c text eol=lf
*.cpp text eol=lf
*.h text eol=lf
*.ino text eol=lf
*.py text eol=lf
*.sh text eol=lf
*.scad text eol=lf
# Files with native line endings
# *.sln text
# Binary files
*.png binary
*.jpg binary
*.fon binary
+46
View File
@@ -0,0 +1,46 @@
# Contributor Covenant Code of Conduct
## Our Pledge
In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
## Our Standards
Examples of behavior that contributes to creating a positive environment include:
* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
* The use of sexualized language or imagery and unwelcome sexual attention or advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a professional setting
## Our Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
## Scope
This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at [marlinfirmware@github.com](mailto:marlinfirmware@github.com). All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [https://contributor-covenant.org/version/1/4][version]
[homepage]: https://contributor-covenant.org
[version]: https://contributor-covenant.org/version/1/4/
+144
View File
@@ -0,0 +1,144 @@
# Contributing to Marlin
Thanks for your interest in contributing to Marlin Firmware!
The following is a set of guidelines for contributing to Marlin, hosted by the [MarlinFirmware Organization](https://github.com/MarlinFirmware) on GitHub. These are mostly guidelines, not rules. Use your best judgment, and feel free to propose changes to this document in a Pull Request.
#### Table Of Contents
[Code of Conduct](#code-of-conduct)
[I don't want to read this whole thing, I just have a question!!!](#i-dont-want-to-read-this-whole-thing-i-just-have-a-question)
[How Can I Contribute?](#how-can-i-contribute)
* [Reporting Bugs](#reporting-bugs)
* [Suggesting Features or Changes](#suggesting-features-or-changes)
* [Your First Code Contribution](#your-first-code-contribution)
* [Pull Requests](#pull-requests)
[Styleguides](#styleguides)
* [Git Commit Messages](#git-commit-messages)
* [C++ Coding Standards](#c++-coding-standards)
* [Documentation Styleguide](#documentation)
[Additional Notes](#additional-notes)
* [Issue and Pull Request Labels](#issue-and-pull-request-labels)
## Code of Conduct
This project and everyone participating in it is governed by the [Marlin Code of Conduct](code_of_conduct.md). By participating, you are expected to uphold this code. Please report unacceptable behavior to [marlinfirmware@github.com](mailto:marlinfirmware@github.com).
## I don't want to read this whole thing I just have a question!!!
> **Note:** Please don't file an issue to ask a question. You'll get faster results by using the resources below.
We have a Message Board and a Facebook group where our knowledgable user community can provide helpful advice if you have questions.
* [Marlin RepRap forum](http://forums.reprap.org/list.php?415)
* [MarlinFirmware on Facebook](https://www.facebook.com/groups/1049718498464482/)
If chat is more your speed, you can join the MarlinFirmware Slack team:
* Join the Marlin Slack Team
* To obtain group access, please [send a request](http://www.thinkyhead.com/contact/9) to @thinkyhead.
* Even though Slack is a chat service, sometimes it takes several hours for community members to respond &mdash; please be patient!
* Use the `#general` channel for general questions or discussion about Marlin.
* Other channels exist for certain topics. Check the channel list.
## How Can I Contribute?
### Reporting Bugs
This section guides you through submitting a Bug Report for Marlin. Following these guidelines helps maintainers and the community understand your report, reproduce the behavior, and find related reports.
Before creating a Bug Report, please test the "nightly" development branch, as you might find out that you don't need to create one. When you are creating a Bug Report, please [include as many details as possible](#how-do-i-submit-a-good-bug-report). Fill out [the required template](issue_template.md), the information it asks for helps us resolve issues faster.
> **Note:** Regressions can happen. If you find a **Closed** issue that seems like your issue, go ahead and open a new issue and include a link to the original issue in the body of your new one. All you need to create a link is the issue number, preceded by #. For example, #8888.
#### How Do I Submit A (Good) Bug Report?
Bugs are tracked as [GitHub issues](https://guides.github.com/features/issues/). Use the New Issue button to create an issue and provide the following information by filling in [the template](issue_template.md).
Explain the problem and include additional details to help maintainers reproduce the problem:
* **Use a clear and descriptive title** for the issue to identify the problem.
* **Describe the exact steps which reproduce the problem** in as many details as possible. For example, start by explaining how you started Marlin, e.g. which command exactly you used in the terminal, or how you started Marlin otherwise. When listing steps, **don't just say what you did, but explain how you did it**. For example, if you moved the cursor to the end of a line, explain if you used the mouse, or a keyboard shortcut or an Marlin command, and if so which one?
* **Provide specific examples to demonstrate the steps**. Include links to files or GitHub projects, or copy/pasteable snippets, which you use in those examples. If you're providing snippets or log output in the issue, use [Markdown code blocks](https://help.github.com/articles/markdown-basics/#multiple-lines).
* **Describe the behavior you observed after following the steps** and point out what exactly is the problem with that behavior.
* **Explain which behavior you expected to see instead and why.**
* **Include detailed log output** especially for probing and leveling. See below for usage of `DEBUG_LEVELING_FEATURE`.
* **Include screenshots, links to videos, etc.** which clearly demonstrate the problem.
* **Include G-code** (if relevant) that reliably causes the problem to show itself.
* **If the problem wasn't triggered by a specific action**, describe what you were doing before the problem happened and share more information using the guidelines below.
Provide more context:
* **Can you reproduce the problem with a minimum of options enabled?**
* **Did the problem start happening recently** (e.g. after updating to a new version of Marlin) or was this always a problem?
* If the problem started happening recently, **can you reproduce the problem in an older version of Marlin?** What's the most recent version in which the problem doesn't happen? You can download older versions of Marlin from [the releases page](https://github.com/MarlinFirmware/Marlin/releases).
* **Can you reliably reproduce the issue?** If not, provide details about how often the problem happens and under which conditions it normally happens.
Include details about your configuration and environment:
* **Which version of Marlin are you using?** Marlin's exact version and build date can be seen in the startup message when a host connects to Marlin, or in the LCD Info menu (if enabled).
* **What kind of 3D Printer and electronics are you using**?
* **What kind of add-ons (probe, filament sensor) do you have**?
* **Include your Configuration files.** Make a ZIP file containing `Configuration.h` and `Configuration_adv.h` and drop it on your reply.
### Suggesting Features or Changes
This section guides you through submitting a suggestion for Marlin, including completely new features and minor improvements to existing functionality. Following these guidelines helps maintainers and the community understand your suggestion and find related suggestions.
Before creating a suggestion, please check [this list](#before-submitting-a-suggestion) as you might find out that you don't need to create one. When you are creating an enhancement suggestion, please [include as many details as possible](#how-do-i-submit-a-good-enhancement-suggestion). Fill in [the template](issue_template.md), including the steps that you imagine you would take if the feature you're requesting existed.
#### Before Submitting a Feature Request
* **Check the [Marlin website](http://marlinfw.org/)** for tips — you might discover that the feature is already included. Most importantly, check if you're using [the latest version of Marlin](https://github.com/MarlinFirmware/Marlin/releases) and if you can get the desired behavior by changing [Marlin's config settings](http://marlinfw.org/docs/configuration/configuration.html).
* **Perform a [cursory search](https://github.com/MarlinFirmware/Marlin/issues?q=is%3Aissue)** to see if the enhancement has already been suggested. If it has, add a comment to the existing issue instead of opening a new one.
#### How Do I Submit A (Good) Feature Request?
Feature Requests are tracked as [GitHub issues](https://guides.github.com/features/issues/). Please follow these guidelines in your request:
* **Use a clear and descriptive title** for the issue to identify the suggestion.
* **Provide a step-by-step description of the requested feature** in as much detail as possible.
* **Provide specific examples to demonstrate the steps**.
* **Describe the current behavior** and **explain which behavior you expected to see instead** and why.
* **Include screenshots and links to videos** which demonstrate the feature or point out the part of Marlin to which the request is related.
* **Explain why this feature would be useful** to most Marlin users.
* **Name other firmwares that have this feature, if any.**
### Your First Code Contribution
Unsure where to begin contributing to Marlin? You can start by looking through these `good-first-issue` and `help-wanted` issues:
* [Beginner issues][good-first-issue] - issues which should only require a few lines of code, and a test or two.
* [Help Wanted issues][help-wanted] - issues which should be a bit more involved than `beginner` issues.
### Pull Requests
Pull Requests should always be targeted to working branches (e.g., `bugfix-1.1.x` and/or `bugfix-2.0.x`) and never to release branches (e.g., `1.1.x`). If this is your first Pull Request, please read our [Guide to Pull Requests](http://marlinfw.org/docs/development/getting_started_pull_requests.html) and Github's [Pull Request](https://help.github.com/articles/creating-a-pull-request/) documentation.
* Fill in [the required template](pull_request_template.md).
* Don't include issue numbers in the PR title.
* Include pictures, diagrams, and links to videos in your Pull Request to demonstrate your changes, if needed.
* Follow the [Coding Standards](http://marlinfw.org/docs/development/coding_standards.html) posted on our website.
* Document new code with clear and concise comments.
* End all files with a newline.
## Styleguides
### Git Commit Messages
* Use the present tense ("Add feature" not "Added feature").
* Use the imperative mood ("Move cursor to..." not "Moves cursor to...").
* Limit the first line to 72 characters or fewer.
* Reference issues and Pull Requests liberally after the first line.
### C++ Coding Standards
* Please read and follow the [Coding Standards](http://marlinfw.org/docs/development/coding_standards.html) posted on our website. Failure to follow these guidelines will delay evaluation and acceptance of Pull Requests.
### Documentation
* Guidelines for documentation are still under development. In-general, be clear, concise, and to-the-point.
+31
View File
@@ -0,0 +1,31 @@
<!--
Have you read Marlin's Code of Conduct? By filing an Issue, you are expected to comply with it, including treating everyone with respect: https://github.com/MarlinFirmware/Marlin/blob/master/.github/code_of_conduct.md
Do you want to ask a question? Are you looking for support? Please don't post here. Instead please use the Marlin Firmware forum at http://forums.reprap.org/list.php?415 or the Marlin Facebook Group https://www.facebook.com/groups/1049718498464482/.
Before filing an issue be sure to test the 1.1 and/or 2.0 "bugfix" branches to see whether the issue is already addressed.
-->
### Description
<!-- Description of the bug or requested feature -->
### Steps to Reproduce
<!-- If this is a Bug Report, please describe the steps needed to reproduce the issue -->
1. [First Step]
2. [Second Step]
3. [and so on...]
**Expected behavior:** [What you expect to happen]
**Actual behavior:** [What actually happens]
#### Additional Information
* Include a ZIP file containing your `Configuration.h` and `Configuration_adv.h` files.
* Provide pictures or links to videos that clearly demonstrate the issue.
* See [How Can I Contribute](#how-can-i-contribute) for additional guidelines.
+19
View File
@@ -0,0 +1,19 @@
### Requirements
* Filling out this template is required. Pull Requests without a clear description may be closed at the maintainers' discretion.
### Description
<!--
We must be able to understand your proposed change from this description. If we can't understand what the code will do from this description, the Pull Request may be closed at the maintainers' discretion. Keep in mind that the maintainer reviewing this PR may not be familiar with or have worked with the code recently, so please walk us through the concepts.
-->
### Benefits
<!-- What does this fix or improve? -->
### Related Issues
<!-- Whether this fixes a bug or fulfills a feature request, please list any related Issues here. -->
Regular → Executable
+60 -3
View File
@@ -1,6 +1,6 @@
#
# Marlin 3D Printer Firmware
# Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
# Copyright (C) 2017 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
#
# Based on Sprinter and grbl.
# Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
@@ -29,7 +29,6 @@ _Version.h
applet/
*.DS_Store
#
# Misc
#
@@ -42,7 +41,7 @@ applet/
*.i
*.ii
*.swp
tags
#
# C++
@@ -52,6 +51,7 @@ applet/
*.lo
*.o
*.obj
*.ino.cpp
# Precompiled Headers
*.gch
@@ -114,3 +114,60 @@ applet/
# Debug files
*.dSYM/
*.su
# PlatformIO files/dirs
.pio*
.pioenvs
.piolibdeps
.clang_complete
.gcc-flags.json
/lib/
# Workaround for Deviot+platformio quirks
Marlin/lib
Marlin/platformio.ini
Marlin/*/platformio.ini
Marlin/*/*/platformio.ini
Marlin/*/*/*/platformio.ini
Marlin/*/*/*/*/platformio.ini
Marlin/.travis.yml
Marlin/*/.travis.yml
Marlin/*/*/.travis.yml
Marlin/*/*/*/.travis.yml
Marlin/*/*/*/*/.travis.yml
Marlin/.gitignore
Marlin/*/.gitignore
Marlin/*/*/.gitignore
Marlin/*/*/*/.gitignore
Marlin/*/*/*/*/.gitignore
Marlin/readme.txt
Marlin/*/readme.txt
Marlin/*/*/readme.txt
Marlin/*/*/*/readme.txt
Marlin/*/*/*/*/readme.txt
#Visual Studio
*.sln
*.vcxproj
*.vcxproj.user
*.vcxproj.filters
Release/
Debug/
__vm/
.vs/
vc-fileutils.settings
#Visual Studio Code
.vscode
.vscode/.browse.c_cpp.db*
.vscode/c_cpp_properties.json
.vscode/launch.json
.vscode/*.db
#cmake
CMakeLists.txt
src/CMakeLists.txt
CMakeListsPrivate.txt
#CLion
cmake-build-*
+33 -362
View File
@@ -1,9 +1,27 @@
---
language: c
#
dist: trusty
sudo: false
language: python
python:
- "2.7"
notifications:
email: false
#
# Cache PlatformIO packages using Travis CI container-based infrastructure
sudo: false
cache:
pip: true
directories:
- "~/.platformio"
env:
- TEST_PLATFORM="megaatmega2560"
- TEST_PLATFORM="DUE"
- TEST_PLATFORM="LPC1768"
- TEST_PLATFORM="STM32F1"
- TEST_PLATFORM="teensy35"
before_install:
#
# Fetch the tag information for the current branch
@@ -11,370 +29,23 @@ before_install:
#
# Publish the buildroot script folder
- chmod +x ${TRAVIS_BUILD_DIR}/buildroot/bin/*
- ln -s ${TRAVIS_BUILD_DIR}/buildroot/bin/ ~/bin
#
# Start fb X server
- "/sbin/start-stop-daemon --start --quiet --pidfile /tmp/custom_xvfb_1.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :1 -ac -screen 0 1280x1024x16"
- sleep 3
- export DISPLAY=:1.0
#
- chmod +x ${TRAVIS_BUILD_DIR}/buildroot/share/tests/*
- export PATH=${TRAVIS_BUILD_DIR}/buildroot/bin/:${TRAVIS_BUILD_DIR}/buildroot/share/tests/:${PATH}
install:
#
# Install arduino 1.6.9
- wget http://downloads-02.arduino.cc/arduino-1.6.9-linux64.tar.xz
- tar xf arduino-1.6.9-linux64.tar.xz
- sudo mv arduino-1.6.9 /usr/local/share/arduino
- ln -s /usr/local/share/arduino/arduino ${TRAVIS_BUILD_DIR}/buildroot/bin/arduino
#
# Install: LiquidCrystal_I2C library
- git clone https://github.com/kiyoshigawa/LiquidCrystal_I2C.git
- mv LiquidCrystal_I2C/LiquidCrystal_I2C /usr/local/share/arduino/libraries/LiquidCrystal_I2C
#
# Install: LiquidTWI2 library
- git clone https://github.com/lincomatic/LiquidTWI2.git
- sudo mv LiquidTWI2 /usr/local/share/arduino/libraries/LiquidTWI2
#
# Install: Monochrome Graphics Library for LCDs and OLEDs
- arduino --install-library "U8glib"
#
# Install: L6470 Stepper Motor Driver library
- git clone https://github.com/ameyer/Arduino-L6470.git
- sudo mv Arduino-L6470/L6470 /usr/local/share/arduino/libraries/L6470
#
# Install: TMC26X Stepper Motor Controller library
- git clone https://github.com/trinamic/TMC26XStepper.git
- sudo mv TMC26XStepper /usr/local/share/arduino/libraries/TMC26XStepper
#
#- pip install -U platformio
- pip install -U https://github.com/platformio/platformio-core/archive/develop.zip
before_script:
# Update PlatformIO packages
- platformio update
#
# Change current working directory to the build dir
- cd ${TRAVIS_BUILD_DIR}
#
# Generate custom version include
- generate_version_header_for_marlin ${TRAVIS_BUILD_DIR}/Marlin
- cat ${TRAVIS_BUILD_DIR}/Marlin/_Version.h
- generate_version ${TRAVIS_BUILD_DIR}/Marlin/src/inc
- cat ${TRAVIS_BUILD_DIR}/Marlin/src/inc/_Version.h
#
script:
#
# Backup Configuration.h, Configuration_adv.h, and pins_RAMPS.h
#
- cp Marlin/Configuration.h Marlin/Configuration.h.backup
- cp Marlin/Configuration_adv.h Marlin/Configuration_adv.h.backup
- cp Marlin/pins_RAMPS.h Marlin/pins_RAMPS.h.backup
#
# Build with the default configurations
#
- build_marlin
#
# Test heated bed temperature sensor
#
- opt_set TEMP_SENSOR_BED 1
- build_marlin
#
# Test 2 extruders on basic RAMPS 1.4
#
- opt_set MOTHERBOARD BOARD_RAMPS_14_EEB
- opt_set EXTRUDERS 2
- opt_set TEMP_SENSOR_1 1
- build_marlin
#
# Test 3 extruders on RUMBA (can use any board with >=3 extruders defined)
# Include a test for LIN_ADVANCE here also
#
- opt_set MOTHERBOARD BOARD_RUMBA
- opt_set EXTRUDERS 3
- opt_set TEMP_SENSOR_2 1
- opt_enable_adv LIN_ADVANCE
- build_marlin
#
# Test PIDTEMPBED
#
- restore_configs
- opt_enable PIDTEMPBED
- build_marlin
#
# Test a "Fix Mounted" Probe along with Safe Homing
#
- restore_configs
- opt_enable FIX_MOUNTED_PROBE Z_SAFE_HOMING
- build_marlin
#
# ...with AUTO_BED_LEVELING_FEATURE, Z_MIN_PROBE_REPEATABILITY_TEST, & DEBUG_LEVELING_FEATURE
#
- opt_enable AUTO_BED_LEVELING_FEATURE Z_MIN_PROBE_REPEATABILITY_TEST DEBUG_LEVELING_FEATURE
- build_marlin
#
# Test a Sled Z Probe
#
- restore_configs
- opt_enable Z_PROBE_SLED
- build_marlin
#
# ...with AUTO_BED_LEVELING_FEATURE & DEBUG_LEVELING_FEATURE
#
- opt_enable AUTO_BED_LEVELING_FEATURE DEBUG_LEVELING_FEATURE
- build_marlin
#
# Test a Servo Probe
#
- restore_configs
- opt_enable NUM_SERVOS Z_ENDSTOP_SERVO_NR Z_SERVO_ANGLES DEACTIVATE_SERVOS_AFTER_MOVE
- build_marlin
#
# ...with AUTO_BED_LEVELING_FEATURE & DEBUG_LEVELING_FEATURE
#
- opt_enable AUTO_BED_LEVELING_FEATURE DEBUG_LEVELING_FEATURE
- build_marlin
#
# Test MESH_BED_LEVELING feature, with LCD
#
- restore_configs
- opt_enable MESH_BED_LEVELING MESH_G28_REST_ORIGIN MANUAL_BED_LEVELING ULTIMAKERCONTROLLER
- build_marlin
#
# Test EEPROM_SETTINGS, EEPROM_CHITCHAT, M100_FREE_MEMORY_WATCHER,
# INCH_MODE_SUPPORT, TEMPERATURE_UNITS_SUPPORT
#
- restore_configs
- opt_enable EEPROM_SETTINGS EEPROM_CHITCHAT M100_FREE_MEMORY_WATCHER INCH_MODE_SUPPORT TEMPERATURE_UNITS_SUPPORT
- build_marlin
#
# Mixing Extruder
#
- restore_configs
- opt_enable MIXING_EXTRUDER
- opt_set MIXING_STEPPERS 2
- build_marlin
#
# Test DUAL_X_CARRIAGE
#
- restore_configs
- opt_set MOTHERBOARD BOARD_RUMBA
- opt_set EXTRUDERS 2
- opt_set TEMP_SENSOR_1 1
- opt_enable USE_XMAX_PLUG
- opt_enable_adv DUAL_X_CARRIAGE
- build_marlin
#
# Test SPEAKER with BOARD_BQ_ZUM_MEGA_3D and BQ_LCD_SMART_CONTROLLER
#
- restore_configs
- opt_set MOTHERBOARD BOARD_BQ_ZUM_MEGA_3D
- opt_set LCD_FEEDBACK_FREQUENCY_DURATION_MS 10
- opt_set LCD_FEEDBACK_FREQUENCY_HZ 100
- opt_enable BQ_LCD_SMART_CONTROLLER SPEAKER
#
# Test SWITCHING_EXTRUDER
#
- restore_configs
- opt_set MOTHERBOARD BOARD_RUMBA
- opt_set EXTRUDERS 2
- opt_enable NUM_SERVOS
- opt_set NUM_SERVOS 1
- opt_set TEMP_SENSOR_1 1
- opt_enable SWITCHING_EXTRUDER ULTIMAKERCONTROLLER
- build_marlin
#
# Test MINIRAMBO for PWM_MOTOR_CURRENT
#
- restore_configs
- opt_set MOTHERBOARD BOARD_MINIRAMBO
- build_marlin
#
# Test FILAMENT_CHANGE_FEATURE and LCD_INFO_MENU
#
- restore_configs
- opt_enable ULTIMAKERCONTROLLER
- opt_enable_adv FILAMENT_CHANGE_FEATURE LCD_INFO_MENU
- build_marlin
#
# Enable filament sensor
#
- restore_configs
- opt_enable FILAMENT_WIDTH_SENSOR
- build_marlin
#
# Enable filament sensor with LCD display
#
- opt_enable ULTIMAKERCONTROLLER FILAMENT_LCD_DISPLAY
- build_marlin
#
# Enable BEZIER_CURVE_SUPPORT
#
- restore_configs
- opt_enable_adv BEZIER_CURVE_SUPPORT
- build_marlin
#
# Enable COREXY
#
- restore_configs
- opt_enable COREXY
- build_marlin
#
# Enable COREXZ
#
- restore_configs
- opt_enable COREXZ
- build_marlin
#
# Enable Z_DUAL_STEPPER_DRIVERS, Z_DUAL_ENDSTOPS
#
- restore_configs
- opt_enable_adv Z_DUAL_STEPPER_DRIVERS Z_DUAL_ENDSTOPS
- pins_set RAMPS X_MAX_PIN -1
- opt_set_adv Z2_MAX_PIN 2
- build_marlin
#
# Test PRINTCOUNTER
#
- restore_configs
- opt_enable PRINTCOUNTER
- build_marlin
#
# Test NOZZLE_PARK_FEATURE
#
- restore_configs
- opt_enable NOZZLE_PARK_FEATURE
- build_marlin
#
# Test NOZZLE_CLEAN_FEATURE
#
- restore_configs
- opt_enable NOZZLE_CLEAN_FEATURE
- build_marlin
#
#
######## STANDARD LCD/PANELS ##############
#
# ULTRA_LCD
#
- restore_configs
- opt_enable ULTRA_LCD
- build_marlin
#
# DOGLCD
#
- restore_configs
- opt_enable DOGLCD
- build_marlin
#
# ULTIMAKERCONTROLLER
#
- restore_configs
- opt_enable ULTIMAKERCONTROLLER
- build_marlin
#
# MAKRPANEL
# Needs to use Melzi and Sanguino hardware
#
#- restore_configs
#- opt_enable MAKRPANEL
#- build_marlin
#
# REPRAP_DISCOUNT_SMART_CONTROLLER, SDSUPPORT, and BABYSTEPPING
#
- restore_configs
- opt_enable REPRAP_DISCOUNT_SMART_CONTROLLER SDSUPPORT BABYSTEPPING
- build_marlin
#
# G3D_PANEL
#
- restore_configs
- opt_enable G3D_PANEL SDSUPPORT
- build_marlin
#
# REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
#
- restore_configs
- opt_enable REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER SDSUPPORT
- build_marlin
#
# REPRAPWORLD_KEYPAD
#
# Cant find configuration details to get it to compile
#- restore_configs
#- opt_enable ULTRA_LCD REPRAPWORLD_KEYPAD REPRAPWORLD_KEYPAD_MOVE_STEP
#- build_marlin
#
# RA_CONTROL_PANEL
#
- restore_configs
- opt_enable RA_CONTROL_PANEL
- build_marlin
#
######## I2C LCD/PANELS ##############
#
# !!!ATTENTION!!!
# Most I2C configurations are failing at the moment because they require
# a different Liquid Crystal library "LiquidTWI2".
#
# LCD_I2C_SAINSMART_YWROBOT
#
#- restore_configs
#- opt_enable LCD_I2C_SAINSMART_YWROBOT
#- build_marlin
#
# LCD_I2C_PANELOLU2
#
#- restore_configs
#- opt_enable LCD_I2C_PANELOLU2
#- build_marlin
#
# LCD_I2C_VIKI
#
#- restore_configs
#- opt_enable LCD_I2C_VIKI
#- build_marlin
#
# LCM1602
#
- restore_configs
- opt_enable LCM1602
- build_marlin
#
#
######## Example Configurations ##############
#
# BQ Hephestos 2
- restore_configs
- use_example_configs Hephestos_2
- build_marlin
#
# Delta Config (generic)
- restore_configs
- use_example_configs delta/generic
- build_marlin
#
# Delta Config (generic) + ABL + ALLEN_KEY
#
- use_example_configs delta/generic
- opt_disable DISABLE_MIN_ENDSTOPS
- opt_enable AUTO_BED_LEVELING_FEATURE Z_PROBE_ALLEN_KEY
- build_marlin
#
# Delta Config (Mini Kossel)
#
- use_example_configs delta/kossel_mini
- build_marlin
#
# Makibox Config need to check board type for Teensy++ 2.0
#
#- use_example_configs makibox
#- build_marlin
#
# SCARA Config
#
- use_example_configs SCARA
- opt_enable AUTO_BED_LEVELING_FEATURE FIX_MOUNTED_PROBE USE_ZMIN_PLUG
- build_marlin
#
# tvrrug Config need to check board type for sanguino atmega644p
#
#- use_example_configs tvrrug/Round2
#- build_marlin
#
#
######## Board Types #############
#
# To be added in nightly test branch
#
- run_tests ${TRAVIS_BUILD_DIR} ${TEST_PLATFORM}
-319
View File
@@ -1,319 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
* Conditionals_LCD.h
* LCD Defines that depend on configuration but are not editable.
*/
#ifndef CONDITIONALS_LCD_H // Get the LCD defines which are needed first
#define CONDITIONALS_LCD_H
#define LCD_HAS_DIRECTIONAL_BUTTONS (BUTTON_EXISTS(UP) || BUTTON_EXISTS(DWN) || BUTTON_EXISTS(LFT) || BUTTON_EXISTS(RT))
#if ENABLED(CARTESIO_UI)
#define DOGLCD
#define ULTIPANEL
#define NEWPANEL
#define DEFAULT_LCD_CONTRAST 90
#define LCD_CONTRAST_MIN 60
#define LCD_CONTRAST_MAX 140
#endif
#if ENABLED(MAKRPANEL) || ENABLED(MINIPANEL)
#define DOGLCD
#define ULTIPANEL
#define NEWPANEL
#define DEFAULT_LCD_CONTRAST 17
#endif
#if ENABLED(miniVIKI) || ENABLED(VIKI2) || ENABLED(ELB_FULL_GRAPHIC_CONTROLLER)
#define ULTRA_LCD //general LCD support, also 16x2
#define DOGLCD // Support for SPI LCD 128x64 (Controller ST7565R graphic Display Family)
#define ULTIMAKERCONTROLLER //as available from the Ultimaker online store.
#if ENABLED(miniVIKI)
#define LCD_CONTRAST_MIN 75
#define LCD_CONTRAST_MAX 115
#define DEFAULT_LCD_CONTRAST 95
#elif ENABLED(VIKI2)
#define DEFAULT_LCD_CONTRAST 40
#elif ENABLED(ELB_FULL_GRAPHIC_CONTROLLER)
#define LCD_CONTRAST_MIN 90
#define LCD_CONTRAST_MAX 130
#define DEFAULT_LCD_CONTRAST 110
#define U8GLIB_LM6059_AF
#define SD_DETECT_INVERTED
#endif
#ifndef ENCODER_PULSES_PER_STEP
#define ENCODER_PULSES_PER_STEP 4
#endif
#ifndef ENCODER_STEPS_PER_MENU_ITEM
#define ENCODER_STEPS_PER_MENU_ITEM 1
#endif
#endif
// Generic support for SSD1306 / SH1106 OLED based LCDs.
#if ENABLED(U8GLIB_SSD1306) || ENABLED(U8GLIB_SH1106)
#define ULTRA_LCD //general LCD support, also 16x2
#define DOGLCD // Support for I2C LCD 128x64 (Controller SSD1306 / SH1106 graphic Display Family)
#endif
#if ENABLED(PANEL_ONE) || ENABLED(U8GLIB_SH1106)
#define ULTIMAKERCONTROLLER
#endif
#if ENABLED(BQ_LCD_SMART_CONTROLLER)
#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
#ifndef ENCODER_PULSES_PER_STEP
#define ENCODER_PULSES_PER_STEP 4
#endif
#ifndef ENCODER_STEPS_PER_MENU_ITEM
#define ENCODER_STEPS_PER_MENU_ITEM 1
#endif
#ifndef LONG_FILENAME_HOST_SUPPORT
#define LONG_FILENAME_HOST_SUPPORT
#endif
#endif
#if ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
#define DOGLCD
#define U8GLIB_ST7920
#define REPRAP_DISCOUNT_SMART_CONTROLLER
#endif
#if ENABLED(ULTIMAKERCONTROLLER) \
|| ENABLED(REPRAP_DISCOUNT_SMART_CONTROLLER) \
|| ENABLED(G3D_PANEL) \
|| ENABLED(RIGIDBOT_PANEL) \
|| ENABLED(REPRAPWORLD_KEYPAD)
#define ULTIPANEL
#define NEWPANEL
#endif
#if ENABLED(RA_CONTROL_PANEL)
#define LCD_I2C_TYPE_PCA8574
#define LCD_I2C_ADDRESS 0x27 // I2C Address of the port expander
#define ULTIPANEL
#define NEWPANEL
#endif
#if ENABLED(REPRAPWORLD_GRAPHICAL_LCD)
#define DOGLCD
#define U8GLIB_ST7920
#define ULTIPANEL
#define NEWPANEL
#endif
/**
* I2C PANELS
*/
#if ENABLED(LCD_I2C_SAINSMART_YWROBOT)
// This uses the LiquidCrystal_I2C library ( https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home )
// Make sure it is placed in the Arduino libraries directory.
#define LCD_I2C_TYPE_PCF8575
#define LCD_I2C_ADDRESS 0x27 // I2C Address of the port expander
#define ULTIPANEL
#define NEWPANEL
#endif
// PANELOLU2 LCD with status LEDs, separate encoder and click inputs
#if ENABLED(LCD_I2C_PANELOLU2)
#define LCD_I2C_TYPE_MCP23017
#define LCD_I2C_ADDRESS 0x20 // I2C Address of the port expander
#define LCD_USE_I2C_BUZZER //comment out to disable buzzer on LCD
#ifndef ENCODER_PULSES_PER_STEP
#define ENCODER_PULSES_PER_STEP 4
#endif
#ifndef ENCODER_STEPS_PER_MENU_ITEM
#define ENCODER_STEPS_PER_MENU_ITEM 1
#endif
#define ULTIPANEL
#define NEWPANEL
#endif
// Panucatt VIKI LCD with status LEDs, integrated click & L/R/U/P buttons, separate encoder inputs
#if ENABLED(LCD_I2C_VIKI)
// This uses the LiquidTWI2 library v1.2.3 or later ( https://github.com/lincomatic/LiquidTWI2 )
// Make sure the LiquidTWI2 directory is placed in the Arduino or Sketchbook libraries subdirectory.
// Note: The pause/stop/resume LCD button pin should be connected to the Arduino
// BTN_ENC pin (or set BTN_ENC to -1 if not used)
#define LCD_I2C_TYPE_MCP23017
#define LCD_I2C_ADDRESS 0x20 // I2C Address of the port expander
#define LCD_USE_I2C_BUZZER //comment out to disable buzzer on LCD (requires LiquidTWI2 v1.2.3 or later)
#define ULTIPANEL
#define NEWPANEL
#define ENCODER_FEEDRATE_DEADZONE 4
#ifndef ENCODER_PULSES_PER_STEP
#define ENCODER_PULSES_PER_STEP 1
#endif
#ifndef ENCODER_STEPS_PER_MENU_ITEM
#define ENCODER_STEPS_PER_MENU_ITEM 2
#endif
#endif
// Shift register panels
// ---------------------
// 2 wire Non-latching LCD SR from:
// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/schematics#!shiftregister-connection
#if ENABLED(SAV_3DLCD)
#define SR_LCD_2W_NL // Non latching 2 wire shift register
#define ULTIPANEL
#define NEWPANEL
#endif
#if ENABLED(DOGLCD) // Change number of lines to match the DOG graphic display
#ifndef LCD_WIDTH
#define LCD_WIDTH 22
#endif
#ifndef LCD_HEIGHT
#define LCD_HEIGHT 5
#endif
#endif
#if ENABLED(ULTIPANEL)
#define NEWPANEL //enable this if you have a click-encoder panel
#define ULTRA_LCD
#ifndef LCD_WIDTH
#define LCD_WIDTH 20
#endif
#ifndef LCD_HEIGHT
#define LCD_HEIGHT 4
#endif
#else //no panel but just LCD
#if ENABLED(ULTRA_LCD)
#ifndef LCD_WIDTH
#define LCD_WIDTH 16
#endif
#ifndef LCD_HEIGHT
#define LCD_HEIGHT 2
#endif
#endif
#endif
#if ENABLED(DOGLCD)
/* Custom characters defined in font dogm_font_data_Marlin_symbols.h / Marlin_symbols.fon */
// \x00 intentionally skipped to avoid problems in strings
#define LCD_STR_REFRESH "\x01"
#define LCD_STR_FOLDER "\x02"
#define LCD_STR_ARROW_RIGHT "\x03"
#define LCD_STR_UPLEVEL "\x04"
#define LCD_STR_CLOCK "\x05"
#define LCD_STR_FEEDRATE "\x06"
#define LCD_STR_BEDTEMP "\x07"
#define LCD_STR_THERMOMETER "\x08"
#define LCD_STR_DEGREE "\x09"
#define LCD_STR_SPECIAL_MAX '\x09'
// Maximum here is 0x1f because 0x20 is ' ' (space) and the normal charsets begin.
// Better stay below 0x10 because DISPLAY_CHARSET_HD44780_WESTERN begins here.
#else
/* Custom characters defined in the first 8 characters of the LCD */
#define LCD_STR_BEDTEMP "\x00" // Print only as a char. This will have 'unexpected' results when used in a string!
#define LCD_STR_DEGREE "\x01"
#define LCD_STR_THERMOMETER "\x02"
#define LCD_STR_UPLEVEL "\x03"
#define LCD_STR_REFRESH "\x04"
#define LCD_STR_FOLDER "\x05"
#define LCD_STR_FEEDRATE "\x06"
#define LCD_STR_CLOCK "\x07"
#define LCD_STR_ARROW_RIGHT ">" /* from the default character set */
#endif
/**
* Default LCD contrast for dogm-like LCD displays
*/
#if ENABLED(DOGLCD)
#define HAS_LCD_CONTRAST ( \
ENABLED(MAKRPANEL) \
|| ENABLED(CARTESIO_UI) \
|| ENABLED(VIKI2) \
|| ENABLED(miniVIKI) \
|| ENABLED(ELB_FULL_GRAPHIC_CONTROLLER) \
)
#if HAS_LCD_CONTRAST
#ifndef LCD_CONTRAST_MIN
#define LCD_CONTRAST_MIN 0
#endif
#ifndef LCD_CONTRAST_MAX
#define LCD_CONTRAST_MAX 63
#endif
#ifndef DEFAULT_LCD_CONTRAST
#define DEFAULT_LCD_CONTRAST 32
#endif
#endif
#endif
#ifndef BOOTSCREEN_TIMEOUT
#define BOOTSCREEN_TIMEOUT 2500
#endif
/**
* Extruders have some combination of stepper motors and hotends
* so we separate these concepts into the defines:
*
* EXTRUDERS - Number of Selectable Tools
* HOTENDS - Number of hotends, whether connected or separate
* E_STEPPERS - Number of actual E stepper motors
* TOOL_E_INDEX - Index to use when getting/setting the tool state
*
*/
#if ENABLED(SINGLENOZZLE) // One hotend, multi-extruder
#define HOTENDS 1
#define E_STEPPERS EXTRUDERS
#define E_MANUAL EXTRUDERS
#define TOOL_E_INDEX current_block->active_extruder
#undef TEMP_SENSOR_1_AS_REDUNDANT
#undef HOTEND_OFFSET_X
#undef HOTEND_OFFSET_Y
#elif ENABLED(SWITCHING_EXTRUDER) // One E stepper, unified E axis, two hotends
#define HOTENDS EXTRUDERS
#define E_STEPPERS 1
#define E_MANUAL 1
#define TOOL_E_INDEX 0
#ifndef HOTEND_OFFSET_Z
#define HOTEND_OFFSET_Z { 0 }
#endif
#elif ENABLED(MIXING_EXTRUDER) // Multi-stepper, unified E axis, one hotend
#define HOTENDS 1
#define E_STEPPERS MIXING_STEPPERS
#define E_MANUAL 1
#define TOOL_E_INDEX 0
#else // One stepper, E axis, and hotend per tool
#define HOTENDS EXTRUDERS
#define E_STEPPERS EXTRUDERS
#define E_MANUAL EXTRUDERS
#define TOOL_E_INDEX current_block->active_extruder
#endif
#endif //CONDITIONALS_LCD_H
-663
View File
@@ -1,663 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
* Conditionals_post.h
* Defines that depend on configuration but are not editable.
*/
#ifndef CONDITIONALS_POST_H
#define CONDITIONALS_POST_H
#if ENABLED(EMERGENCY_PARSER)
#define EMERGENCY_PARSER_CAPABILITIES " EMERGENCY_CODES:M108,M112,M410"
#else
#define EMERGENCY_PARSER_CAPABILITIES ""
#endif
/**
* Set ENDSTOPPULLUPS for unused endstop switches
*/
#if ENABLED(ENDSTOPPULLUPS)
#if ENABLED(USE_XMAX_PLUG)
#define ENDSTOPPULLUP_XMAX
#endif
#if ENABLED(USE_YMAX_PLUG)
#define ENDSTOPPULLUP_YMAX
#endif
#if ENABLED(USE_ZMAX_PLUG)
#define ENDSTOPPULLUP_ZMAX
#endif
#if ENABLED(USE_XMIN_PLUG)
#define ENDSTOPPULLUP_XMIN
#endif
#if ENABLED(USE_YMIN_PLUG)
#define ENDSTOPPULLUP_YMIN
#endif
#if ENABLED(USE_ZMIN_PLUG)
#define ENDSTOPPULLUP_ZMIN
#endif
#if DISABLED(DISABLE_Z_MIN_PROBE_ENDSTOP)
#define ENDSTOPPULLUP_ZMIN_PROBE
#endif
#endif
/**
* Axis lengths
*/
#define X_MAX_LENGTH (X_MAX_POS - (X_MIN_POS))
#define Y_MAX_LENGTH (Y_MAX_POS - (Y_MIN_POS))
#define Z_MAX_LENGTH (Z_MAX_POS - (Z_MIN_POS))
/**
* CoreXY and CoreXZ
*/
#if ENABLED(COREXY)
#define CORE_AXIS_1 A_AXIS // XY from A + B
#define CORE_AXIS_2 B_AXIS
#define NORMAL_AXIS Z_AXIS
#elif ENABLED(COREXZ)
#define CORE_AXIS_1 A_AXIS // XZ from A + C
#define CORE_AXIS_2 C_AXIS
#define NORMAL_AXIS Y_AXIS
#elif ENABLED(COREYZ)
#define CORE_AXIS_1 B_AXIS // YZ from B + C
#define CORE_AXIS_2 C_AXIS
#define NORMAL_AXIS X_AXIS
#endif
/**
* SCARA
*/
#if ENABLED(SCARA)
#undef SLOWDOWN
#define QUICK_HOME //SCARA needs Quickhome
#endif
/**
* Set the home position based on settings or manual overrides
*/
#ifdef MANUAL_X_HOME_POS
#define X_HOME_POS MANUAL_X_HOME_POS
#elif ENABLED(BED_CENTER_AT_0_0)
#if ENABLED(DELTA)
#define X_HOME_POS 0
#else
#define X_HOME_POS ((X_MAX_LENGTH) * (X_HOME_DIR) * 0.5)
#endif
#else
#if ENABLED(DELTA)
#define X_HOME_POS ((X_MAX_LENGTH) * 0.5)
#else
#define X_HOME_POS (X_HOME_DIR < 0 ? X_MIN_POS : X_MAX_POS)
#endif
#endif
#ifdef MANUAL_Y_HOME_POS
#define Y_HOME_POS MANUAL_Y_HOME_POS
#elif ENABLED(BED_CENTER_AT_0_0)
#if ENABLED(DELTA)
#define Y_HOME_POS 0
#else
#define Y_HOME_POS ((Y_MAX_LENGTH) * (Y_HOME_DIR) * 0.5)
#endif
#else
#if ENABLED(DELTA)
#define Y_HOME_POS ((Y_MAX_LENGTH) * 0.5)
#else
#define Y_HOME_POS (Y_HOME_DIR < 0 ? Y_MIN_POS : Y_MAX_POS)
#endif
#endif
#ifdef MANUAL_Z_HOME_POS
#define Z_HOME_POS MANUAL_Z_HOME_POS
#else
#define Z_HOME_POS (Z_HOME_DIR < 0 ? Z_MIN_POS : Z_MAX_POS)
#endif
/**
* The BLTouch Probe emulates a servo probe
*/
#if ENABLED(BLTOUCH)
#undef Z_ENDSTOP_SERVO_NR
#undef Z_SERVO_ANGLES
#define Z_ENDSTOP_SERVO_NR 0
#define Z_SERVO_ANGLES {10,90} // For BLTouch 10=deploy, 90=retract
#undef DEACTIVATE_SERVOS_AFTER_MOVE
#if ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN)
#undef Z_MIN_ENDSTOP_INVERTING
#define Z_MIN_ENDSTOP_INVERTING false
#endif
#endif
/**
* Auto Bed Leveling and Z Probe Repeatability Test
*/
#define HAS_PROBING_PROCEDURE (ENABLED(AUTO_BED_LEVELING_FEATURE) || ENABLED(Z_MIN_PROBE_REPEATABILITY_TEST))
// Boundaries for probing based on set limits
#define MIN_PROBE_X (max(X_MIN_POS, X_MIN_POS + X_PROBE_OFFSET_FROM_EXTRUDER))
#define MAX_PROBE_X (min(X_MAX_POS, X_MAX_POS + X_PROBE_OFFSET_FROM_EXTRUDER))
#define MIN_PROBE_Y (max(Y_MIN_POS, Y_MIN_POS + Y_PROBE_OFFSET_FROM_EXTRUDER))
#define MAX_PROBE_Y (min(Y_MAX_POS, Y_MAX_POS + Y_PROBE_OFFSET_FROM_EXTRUDER))
#define HAS_Z_SERVO_ENDSTOP (defined(Z_ENDSTOP_SERVO_NR) && Z_ENDSTOP_SERVO_NR >= 0)
/**
* Z Sled Probe requires Z_SAFE_HOMING
*/
#if ENABLED(Z_PROBE_SLED)
#define Z_SAFE_HOMING
#endif
/**
* DELTA should ignore Z_SAFE_HOMING
*/
#if ENABLED(DELTA)
#undef Z_SAFE_HOMING
#endif
/**
* Safe Homing Options
*/
#if ENABLED(Z_SAFE_HOMING)
#ifndef Z_SAFE_HOMING_X_POINT
#define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2)
#endif
#ifndef Z_SAFE_HOMING_Y_POINT
#define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2)
#endif
#endif
/**
* Host keep alive
*/
#ifndef DEFAULT_KEEPALIVE_INTERVAL
#define DEFAULT_KEEPALIVE_INTERVAL 2
#endif
/**
* MAX_STEP_FREQUENCY differs for TOSHIBA
*/
#if ENABLED(CONFIG_STEPPERS_TOSHIBA)
#define MAX_STEP_FREQUENCY 10000 // Max step frequency for Toshiba Stepper Controllers
#else
#define MAX_STEP_FREQUENCY 40000 // Max step frequency for Ultimaker (5000 pps / half step)
#endif
// MS1 MS2 Stepper Driver Microstepping mode table
#define MICROSTEP1 LOW,LOW
#define MICROSTEP2 HIGH,LOW
#define MICROSTEP4 LOW,HIGH
#define MICROSTEP8 HIGH,HIGH
#define MICROSTEP16 HIGH,HIGH
/**
* Advance calculated values
*/
#if ENABLED(ADVANCE)
#define EXTRUSION_AREA (0.25 * (D_FILAMENT) * (D_FILAMENT) * M_PI)
#define STEPS_PER_CUBIC_MM_E (axis_steps_per_mm[E_AXIS] / (EXTRUSION_AREA))
#endif
#if ENABLED(ULTIPANEL) && DISABLED(ELB_FULL_GRAPHIC_CONTROLLER)
#undef SD_DETECT_INVERTED
#endif
/**
* Set defaults for missing (newer) options
*/
#ifndef DISABLE_INACTIVE_X
#define DISABLE_INACTIVE_X DISABLE_X
#endif
#ifndef DISABLE_INACTIVE_Y
#define DISABLE_INACTIVE_Y DISABLE_Y
#endif
#ifndef DISABLE_INACTIVE_Z
#define DISABLE_INACTIVE_Z DISABLE_Z
#endif
#ifndef DISABLE_INACTIVE_E
#define DISABLE_INACTIVE_E DISABLE_E
#endif
// Power Signal Control Definitions
// By default use ATX definition
#ifndef POWER_SUPPLY
#define POWER_SUPPLY 1
#endif
#if (POWER_SUPPLY == 1) // 1 = ATX
#define PS_ON_AWAKE LOW
#define PS_ON_ASLEEP HIGH
#elif (POWER_SUPPLY == 2) // 2 = X-Box 360 203W
#define PS_ON_AWAKE HIGH
#define PS_ON_ASLEEP LOW
#endif
#define HAS_POWER_SWITCH (POWER_SUPPLY > 0 && PIN_EXISTS(PS_ON))
/**
* Temp Sensor defines
*/
#if TEMP_SENSOR_0 == -3
#define HEATER_0_USES_MAX6675
#define MAX6675_IS_MAX31855
#elif TEMP_SENSOR_0 == -2
#define HEATER_0_USES_MAX6675
#elif TEMP_SENSOR_0 == -1
#define HEATER_0_USES_AD595
#elif TEMP_SENSOR_0 == 0
#undef HEATER_0_MINTEMP
#undef HEATER_0_MAXTEMP
#elif TEMP_SENSOR_0 > 0
#define THERMISTORHEATER_0 TEMP_SENSOR_0
#define HEATER_0_USES_THERMISTOR
#endif
#if TEMP_SENSOR_1 <= -2
#error "MAX6675 / MAX31855 Thermocouples not supported for TEMP_SENSOR_1"
#elif TEMP_SENSOR_1 == -1
#define HEATER_1_USES_AD595
#elif TEMP_SENSOR_1 == 0
#undef HEATER_1_MINTEMP
#undef HEATER_1_MAXTEMP
#elif TEMP_SENSOR_1 > 0
#define THERMISTORHEATER_1 TEMP_SENSOR_1
#define HEATER_1_USES_THERMISTOR
#endif
#if TEMP_SENSOR_2 <= -2
#error "MAX6675 / MAX31855 Thermocouples not supported for TEMP_SENSOR_2"
#elif TEMP_SENSOR_2 == -1
#define HEATER_2_USES_AD595
#elif TEMP_SENSOR_2 == 0
#undef HEATER_2_MINTEMP
#undef HEATER_2_MAXTEMP
#elif TEMP_SENSOR_2 > 0
#define THERMISTORHEATER_2 TEMP_SENSOR_2
#define HEATER_2_USES_THERMISTOR
#endif
#if TEMP_SENSOR_3 <= -2
#error "MAX6675 / MAX31855 Thermocouples not supported for TEMP_SENSOR_3"
#elif TEMP_SENSOR_3 == -1
#define HEATER_3_USES_AD595
#elif TEMP_SENSOR_3 == 0
#undef HEATER_3_MINTEMP
#undef HEATER_3_MAXTEMP
#elif TEMP_SENSOR_3 > 0
#define THERMISTORHEATER_3 TEMP_SENSOR_3
#define HEATER_3_USES_THERMISTOR
#endif
#if TEMP_SENSOR_BED <= -2
#error "MAX6675 / MAX31855 Thermocouples not supported for TEMP_SENSOR_BED"
#elif TEMP_SENSOR_BED == -1
#define BED_USES_AD595
#elif TEMP_SENSOR_BED == 0
#undef BED_MINTEMP
#undef BED_MAXTEMP
#elif TEMP_SENSOR_BED > 0
#define THERMISTORBED TEMP_SENSOR_BED
#define BED_USES_THERMISTOR
#endif
/**
* Flags for PID handling
*/
#define HAS_PID_HEATING (ENABLED(PIDTEMP) || ENABLED(PIDTEMPBED))
#define HAS_PID_FOR_BOTH (ENABLED(PIDTEMP) && ENABLED(PIDTEMPBED))
/**
* Default hotend offsets, if not defined
*/
#if HOTENDS > 1
#ifndef HOTEND_OFFSET_X
#define HOTEND_OFFSET_X { 0 } // X offsets for each extruder
#endif
#ifndef HOTEND_OFFSET_Y
#define HOTEND_OFFSET_Y { 0 } // Y offsets for each extruder
#endif
#if !defined(HOTEND_OFFSET_Z) && (ENABLED(DUAL_X_CARRIAGE) || ENABLED(SWITCHING_EXTRUDER))
#define HOTEND_OFFSET_Z { 0 }
#endif
#endif
/**
* ARRAY_BY_EXTRUDERS based on EXTRUDERS
*/
#define ARRAY_BY_EXTRUDERS(args...) ARRAY_N(EXTRUDERS, args)
#define ARRAY_BY_EXTRUDERS1(v1) ARRAY_BY_EXTRUDERS(v1, v1, v1, v1, v1, v1)
/**
* ARRAY_BY_HOTENDS based on HOTENDS
*/
#define ARRAY_BY_HOTENDS(args...) ARRAY_N(HOTENDS, args)
#define ARRAY_BY_HOTENDS1(v1) ARRAY_BY_HOTENDS(v1, v1, v1, v1, v1, v1)
/**
* Z_DUAL_ENDSTOPS endstop reassignment
*/
#if ENABLED(Z_DUAL_ENDSTOPS)
#define _XMIN_ 100
#define _YMIN_ 200
#define _ZMIN_ 300
#define _XMAX_ 101
#define _YMAX_ 201
#define _ZMAX_ 301
#if Z2_USE_ENDSTOP == _XMAX_
#define Z2_MAX_ENDSTOP_INVERTING X_MAX_ENDSTOP_INVERTING
#define Z2_MAX_PIN X_MAX_PIN
#undef USE_XMAX_PLUG
#elif Z2_USE_ENDSTOP == _YMAX_
#define Z2_MAX_ENDSTOP_INVERTING Y_MAX_ENDSTOP_INVERTING
#define Z2_MAX_PIN Y_MAX_PIN
#undef USE_YMAX_PLUG
#elif Z2_USE_ENDSTOP == _ZMAX_
#define Z2_MAX_ENDSTOP_INVERTING Z_MAX_ENDSTOP_INVERTING
#define Z2_MAX_PIN Z_MAX_PIN
#undef USE_ZMAX_PLUG
#elif Z2_USE_ENDSTOP == _XMIN_
#define Z2_MAX_ENDSTOP_INVERTING X_MIN_ENDSTOP_INVERTING
#define Z2_MAX_PIN X_MIN_PIN
#undef USE_XMIN_PLUG
#elif Z2_USE_ENDSTOP == _YMIN_
#define Z2_MAX_ENDSTOP_INVERTING Y_MIN_ENDSTOP_INVERTING
#define Z2_MAX_PIN Y_MIN_PIN
#undef USE_YMIN_PLUG
#elif Z2_USE_ENDSTOP == _ZMIN_
#define Z2_MAX_ENDSTOP_INVERTING Z_MIN_ENDSTOP_INVERTING
#define Z2_MAX_PIN Z_MIN_PIN
#undef USE_ZMIN_PLUG
#else
#define Z2_MAX_ENDSTOP_INVERTING false
#endif
#endif
/**
* Shorthand for pin tests, used wherever needed
*/
#define HAS_TEMP_0 (PIN_EXISTS(TEMP_0) && TEMP_SENSOR_0 != 0 && TEMP_SENSOR_0 > -2)
#define HAS_TEMP_1 (PIN_EXISTS(TEMP_1) && TEMP_SENSOR_1 != 0 && TEMP_SENSOR_1 > -2)
#define HAS_TEMP_2 (PIN_EXISTS(TEMP_2) && TEMP_SENSOR_2 != 0 && TEMP_SENSOR_2 > -2)
#define HAS_TEMP_3 (PIN_EXISTS(TEMP_3) && TEMP_SENSOR_3 != 0 && TEMP_SENSOR_3 > -2)
#define HAS_TEMP_BED (PIN_EXISTS(TEMP_BED) && TEMP_SENSOR_BED != 0 && TEMP_SENSOR_BED > -2)
#define HAS_HEATER_0 (PIN_EXISTS(HEATER_0))
#define HAS_HEATER_1 (PIN_EXISTS(HEATER_1))
#define HAS_HEATER_2 (PIN_EXISTS(HEATER_2))
#define HAS_HEATER_3 (PIN_EXISTS(HEATER_3))
#define HAS_HEATER_BED (PIN_EXISTS(HEATER_BED))
#define HAS_AUTO_FAN_0 (PIN_EXISTS(EXTRUDER_0_AUTO_FAN))
#define HAS_AUTO_FAN_1 (PIN_EXISTS(EXTRUDER_1_AUTO_FAN))
#define HAS_AUTO_FAN_2 (PIN_EXISTS(EXTRUDER_2_AUTO_FAN))
#define HAS_AUTO_FAN_3 (PIN_EXISTS(EXTRUDER_3_AUTO_FAN))
#define HAS_AUTO_FAN (HAS_AUTO_FAN_0 || HAS_AUTO_FAN_1 || HAS_AUTO_FAN_2 || HAS_AUTO_FAN_3)
#define HAS_FAN0 (PIN_EXISTS(FAN))
#define HAS_FAN1 (PIN_EXISTS(FAN1) && CONTROLLERFAN_PIN != FAN1_PIN && EXTRUDER_0_AUTO_FAN_PIN != FAN1_PIN && EXTRUDER_1_AUTO_FAN_PIN != FAN1_PIN && EXTRUDER_2_AUTO_FAN_PIN != FAN1_PIN)
#define HAS_FAN2 (PIN_EXISTS(FAN2) && CONTROLLERFAN_PIN != FAN2_PIN && EXTRUDER_0_AUTO_FAN_PIN != FAN2_PIN && EXTRUDER_1_AUTO_FAN_PIN != FAN2_PIN && EXTRUDER_2_AUTO_FAN_PIN != FAN2_PIN)
#define HAS_CONTROLLERFAN (PIN_EXISTS(CONTROLLERFAN))
#define HAS_SERVOS (defined(NUM_SERVOS) && NUM_SERVOS > 0)
#define HAS_SERVO_0 (PIN_EXISTS(SERVO0))
#define HAS_SERVO_1 (PIN_EXISTS(SERVO1))
#define HAS_SERVO_2 (PIN_EXISTS(SERVO2))
#define HAS_SERVO_3 (PIN_EXISTS(SERVO3))
#define HAS_FILAMENT_WIDTH_SENSOR (PIN_EXISTS(FILWIDTH))
#define HAS_FIL_RUNOUT (PIN_EXISTS(FIL_RUNOUT))
#define HAS_HOME (PIN_EXISTS(HOME))
#define HAS_KILL (PIN_EXISTS(KILL))
#define HAS_SUICIDE (PIN_EXISTS(SUICIDE))
#define HAS_PHOTOGRAPH (PIN_EXISTS(PHOTOGRAPH))
#define HAS_X_MIN (PIN_EXISTS(X_MIN))
#define HAS_X_MAX (PIN_EXISTS(X_MAX))
#define HAS_Y_MIN (PIN_EXISTS(Y_MIN))
#define HAS_Y_MAX (PIN_EXISTS(Y_MAX))
#define HAS_Z_MIN (PIN_EXISTS(Z_MIN))
#define HAS_Z_MAX (PIN_EXISTS(Z_MAX))
#define HAS_Z2_MIN (PIN_EXISTS(Z2_MIN))
#define HAS_Z2_MAX (PIN_EXISTS(Z2_MAX))
#define HAS_Z_MIN_PROBE_PIN (PIN_EXISTS(Z_MIN_PROBE))
#define HAS_SOLENOID_1 (PIN_EXISTS(SOL1))
#define HAS_SOLENOID_2 (PIN_EXISTS(SOL2))
#define HAS_SOLENOID_3 (PIN_EXISTS(SOL3))
#define HAS_MICROSTEPS (PIN_EXISTS(X_MS1))
#define HAS_MICROSTEPS_E0 (PIN_EXISTS(E0_MS1))
#define HAS_MICROSTEPS_E1 (PIN_EXISTS(E1_MS1))
#define HAS_MICROSTEPS_E2 (PIN_EXISTS(E2_MS1))
#define HAS_STEPPER_RESET (PIN_EXISTS(STEPPER_RESET))
#define HAS_X_ENABLE (PIN_EXISTS(X_ENABLE))
#define HAS_X2_ENABLE (PIN_EXISTS(X2_ENABLE))
#define HAS_Y_ENABLE (PIN_EXISTS(Y_ENABLE))
#define HAS_Y2_ENABLE (PIN_EXISTS(Y2_ENABLE))
#define HAS_Z_ENABLE (PIN_EXISTS(Z_ENABLE))
#define HAS_Z2_ENABLE (PIN_EXISTS(Z2_ENABLE))
#define HAS_E0_ENABLE (PIN_EXISTS(E0_ENABLE))
#define HAS_E1_ENABLE (PIN_EXISTS(E1_ENABLE))
#define HAS_E2_ENABLE (PIN_EXISTS(E2_ENABLE))
#define HAS_E3_ENABLE (PIN_EXISTS(E3_ENABLE))
#define HAS_E4_ENABLE (PIN_EXISTS(E4_ENABLE))
#define HAS_X_DIR (PIN_EXISTS(X_DIR))
#define HAS_X2_DIR (PIN_EXISTS(X2_DIR))
#define HAS_Y_DIR (PIN_EXISTS(Y_DIR))
#define HAS_Y2_DIR (PIN_EXISTS(Y2_DIR))
#define HAS_Z_DIR (PIN_EXISTS(Z_DIR))
#define HAS_Z2_DIR (PIN_EXISTS(Z2_DIR))
#define HAS_E0_DIR (PIN_EXISTS(E0_DIR))
#define HAS_E1_DIR (PIN_EXISTS(E1_DIR))
#define HAS_E2_DIR (PIN_EXISTS(E2_DIR))
#define HAS_E3_DIR (PIN_EXISTS(E3_DIR))
#define HAS_E4_DIR (PIN_EXISTS(E4_DIR))
#define HAS_X_STEP (PIN_EXISTS(X_STEP))
#define HAS_X2_STEP (PIN_EXISTS(X2_STEP))
#define HAS_Y_STEP (PIN_EXISTS(Y_STEP))
#define HAS_Y2_STEP (PIN_EXISTS(Y2_STEP))
#define HAS_Z_STEP (PIN_EXISTS(Z_STEP))
#define HAS_Z2_STEP (PIN_EXISTS(Z2_STEP))
#define HAS_E0_STEP (PIN_EXISTS(E0_STEP))
#define HAS_E1_STEP (PIN_EXISTS(E1_STEP))
#define HAS_E2_STEP (PIN_EXISTS(E2_STEP))
#define HAS_E3_STEP (PIN_EXISTS(E3_STEP))
#define HAS_E4_STEP (PIN_EXISTS(E4_STEP))
#define HAS_DIGIPOTSS (PIN_EXISTS(DIGIPOTSS))
#define HAS_BUZZER (PIN_EXISTS(BEEPER) || ENABLED(LCD_USE_I2C_BUZZER))
#define HAS_MOTOR_CURRENT_PWM (PIN_EXISTS(MOTOR_CURRENT_PWM_XY) || PIN_EXISTS(MOTOR_CURRENT_PWM_Z) || PIN_EXISTS(MOTOR_CURRENT_PWM_E))
#define HAS_TEMP_HOTEND (HAS_TEMP_0 || ENABLED(HEATER_0_USES_MAX6675))
#define HAS_THERMALLY_PROTECTED_BED (HAS_TEMP_BED && HAS_HEATER_BED && ENABLED(THERMAL_PROTECTION_BED))
/**
* This value is used by M109 when trying to calculate a ballpark safe margin
* to prevent wait-forever situation.
*/
#ifndef EXTRUDE_MINTEMP
#define EXTRUDE_MINTEMP 170
#endif
/**
* Helper Macros for heaters and extruder fan
*/
#define WRITE_HEATER_0P(v) WRITE(HEATER_0_PIN, v)
#if HOTENDS > 1 || ENABLED(HEATERS_PARALLEL)
#define WRITE_HEATER_1(v) WRITE(HEATER_1_PIN, v)
#if HOTENDS > 2
#define WRITE_HEATER_2(v) WRITE(HEATER_2_PIN, v)
#if HOTENDS > 3
#define WRITE_HEATER_3(v) WRITE(HEATER_3_PIN, v)
#endif
#endif
#endif
#if ENABLED(HEATERS_PARALLEL)
#define WRITE_HEATER_0(v) { WRITE_HEATER_0P(v); WRITE_HEATER_1(v); }
#else
#define WRITE_HEATER_0(v) WRITE_HEATER_0P(v)
#endif
#if HAS_HEATER_BED
#define WRITE_HEATER_BED(v) WRITE(HEATER_BED_PIN, v)
#endif
/**
* Up to 3 PWM fans
*/
#if HAS_FAN2
#define FAN_COUNT 3
#elif HAS_FAN1
#define FAN_COUNT 2
#elif HAS_FAN0
#define FAN_COUNT 1
#else
#define FAN_COUNT 0
#endif
#if HAS_FAN0
#define WRITE_FAN(v) WRITE(FAN_PIN, v)
#define WRITE_FAN0(v) WRITE_FAN(v)
#endif
#if HAS_FAN1
#define WRITE_FAN1(v) WRITE(FAN1_PIN, v)
#endif
#if HAS_FAN2
#define WRITE_FAN2(v) WRITE(FAN2_PIN, v)
#endif
#define WRITE_FAN_N(n, v) WRITE_FAN##n(v)
/**
* Servos and probes
*/
#if HAS_SERVOS
#ifndef Z_ENDSTOP_SERVO_NR
#define Z_ENDSTOP_SERVO_NR -1
#endif
#endif
#define PROBE_SELECTED (ENABLED(FIX_MOUNTED_PROBE) || ENABLED(Z_PROBE_ALLEN_KEY) || HAS_Z_SERVO_ENDSTOP || ENABLED(Z_PROBE_SLED))
#define PROBE_PIN_CONFIGURED (HAS_Z_MIN_PROBE_PIN || (HAS_Z_MIN && ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN)))
#define HAS_BED_PROBE (PROBE_SELECTED && PROBE_PIN_CONFIGURED)
#if ENABLED(Z_PROBE_ALLEN_KEY)
#define PROBE_IS_TRIGGERED_WHEN_STOWED_TEST
#endif
/**
* Bed Probe dependencies
*/
#if HAS_BED_PROBE
#ifndef Z_PROBE_OFFSET_RANGE_MIN
#define Z_PROBE_OFFSET_RANGE_MIN -20
#endif
#ifndef Z_PROBE_OFFSET_RANGE_MAX
#define Z_PROBE_OFFSET_RANGE_MAX 20
#endif
#ifndef XY_PROBE_SPEED
#ifdef HOMING_FEEDRATE_XY
#define XY_PROBE_SPEED HOMING_FEEDRATE_XY
#else
#define XY_PROBE_SPEED 4000
#endif
#endif
#if Z_PROBE_TRAVEL_HEIGHT > Z_PROBE_DEPLOY_HEIGHT
#define _Z_PROBE_DEPLOY_HEIGHT Z_PROBE_TRAVEL_HEIGHT
#else
#define _Z_PROBE_DEPLOY_HEIGHT Z_PROBE_DEPLOY_HEIGHT
#endif
#else
#undef X_PROBE_OFFSET_FROM_EXTRUDER
#undef Y_PROBE_OFFSET_FROM_EXTRUDER
#undef Z_PROBE_OFFSET_FROM_EXTRUDER
#define X_PROBE_OFFSET_FROM_EXTRUDER 0
#define Y_PROBE_OFFSET_FROM_EXTRUDER 0
#define Z_PROBE_OFFSET_FROM_EXTRUDER 0
#endif
/**
* Delta radius/rod trimmers
*/
#if ENABLED(DELTA)
#ifndef DELTA_RADIUS_TRIM_TOWER_1
#define DELTA_RADIUS_TRIM_TOWER_1 0.0
#endif
#ifndef DELTA_RADIUS_TRIM_TOWER_2
#define DELTA_RADIUS_TRIM_TOWER_2 0.0
#endif
#ifndef DELTA_RADIUS_TRIM_TOWER_3
#define DELTA_RADIUS_TRIM_TOWER_3 0.0
#endif
#ifndef DELTA_DIAGONAL_ROD_TRIM_TOWER_1
#define DELTA_DIAGONAL_ROD_TRIM_TOWER_1 0.0
#endif
#ifndef DELTA_DIAGONAL_ROD_TRIM_TOWER_2
#define DELTA_DIAGONAL_ROD_TRIM_TOWER_2 0.0
#endif
#ifndef DELTA_DIAGONAL_ROD_TRIM_TOWER_3
#define DELTA_DIAGONAL_ROD_TRIM_TOWER_3 0.0
#endif
#if ENABLED(AUTO_BED_LEVELING_GRID)
#define DELTA_BED_LEVELING_GRID
#endif
#endif
/**
* When not using other bed leveling...
*/
#if ENABLED(AUTO_BED_LEVELING_FEATURE) && DISABLED(AUTO_BED_LEVELING_GRID) && DISABLED(DELTA_BED_LEVELING_GRID)
#define AUTO_BED_LEVELING_3POINT
#endif
/**
* Buzzer/Speaker
*/
#if ENABLED(LCD_USE_I2C_BUZZER)
#ifndef LCD_FEEDBACK_FREQUENCY_HZ
#define LCD_FEEDBACK_FREQUENCY_HZ 1000
#endif
#ifndef LCD_FEEDBACK_FREQUENCY_DURATION_MS
#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100
#endif
#elif PIN_EXISTS(BEEPER)
#ifndef LCD_FEEDBACK_FREQUENCY_HZ
#define LCD_FEEDBACK_FREQUENCY_HZ 5000
#endif
#ifndef LCD_FEEDBACK_FREQUENCY_DURATION_MS
#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 2
#endif
#else
#ifndef LCD_FEEDBACK_FREQUENCY_DURATION_MS
#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 2
#endif
#endif
/**
* Z_HOMING_HEIGHT / Z_PROBE_TRAVEL_HEIGHT
*/
#ifndef Z_HOMING_HEIGHT
#ifndef Z_PROBE_TRAVEL_HEIGHT
#define Z_HOMING_HEIGHT 0
#else
#define Z_HOMING_HEIGHT Z_PROBE_TRAVEL_HEIGHT
#endif
#endif
#ifndef Z_PROBE_TRAVEL_HEIGHT
#define Z_PROBE_TRAVEL_HEIGHT Z_HOMING_HEIGHT
#endif
#endif // CONDITIONALS_POST_H
+1514 -679
View File
File diff suppressed because it is too large Load Diff
+1516 -381
View File
File diff suppressed because it is too large Load Diff
-248
View File
@@ -1,248 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
* M100 Free Memory Watcher
*
* This code watches the free memory block between the bottom of the heap and the top of the stack.
* This memory block is initialized and watched via the M100 command.
*
* M100 I Initializes the free memory block and prints vitals statistics about the area
* M100 F Identifies how much of the free memory block remains free and unused. It also
* detects and reports any corruption within the free memory block that may have
* happened due to errant firmware.
* M100 D Does a hex display of the free memory block along with a flag for any errant
* data that does not match the expected value.
* M100 C x Corrupts x locations within the free memory block. This is useful to check the
* correctness of the M100 F and M100 D commands.
*
* Initial version by Roxy-3DPrintBoard
*/
#define M100_FREE_MEMORY_DUMPER // Comment out to remove Dump sub-command
#define M100_FREE_MEMORY_CORRUPTOR // Comment out to remove Corrupt sub-command
#include "Marlin.h"
#if ENABLED(M100_FREE_MEMORY_WATCHER)
extern char* __brkval;
extern size_t __heap_start, __heap_end, __flp;
extern char __bss_end;
//
// Utility functions used by M100 to get its work done.
//
char* top_of_stack();
void prt_hex_nibble(unsigned int);
void prt_hex_byte(unsigned int);
void prt_hex_word(unsigned int);
int how_many_E5s_are_here(char*);
void gcode_M100() {
static bool m100_not_initialized = true;
char* sp, *ptr;
int i, j, n;
//
// M100 D dumps the free memory block from __brkval to the stack pointer.
// malloc() eats memory from the start of the block and the stack grows
// up from the bottom of the block. Solid 0xE5's indicate nothing has
// used that memory yet. There should not be anything but 0xE5's within
// the block of 0xE5's. If there is, that would indicate memory corruption
// probably caused by bad pointers. Any unexpected values will be flagged in
// the right hand column to help spotting them.
//
#if ENABLED(M100_FREE_MEMORY_DUMPER) // Disable to remove Dump sub-command
if (code_seen('D')) {
ptr = __brkval ? __brkval : &__bss_end;
//
// We want to start and end the dump on a nice 16 byte boundry even though
// the values we are using are not 16 byte aligned.
//
SERIAL_ECHOPGM("\nbss_end : ");
prt_hex_word((unsigned int) ptr);
ptr = (char*)((unsigned long) ptr & 0xfff0);
sp = top_of_stack();
SERIAL_ECHOPGM("\nStack Pointer : ");
prt_hex_word((unsigned int) sp);
SERIAL_EOL;
sp = (char*)((unsigned long) sp | 0x000f);
n = sp - ptr;
//
// This is the main loop of the Dump command.
//
while (ptr < sp) {
prt_hex_word((unsigned int) ptr); // Print the address
SERIAL_CHAR(':');
for (i = 0; i < 16; i++) { // and 16 data bytes
prt_hex_byte(*(ptr + i));
SERIAL_CHAR(' ');
}
SERIAL_CHAR('|'); // now show where non 0xE5's are
for (i = 0; i < 16; i++) {
if (*(ptr + i) == (char)0xe5)
SERIAL_CHAR(' ');
else
SERIAL_CHAR('?');
}
SERIAL_EOL;
ptr += 16;
}
return;
}
#endif
//
// M100 F requests the code to return the number of free bytes in the memory pool along with
// other vital statistics that define the memory pool.
//
if (code_seen('F')) {
#if 0
int max_addr = (int) __brkval ? __brkval : &__bss_end;
int max_cnt = 0;
#endif
int block_cnt = 0;
ptr = __brkval ? __brkval : &__bss_end;
sp = top_of_stack();
n = sp - ptr;
// Scan through the range looking for the biggest block of 0xE5's we can find
for (i = 0; i < n; i++) {
if (*(ptr + i) == (char)0xe5) {
j = how_many_E5s_are_here(ptr + i);
if (j > 8) {
SERIAL_ECHOPAIR("Found ", j);
SERIAL_ECHOPGM(" bytes free at 0x");
prt_hex_word((int) ptr + i);
SERIAL_EOL;
i += j;
block_cnt++;
}
#if 0
if (j > max_cnt) { // We don't do anything with this information yet
max_cnt = j; // but we do know where the biggest free memory block is.
max_addr = (int) ptr + i;
}
#endif
}
}
if (block_cnt > 1)
SERIAL_ECHOLNPGM("\nMemory Corruption detected in free memory area.");
return;
}
//
// M100 C x Corrupts x locations in the free memory pool and reports the locations of the corruption.
// This is useful to check the correctness of the M100 D and the M100 F commands.
//
#if ENABLED(M100_FREE_MEMORY_CORRUPTOR)
if (code_seen('C')) {
int x = code_value_int(); // x gets the # of locations to corrupt within the memory pool
SERIAL_ECHOLNPGM("Corrupting free memory block.\n");
ptr = __brkval ? __brkval : &__bss_end;
SERIAL_ECHOPAIR("\nbss_end : ", ptr);
ptr += 8;
sp = top_of_stack();
SERIAL_ECHOPAIR("\nStack Pointer : ", sp);
SERIAL_ECHOLNPGM("\n");
n = sp - ptr - 64; // -64 just to keep us from finding interrupt activity that
// has altered the stack.
j = n / (x + 1);
for (i = 1; i <= x; i++) {
*(ptr + (i * j)) = i;
SERIAL_ECHOPGM("\nCorrupting address: 0x");
prt_hex_word((unsigned int)(ptr + (i * j)));
}
SERIAL_ECHOLNPGM("\n");
return;
}
#endif
//
// M100 I Initializes the free memory pool so it can be watched and prints vital
// statistics that define the free memory pool.
//
if (m100_not_initialized || code_seen('I')) { // If no sub-command is specified, the first time
SERIAL_ECHOLNPGM("Initializing free memory block.\n"); // this happens, it will Initialize.
ptr = __brkval ? __brkval : &__bss_end; // Repeated M100 with no sub-command will not destroy the
SERIAL_ECHOPAIR("\nbss_end : ", ptr); // state of the initialized free memory pool.
ptr += 8;
sp = top_of_stack();
SERIAL_ECHOPAIR("\nStack Pointer : ", sp);
SERIAL_ECHOLNPGM("\n");
n = sp - ptr - 64; // -64 just to keep us from finding interrupt activity that
// has altered the stack.
SERIAL_ECHO(n);
SERIAL_ECHOLNPGM(" bytes of memory initialized.\n");
for (i = 0; i < n; i++)
*(ptr + i) = (char)0xe5;
for (i = 0; i < n; i++) {
if (*(ptr + i) != (char)0xe5) {
SERIAL_ECHOPAIR("? address : ", ptr + i);
SERIAL_ECHOPAIR("=", *(ptr + i));
SERIAL_ECHOLNPGM("\n");
}
}
m100_not_initialized = false;
return;
}
return;
}
// top_of_stack() returns the location of a variable on its stack frame. The value returned is above
// the stack once the function returns to the caller.
char* top_of_stack() {
char x;
return &x + 1; // x is pulled on return;
}
//
// 3 support routines to print hex numbers. We can print a nibble, byte and word
//
void prt_hex_nibble(unsigned int n) {
if (n <= 9)
SERIAL_ECHO(n);
else
SERIAL_ECHO((char)('A' + n - 10));
}
void prt_hex_byte(unsigned int b) {
prt_hex_nibble((b & 0xf0) >> 4);
prt_hex_nibble(b & 0x0f);
}
void prt_hex_word(unsigned int w) {
prt_hex_byte((w & 0xff00) >> 8);
prt_hex_byte(w & 0x0ff);
}
// how_many_E5s_are_here() is a utility function to easily find out how many 0xE5's are
// at the specified location. Having this logic as a function simplifies the search code.
//
int how_many_E5s_are_here(char* p) {
int n;
for (n = 0; n < 32000; n++) {
if (*(p + n) != (char)0xe5)
return n - 1;
}
return -1;
}
#endif
+568 -256
View File
File diff suppressed because it is too large Load Diff
-398
View File
@@ -1,398 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
#ifndef MARLIN_H
#define MARLIN_H
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <inttypes.h>
#include <util/delay.h>
#include <avr/pgmspace.h>
#include <avr/eeprom.h>
#include <avr/interrupt.h>
#include "MarlinConfig.h"
#include "enum.h"
#include "types.h"
#include "fastio.h"
#include "utility.h"
#ifdef USBCON
#include "HardwareSerial.h"
#if ENABLED(BLUETOOTH)
#define MYSERIAL bluetoothSerial
#else
#define MYSERIAL Serial
#endif // BLUETOOTH
#else
#include "MarlinSerial.h"
#define MYSERIAL customizedSerial
#endif
#include "WString.h"
#if ENABLED(PRINTCOUNTER)
#include "printcounter.h"
#else
#include "stopwatch.h"
#endif
#define SERIAL_CHAR(x) MYSERIAL.write(x)
#define SERIAL_EOL SERIAL_CHAR('\n')
#define SERIAL_PROTOCOLCHAR(x) SERIAL_CHAR(x)
#define SERIAL_PROTOCOL(x) MYSERIAL.print(x)
#define SERIAL_PROTOCOL_F(x,y) MYSERIAL.print(x,y)
#define SERIAL_PROTOCOLPGM(x) serialprintPGM(PSTR(x))
#define SERIAL_PROTOCOLLN(x) do{ MYSERIAL.print(x); SERIAL_EOL; }while(0)
#define SERIAL_PROTOCOLLNPGM(x) do{ serialprintPGM(PSTR(x "\n")); }while(0)
#define SERIAL_PROTOCOLPAIR(name, value) SERIAL_ECHOPAIR(name, value)
extern const char errormagic[] PROGMEM;
extern const char echomagic[] PROGMEM;
#define SERIAL_ERROR_START serialprintPGM(errormagic)
#define SERIAL_ERROR(x) SERIAL_PROTOCOL(x)
#define SERIAL_ERRORPGM(x) SERIAL_PROTOCOLPGM(x)
#define SERIAL_ERRORLN(x) SERIAL_PROTOCOLLN(x)
#define SERIAL_ERRORLNPGM(x) SERIAL_PROTOCOLLNPGM(x)
#define SERIAL_ECHO_START serialprintPGM(echomagic)
#define SERIAL_ECHO(x) SERIAL_PROTOCOL(x)
#define SERIAL_ECHOPGM(x) SERIAL_PROTOCOLPGM(x)
#define SERIAL_ECHOLN(x) SERIAL_PROTOCOLLN(x)
#define SERIAL_ECHOLNPGM(x) SERIAL_PROTOCOLLNPGM(x)
#define SERIAL_ECHOPAIR(name,value) (serial_echopair_P(PSTR(name),(value)))
void serial_echopair_P(const char* s_P, char v);
void serial_echopair_P(const char* s_P, int v);
void serial_echopair_P(const char* s_P, long v);
void serial_echopair_P(const char* s_P, float v);
void serial_echopair_P(const char* s_P, double v);
void serial_echopair_P(const char* s_P, unsigned long v);
FORCE_INLINE void serial_echopair_P(const char* s_P, uint8_t v) { serial_echopair_P(s_P, (int)v); }
FORCE_INLINE void serial_echopair_P(const char* s_P, uint16_t v) { serial_echopair_P(s_P, (int)v); }
FORCE_INLINE void serial_echopair_P(const char* s_P, bool v) { serial_echopair_P(s_P, (int)v); }
FORCE_INLINE void serial_echopair_P(const char* s_P, void *v) { serial_echopair_P(s_P, (unsigned long)v); }
// Things to write to serial from Program memory. Saves 400 to 2k of RAM.
FORCE_INLINE void serialprintPGM(const char* str) {
char ch;
while ((ch = pgm_read_byte(str))) {
MYSERIAL.write(ch);
str++;
}
}
void idle(
#if ENABLED(FILAMENT_CHANGE_FEATURE)
bool no_stepper_sleep = false // pass true to keep steppers from disabling on timeout
#endif
);
void manage_inactivity(bool ignore_stepper_queue = false);
#if ENABLED(DUAL_X_CARRIAGE) || ENABLED(DUAL_NOZZLE_DUPLICATION_MODE)
extern bool extruder_duplication_enabled;
#endif
#if HAS_X2_ENABLE
#define enable_x() do{ X_ENABLE_WRITE( X_ENABLE_ON); X2_ENABLE_WRITE( X_ENABLE_ON); }while(0)
#define disable_x() do{ X_ENABLE_WRITE(!X_ENABLE_ON); X2_ENABLE_WRITE(!X_ENABLE_ON); axis_known_position[X_AXIS] = false; }while(0)
#elif HAS_X_ENABLE
#define enable_x() X_ENABLE_WRITE( X_ENABLE_ON)
#define disable_x() do{ X_ENABLE_WRITE(!X_ENABLE_ON); axis_known_position[X_AXIS] = false; }while(0)
#else
#define enable_x() NOOP
#define disable_x() NOOP
#endif
#if HAS_Y2_ENABLE
#define enable_y() do{ Y_ENABLE_WRITE( Y_ENABLE_ON); Y2_ENABLE_WRITE(Y_ENABLE_ON); }while(0)
#define disable_y() do{ Y_ENABLE_WRITE(!Y_ENABLE_ON); Y2_ENABLE_WRITE(!Y_ENABLE_ON); axis_known_position[Y_AXIS] = false; }while(0)
#elif HAS_Y_ENABLE
#define enable_y() Y_ENABLE_WRITE( Y_ENABLE_ON)
#define disable_y() do{ Y_ENABLE_WRITE(!Y_ENABLE_ON); axis_known_position[Y_AXIS] = false; }while(0)
#else
#define enable_y() NOOP
#define disable_y() NOOP
#endif
#if HAS_Z2_ENABLE
#define enable_z() do{ Z_ENABLE_WRITE( Z_ENABLE_ON); Z2_ENABLE_WRITE(Z_ENABLE_ON); }while(0)
#define disable_z() do{ Z_ENABLE_WRITE(!Z_ENABLE_ON); Z2_ENABLE_WRITE(!Z_ENABLE_ON); axis_known_position[Z_AXIS] = false; }while(0)
#elif HAS_Z_ENABLE
#define enable_z() Z_ENABLE_WRITE( Z_ENABLE_ON)
#define disable_z() do{ Z_ENABLE_WRITE(!Z_ENABLE_ON); axis_known_position[Z_AXIS] = false; }while(0)
#else
#define enable_z() NOOP
#define disable_z() NOOP
#endif
#if ENABLED(MIXING_EXTRUDER)
/**
* Mixing steppers synchronize their enable (and direction) together
*/
#if MIXING_STEPPERS > 3
#define enable_e0() { E0_ENABLE_WRITE( E_ENABLE_ON); E1_ENABLE_WRITE( E_ENABLE_ON); E2_ENABLE_WRITE( E_ENABLE_ON); E3_ENABLE_WRITE( E_ENABLE_ON); }
#define disable_e0() { E0_ENABLE_WRITE(!E_ENABLE_ON); E1_ENABLE_WRITE(!E_ENABLE_ON); E2_ENABLE_WRITE(!E_ENABLE_ON); E3_ENABLE_WRITE(!E_ENABLE_ON); }
#elif MIXING_STEPPERS > 2
#define enable_e0() { E0_ENABLE_WRITE( E_ENABLE_ON); E1_ENABLE_WRITE( E_ENABLE_ON); E2_ENABLE_WRITE( E_ENABLE_ON); }
#define disable_e0() { E0_ENABLE_WRITE(!E_ENABLE_ON); E1_ENABLE_WRITE(!E_ENABLE_ON); E2_ENABLE_WRITE(!E_ENABLE_ON); }
#else
#define enable_e0() { E0_ENABLE_WRITE( E_ENABLE_ON); E1_ENABLE_WRITE( E_ENABLE_ON); }
#define disable_e0() { E0_ENABLE_WRITE(!E_ENABLE_ON); E1_ENABLE_WRITE(!E_ENABLE_ON); }
#endif
#define enable_e1() NOOP
#define disable_e1() NOOP
#define enable_e2() NOOP
#define disable_e2() NOOP
#define enable_e3() NOOP
#define disable_e3() NOOP
#else // !MIXING_EXTRUDER
#if HAS_E0_ENABLE
#define enable_e0() E0_ENABLE_WRITE( E_ENABLE_ON)
#define disable_e0() E0_ENABLE_WRITE(!E_ENABLE_ON)
#else
#define enable_e0() NOOP
#define disable_e0() NOOP
#endif
#if E_STEPPERS > 1 && HAS_E1_ENABLE
#define enable_e1() E1_ENABLE_WRITE( E_ENABLE_ON)
#define disable_e1() E1_ENABLE_WRITE(!E_ENABLE_ON)
#else
#define enable_e1() NOOP
#define disable_e1() NOOP
#endif
#if E_STEPPERS > 2 && HAS_E2_ENABLE
#define enable_e2() E2_ENABLE_WRITE( E_ENABLE_ON)
#define disable_e2() E2_ENABLE_WRITE(!E_ENABLE_ON)
#else
#define enable_e2() NOOP
#define disable_e2() NOOP
#endif
#if E_STEPPERS > 3 && HAS_E3_ENABLE
#define enable_e3() E3_ENABLE_WRITE( E_ENABLE_ON)
#define disable_e3() E3_ENABLE_WRITE(!E_ENABLE_ON)
#else
#define enable_e3() NOOP
#define disable_e3() NOOP
#endif
#endif // !MIXING_EXTRUDER
/**
* The axis order in all axis related arrays is X, Y, Z, E
*/
#define _AXIS(AXIS) AXIS ##_AXIS
void enable_all_steppers();
void disable_all_steppers();
void FlushSerialRequestResend();
void ok_to_send();
void reset_bed_level();
void kill(const char*);
void quickstop_stepper();
#if ENABLED(FILAMENT_RUNOUT_SENSOR)
void handle_filament_runout();
#endif
extern uint8_t marlin_debug_flags;
#define DEBUGGING(F) (marlin_debug_flags & (DEBUG_## F))
extern bool Running;
inline bool IsRunning() { return Running; }
inline bool IsStopped() { return !Running; }
bool enqueue_and_echo_command(const char* cmd, bool say_ok=false); //put a single ASCII command at the end of the current buffer or return false when it is full
void enqueue_and_echo_command_now(const char* cmd); // enqueue now, only return when the command has been enqueued
void enqueue_and_echo_commands_P(const char* cmd); //put one or many ASCII commands at the end of the current buffer, read from flash
void clear_command_queue();
void clamp_to_software_endstops(float target[3]);
extern millis_t previous_cmd_ms;
inline void refresh_cmd_timeout() { previous_cmd_ms = millis(); }
#if ENABLED(FAST_PWM_FAN)
void setPwmFrequency(uint8_t pin, int val);
#endif
/**
* Feedrate scaling and conversion
*/
extern int feedrate_percentage;
#define MMM_TO_MMS(MM_M) ((MM_M)/60.0)
#define MMS_TO_MMM(MM_S) ((MM_S)*60.0)
#define MMM_SCALED(MM_M) ((MM_M)*feedrate_percentage*0.01)
#define MMS_SCALED(MM_S) MMM_SCALED(MM_S)
#define MMM_TO_MMS_SCALED(MM_M) (MMS_SCALED(MMM_TO_MMS(MM_M)))
extern bool axis_relative_modes[];
extern bool volumetric_enabled;
extern int extruder_multiplier[EXTRUDERS]; // sets extrude multiply factor (in percent) for each extruder individually
extern float filament_size[EXTRUDERS]; // cross-sectional area of filament (in millimeters), typically around 1.75 or 2.85, 0 disables the volumetric calculations for the extruder.
extern float volumetric_multiplier[EXTRUDERS]; // reciprocal of cross-sectional area of filament (in square millimeters), stored this way to reduce computational burden in planner
extern bool axis_known_position[3]; // axis[n].is_known
extern bool axis_homed[3]; // axis[n].is_homed
extern volatile bool wait_for_heatup;
extern float current_position[NUM_AXIS];
extern float position_shift[3];
extern float home_offset[3];
extern float sw_endstop_min[3];
extern float sw_endstop_max[3];
#define LOGICAL_POSITION(POS, AXIS) (POS + home_offset[AXIS] + position_shift[AXIS])
#define RAW_POSITION(POS, AXIS) (POS - home_offset[AXIS] - position_shift[AXIS])
#define LOGICAL_X_POSITION(POS) LOGICAL_POSITION(POS, X_AXIS)
#define LOGICAL_Y_POSITION(POS) LOGICAL_POSITION(POS, Y_AXIS)
#define LOGICAL_Z_POSITION(POS) LOGICAL_POSITION(POS, Z_AXIS)
#define RAW_X_POSITION(POS) RAW_POSITION(POS, X_AXIS)
#define RAW_Y_POSITION(POS) RAW_POSITION(POS, Y_AXIS)
#define RAW_Z_POSITION(POS) RAW_POSITION(POS, Z_AXIS)
#define RAW_CURRENT_POSITION(AXIS) RAW_POSITION(current_position[AXIS], AXIS)
// GCode support for external objects
bool code_seen(char);
int code_value_int();
float code_value_temp_abs();
float code_value_temp_diff();
#if ENABLED(DELTA)
extern float delta[3];
extern float endstop_adj[3]; // axis[n].endstop_adj
extern float delta_radius;
extern float delta_diagonal_rod;
extern float delta_segments_per_second;
extern float delta_diagonal_rod_trim_tower_1;
extern float delta_diagonal_rod_trim_tower_2;
extern float delta_diagonal_rod_trim_tower_3;
void inverse_kinematics(const float cartesian[3]);
void recalc_delta_settings(float radius, float diagonal_rod);
#if ENABLED(AUTO_BED_LEVELING_FEATURE)
extern int delta_grid_spacing[2];
void adjust_delta(float cartesian[3]);
#endif
#elif ENABLED(SCARA)
extern float delta[3];
extern float axis_scaling[3]; // Build size scaling
void inverse_kinematics(const float cartesian[3]);
void forward_kinematics_SCARA(float f_scara[3]);
#endif
#if ENABLED(Z_DUAL_ENDSTOPS)
extern float z_endstop_adj;
#endif
#if HAS_BED_PROBE
extern float zprobe_zoffset;
#endif
#if ENABLED(HOST_KEEPALIVE_FEATURE)
extern uint8_t host_keepalive_interval;
#endif
#if FAN_COUNT > 0
extern int fanSpeeds[FAN_COUNT];
#endif
#if ENABLED(BARICUDA)
extern int baricuda_valve_pressure;
extern int baricuda_e_to_p_pressure;
#endif
#if ENABLED(FILAMENT_WIDTH_SENSOR)
extern float filament_width_nominal; //holds the theoretical filament diameter i.e., 3.00 or 1.75
extern bool filament_sensor; //indicates that filament sensor readings should control extrusion
extern float filament_width_meas; //holds the filament diameter as accurately measured
extern int8_t measurement_delay[]; //ring buffer to delay measurement
extern int filwidth_delay_index1, filwidth_delay_index2; //ring buffer index. used by planner, temperature, and main code
extern int meas_delay_cm; //delay distance
#endif
#if ENABLED(FILAMENT_CHANGE_FEATURE)
extern FilamentChangeMenuResponse filament_change_menu_response;
#endif
#if ENABLED(PID_EXTRUSION_SCALING)
extern int lpq_len;
#endif
#if ENABLED(FWRETRACT)
extern bool autoretract_enabled;
extern bool retracted[EXTRUDERS]; // extruder[n].retracted
extern float retract_length, retract_length_swap, retract_feedrate_mm_s, retract_zlift;
extern float retract_recover_length, retract_recover_length_swap, retract_recover_feedrate_mm_s;
#endif
// Print job timer
#if ENABLED(PRINTCOUNTER)
extern PrintCounter print_job_timer;
#else
extern Stopwatch print_job_timer;
#endif
// Handling multiple extruders pins
extern uint8_t active_extruder;
#if HAS_TEMP_HOTEND || HAS_TEMP_BED
void print_heaterstates();
#endif
#if ENABLED(MIXING_EXTRUDER)
extern float mixing_factor[MIXING_STEPPERS];
#endif
void calculate_volumetric_multipliers();
// Buzzer
#if HAS_BUZZER && PIN_EXISTS(BEEPER)
#include "buzzer.h"
#endif
/**
* Blocking movement and shorthand functions
*/
inline void do_blocking_move_to(float x, float y, float z, float fr_mm_m=0.0);
inline void do_blocking_move_to_x(float x, float fr_mm_m=0.0);
inline void do_blocking_move_to_z(float z, float fr_mm_m=0.0);
inline void do_blocking_move_to_xy(float x, float y, float fr_mm_m=0.0);
#endif //MARLIN_H
+45 -65
View File
@@ -1,73 +1,53 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/*
================================================================================
/**
* About Marlin
*
* This firmware is a mashup between Sprinter and grbl.
* - https://github.com/kliment/Sprinter
* - https://github.com/simen/grbl/tree
*
* It has preliminary support for Matthew Roberts advance algorithm
* - http://reprap.org/pipermail/reprap-dev/2011-May/003323.html
*/
Marlin Firmware
/* All the implementation is done in *.cpp files to get better compatibility with avr-gcc without the Arduino IDE */
/* Use this file to help the Arduino IDE find which Arduino libraries are needed and to keep documentation on GCode */
(c) 2011-2018 MarlinFirmware
Portions of Marlin are (c) by their respective authors.
All code complies with GPLv2 and/or GPLv3
#include "MarlinConfig.h"
================================================================================
#if ENABLED(ULTRA_LCD)
#if ENABLED(LCD_I2C_TYPE_PCF8575)
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#elif ENABLED(LCD_I2C_TYPE_MCP23017) || ENABLED(LCD_I2C_TYPE_MCP23008)
#include <Wire.h>
#include <LiquidTWI2.h>
#elif ENABLED(LCM1602)
#include <Wire.h>
#include <LCD.h>
#include <LiquidCrystal_I2C.h>
#elif ENABLED(DOGLCD)
#include <U8glib.h> // library for graphics LCD by Oli Kraus (https://github.com/olikraus/U8glib_Arduino)
#else
#include <LiquidCrystal.h> // library for character LCD
#endif
#endif
Greetings! Thank you for choosing Marlin 2 as your 3D printer firmware.
#if HAS_DIGIPOTSS
#include <SPI.h>
#endif
To configure Marlin you must edit Configuration.h and Configuration_adv.h
located in the root 'Marlin' folder. Check the config/examples folder to see if
there's a more suitable starting-point for your specific hardware.
#if ENABLED(DIGIPOT_I2C)
#include <Wire.h>
#endif
Before diving in, we recommend the following essential links:
#if ENABLED(HAVE_TMCDRIVER)
#include <SPI.h>
#include <TMC26XStepper.h>
#endif
Marlin Firmware Official Website
#if ENABLED(HAVE_L6470DRIVER)
#include <SPI.h>
#include <L6470.h>
#endif
- http://marlinfw.org/
The official Marlin Firmware website contains the most up-to-date
documentation. Contributions are always welcome!
Configuration
- https://www.youtube.com/watch?v=3gwWVFtdg-4
A good 20-minute overview of Marlin configuration by Tom Sanladerer.
(Applies to Marlin 1.0.x, so Jerk and Acceleration should be halved.)
Also... https://www.google.com/search?tbs=vid%3A1&q=configure+marlin
- http://marlinfw.org/docs/configuration/configuration.html
Marlin's configuration options are explained in more detail here.
Getting Help
- http://forums.reprap.org/list.php?415
The Marlin Discussion Forum is a great place to get help from other Marlin
users who may have experienced similar issues to your own.
- https://github.com/MarlinFirmware/Marlin/issues
With a free GitHub account you can provide us with feedback, bug reports,
and feature requests via the Marlin Issue Queue.
Contributing
- http://marlinfw.org/docs/development/contributing.html
If you'd like to contribute to Marlin, read this first!
- http://marlinfw.org/docs/development/coding_standards.html
Before submitting code get to know the Coding Standards.
*/
-539
View File
@@ -1,539 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
MarlinSerial.cpp - Hardware serial library for Wiring
Copyright (c) 2006 Nicholas Zambetti. All right reserved.
Modified 23 November 2006 by David A. Mellis
Modified 28 September 2010 by Mark Sproul
Modified 14 February 2016 by Andreas Hardtung (added tx buffer)
*/
#include "MarlinSerial.h"
#include "stepper.h"
#include "Marlin.h"
#ifndef USBCON
// this next line disables the entire HardwareSerial.cpp,
// this is so I can support Attiny series and any other chip without a UART
#if defined(UBRRH) || defined(UBRR0H) || defined(UBRR1H) || defined(UBRR2H) || defined(UBRR3H)
#if UART_PRESENT(SERIAL_PORT)
ring_buffer_r rx_buffer = { { 0 }, 0, 0 };
#if TX_BUFFER_SIZE > 0
ring_buffer_t tx_buffer = { { 0 }, 0, 0 };
static bool _written;
#endif
#endif
FORCE_INLINE void store_char(unsigned char c) {
CRITICAL_SECTION_START;
uint8_t h = rx_buffer.head;
uint8_t i = (uint8_t)(h + 1) & (RX_BUFFER_SIZE - 1);
// if we should be storing the received character into the location
// just before the tail (meaning that the head would advance to the
// current location of the tail), we're about to overflow the buffer
// and so we don't write the character or advance the head.
if (i != rx_buffer.tail) {
rx_buffer.buffer[h] = c;
rx_buffer.head = i;
}
CRITICAL_SECTION_END;
#if ENABLED(EMERGENCY_PARSER)
emergency_parser(c);
#endif
}
#if TX_BUFFER_SIZE > 0
FORCE_INLINE void _tx_udr_empty_irq(void)
{
// If interrupts are enabled, there must be more data in the output
// buffer. Send the next byte
uint8_t t = tx_buffer.tail;
uint8_t c = tx_buffer.buffer[t];
tx_buffer.tail = (t + 1) & (TX_BUFFER_SIZE - 1);
M_UDRx = c;
// clear the TXC bit -- "can be cleared by writing a one to its bit
// location". This makes sure flush() won't return until the bytes
// actually got written
SBI(M_UCSRxA, M_TXCx);
if (tx_buffer.head == tx_buffer.tail) {
// Buffer empty, so disable interrupts
CBI(M_UCSRxB, M_UDRIEx);
}
}
#if defined(M_USARTx_UDRE_vect)
ISR(M_USARTx_UDRE_vect) {
_tx_udr_empty_irq();
}
#endif
#endif
#if defined(M_USARTx_RX_vect)
ISR(M_USARTx_RX_vect) {
unsigned char c = M_UDRx;
store_char(c);
}
#endif
// Constructors ////////////////////////////////////////////////////////////////
MarlinSerial::MarlinSerial() { }
// Public Methods //////////////////////////////////////////////////////////////
void MarlinSerial::begin(long baud) {
uint16_t baud_setting;
bool useU2X = true;
#if F_CPU == 16000000UL && SERIAL_PORT == 0
// hard-coded exception for compatibility with the bootloader shipped
// with the Duemilanove and previous boards and the firmware on the 8U2
// on the Uno and Mega 2560.
if (baud == 57600) {
useU2X = false;
}
#endif
if (useU2X) {
M_UCSRxA = _BV(M_U2Xx);
baud_setting = (F_CPU / 4 / baud - 1) / 2;
}
else {
M_UCSRxA = 0;
baud_setting = (F_CPU / 8 / baud - 1) / 2;
}
// assign the baud_setting, a.k.a. ubbr (USART Baud Rate Register)
M_UBRRxH = baud_setting >> 8;
M_UBRRxL = baud_setting;
SBI(M_UCSRxB, M_RXENx);
SBI(M_UCSRxB, M_TXENx);
SBI(M_UCSRxB, M_RXCIEx);
#if TX_BUFFER_SIZE > 0
CBI(M_UCSRxB, M_UDRIEx);
_written = false;
#endif
}
void MarlinSerial::end() {
CBI(M_UCSRxB, M_RXENx);
CBI(M_UCSRxB, M_TXENx);
CBI(M_UCSRxB, M_RXCIEx);
CBI(M_UCSRxB, M_UDRIEx);
}
void MarlinSerial::checkRx(void) {
if (TEST(M_UCSRxA, M_RXCx)) {
uint8_t c = M_UDRx;
store_char(c);
}
}
int MarlinSerial::peek(void) {
int v;
CRITICAL_SECTION_START;
uint8_t t = rx_buffer.tail;
if (rx_buffer.head == t) {
v = -1;
}
else {
v = rx_buffer.buffer[t];
}
CRITICAL_SECTION_END;
return v;
}
int MarlinSerial::read(void) {
int v;
CRITICAL_SECTION_START;
uint8_t t = rx_buffer.tail;
if (rx_buffer.head == t) {
v = -1;
}
else {
v = rx_buffer.buffer[t];
rx_buffer.tail = (uint8_t)(t + 1) & (RX_BUFFER_SIZE - 1);
}
CRITICAL_SECTION_END;
return v;
}
uint8_t MarlinSerial::available(void) {
CRITICAL_SECTION_START;
uint8_t h = rx_buffer.head;
uint8_t t = rx_buffer.tail;
CRITICAL_SECTION_END;
return (uint8_t)(RX_BUFFER_SIZE + h - t) & (RX_BUFFER_SIZE - 1);
}
void MarlinSerial::flush(void) {
// RX
// don't reverse this or there may be problems if the RX interrupt
// occurs after reading the value of rx_buffer_head but before writing
// the value to rx_buffer_tail; the previous value of rx_buffer_head
// may be written to rx_buffer_tail, making it appear as if the buffer
// were full, not empty.
CRITICAL_SECTION_START;
rx_buffer.head = rx_buffer.tail;
CRITICAL_SECTION_END;
}
#if TX_BUFFER_SIZE > 0
uint8_t MarlinSerial::availableForWrite(void) {
CRITICAL_SECTION_START;
uint8_t h = tx_buffer.head;
uint8_t t = tx_buffer.tail;
CRITICAL_SECTION_END;
return (uint8_t)(TX_BUFFER_SIZE + h - t) & (TX_BUFFER_SIZE - 1);
}
void MarlinSerial::write(uint8_t c) {
_written = true;
CRITICAL_SECTION_START;
bool emty = (tx_buffer.head == tx_buffer.tail);
CRITICAL_SECTION_END;
// If the buffer and the data register is empty, just write the byte
// to the data register and be done. This shortcut helps
// significantly improve the effective datarate at high (>
// 500kbit/s) bitrates, where interrupt overhead becomes a slowdown.
if (emty && TEST(M_UCSRxA, M_UDREx)) {
CRITICAL_SECTION_START;
M_UDRx = c;
SBI(M_UCSRxA, M_TXCx);
CRITICAL_SECTION_END;
return;
}
uint8_t i = (tx_buffer.head + 1) & (TX_BUFFER_SIZE - 1);
// If the output buffer is full, there's nothing for it other than to
// wait for the interrupt handler to empty it a bit
while (i == tx_buffer.tail) {
if (!TEST(SREG, SREG_I)) {
// Interrupts are disabled, so we'll have to poll the data
// register empty flag ourselves. If it is set, pretend an
// interrupt has happened and call the handler to free up
// space for us.
if (TEST(M_UCSRxA, M_UDREx))
_tx_udr_empty_irq();
} else {
// nop, the interrupt handler will free up space for us
}
}
tx_buffer.buffer[tx_buffer.head] = c;
{ CRITICAL_SECTION_START;
tx_buffer.head = i;
SBI(M_UCSRxB, M_UDRIEx);
CRITICAL_SECTION_END;
}
return;
}
void MarlinSerial::flushTX(void) {
// TX
// If we have never written a byte, no need to flush. This special
// case is needed since there is no way to force the TXC (transmit
// complete) bit to 1 during initialization
if (!_written)
return;
while (TEST(M_UCSRxB, M_UDRIEx) || !TEST(M_UCSRxA, M_TXCx)) {
if (!TEST(SREG, SREG_I) && TEST(M_UCSRxB, M_UDRIEx))
// Interrupts are globally disabled, but the DR empty
// interrupt should be enabled, so poll the DR empty flag to
// prevent deadlock
if (TEST(M_UCSRxA, M_UDREx))
_tx_udr_empty_irq();
}
// If we get here, nothing is queued anymore (DRIE is disabled) and
// the hardware finished tranmission (TXC is set).
}
#else
void MarlinSerial::write(uint8_t c) {
while (!TEST(M_UCSRxA, M_UDREx))
;
M_UDRx = c;
}
#endif
// end NEW
/// imports from print.h
void MarlinSerial::print(char c, int base) {
print((long) c, base);
}
void MarlinSerial::print(unsigned char b, int base) {
print((unsigned long) b, base);
}
void MarlinSerial::print(int n, int base) {
print((long) n, base);
}
void MarlinSerial::print(unsigned int n, int base) {
print((unsigned long) n, base);
}
void MarlinSerial::print(long n, int base) {
if (base == 0) {
write(n);
}
else if (base == 10) {
if (n < 0) {
print('-');
n = -n;
}
printNumber(n, 10);
}
else {
printNumber(n, base);
}
}
void MarlinSerial::print(unsigned long n, int base) {
if (base == 0) write(n);
else printNumber(n, base);
}
void MarlinSerial::print(double n, int digits) {
printFloat(n, digits);
}
void MarlinSerial::println(void) {
print('\r');
print('\n');
}
void MarlinSerial::println(const String& s) {
print(s);
println();
}
void MarlinSerial::println(const char c[]) {
print(c);
println();
}
void MarlinSerial::println(char c, int base) {
print(c, base);
println();
}
void MarlinSerial::println(unsigned char b, int base) {
print(b, base);
println();
}
void MarlinSerial::println(int n, int base) {
print(n, base);
println();
}
void MarlinSerial::println(unsigned int n, int base) {
print(n, base);
println();
}
void MarlinSerial::println(long n, int base) {
print(n, base);
println();
}
void MarlinSerial::println(unsigned long n, int base) {
print(n, base);
println();
}
void MarlinSerial::println(double n, int digits) {
print(n, digits);
println();
}
// Private Methods /////////////////////////////////////////////////////////////
void MarlinSerial::printNumber(unsigned long n, uint8_t base) {
unsigned char buf[8 * sizeof(long)]; // Assumes 8-bit chars.
unsigned long i = 0;
if (n == 0) {
print('0');
return;
}
while (n > 0) {
buf[i++] = n % base;
n /= base;
}
for (; i > 0; i--)
print((char)(buf[i - 1] < 10 ?
'0' + buf[i - 1] :
'A' + buf[i - 1] - 10));
}
void MarlinSerial::printFloat(double number, uint8_t digits) {
// Handle negative numbers
if (number < 0.0) {
print('-');
number = -number;
}
// Round correctly so that print(1.999, 2) prints as "2.00"
double rounding = 0.5;
for (uint8_t i = 0; i < digits; ++i)
rounding /= 10.0;
number += rounding;
// Extract the integer part of the number and print it
unsigned long int_part = (unsigned long)number;
double remainder = number - (double)int_part;
print(int_part);
// Print the decimal point, but only if there are digits beyond
if (digits > 0) print('.');
// Extract digits from the remainder one at a time
while (digits-- > 0) {
remainder *= 10.0;
int toPrint = int(remainder);
print(toPrint);
remainder -= toPrint;
}
}
// Preinstantiate Objects //////////////////////////////////////////////////////
MarlinSerial customizedSerial;
#endif // whole file
#endif // !USBCON
// For AT90USB targets use the UART for BT interfacing
#if defined(USBCON) && ENABLED(BLUETOOTH)
HardwareSerial bluetoothSerial;
#endif
#if ENABLED(EMERGENCY_PARSER)
// Currently looking for: M108, M112, M410
// If you alter the parser please don't forget to update the capabilities in Conditionals_post.h
FORCE_INLINE void emergency_parser(unsigned char c) {
static e_parser_state state = state_RESET;
switch (state) {
case state_RESET:
switch (c) {
case ' ': break;
case 'N': state = state_N; break;
case 'M': state = state_M; break;
default: state = state_IGNORE;
}
break;
case state_N:
switch (c) {
case '0': case '1': case '2':
case '3': case '4': case '5':
case '6': case '7': case '8':
case '9': case '-': case ' ': break;
case 'M': state = state_M; break;
default: state = state_IGNORE;
}
break;
case state_M:
switch (c) {
case ' ': break;
case '1': state = state_M1; break;
case '4': state = state_M4; break;
default: state = state_IGNORE;
}
break;
case state_M1:
switch (c) {
case '0': state = state_M10; break;
case '1': state = state_M11; break;
default: state = state_IGNORE;
}
break;
case state_M10:
state = (c == '8') ? state_M108 : state_IGNORE;
break;
case state_M11:
state = (c == '2') ? state_M112 : state_IGNORE;
break;
case state_M4:
state = (c == '1') ? state_M41 : state_IGNORE;
break;
case state_M41:
state = (c == '0') ? state_M410 : state_IGNORE;
break;
case state_IGNORE:
if (c == '\n') state = state_RESET;
break;
default:
if (c == '\n') {
switch (state) {
case state_M108:
wait_for_heatup = false;
break;
case state_M112:
kill(PSTR(MSG_KILLED));
break;
case state_M410:
quickstop_stepper();
break;
default:
break;
}
state = state_RESET;
}
}
}
#endif
-181
View File
@@ -1,181 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
MarlinSerial.h - Hardware serial library for Wiring
Copyright (c) 2006 Nicholas Zambetti. All right reserved.
Modified 28 September 2010 by Mark Sproul
Modified 14 February 2016 by Andreas Hardtung (added tx buffer)
*/
#ifndef MarlinSerial_h
#define MarlinSerial_h
#include "MarlinConfig.h"
#ifndef SERIAL_PORT
#define SERIAL_PORT 0
#endif
// The presence of the UBRRH register is used to detect a UART.
#define UART_PRESENT(port) ((port == 0 && (defined(UBRRH) || defined(UBRR0H))) || \
(port == 1 && defined(UBRR1H)) || (port == 2 && defined(UBRR2H)) || \
(port == 3 && defined(UBRR3H)))
// These are macros to build serial port register names for the selected SERIAL_PORT (C preprocessor
// requires two levels of indirection to expand macro values properly)
#define SERIAL_REGNAME(registerbase,number,suffix) SERIAL_REGNAME_INTERNAL(registerbase,number,suffix)
#if SERIAL_PORT == 0 && (!defined(UBRR0H) || !defined(UDR0)) // use un-numbered registers if necessary
#define SERIAL_REGNAME_INTERNAL(registerbase,number,suffix) registerbase##suffix
#else
#define SERIAL_REGNAME_INTERNAL(registerbase,number,suffix) registerbase##number##suffix
#endif
// Registers used by MarlinSerial class (these are expanded
// depending on selected serial port
#define M_UCSRxA SERIAL_REGNAME(UCSR,SERIAL_PORT,A) // defines M_UCSRxA to be UCSRnA where n is the serial port number
#define M_UCSRxB SERIAL_REGNAME(UCSR,SERIAL_PORT,B)
#define M_RXENx SERIAL_REGNAME(RXEN,SERIAL_PORT,)
#define M_TXENx SERIAL_REGNAME(TXEN,SERIAL_PORT,)
#define M_TXCx SERIAL_REGNAME(TXC,SERIAL_PORT,)
#define M_RXCIEx SERIAL_REGNAME(RXCIE,SERIAL_PORT,)
#define M_UDREx SERIAL_REGNAME(UDRE,SERIAL_PORT,)
#define M_UDRIEx SERIAL_REGNAME(UDRIE,SERIAL_PORT,)
#define M_UDRx SERIAL_REGNAME(UDR,SERIAL_PORT,)
#define M_UBRRxH SERIAL_REGNAME(UBRR,SERIAL_PORT,H)
#define M_UBRRxL SERIAL_REGNAME(UBRR,SERIAL_PORT,L)
#define M_RXCx SERIAL_REGNAME(RXC,SERIAL_PORT,)
#define M_USARTx_RX_vect SERIAL_REGNAME(USART,SERIAL_PORT,_RX_vect)
#define M_U2Xx SERIAL_REGNAME(U2X,SERIAL_PORT,)
#define M_USARTx_UDRE_vect SERIAL_REGNAME(USART,SERIAL_PORT,_UDRE_vect)
#define DEC 10
#define HEX 16
#define OCT 8
#define BIN 2
#define BYTE 0
#ifndef USBCON
// Define constants and variables for buffering incoming serial data. We're
// using a ring buffer (I think), in which rx_buffer_head is the index of the
// location to which to write the next incoming character and rx_buffer_tail
// is the index of the location from which to read.
// 256 is the max limit due to uint8_t head and tail. Use only powers of 2. (...,16,32,64,128,256)
#ifndef RX_BUFFER_SIZE
#define RX_BUFFER_SIZE 128
#endif
#ifndef TX_BUFFER_SIZE
#define TX_BUFFER_SIZE 32
#endif
#if !((RX_BUFFER_SIZE == 256) ||(RX_BUFFER_SIZE == 128) ||(RX_BUFFER_SIZE == 64) ||(RX_BUFFER_SIZE == 32) ||(RX_BUFFER_SIZE == 16) ||(RX_BUFFER_SIZE == 8) ||(RX_BUFFER_SIZE == 4) ||(RX_BUFFER_SIZE == 2))
#error "RX_BUFFER_SIZE has to be a power of 2 and >= 2"
#endif
#if !((TX_BUFFER_SIZE == 256) ||(TX_BUFFER_SIZE == 128) ||(TX_BUFFER_SIZE == 64) ||(TX_BUFFER_SIZE == 32) ||(TX_BUFFER_SIZE == 16) ||(TX_BUFFER_SIZE == 8) ||(TX_BUFFER_SIZE == 4) ||(TX_BUFFER_SIZE == 2) ||(TX_BUFFER_SIZE == 0))
#error TX_BUFFER_SIZE has to be a power of 2 or 0
#endif
struct ring_buffer_r {
unsigned char buffer[RX_BUFFER_SIZE];
volatile uint8_t head;
volatile uint8_t tail;
};
#if TX_BUFFER_SIZE > 0
struct ring_buffer_t {
unsigned char buffer[TX_BUFFER_SIZE];
volatile uint8_t head;
volatile uint8_t tail;
};
#endif
#if UART_PRESENT(SERIAL_PORT)
extern ring_buffer_r rx_buffer;
#if TX_BUFFER_SIZE > 0
extern ring_buffer_t tx_buffer;
#endif
#endif
#if ENABLED(EMERGENCY_PARSER)
#include "language.h"
void emergency_parser(unsigned char c);
#endif
class MarlinSerial { //: public Stream
public:
MarlinSerial();
void begin(long);
void end();
int peek(void);
int read(void);
void flush(void);
uint8_t available(void);
void checkRx(void);
void write(uint8_t c);
#if TX_BUFFER_SIZE > 0
uint8_t availableForWrite(void);
void flushTX(void);
#endif
private:
void printNumber(unsigned long, uint8_t);
void printFloat(double, uint8_t);
public:
FORCE_INLINE void write(const char* str) { while (*str) write(*str++); }
FORCE_INLINE void write(const uint8_t* buffer, size_t size) { while (size--) write(*buffer++); }
FORCE_INLINE void print(const String& s) { for (int i = 0; i < (int)s.length(); i++) write(s[i]); }
FORCE_INLINE void print(const char* str) { write(str); }
void print(char, int = BYTE);
void print(unsigned char, int = BYTE);
void print(int, int = DEC);
void print(unsigned int, int = DEC);
void print(long, int = DEC);
void print(unsigned long, int = DEC);
void print(double, int = 2);
void println(const String& s);
void println(const char[]);
void println(char, int = BYTE);
void println(unsigned char, int = BYTE);
void println(int, int = DEC);
void println(unsigned int, int = DEC);
void println(long, int = DEC);
void println(unsigned long, int = DEC);
void println(double, int = 2);
void println(void);
};
extern MarlinSerial customizedSerial;
#endif // !USBCON
// Use the UART for Bluetooth in AT90USB configurations
#if defined(USBCON) && ENABLED(BLUETOOTH)
extern HardwareSerial bluetoothSerial;
#endif
#endif
File diff suppressed because it is too large Load Diff
-736
View File
@@ -1,736 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
* SanityCheck.h
*
* Test configuration values for errors at compile-time.
*/
/**
* Due to the high number of issues related with old versions of Arduino IDE
* we now prevent Marlin from compiling with older toolkits.
*/
#if !defined(ARDUINO) || ARDUINO < 10600
#error "Versions of Arduino IDE prior to 1.6.0 are no longer supported, please update your toolkit."
#endif
/**
* We try our best to include sanity checks for all the changes configuration
* directives because people have a tendency to use outdated config files with
* the bleding edge source code, but sometimes this is not enough. This check
* will force a minimum config file revision, otherwise Marlin will not build.
*/
#if ! defined(CONFIGURATION_H_VERSION) || CONFIGURATION_H_VERSION < REQUIRED_CONFIGURATION_H_VERSION
#error "You are using an old Configuration.h file, update it before building Marlin."
#endif
#if ! defined(CONFIGURATION_ADV_H_VERSION) || CONFIGURATION_ADV_H_VERSION < REQUIRED_CONFIGURATION_ADV_H_VERSION
#error "You are using an old Configuration_adv.h file, update it before building Marlin."
#endif
/**
* Marlin release, version and default string
*/
#ifndef SHORT_BUILD_VERSION
#error "SHORT_BUILD_VERSION must be specified."
#elif !defined(DETAILED_BUILD_VERSION)
#error "BUILD_VERSION must be specified."
#elif !defined(STRING_DISTRIBUTION_DATE)
#error "STRING_DISTRIBUTION_DATE must be specified."
#elif !defined(PROTOCOL_VERSION)
#error "PROTOCOL_VERSION must be specified."
#elif !defined(MACHINE_NAME)
#error "MACHINE_NAME must be specified."
#elif !defined(SOURCE_CODE_URL)
#error "SOURCE_CODE_URL must be specified."
#elif !defined(DEFAULT_MACHINE_UUID)
#error "DEFAULT_MACHINE_UUID must be specified."
#elif !defined(WEBSITE_URL)
#error "WEBSITE_URL must be specified."
#endif
/**
* Dual Stepper Drivers
*/
#if ENABLED(X_DUAL_STEPPER_DRIVERS) && ENABLED(DUAL_X_CARRIAGE)
#error "DUAL_X_CARRIAGE is not compatible with X_DUAL_STEPPER_DRIVERS."
#elif ENABLED(X_DUAL_STEPPER_DRIVERS) && (!HAS_X2_ENABLE || !HAS_X2_STEP || !HAS_X2_DIR)
#error "X_DUAL_STEPPER_DRIVERS requires X2 pins (and an extra E plug)."
#elif ENABLED(Y_DUAL_STEPPER_DRIVERS) && (!HAS_Y2_ENABLE || !HAS_Y2_STEP || !HAS_Y2_DIR)
#error "Y_DUAL_STEPPER_DRIVERS requires Y2 pins (and an extra E plug)."
#elif ENABLED(Z_DUAL_STEPPER_DRIVERS) && (!HAS_Z2_ENABLE || !HAS_Z2_STEP || !HAS_Z2_DIR)
#error "Z_DUAL_STEPPER_DRIVERS requires Z2 pins (and an extra E plug)."
#endif
/**
* Progress Bar
*/
#if ENABLED(LCD_PROGRESS_BAR)
#if DISABLED(SDSUPPORT)
#error "LCD_PROGRESS_BAR requires SDSUPPORT."
#endif
#if ENABLED(DOGLCD)
#error "LCD_PROGRESS_BAR does not apply to graphical displays."
#endif
#if ENABLED(FILAMENT_LCD_DISPLAY)
#error "LCD_PROGRESS_BAR and FILAMENT_LCD_DISPLAY are not fully compatible. Comment out this line to use both."
#endif
#endif
/**
* Babystepping
*/
#if ENABLED(BABYSTEPPING)
#if DISABLED(ULTRA_LCD)
#error "BABYSTEPPING requires an LCD controller."
#endif
#if ENABLED(SCARA)
#error "BABYSTEPPING is not implemented for SCARA yet."
#endif
#if ENABLED(DELTA) && ENABLED(BABYSTEP_XY)
#error "BABYSTEPPING only implemented for Z axis on deltabots."
#endif
#endif
/**
* Filament Runout needs a pin and either SD Support or Auto print start detection
*/
#if ENABLED(FILAMENT_RUNOUT_SENSOR)
#if !HAS_FIL_RUNOUT
#error "FILAMENT_RUNOUT_SENSOR requires FIL_RUNOUT_PIN."
#elif DISABLED(SDSUPPORT) && DISABLED(PRINTJOB_TIMER_AUTOSTART)
#error "FILAMENT_RUNOUT_SENSOR requires SDSUPPORT or PRINTJOB_TIMER_AUTOSTART."
#endif
#endif
/**
* Filament Change with Extruder Runout Prevention
*/
#if ENABLED(FILAMENT_CHANGE_FEATURE) && ENABLED(EXTRUDER_RUNOUT_PREVENT)
#error "EXTRUDER_RUNOUT_PREVENT is incompatible with FILAMENT_CHANGE_FEATURE."
#endif
/**
* Individual axis homing is useless for DELTAS
*/
#if ENABLED(INDIVIDUAL_AXIS_HOMING_MENU) && ENABLED(DELTA)
#error "INDIVIDUAL_AXIS_HOMING_MENU is incompatible with DELTA kinematics."
#endif
/**
* Options only for EXTRUDERS > 1
*/
#if EXTRUDERS > 1
#if EXTRUDERS > 4
#error "The maximum number of EXTRUDERS in Marlin is 4."
#endif
#if ENABLED(TEMP_SENSOR_1_AS_REDUNDANT)
#error "EXTRUDERS must be 1 with TEMP_SENSOR_1_AS_REDUNDANT."
#endif
#if ENABLED(HEATERS_PARALLEL)
#error "EXTRUDERS must be 1 with HEATERS_PARALLEL."
#endif
#elif ENABLED(SINGLENOZZLE)
#error "SINGLENOZZLE requires 2 or more EXTRUDERS."
#endif
/**
* Only one type of extruder allowed
*/
#if (ENABLED(SWITCHING_EXTRUDER) && (ENABLED(SINGLENOZZLE) || ENABLED(MIXING_EXTRUDER))) \
|| (ENABLED(SINGLENOZZLE) && ENABLED(MIXING_EXTRUDER))
#error "Please define only one type of extruder: SINGLENOZZLE, SWITCHING_EXTRUDER, or MIXING_EXTRUDER."
#endif
/**
* Single Stepper Dual Extruder with switching servo
*/
#if ENABLED(SWITCHING_EXTRUDER)
#if ENABLED(DUAL_X_CARRIAGE)
#error "SWITCHING_EXTRUDER and DUAL_X_CARRIAGE are incompatible."
#elif EXTRUDERS != 2
#error "SWITCHING_EXTRUDER requires exactly 2 EXTRUDERS."
#elif NUM_SERVOS < 1
#error "SWITCHING_EXTRUDER requires NUM_SERVOS >= 1."
#endif
#endif
/**
* Mixing Extruder requirements
*/
#if ENABLED(MIXING_EXTRUDER)
#if EXTRUDERS > 1
#error "MIXING_EXTRUDER currently only supports one extruder."
#endif
#if MIXING_STEPPERS < 2
#error "You must set MIXING_STEPPERS >= 2 for a mixing extruder."
#endif
#if ENABLED(FILAMENT_SENSOR)
#error "MIXING_EXTRUDER is incompatible with FILAMENT_SENSOR. Comment out this line to use it anyway."
#endif
#endif
/**
* Limited number of servos
*/
#if defined(NUM_SERVOS) && NUM_SERVOS > 0
#if NUM_SERVOS > 4
#error "The maximum number of SERVOS in Marlin is 4."
#elif HAS_Z_SERVO_ENDSTOP && Z_ENDSTOP_SERVO_NR >= NUM_SERVOS
#error "Z_ENDSTOP_SERVO_NR must be smaller than NUM_SERVOS."
#endif
#endif
/**
* Servo deactivation depends on servo endstops
*/
#if ENABLED(DEACTIVATE_SERVOS_AFTER_MOVE) && !HAS_Z_SERVO_ENDSTOP
#error "Z_ENDSTOP_SERVO_NR is required for DEACTIVATE_SERVOS_AFTER_MOVE."
#endif
/**
* Required LCD language
*/
#if DISABLED(DOGLCD) && ENABLED(ULTRA_LCD) && !defined(DISPLAY_CHARSET_HD44780)
#error "You must set DISPLAY_CHARSET_HD44780 to JAPANESE, WESTERN or CYRILLIC for your LCD controller."
#endif
/**
* Bed Heating Options - PID vs Limit Switching
*/
#if ENABLED(PIDTEMPBED) && ENABLED(BED_LIMIT_SWITCHING)
#error "To use BED_LIMIT_SWITCHING you must disable PIDTEMPBED."
#endif
/**
* Mesh Bed Leveling
*/
#if ENABLED(MESH_BED_LEVELING)
#if ENABLED(DELTA)
#error "MESH_BED_LEVELING does not yet support DELTA printers."
#elif ENABLED(AUTO_BED_LEVELING_FEATURE)
#error "Select AUTO_BED_LEVELING_FEATURE or MESH_BED_LEVELING, not both."
#elif MESH_NUM_X_POINTS > 9 || MESH_NUM_Y_POINTS > 9
#error "MESH_NUM_X_POINTS and MESH_NUM_Y_POINTS must be less than 10."
#endif
#elif ENABLED(MANUAL_BED_LEVELING)
#error "MESH_BED_LEVELING is required for MANUAL_BED_LEVELING."
#endif
/**
* Probes
*/
#if PROBE_SELECTED
#if ENABLED(Z_PROBE_SLED) && ENABLED(DELTA)
#error "You cannot use Z_PROBE_SLED with DELTA."
#endif
/**
* NUM_SERVOS is required for a Z servo probe
*/
#if HAS_Z_SERVO_ENDSTOP
#ifndef NUM_SERVOS
#error "You must set NUM_SERVOS for a Z servo probe (Z_ENDSTOP_SERVO_NR)."
#elif Z_ENDSTOP_SERVO_NR >= NUM_SERVOS
#error "Z_ENDSTOP_SERVO_NR must be less than NUM_SERVOS."
#endif
#endif
/**
* A probe needs a pin
*/
#if !PROBE_PIN_CONFIGURED
#error "A probe needs a pin! Use Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN or Z_MIN_PROBE_PIN."
#endif
/**
* Require a Z min pin
*/
#if HAS_Z_MIN
// Z_MIN_PIN and Z_MIN_PROBE_PIN can't co-exist when Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
#if HAS_Z_MIN_PROBE_PIN && ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN)
#error "A probe cannot have more than one pin! Use Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN or Z_MIN_PROBE_PIN."
#endif
#elif !HAS_Z_MIN_PROBE_PIN || (DISABLED(Z_MIN_PROBE_ENDSTOP) || ENABLED(DISABLE_Z_MIN_PROBE_ENDSTOP))
// A pin was set for the Z probe, but not enabled.
#error "A probe requires a Z_MIN or Z_PROBE pin. Z_MIN_PIN or Z_MIN_PROBE_PIN must point to a valid hardware pin."
#endif
/**
* Make sure the plug is enabled if it's used
*/
#if ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN) && DISABLED(USE_ZMIN_PLUG)
#error "You must enable USE_ZMIN_PLUG if any probe or endstop is connected to the ZMIN plug."
#endif
/**
* Only allow one probe option to be defined
*/
#if (ENABLED(FIX_MOUNTED_PROBE) && (ENABLED(Z_PROBE_ALLEN_KEY) || HAS_Z_SERVO_ENDSTOP || ENABLED(Z_PROBE_SLED))) \
|| (ENABLED(Z_PROBE_ALLEN_KEY) && (HAS_Z_SERVO_ENDSTOP || ENABLED(Z_PROBE_SLED))) \
|| (HAS_Z_SERVO_ENDSTOP && ENABLED(Z_PROBE_SLED))
#error "Please define only one type of probe: Z Servo, Z_PROBE_ALLEN_KEY, Z_PROBE_SLED, or FIX_MOUNTED_PROBE."
#endif
/**
* Don't allow nonsense probe-pin settings
*/
#if ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN) && ENABLED(Z_MIN_PROBE_ENDSTOP)
#error "You can't enable both Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN and Z_MIN_PROBE_ENDSTOP."
#elif ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN) && ENABLED(DISABLE_Z_MIN_PROBE_ENDSTOP)
#error "Don't enable DISABLE_Z_MIN_PROBE_ENDSTOP with Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN."
#elif ENABLED(DISABLE_Z_MIN_PROBE_ENDSTOP) && DISABLED(Z_MIN_PROBE_ENDSTOP)
#error "DISABLE_Z_MIN_PROBE_ENDSTOP requires Z_MIN_PROBE_ENDSTOP to be set."
#endif
/**
* Require a Z probe pin if Z_MIN_PROBE_ENDSTOP is enabled.
*/
#if ENABLED(Z_MIN_PROBE_ENDSTOP)
#if !HAS_Z_MIN_PROBE_PIN
#error "Z_MIN_PROBE_ENDSTOP requires a Z_MIN_PROBE_PIN in your board's pins_XXXX.h file."
#endif
// Forcing Servo definitions can break some hall effect sensor setups. Leaving these here for further comment.
//#ifndef NUM_SERVOS
// #error "You must have NUM_SERVOS defined and there must be at least 1 configured to use Z_MIN_PROBE_ENDSTOP."
//#endif
//#if defined(NUM_SERVOS) && NUM_SERVOS < 1
// #error "You must have at least 1 servo defined for NUM_SERVOS to use Z_MIN_PROBE_ENDSTOP."
//#endif
//#if Z_ENDSTOP_SERVO_NR < 0
// #error "You must have Z_ENDSTOP_SERVO_NR set to at least 0 or above to use Z_MIN_PROBE_ENDSTOP."
//#endif
//#ifndef Z_SERVO_ANGLES
// #error "You must have Z_SERVO_ANGLES defined for Z Extend and Retract to use Z_MIN_PROBE_ENDSTOP."
//#endif
#endif
/**
* Make sure Z raise values are set
*/
#if !defined(Z_PROBE_DEPLOY_HEIGHT)
#error "You must set Z_PROBE_DEPLOY_HEIGHT in your configuration."
#elif !defined(Z_PROBE_TRAVEL_HEIGHT)
#error "You must set Z_PROBE_TRAVEL_HEIGHT in your configuration."
#elif Z_PROBE_DEPLOY_HEIGHT < 0
#error "Probes need Z_PROBE_DEPLOY_HEIGHT >= 0."
#elif Z_PROBE_TRAVEL_HEIGHT < 0
#error "Probes need Z_PROBE_TRAVEL_HEIGHT >= 0."
#endif
#else
/**
* Require some kind of probe for bed leveling and probe testing
*/
#if ENABLED(AUTO_BED_LEVELING_FEATURE)
#error "AUTO_BED_LEVELING_FEATURE requires a probe! Define a Z Servo, Z_PROBE_ALLEN_KEY, Z_PROBE_SLED, or FIX_MOUNTED_PROBE."
#elif ENABLED(Z_MIN_PROBE_REPEATABILITY_TEST)
#error "Z_MIN_PROBE_REPEATABILITY_TEST requires a probe! Define a Z Servo, Z_PROBE_ALLEN_KEY, Z_PROBE_SLED, or FIX_MOUNTED_PROBE."
#endif
#endif
/**
* Make sure Z_SAFE_HOMING point is reachable
*/
#if ENABLED(Z_SAFE_HOMING)
#if Z_SAFE_HOMING_X_POINT < MIN_PROBE_X || Z_SAFE_HOMING_X_POINT > MAX_PROBE_X
#if HAS_BED_PROBE
#error "Z_SAFE_HOMING_X_POINT can't be reached by the Z probe."
#else
#error "Z_SAFE_HOMING_X_POINT can't be reached by the nozzle."
#endif
#elif Z_SAFE_HOMING_Y_POINT < MIN_PROBE_Y || Z_SAFE_HOMING_Y_POINT > MAX_PROBE_Y
#if HAS_BED_PROBE
#error "Z_SAFE_HOMING_Y_POINT can't be reached by the Z probe."
#else
#error "Z_SAFE_HOMING_Y_POINT can't be reached by the nozzle."
#endif
#endif
#endif // Z_SAFE_HOMING
/**
* Auto Bed Leveling
*/
#if ENABLED(AUTO_BED_LEVELING_FEATURE)
/**
* Delta has limited bed leveling options
*/
#if ENABLED(DELTA) && DISABLED(AUTO_BED_LEVELING_GRID)
#error "You must use AUTO_BED_LEVELING_GRID for DELTA bed leveling."
#endif
/**
* Check if Probe_Offset * Grid Points is greater than Probing Range
*/
#if ENABLED(AUTO_BED_LEVELING_GRID)
#ifndef DELTA_PROBEABLE_RADIUS
// Be sure points are in the right order
#if LEFT_PROBE_BED_POSITION > RIGHT_PROBE_BED_POSITION
#error "LEFT_PROBE_BED_POSITION must be less than RIGHT_PROBE_BED_POSITION."
#elif FRONT_PROBE_BED_POSITION > BACK_PROBE_BED_POSITION
#error "FRONT_PROBE_BED_POSITION must be less than BACK_PROBE_BED_POSITION."
#endif
// Make sure probing points are reachable
#if LEFT_PROBE_BED_POSITION < MIN_PROBE_X
#error "The given LEFT_PROBE_BED_POSITION can't be reached by the Z probe."
#elif RIGHT_PROBE_BED_POSITION > MAX_PROBE_X
#error "The given RIGHT_PROBE_BED_POSITION can't be reached by the Z probe."
#elif FRONT_PROBE_BED_POSITION < MIN_PROBE_Y
#error "The given FRONT_PROBE_BED_POSITION can't be reached by the Z probe."
#elif BACK_PROBE_BED_POSITION > MAX_PROBE_Y
#error "The given BACK_PROBE_BED_POSITION can't be reached by the Z probe."
#endif
#endif
#else // !AUTO_BED_LEVELING_GRID
// Check the triangulation points
#if ABL_PROBE_PT_1_X < MIN_PROBE_X || ABL_PROBE_PT_1_X > MAX_PROBE_X
#error "The given ABL_PROBE_PT_1_X can't be reached by the Z probe."
#elif ABL_PROBE_PT_2_X < MIN_PROBE_X || ABL_PROBE_PT_2_X > MAX_PROBE_X
#error "The given ABL_PROBE_PT_2_X can't be reached by the Z probe."
#elif ABL_PROBE_PT_3_X < MIN_PROBE_X || ABL_PROBE_PT_3_X > MAX_PROBE_X
#error "The given ABL_PROBE_PT_3_X can't be reached by the Z probe."
#elif ABL_PROBE_PT_1_Y < MIN_PROBE_Y || ABL_PROBE_PT_1_Y > MAX_PROBE_Y
#error "The given ABL_PROBE_PT_1_Y can't be reached by the Z probe."
#elif ABL_PROBE_PT_2_Y < MIN_PROBE_Y || ABL_PROBE_PT_2_Y > MAX_PROBE_Y
#error "The given ABL_PROBE_PT_2_Y can't be reached by the Z probe."
#elif ABL_PROBE_PT_3_Y < MIN_PROBE_Y || ABL_PROBE_PT_3_Y > MAX_PROBE_Y
#error "The given ABL_PROBE_PT_3_Y can't be reached by the Z probe."
#endif
#endif // !AUTO_BED_LEVELING_GRID
#endif // AUTO_BED_LEVELING_FEATURE
/**
* Advance Extrusion
*/
#if ENABLED(ADVANCE) && ENABLED(LIN_ADVANCE)
#error "You can enable ADVANCE or LIN_ADVANCE, but not both."
#endif
/**
* Filament Width Sensor
*/
#if ENABLED(FILAMENT_WIDTH_SENSOR) && !HAS_FILAMENT_WIDTH_SENSOR
#error "FILAMENT_WIDTH_SENSOR requires a FILWIDTH_PIN to be defined."
#endif
/**
* ULTIPANEL encoder
*/
#if ENABLED(ULTIPANEL) && DISABLED(NEWPANEL) && DISABLED(SR_LCD_2W_NL) && !defined(SHIFT_CLK)
#error "ULTIPANEL requires some kind of encoder."
#endif
#if ENCODER_PULSES_PER_STEP < 0
#error "ENCODER_PULSES_PER_STEP should not be negative, use REVERSE_MENU_DIRECTION instead."
#endif
/**
* SAV_3DGLCD display options
*/
#if ENABLED(U8GLIB_SSD1306) && ENABLED(U8GLIB_SH1106)
#error "Only enable one SAV_3DGLCD display type: U8GLIB_SSD1306 or U8GLIB_SH1106."
#endif
/**
* Don't set more than one kinematic type
*/
#if (ENABLED(DELTA) && (ENABLED(SCARA) || ENABLED(COREXY) || ENABLED(COREXZ) || ENABLED(COREYZ))) \
|| (ENABLED(SCARA) && (ENABLED(COREXY) || ENABLED(COREXZ) || ENABLED(COREYZ))) \
|| (ENABLED(COREXY) && (ENABLED(COREXZ) || ENABLED(COREYZ))) \
|| (ENABLED(COREXZ) && ENABLED(COREYZ))
#error "Please enable only one of DELTA, SCARA, COREXY, COREXZ, or COREYZ."
#endif
/**
* Allen Key
* Deploying the Allen Key probe uses big moves in z direction. Too dangerous for an unhomed z-axis.
*/
#if ENABLED(Z_PROBE_ALLEN_KEY) && (Z_HOME_DIR < 0) && ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN)
#error "You can't home to a z min endstop with a Z_PROBE_ALLEN_KEY"
#endif
/**
* Dual X Carriage requirements
*/
#if ENABLED(DUAL_X_CARRIAGE)
#if EXTRUDERS == 1
#error "DUAL_X_CARRIAGE requires 2 (or more) extruders."
#elif ENABLED(COREXY) || ENABLED(COREXZ)
#error "DUAL_X_CARRIAGE cannot be used with COREXY or COREXZ."
#elif !HAS_X2_ENABLE || !HAS_X2_STEP || !HAS_X2_DIR
#error "DUAL_X_CARRIAGE requires X2 stepper pins to be defined."
#elif !HAS_X_MAX
#error "DUAL_X_CARRIAGE requires USE_XMAX_PLUG and an X Max Endstop."
#elif !defined(X2_HOME_POS) || !defined(X2_MIN_POS) || !defined(X2_MAX_POS)
#error "DUAL_X_CARRIAGE requires X2_HOME_POS, X2_MIN_POS, and X2_MAX_POS."
#elif X_HOME_DIR != -1 || X2_HOME_DIR != 1
#error "DUAL_X_CARRIAGE requires X_HOME_DIR -1 and X2_HOME_DIR 1."
#endif
#endif // DUAL_X_CARRIAGE
/**
* Make sure auto fan pins don't conflict with the fan pin
*/
#if HAS_AUTO_FAN
#if HAS_FAN0
#if EXTRUDER_0_AUTO_FAN_PIN == FAN_PIN
#error "You cannot set EXTRUDER_0_AUTO_FAN_PIN equal to FAN_PIN."
#elif EXTRUDER_1_AUTO_FAN_PIN == FAN_PIN
#error "You cannot set EXTRUDER_1_AUTO_FAN_PIN equal to FAN_PIN."
#elif EXTRUDER_2_AUTO_FAN_PIN == FAN_PIN
#error "You cannot set EXTRUDER_2_AUTO_FAN_PIN equal to FAN_PIN."
#elif EXTRUDER_3_AUTO_FAN_PIN == FAN_PIN
#error "You cannot set EXTRUDER_3_AUTO_FAN_PIN equal to FAN_PIN."
#endif
#endif
#endif
#if HAS_FAN0 && CONTROLLERFAN_PIN == FAN_PIN
#error "You cannot set CONTROLLERFAN_PIN equal to FAN_PIN."
#endif
#if HAS_CONTROLLERFAN
#if EXTRUDER_0_AUTO_FAN_PIN == CONTROLLERFAN_PIN
#error "You cannot set EXTRUDER_0_AUTO_FAN_PIN equal to CONTROLLERFAN_PIN."
#elif EXTRUDER_1_AUTO_FAN_PIN == CONTROLLERFAN_PIN
#error "You cannot set EXTRUDER_1_AUTO_FAN_PIN equal to CONTROLLERFAN_PIN."
#elif EXTRUDER_2_AUTO_FAN_PIN == CONTROLLERFAN_PIN
#error "You cannot set EXTRUDER_2_AUTO_FAN_PIN equal to CONTROLLERFAN_PIN."
#elif EXTRUDER_3_AUTO_FAN_PIN == CONTROLLERFAN_PIN
#error "You cannot set EXTRUDER_3_AUTO_FAN_PIN equal to CONTROLLERFAN_PIN."
#endif
#endif
/**
* Test Heater, Temp Sensor, and Extruder Pins; Sensor Type must also be set.
*/
#if !HAS_HEATER_0
#error "HEATER_0_PIN not defined for this board."
#elif !PIN_EXISTS(TEMP_0)
#error "TEMP_0_PIN not defined for this board."
#elif !PIN_EXISTS(E0_STEP) || !PIN_EXISTS(E0_DIR) || !PIN_EXISTS(E0_ENABLE)
#error "E0_STEP_PIN, E0_DIR_PIN, or E0_ENABLE_PIN not defined for this board."
#elif TEMP_SENSOR_0 == 0
#error "TEMP_SENSOR_0 is required."
#endif
#if HOTENDS > 1 || ENABLED(HEATERS_PARALLEL)
#if !HAS_HEATER_1
#error "HEATER_1_PIN not defined for this board."
#endif
#endif
#if HOTENDS > 1
#if TEMP_SENSOR_1 == 0
#error "TEMP_SENSOR_1 is required with 2 or more HOTENDS."
#elif !PIN_EXISTS(TEMP_1)
#error "TEMP_1_PIN not defined for this board."
#endif
#if HOTENDS > 2
#if TEMP_SENSOR_2 == 0
#error "TEMP_SENSOR_2 is required with 3 or more HOTENDS."
#elif !HAS_HEATER_2
#error "HEATER_2_PIN not defined for this board."
#elif !PIN_EXISTS(TEMP_2)
#error "TEMP_2_PIN not defined for this board."
#endif
#if HOTENDS > 3
#if TEMP_SENSOR_3 == 0
#error "TEMP_SENSOR_3 is required with 4 HOTENDS."
#elif !HAS_HEATER_3
#error "HEATER_3_PIN not defined for this board."
#elif !PIN_EXISTS(TEMP_3)
#error "TEMP_3_PIN not defined for this board."
#endif
#elif TEMP_SENSOR_3 != 0
#error "TEMP_SENSOR_3 shouldn't be set with only 3 extruders."
#endif
#elif TEMP_SENSOR_2 != 0
#error "TEMP_SENSOR_2 shouldn't be set with only 2 extruders."
#elif TEMP_SENSOR_3 != 0
#error "TEMP_SENSOR_3 shouldn't be set with only 2 extruders."
#endif
#elif TEMP_SENSOR_1 != 0 && DISABLED(TEMP_SENSOR_1_AS_REDUNDANT)
#error "TEMP_SENSOR_1 shouldn't be set with only 1 extruder."
#elif TEMP_SENSOR_2 != 0
#error "TEMP_SENSOR_2 shouldn't be set with only 1 extruder."
#elif TEMP_SENSOR_3 != 0
#error "TEMP_SENSOR_3 shouldn't be set with only 1 extruder."
#endif
#if ENABLED(TEMP_SENSOR_1_AS_REDUNDANT) && TEMP_SENSOR_1 == 0
#error "TEMP_SENSOR_1 is required with TEMP_SENSOR_1_AS_REDUNDANT."
#endif
/**
* Basic 2-nozzle duplication mode
*/
#if ENABLED(DUAL_NOZZLE_DUPLICATION_MODE)
#if HOTENDS != 2
#error "DUAL_NOZZLE_DUPLICATION_MODE requires exactly 2 hotends."
#elif ENABLED(DUAL_X_CARRIAGE)
#error "DUAL_NOZZLE_DUPLICATION_MODE is incompatible with DUAL_X_CARRIAGE."
#elif ENABLED(SINGLENOZZLE)
#error "DUAL_NOZZLE_DUPLICATION_MODE is incompatible with SINGLENOZZLE."
#elif ENABLED(MIXING_EXTRUDER)
#error "DUAL_NOZZLE_DUPLICATION_MODE is incompatible with MIXING_EXTRUDER."
#elif ENABLED(SWITCHING_EXTRUDER)
#error "DUAL_NOZZLE_DUPLICATION_MODE is incompatible with SWITCHING_EXTRUDER."
#endif
#endif
/**
* Test Extruder Pins
*/
#if EXTRUDERS > 3
#if !PIN_EXISTS(E3_STEP) || !PIN_EXISTS(E3_DIR) || !PIN_EXISTS(E3_ENABLE)
#error "E3_STEP_PIN, E3_DIR_PIN, or E3_ENABLE_PIN not defined for this board."
#endif
#elif EXTRUDERS > 2
#if !PIN_EXISTS(E2_STEP) || !PIN_EXISTS(E2_DIR) || !PIN_EXISTS(E2_ENABLE)
#error "E2_STEP_PIN, E2_DIR_PIN, or E2_ENABLE_PIN not defined for this board."
#endif
#elif EXTRUDERS > 1
#if !PIN_EXISTS(E1_STEP) || !PIN_EXISTS(E1_DIR) || !PIN_EXISTS(E1_ENABLE)
#error "E1_STEP_PIN, E1_DIR_PIN, or E1_ENABLE_PIN not defined for this board."
#endif
#endif
/**
* Endstops
*/
#if DISABLED(USE_XMIN_PLUG) && DISABLED(USE_XMAX_PLUG) && !(ENABLED(Z_DUAL_ENDSTOPS) && Z2_USE_ENDSTOP >= _XMAX_ && Z2_USE_ENDSTOP <= _XMIN_)
#error "You must enable USE_XMIN_PLUG or USE_XMAX_PLUG"
#elif DISABLED(USE_YMIN_PLUG) && DISABLED(USE_YMAX_PLUG) && !(ENABLED(Z_DUAL_ENDSTOPS) && Z2_USE_ENDSTOP >= _YMAX_ && Z2_USE_ENDSTOP <= _YMIN_)
#error "You must enable USE_YMIN_PLUG or USE_YMAX_PLUG"
#elif DISABLED(USE_ZMIN_PLUG) && DISABLED(USE_ZMAX_PLUG) && !(ENABLED(Z_DUAL_ENDSTOPS) && Z2_USE_ENDSTOP >= _ZMAX_ && Z2_USE_ENDSTOP <= _ZMIN_)
#error "You must enable USE_ZMIN_PLUG or USE_ZMAX_PLUG"
#elif ENABLED(Z_DUAL_ENDSTOPS) && !Z2_USE_ENDSTOP
#error "You must set Z2_USE_ENDSTOP with Z_DUAL_ENDSTOPS"
#endif
/**
* emergency-command parser
*/
#if ENABLED(EMERGENCY_PARSER) && ENABLED(USBCON)
#error "EMERGENCY_PARSER does not work on boards with AT90USB processors (USBCON)."
#endif
/**
* Warnings for old configurations
*/
#if WATCH_TEMP_PERIOD > 500
#error "WATCH_TEMP_PERIOD now uses seconds instead of milliseconds."
#elif DISABLED(THERMAL_PROTECTION_HOTENDS) && (defined(WATCH_TEMP_PERIOD) || defined(THERMAL_PROTECTION_PERIOD))
#error "Thermal Runaway Protection for hotends is now enabled with THERMAL_PROTECTION_HOTENDS."
#elif DISABLED(THERMAL_PROTECTION_BED) && defined(THERMAL_PROTECTION_BED_PERIOD)
#error "Thermal Runaway Protection for the bed is now enabled with THERMAL_PROTECTION_BED."
#elif ENABLED(COREXZ) && ENABLED(Z_LATE_ENABLE)
#error "Z_LATE_ENABLE can't be used with COREXZ."
#elif defined(X_HOME_RETRACT_MM)
#error "[XYZ]_HOME_RETRACT_MM settings have been renamed [XYZ]_HOME_BUMP_MM."
#elif defined(BEEPER)
#error "BEEPER is now BEEPER_PIN. Please update your pins definitions."
#elif defined(SDCARDDETECT)
#error "SDCARDDETECT is now SD_DETECT_PIN. Please update your pins definitions."
#elif defined(SDCARDDETECTINVERTED)
#error "SDCARDDETECTINVERTED is now SD_DETECT_INVERTED. Please update your configuration."
#elif defined(BTENABLED)
#error "BTENABLED is now BLUETOOTH. Please update your configuration."
#elif defined(CUSTOM_MENDEL_NAME)
#error "CUSTOM_MENDEL_NAME is now CUSTOM_MACHINE_NAME. Please update your configuration."
#elif defined(HAS_AUTOMATIC_VERSIONING)
#error "HAS_AUTOMATIC_VERSIONING is now USE_AUTOMATIC_VERSIONING. Please update your configuration."
#elif defined(ENABLE_AUTO_BED_LEVELING)
#error "ENABLE_AUTO_BED_LEVELING is now AUTO_BED_LEVELING_FEATURE. Please update your configuration."
#elif defined(SDSLOW)
#error "SDSLOW deprecated. Set SPI_SPEED to SPI_HALF_SPEED instead."
#elif defined(SDEXTRASLOW)
#error "SDEXTRASLOW deprecated. Set SPI_SPEED to SPI_QUARTER_SPEED instead."
#elif defined(FILAMENT_SENSOR)
#error "FILAMENT_SENSOR is deprecated. Use FILAMENT_WIDTH_SENSOR instead."
#elif defined(DISABLE_MAX_ENDSTOPS) || defined(DISABLE_MIN_ENDSTOPS)
#error "DISABLE_MAX_ENDSTOPS and DISABLE_MIN_ENDSTOPS deprecated. Use individual USE_*_PLUG options instead."
#elif ENABLED(Z_DUAL_ENDSTOPS) && !defined(Z2_USE_ENDSTOP)
#error "Z_DUAL_ENDSTOPS settings are simplified. Just set Z2_USE_ENDSTOP to the endstop you want to repurpose for Z2"
#elif defined(LANGUAGE_INCLUDE)
#error "LANGUAGE_INCLUDE has been replaced by LCD_LANGUAGE. Please update your configuration."
#elif defined(EXTRUDER_OFFSET_X) || defined(EXTRUDER_OFFSET_Y)
#error "EXTRUDER_OFFSET_[XY] is deprecated. Use HOTEND_OFFSET_[XY] instead."
#elif defined(PID_PARAMS_PER_EXTRUDER)
#error "PID_PARAMS_PER_EXTRUDER is deprecated. Use PID_PARAMS_PER_HOTEND instead."
#elif defined(EXTRUDER_WATTS) || defined(BED_WATTS)
#error "EXTRUDER_WATTS and BED_WATTS are deprecated. Remove them from your configuration."
#elif defined(SERVO_ENDSTOP_ANGLES)
#error "SERVO_ENDSTOP_ANGLES is deprecated. Use Z_SERVO_ANGLES instead."
#elif defined(X_ENDSTOP_SERVO_NR) || defined(Y_ENDSTOP_SERVO_NR)
#error "X_ENDSTOP_SERVO_NR and Y_ENDSTOP_SERVO_NR are deprecated and should be removed."
#elif defined(XY_TRAVEL_SPEED)
#error "XY_TRAVEL_SPEED is deprecated. Use XY_PROBE_SPEED instead."
#elif defined(PROBE_SERVO_DEACTIVATION_DELAY)
#error "PROBE_SERVO_DEACTIVATION_DELAY is deprecated. Use DEACTIVATE_SERVOS_AFTER_MOVE instead."
#elif defined(SERVO_DEACTIVATION_DELAY)
#error "SERVO_DEACTIVATION_DELAY is deprecated. Use SERVO_DELAY instead."
#elif ENABLED(FILAMENTCHANGEENABLE)
#error "FILAMENTCHANGEENABLE is now FILAMENT_CHANGE_FEATURE. Please update your configuration."
#elif defined(PLA_PREHEAT_HOTEND_TEMP)
#error "PLA_PREHEAT_HOTEND_TEMP is now PREHEAT_1_TEMP_HOTEND. Please update your configuration."
#elif defined(PLA_PREHEAT_HPB_TEMP)
#error "PLA_PREHEAT_HPB_TEMP is now PREHEAT_1_TEMP_BED. Please update your configuration."
#elif defined(PLA_PREHEAT_FAN_SPEED)
#error "PLA_PREHEAT_FAN_SPEED is now PREHEAT_1_FAN_SPEED. Please update your configuration."
#elif defined(ABS_PREHEAT_HOTEND_TEMP)
#error "ABS_PREHEAT_HOTEND_TEMP is now PREHEAT_2_TEMP_HOTEND. Please update your configuration."
#elif defined(ABS_PREHEAT_HPB_TEMP)
#error "ABS_PREHEAT_HPB_TEMP is now PREHEAT_2_TEMP_BED. Please update your configuration."
#elif defined(ABS_PREHEAT_FAN_SPEED)
#error "ABS_PREHEAT_FAN_SPEED is now PREHEAT_2_FAN_SPEED. Please update your configuration."
#elif defined(ENDSTOPS_ONLY_FOR_HOMING)
#error "ENDSTOPS_ONLY_FOR_HOMING is deprecated. Use (disable) ENDSTOPS_ALWAYS_ON_DEFAULT instead."
#elif defined(HOMING_FEEDRATE)
#error "HOMING_FEEDRATE is deprecated. Set individual rates with HOMING_FEEDRATE_(XY|Z|E) instead."
#elif defined(MANUAL_HOME_POSITIONS)
#error "MANUAL_HOME_POSITIONS is deprecated. Set MANUAL_[XYZ]_HOME_POS as-needed instead."
#elif defined(PID_ADD_EXTRUSION_RATE)
#error "PID_ADD_EXTRUSION_RATE is now PID_EXTRUSION_SCALING and is DISABLED by default. Are you sure you want to use this option? Please update your configuration."
#elif defined(Z_RAISE_BEFORE_HOMING)
#error "Z_RAISE_BEFORE_HOMING is now Z_HOMING_HEIGHT. Please update your configuration."
#elif defined(MIN_Z_HEIGHT_FOR_HOMING)
#error "MIN_Z_HEIGHT_FOR_HOMING is now Z_HOMING_HEIGHT. Please update your configuration."
#elif defined(Z_RAISE_BEFORE_PROBING) || defined(Z_RAISE_AFTER_PROBING)
#error "Z_RAISE_(BEFORE|AFTER)_PROBING are deprecated. Use Z_PROBE_DEPLOY_HEIGHT instead."
#elif defined(Z_RAISE_PROBE_DEPLOY_STOW) || defined(Z_RAISE_BETWEEN_PROBINGS)
#error "Z_RAISE_PROBE_DEPLOY_STOW and Z_RAISE_BETWEEN_PROBINGS are now Z_PROBE_DEPLOY_HEIGHT and Z_PROBE_TRAVEL_HEIGHT Please update your configuration."
#endif
-719
View File
@@ -1,719 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
* Arduino Sd2Card Library
* Copyright (C) 2009 by William Greiman
*
* This file is part of the Arduino Sd2Card Library
*/
#include "Marlin.h"
#if ENABLED(SDSUPPORT)
#include "Sd2Card.h"
//------------------------------------------------------------------------------
#if DISABLED(SOFTWARE_SPI)
// functions for hardware SPI
//------------------------------------------------------------------------------
// make sure SPCR rate is in expected bits
#if (SPR0 != 0 || SPR1 != 1)
#error "unexpected SPCR bits"
#endif
/**
* Initialize hardware SPI
* Set SCK rate to F_CPU/pow(2, 1 + spiRate) for spiRate [0,6]
*/
static void spiInit(uint8_t spiRate) {
// See avr processor documentation
SPCR = _BV(SPE) | _BV(MSTR) | (spiRate >> 1);
SPSR = spiRate & 1 || spiRate == 6 ? 0 : _BV(SPI2X);
}
//------------------------------------------------------------------------------
/** SPI receive a byte */
static uint8_t spiRec() {
SPDR = 0XFF;
while (!TEST(SPSR, SPIF)) { /* Intentionally left empty */ }
return SPDR;
}
//------------------------------------------------------------------------------
/** SPI read data - only one call so force inline */
static inline __attribute__((always_inline))
void spiRead(uint8_t* buf, uint16_t nbyte) {
if (nbyte-- == 0) return;
SPDR = 0XFF;
for (uint16_t i = 0; i < nbyte; i++) {
while (!TEST(SPSR, SPIF)) { /* Intentionally left empty */ }
buf[i] = SPDR;
SPDR = 0XFF;
}
while (!TEST(SPSR, SPIF)) { /* Intentionally left empty */ }
buf[nbyte] = SPDR;
}
//------------------------------------------------------------------------------
/** SPI send a byte */
static void spiSend(uint8_t b) {
SPDR = b;
while (!TEST(SPSR, SPIF)) { /* Intentionally left empty */ }
}
//------------------------------------------------------------------------------
/** SPI send block - only one call so force inline */
static inline __attribute__((always_inline))
void spiSendBlock(uint8_t token, const uint8_t* buf) {
SPDR = token;
for (uint16_t i = 0; i < 512; i += 2) {
while (!TEST(SPSR, SPIF)) { /* Intentionally left empty */ }
SPDR = buf[i];
while (!TEST(SPSR, SPIF)) { /* Intentionally left empty */ }
SPDR = buf[i + 1];
}
while (!TEST(SPSR, SPIF)) { /* Intentionally left empty */ }
}
//------------------------------------------------------------------------------
#else // SOFTWARE_SPI
//------------------------------------------------------------------------------
/** nop to tune soft SPI timing */
#define nop asm volatile ("nop\n\t")
//------------------------------------------------------------------------------
/** Soft SPI receive byte */
static uint8_t spiRec() {
uint8_t data = 0;
// no interrupts during byte receive - about 8 us
cli();
// output pin high - like sending 0XFF
WRITE(SPI_MOSI_PIN, HIGH);
for (uint8_t i = 0; i < 8; i++) {
WRITE(SPI_SCK_PIN, HIGH);
// adjust so SCK is nice
nop;
nop;
data <<= 1;
if (READ(SPI_MISO_PIN)) data |= 1;
WRITE(SPI_SCK_PIN, LOW);
}
// enable interrupts
sei();
return data;
}
//------------------------------------------------------------------------------
/** Soft SPI read data */
static void spiRead(uint8_t* buf, uint16_t nbyte) {
for (uint16_t i = 0; i < nbyte; i++)
buf[i] = spiRec();
}
//------------------------------------------------------------------------------
/** Soft SPI send byte */
static void spiSend(uint8_t data) {
// no interrupts during byte send - about 8 us
cli();
for (uint8_t i = 0; i < 8; i++) {
WRITE(SPI_SCK_PIN, LOW);
WRITE(SPI_MOSI_PIN, data & 0X80);
data <<= 1;
WRITE(SPI_SCK_PIN, HIGH);
}
// hold SCK high for a few ns
nop;
nop;
nop;
nop;
WRITE(SPI_SCK_PIN, LOW);
// enable interrupts
sei();
}
//------------------------------------------------------------------------------
/** Soft SPI send block */
void spiSendBlock(uint8_t token, const uint8_t* buf) {
spiSend(token);
for (uint16_t i = 0; i < 512; i++)
spiSend(buf[i]);
}
#endif // SOFTWARE_SPI
//------------------------------------------------------------------------------
// send command and return error code. Return zero for OK
uint8_t Sd2Card::cardCommand(uint8_t cmd, uint32_t arg) {
// select card
chipSelectLow();
// wait up to 300 ms if busy
waitNotBusy(300);
// send command
spiSend(cmd | 0x40);
// send argument
for (int8_t s = 24; s >= 0; s -= 8) spiSend(arg >> s);
// send CRC
uint8_t crc = 0XFF;
if (cmd == CMD0) crc = 0X95; // correct crc for CMD0 with arg 0
if (cmd == CMD8) crc = 0X87; // correct crc for CMD8 with arg 0X1AA
spiSend(crc);
// skip stuff byte for stop read
if (cmd == CMD12) spiRec();
// wait for response
for (uint8_t i = 0; ((status_ = spiRec()) & 0X80) && i != 0XFF; i++) { /* Intentionally left empty */ }
return status_;
}
//------------------------------------------------------------------------------
/**
* Determine the size of an SD flash memory card.
*
* \return The number of 512 byte data blocks in the card
* or zero if an error occurs.
*/
uint32_t Sd2Card::cardSize() {
csd_t csd;
if (!readCSD(&csd)) return 0;
if (csd.v1.csd_ver == 0) {
uint8_t read_bl_len = csd.v1.read_bl_len;
uint16_t c_size = (csd.v1.c_size_high << 10)
| (csd.v1.c_size_mid << 2) | csd.v1.c_size_low;
uint8_t c_size_mult = (csd.v1.c_size_mult_high << 1)
| csd.v1.c_size_mult_low;
return (uint32_t)(c_size + 1) << (c_size_mult + read_bl_len - 7);
}
else if (csd.v2.csd_ver == 1) {
uint32_t c_size = ((uint32_t)csd.v2.c_size_high << 16)
| (csd.v2.c_size_mid << 8) | csd.v2.c_size_low;
return (c_size + 1) << 10;
}
else {
error(SD_CARD_ERROR_BAD_CSD);
return 0;
}
}
//------------------------------------------------------------------------------
void Sd2Card::chipSelectHigh() {
digitalWrite(chipSelectPin_, HIGH);
}
//------------------------------------------------------------------------------
void Sd2Card::chipSelectLow() {
#if DISABLED(SOFTWARE_SPI)
spiInit(spiRate_);
#endif // SOFTWARE_SPI
digitalWrite(chipSelectPin_, LOW);
}
//------------------------------------------------------------------------------
/** Erase a range of blocks.
*
* \param[in] firstBlock The address of the first block in the range.
* \param[in] lastBlock The address of the last block in the range.
*
* \note This function requests the SD card to do a flash erase for a
* range of blocks. The data on the card after an erase operation is
* either 0 or 1, depends on the card vendor. The card must support
* single block erase.
*
* \return The value one, true, is returned for success and
* the value zero, false, is returned for failure.
*/
bool Sd2Card::erase(uint32_t firstBlock, uint32_t lastBlock) {
csd_t csd;
if (!readCSD(&csd)) goto fail;
// check for single block erase
if (!csd.v1.erase_blk_en) {
// erase size mask
uint8_t m = (csd.v1.sector_size_high << 1) | csd.v1.sector_size_low;
if ((firstBlock & m) != 0 || ((lastBlock + 1) & m) != 0) {
// error card can't erase specified area
error(SD_CARD_ERROR_ERASE_SINGLE_BLOCK);
goto fail;
}
}
if (type_ != SD_CARD_TYPE_SDHC) {
firstBlock <<= 9;
lastBlock <<= 9;
}
if (cardCommand(CMD32, firstBlock)
|| cardCommand(CMD33, lastBlock)
|| cardCommand(CMD38, 0)) {
error(SD_CARD_ERROR_ERASE);
goto fail;
}
if (!waitNotBusy(SD_ERASE_TIMEOUT)) {
error(SD_CARD_ERROR_ERASE_TIMEOUT);
goto fail;
}
chipSelectHigh();
return true;
fail:
chipSelectHigh();
return false;
}
//------------------------------------------------------------------------------
/** Determine if card supports single block erase.
*
* \return The value one, true, is returned if single block erase is supported.
* The value zero, false, is returned if single block erase is not supported.
*/
bool Sd2Card::eraseSingleBlockEnable() {
csd_t csd;
return readCSD(&csd) ? csd.v1.erase_blk_en : false;
}
//------------------------------------------------------------------------------
/**
* Initialize an SD flash memory card.
*
* \param[in] sckRateID SPI clock rate selector. See setSckRate().
* \param[in] chipSelectPin SD chip select pin number.
*
* \return The value one, true, is returned for success and
* the value zero, false, is returned for failure. The reason for failure
* can be determined by calling errorCode() and errorData().
*/
bool Sd2Card::init(uint8_t sckRateID, uint8_t chipSelectPin) {
errorCode_ = type_ = 0;
chipSelectPin_ = chipSelectPin;
// 16-bit init start time allows over a minute
uint16_t t0 = (uint16_t)millis();
uint32_t arg;
// set pin modes
pinMode(chipSelectPin_, OUTPUT);
chipSelectHigh();
pinMode(SPI_MISO_PIN, INPUT);
pinMode(SPI_MOSI_PIN, OUTPUT);
pinMode(SPI_SCK_PIN, OUTPUT);
#if DISABLED(SOFTWARE_SPI)
// SS must be in output mode even it is not chip select
pinMode(SS_PIN, OUTPUT);
// set SS high - may be chip select for another SPI device
#if SET_SPI_SS_HIGH
digitalWrite(SS_PIN, HIGH);
#endif // SET_SPI_SS_HIGH
// set SCK rate for initialization commands
spiRate_ = SPI_SD_INIT_RATE;
spiInit(spiRate_);
#endif // SOFTWARE_SPI
// must supply min of 74 clock cycles with CS high.
for (uint8_t i = 0; i < 10; i++) spiSend(0XFF);
// command to go idle in SPI mode
while ((status_ = cardCommand(CMD0, 0)) != R1_IDLE_STATE) {
if (((uint16_t)millis() - t0) > SD_INIT_TIMEOUT) {
error(SD_CARD_ERROR_CMD0);
goto fail;
}
}
// check SD version
if ((cardCommand(CMD8, 0x1AA) & R1_ILLEGAL_COMMAND)) {
type(SD_CARD_TYPE_SD1);
}
else {
// only need last byte of r7 response
for (uint8_t i = 0; i < 4; i++) status_ = spiRec();
if (status_ != 0XAA) {
error(SD_CARD_ERROR_CMD8);
goto fail;
}
type(SD_CARD_TYPE_SD2);
}
// initialize card and send host supports SDHC if SD2
arg = type() == SD_CARD_TYPE_SD2 ? 0X40000000 : 0;
while ((status_ = cardAcmd(ACMD41, arg)) != R1_READY_STATE) {
// check for timeout
if (((uint16_t)millis() - t0) > SD_INIT_TIMEOUT) {
error(SD_CARD_ERROR_ACMD41);
goto fail;
}
}
// if SD2 read OCR register to check for SDHC card
if (type() == SD_CARD_TYPE_SD2) {
if (cardCommand(CMD58, 0)) {
error(SD_CARD_ERROR_CMD58);
goto fail;
}
if ((spiRec() & 0XC0) == 0XC0) type(SD_CARD_TYPE_SDHC);
// discard rest of ocr - contains allowed voltage range
for (uint8_t i = 0; i < 3; i++) spiRec();
}
chipSelectHigh();
#if DISABLED(SOFTWARE_SPI)
return setSckRate(sckRateID);
#else // SOFTWARE_SPI
UNUSED(sckRateID);
return true;
#endif // SOFTWARE_SPI
fail:
chipSelectHigh();
return false;
}
//------------------------------------------------------------------------------
/**
* Read a 512 byte block from an SD card.
*
* \param[in] blockNumber Logical block to be read.
* \param[out] dst Pointer to the location that will receive the data.
* \return The value one, true, is returned for success and
* the value zero, false, is returned for failure.
*/
bool Sd2Card::readBlock(uint32_t blockNumber, uint8_t* dst) {
// use address if not SDHC card
if (type() != SD_CARD_TYPE_SDHC) blockNumber <<= 9;
#if ENABLED(SD_CHECK_AND_RETRY)
uint8_t retryCnt = 3;
do {
if (!cardCommand(CMD17, blockNumber)) {
if (readData(dst, 512)) return true;
}
else
error(SD_CARD_ERROR_CMD17);
if (--retryCnt) break;
chipSelectHigh();
cardCommand(CMD12, 0); // Try sending a stop command, ignore the result.
errorCode_ = 0;
} while (true);
#else
if (cardCommand(CMD17, blockNumber))
error(SD_CARD_ERROR_CMD17);
else
return readData(dst, 512);
#endif
chipSelectHigh();
return false;
}
//------------------------------------------------------------------------------
/** Read one data block in a multiple block read sequence
*
* \param[in] dst Pointer to the location for the data to be read.
*
* \return The value one, true, is returned for success and
* the value zero, false, is returned for failure.
*/
bool Sd2Card::readData(uint8_t* dst) {
chipSelectLow();
return readData(dst, 512);
}
#if ENABLED(SD_CHECK_AND_RETRY)
static const uint16_t crctab[] PROGMEM = {
0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50A5, 0x60C6, 0x70E7,
0x8108, 0x9129, 0xA14A, 0xB16B, 0xC18C, 0xD1AD, 0xE1CE, 0xF1EF,
0x1231, 0x0210, 0x3273, 0x2252, 0x52B5, 0x4294, 0x72F7, 0x62D6,
0x9339, 0x8318, 0xB37B, 0xA35A, 0xD3BD, 0xC39C, 0xF3FF, 0xE3DE,
0x2462, 0x3443, 0x0420, 0x1401, 0x64E6, 0x74C7, 0x44A4, 0x5485,
0xA56A, 0xB54B, 0x8528, 0x9509, 0xE5EE, 0xF5CF, 0xC5AC, 0xD58D,
0x3653, 0x2672, 0x1611, 0x0630, 0x76D7, 0x66F6, 0x5695, 0x46B4,
0xB75B, 0xA77A, 0x9719, 0x8738, 0xF7DF, 0xE7FE, 0xD79D, 0xC7BC,
0x48C4, 0x58E5, 0x6886, 0x78A7, 0x0840, 0x1861, 0x2802, 0x3823,
0xC9CC, 0xD9ED, 0xE98E, 0xF9AF, 0x8948, 0x9969, 0xA90A, 0xB92B,
0x5AF5, 0x4AD4, 0x7AB7, 0x6A96, 0x1A71, 0x0A50, 0x3A33, 0x2A12,
0xDBFD, 0xCBDC, 0xFBBF, 0xEB9E, 0x9B79, 0x8B58, 0xBB3B, 0xAB1A,
0x6CA6, 0x7C87, 0x4CE4, 0x5CC5, 0x2C22, 0x3C03, 0x0C60, 0x1C41,
0xEDAE, 0xFD8F, 0xCDEC, 0xDDCD, 0xAD2A, 0xBD0B, 0x8D68, 0x9D49,
0x7E97, 0x6EB6, 0x5ED5, 0x4EF4, 0x3E13, 0x2E32, 0x1E51, 0x0E70,
0xFF9F, 0xEFBE, 0xDFDD, 0xCFFC, 0xBF1B, 0xAF3A, 0x9F59, 0x8F78,
0x9188, 0x81A9, 0xB1CA, 0xA1EB, 0xD10C, 0xC12D, 0xF14E, 0xE16F,
0x1080, 0x00A1, 0x30C2, 0x20E3, 0x5004, 0x4025, 0x7046, 0x6067,
0x83B9, 0x9398, 0xA3FB, 0xB3DA, 0xC33D, 0xD31C, 0xE37F, 0xF35E,
0x02B1, 0x1290, 0x22F3, 0x32D2, 0x4235, 0x5214, 0x6277, 0x7256,
0xB5EA, 0xA5CB, 0x95A8, 0x8589, 0xF56E, 0xE54F, 0xD52C, 0xC50D,
0x34E2, 0x24C3, 0x14A0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405,
0xA7DB, 0xB7FA, 0x8799, 0x97B8, 0xE75F, 0xF77E, 0xC71D, 0xD73C,
0x26D3, 0x36F2, 0x0691, 0x16B0, 0x6657, 0x7676, 0x4615, 0x5634,
0xD94C, 0xC96D, 0xF90E, 0xE92F, 0x99C8, 0x89E9, 0xB98A, 0xA9AB,
0x5844, 0x4865, 0x7806, 0x6827, 0x18C0, 0x08E1, 0x3882, 0x28A3,
0xCB7D, 0xDB5C, 0xEB3F, 0xFB1E, 0x8BF9, 0x9BD8, 0xABBB, 0xBB9A,
0x4A75, 0x5A54, 0x6A37, 0x7A16, 0x0AF1, 0x1AD0, 0x2AB3, 0x3A92,
0xFD2E, 0xED0F, 0xDD6C, 0xCD4D, 0xBDAA, 0xAD8B, 0x9DE8, 0x8DC9,
0x7C26, 0x6C07, 0x5C64, 0x4C45, 0x3CA2, 0x2C83, 0x1CE0, 0x0CC1,
0xEF1F, 0xFF3E, 0xCF5D, 0xDF7C, 0xAF9B, 0xBFBA, 0x8FD9, 0x9FF8,
0x6E17, 0x7E36, 0x4E55, 0x5E74, 0x2E93, 0x3EB2, 0x0ED1, 0x1EF0
};
static uint16_t CRC_CCITT(const uint8_t* data, size_t n) {
uint16_t crc = 0;
for (size_t i = 0; i < n; i++) {
crc = pgm_read_word(&crctab[(crc >> 8 ^ data[i]) & 0XFF]) ^ (crc << 8);
}
return crc;
}
#endif
//------------------------------------------------------------------------------
bool Sd2Card::readData(uint8_t* dst, uint16_t count) {
// wait for start block token
uint16_t t0 = millis();
while ((status_ = spiRec()) == 0XFF) {
if (((uint16_t)millis() - t0) > SD_READ_TIMEOUT) {
error(SD_CARD_ERROR_READ_TIMEOUT);
goto fail;
}
}
if (status_ != DATA_START_BLOCK) {
error(SD_CARD_ERROR_READ);
goto fail;
}
// transfer data
spiRead(dst, count);
#if ENABLED(SD_CHECK_AND_RETRY)
{
uint16_t calcCrc = CRC_CCITT(dst, count);
uint16_t recvCrc = spiRec() << 8;
recvCrc |= spiRec();
if (calcCrc != recvCrc) {
error(SD_CARD_ERROR_CRC);
goto fail;
}
}
#else
// discard CRC
spiRec();
spiRec();
#endif
chipSelectHigh();
// Send an additional dummy byte, required by Toshiba Flash Air SD Card
spiSend(0XFF);
return true;
fail:
chipSelectHigh();
// Send an additional dummy byte, required by Toshiba Flash Air SD Card
spiSend(0XFF);
return false;
}
//------------------------------------------------------------------------------
/** read CID or CSR register */
bool Sd2Card::readRegister(uint8_t cmd, void* buf) {
uint8_t* dst = reinterpret_cast<uint8_t*>(buf);
if (cardCommand(cmd, 0)) {
error(SD_CARD_ERROR_READ_REG);
goto fail;
}
return readData(dst, 16);
fail:
chipSelectHigh();
return false;
}
//------------------------------------------------------------------------------
/** Start a read multiple blocks sequence.
*
* \param[in] blockNumber Address of first block in sequence.
*
* \note This function is used with readData() and readStop() for optimized
* multiple block reads. SPI chipSelect must be low for the entire sequence.
*
* \return The value one, true, is returned for success and
* the value zero, false, is returned for failure.
*/
bool Sd2Card::readStart(uint32_t blockNumber) {
if (type() != SD_CARD_TYPE_SDHC) blockNumber <<= 9;
if (cardCommand(CMD18, blockNumber)) {
error(SD_CARD_ERROR_CMD18);
goto fail;
}
chipSelectHigh();
return true;
fail:
chipSelectHigh();
return false;
}
//------------------------------------------------------------------------------
/** End a read multiple blocks sequence.
*
* \return The value one, true, is returned for success and
* the value zero, false, is returned for failure.
*/
bool Sd2Card::readStop() {
chipSelectLow();
if (cardCommand(CMD12, 0)) {
error(SD_CARD_ERROR_CMD12);
goto fail;
}
chipSelectHigh();
return true;
fail:
chipSelectHigh();
return false;
}
//------------------------------------------------------------------------------
/**
* Set the SPI clock rate.
*
* \param[in] sckRateID A value in the range [0, 6].
*
* The SPI clock will be set to F_CPU/pow(2, 1 + sckRateID). The maximum
* SPI rate is F_CPU/2 for \a sckRateID = 0 and the minimum rate is F_CPU/128
* for \a scsRateID = 6.
*
* \return The value one, true, is returned for success and the value zero,
* false, is returned for an invalid value of \a sckRateID.
*/
bool Sd2Card::setSckRate(uint8_t sckRateID) {
if (sckRateID > 6) {
error(SD_CARD_ERROR_SCK_RATE);
return false;
}
spiRate_ = sckRateID;
return true;
}
//------------------------------------------------------------------------------
// wait for card to go not busy
bool Sd2Card::waitNotBusy(uint16_t timeoutMillis) {
uint16_t t0 = millis();
while (spiRec() != 0XFF) {
if (((uint16_t)millis() - t0) >= timeoutMillis) goto fail;
}
return true;
fail:
return false;
}
//------------------------------------------------------------------------------
/**
* Writes a 512 byte block to an SD card.
*
* \param[in] blockNumber Logical block to be written.
* \param[in] src Pointer to the location of the data to be written.
* \return The value one, true, is returned for success and
* the value zero, false, is returned for failure.
*/
bool Sd2Card::writeBlock(uint32_t blockNumber, const uint8_t* src) {
// use address if not SDHC card
if (type() != SD_CARD_TYPE_SDHC) blockNumber <<= 9;
if (cardCommand(CMD24, blockNumber)) {
error(SD_CARD_ERROR_CMD24);
goto fail;
}
if (!writeData(DATA_START_BLOCK, src)) goto fail;
// wait for flash programming to complete
if (!waitNotBusy(SD_WRITE_TIMEOUT)) {
error(SD_CARD_ERROR_WRITE_TIMEOUT);
goto fail;
}
// response is r2 so get and check two bytes for nonzero
if (cardCommand(CMD13, 0) || spiRec()) {
error(SD_CARD_ERROR_WRITE_PROGRAMMING);
goto fail;
}
chipSelectHigh();
return true;
fail:
chipSelectHigh();
return false;
}
//------------------------------------------------------------------------------
/** Write one data block in a multiple block write sequence
* \param[in] src Pointer to the location of the data to be written.
* \return The value one, true, is returned for success and
* the value zero, false, is returned for failure.
*/
bool Sd2Card::writeData(const uint8_t* src) {
chipSelectLow();
// wait for previous write to finish
if (!waitNotBusy(SD_WRITE_TIMEOUT)) goto fail;
if (!writeData(WRITE_MULTIPLE_TOKEN, src)) goto fail;
chipSelectHigh();
return true;
fail:
error(SD_CARD_ERROR_WRITE_MULTIPLE);
chipSelectHigh();
return false;
}
//------------------------------------------------------------------------------
// send one block of data for write block or write multiple blocks
bool Sd2Card::writeData(uint8_t token, const uint8_t* src) {
spiSendBlock(token, src);
spiSend(0xff); // dummy crc
spiSend(0xff); // dummy crc
status_ = spiRec();
if ((status_ & DATA_RES_MASK) != DATA_RES_ACCEPTED) {
error(SD_CARD_ERROR_WRITE);
goto fail;
}
return true;
fail:
chipSelectHigh();
return false;
}
//------------------------------------------------------------------------------
/** Start a write multiple blocks sequence.
*
* \param[in] blockNumber Address of first block in sequence.
* \param[in] eraseCount The number of blocks to be pre-erased.
*
* \note This function is used with writeData() and writeStop()
* for optimized multiple block writes.
*
* \return The value one, true, is returned for success and
* the value zero, false, is returned for failure.
*/
bool Sd2Card::writeStart(uint32_t blockNumber, uint32_t eraseCount) {
// send pre-erase count
if (cardAcmd(ACMD23, eraseCount)) {
error(SD_CARD_ERROR_ACMD23);
goto fail;
}
// use address if not SDHC card
if (type() != SD_CARD_TYPE_SDHC) blockNumber <<= 9;
if (cardCommand(CMD25, blockNumber)) {
error(SD_CARD_ERROR_CMD25);
goto fail;
}
chipSelectHigh();
return true;
fail:
chipSelectHigh();
return false;
}
//------------------------------------------------------------------------------
/** End a write multiple blocks sequence.
*
* \return The value one, true, is returned for success and
* the value zero, false, is returned for failure.
*/
bool Sd2Card::writeStop() {
chipSelectLow();
if (!waitNotBusy(SD_WRITE_TIMEOUT)) goto fail;
spiSend(STOP_TRAN_TOKEN);
if (!waitNotBusy(SD_WRITE_TIMEOUT)) goto fail;
chipSelectHigh();
return true;
fail:
error(SD_CARD_ERROR_STOP_TRAN);
chipSelectHigh();
return false;
}
#endif
-251
View File
@@ -1,251 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
* Arduino Sd2Card Library
* Copyright (C) 2009 by William Greiman
*
* This file is part of the Arduino Sd2Card Library
*/
#include "Marlin.h"
#if ENABLED(SDSUPPORT)
#ifndef Sd2Card_h
#define Sd2Card_h
/**
* \file
* \brief Sd2Card class for V2 SD/SDHC cards
*/
#include "SdFatConfig.h"
#include "SdInfo.h"
//------------------------------------------------------------------------------
// SPI speed is F_CPU/2^(1 + index), 0 <= index <= 6
/** Set SCK to max rate of F_CPU/2. See Sd2Card::setSckRate(). */
uint8_t const SPI_FULL_SPEED = 0;
/** Set SCK rate to F_CPU/4. See Sd2Card::setSckRate(). */
uint8_t const SPI_HALF_SPEED = 1;
/** Set SCK rate to F_CPU/8. See Sd2Card::setSckRate(). */
uint8_t const SPI_QUARTER_SPEED = 2;
/** Set SCK rate to F_CPU/16. See Sd2Card::setSckRate(). */
uint8_t const SPI_EIGHTH_SPEED = 3;
/** Set SCK rate to F_CPU/32. See Sd2Card::setSckRate(). */
uint8_t const SPI_SIXTEENTH_SPEED = 4;
//------------------------------------------------------------------------------
/** init timeout ms */
uint16_t const SD_INIT_TIMEOUT = 2000;
/** erase timeout ms */
uint16_t const SD_ERASE_TIMEOUT = 10000;
/** read timeout ms */
uint16_t const SD_READ_TIMEOUT = 300;
/** write time out ms */
uint16_t const SD_WRITE_TIMEOUT = 600;
//------------------------------------------------------------------------------
// SD card errors
/** timeout error for command CMD0 (initialize card in SPI mode) */
uint8_t const SD_CARD_ERROR_CMD0 = 0X1;
/** CMD8 was not accepted - not a valid SD card*/
uint8_t const SD_CARD_ERROR_CMD8 = 0X2;
/** card returned an error response for CMD12 (write stop) */
uint8_t const SD_CARD_ERROR_CMD12 = 0X3;
/** card returned an error response for CMD17 (read block) */
uint8_t const SD_CARD_ERROR_CMD17 = 0X4;
/** card returned an error response for CMD18 (read multiple block) */
uint8_t const SD_CARD_ERROR_CMD18 = 0X5;
/** card returned an error response for CMD24 (write block) */
uint8_t const SD_CARD_ERROR_CMD24 = 0X6;
/** WRITE_MULTIPLE_BLOCKS command failed */
uint8_t const SD_CARD_ERROR_CMD25 = 0X7;
/** card returned an error response for CMD58 (read OCR) */
uint8_t const SD_CARD_ERROR_CMD58 = 0X8;
/** SET_WR_BLK_ERASE_COUNT failed */
uint8_t const SD_CARD_ERROR_ACMD23 = 0X9;
/** ACMD41 initialization process timeout */
uint8_t const SD_CARD_ERROR_ACMD41 = 0XA;
/** card returned a bad CSR version field */
uint8_t const SD_CARD_ERROR_BAD_CSD = 0XB;
/** erase block group command failed */
uint8_t const SD_CARD_ERROR_ERASE = 0XC;
/** card not capable of single block erase */
uint8_t const SD_CARD_ERROR_ERASE_SINGLE_BLOCK = 0XD;
/** Erase sequence timed out */
uint8_t const SD_CARD_ERROR_ERASE_TIMEOUT = 0XE;
/** card returned an error token instead of read data */
uint8_t const SD_CARD_ERROR_READ = 0XF;
/** read CID or CSD failed */
uint8_t const SD_CARD_ERROR_READ_REG = 0X10;
/** timeout while waiting for start of read data */
uint8_t const SD_CARD_ERROR_READ_TIMEOUT = 0X11;
/** card did not accept STOP_TRAN_TOKEN */
uint8_t const SD_CARD_ERROR_STOP_TRAN = 0X12;
/** card returned an error token as a response to a write operation */
uint8_t const SD_CARD_ERROR_WRITE = 0X13;
/** attempt to write protected block zero */
uint8_t const SD_CARD_ERROR_WRITE_BLOCK_ZERO = 0X14; // REMOVE - not used
/** card did not go ready for a multiple block write */
uint8_t const SD_CARD_ERROR_WRITE_MULTIPLE = 0X15;
/** card returned an error to a CMD13 status check after a write */
uint8_t const SD_CARD_ERROR_WRITE_PROGRAMMING = 0X16;
/** timeout occurred during write programming */
uint8_t const SD_CARD_ERROR_WRITE_TIMEOUT = 0X17;
/** incorrect rate selected */
uint8_t const SD_CARD_ERROR_SCK_RATE = 0X18;
/** init() not called */
uint8_t const SD_CARD_ERROR_INIT_NOT_CALLED = 0X19;
/** crc check error */
uint8_t const SD_CARD_ERROR_CRC = 0X20;
//------------------------------------------------------------------------------
// card types
/** Standard capacity V1 SD card */
uint8_t const SD_CARD_TYPE_SD1 = 1;
/** Standard capacity V2 SD card */
uint8_t const SD_CARD_TYPE_SD2 = 2;
/** High Capacity SD card */
uint8_t const SD_CARD_TYPE_SDHC = 3;
/**
* define SOFTWARE_SPI to use bit-bang SPI
*/
//------------------------------------------------------------------------------
#if MEGA_SOFT_SPI && (defined(__AVR_ATmega1280__)||defined(__AVR_ATmega2560__))
#define SOFTWARE_SPI
#elif USE_SOFTWARE_SPI
#define SOFTWARE_SPI
#endif // MEGA_SOFT_SPI
//------------------------------------------------------------------------------
// SPI pin definitions - do not edit here - change in SdFatConfig.h
//
#if DISABLED(SOFTWARE_SPI)
// hardware pin defs
/** The default chip select pin for the SD card is SS. */
#define SD_CHIP_SELECT_PIN SS_PIN
// The following three pins must not be redefined for hardware SPI.
/** SPI Master Out Slave In pin */
#define SPI_MOSI_PIN MOSI_PIN
/** SPI Master In Slave Out pin */
#define SPI_MISO_PIN MISO_PIN
/** SPI Clock pin */
#define SPI_SCK_PIN SCK_PIN
#else // SOFTWARE_SPI
/** SPI chip select pin */
#define SD_CHIP_SELECT_PIN SOFT_SPI_CS_PIN
/** SPI Master Out Slave In pin */
#define SPI_MOSI_PIN SOFT_SPI_MOSI_PIN
/** SPI Master In Slave Out pin */
#define SPI_MISO_PIN SOFT_SPI_MISO_PIN
/** SPI Clock pin */
#define SPI_SCK_PIN SOFT_SPI_SCK_PIN
#endif // SOFTWARE_SPI
//------------------------------------------------------------------------------
/**
* \class Sd2Card
* \brief Raw access to SD and SDHC flash memory cards.
*/
class Sd2Card {
public:
/** Construct an instance of Sd2Card. */
Sd2Card() : errorCode_(SD_CARD_ERROR_INIT_NOT_CALLED), type_(0) {}
uint32_t cardSize();
bool erase(uint32_t firstBlock, uint32_t lastBlock);
bool eraseSingleBlockEnable();
/**
* Set SD error code.
* \param[in] code value for error code.
*/
void error(uint8_t code) {errorCode_ = code;}
/**
* \return error code for last error. See Sd2Card.h for a list of error codes.
*/
int errorCode() const {return errorCode_;}
/** \return error data for last error. */
int errorData() const {return status_;}
/**
* Initialize an SD flash memory card with default clock rate and chip
* select pin. See sd2Card::init(uint8_t sckRateID, uint8_t chipSelectPin).
*
* \return true for success or false for failure.
*/
bool init(uint8_t sckRateID = SPI_FULL_SPEED,
uint8_t chipSelectPin = SD_CHIP_SELECT_PIN);
bool readBlock(uint32_t block, uint8_t* dst);
/**
* Read a card's CID register. The CID contains card identification
* information such as Manufacturer ID, Product name, Product serial
* number and Manufacturing date.
*
* \param[out] cid pointer to area for returned data.
*
* \return true for success or false for failure.
*/
bool readCID(cid_t* cid) {
return readRegister(CMD10, cid);
}
/**
* Read a card's CSD register. The CSD contains Card-Specific Data that
* provides information regarding access to the card's contents.
*
* \param[out] csd pointer to area for returned data.
*
* \return true for success or false for failure.
*/
bool readCSD(csd_t* csd) {
return readRegister(CMD9, csd);
}
bool readData(uint8_t* dst);
bool readStart(uint32_t blockNumber);
bool readStop();
bool setSckRate(uint8_t sckRateID);
/** Return the card type: SD V1, SD V2 or SDHC
* \return 0 - SD V1, 1 - SD V2, or 3 - SDHC.
*/
int type() const {return type_;}
bool writeBlock(uint32_t blockNumber, const uint8_t* src);
bool writeData(const uint8_t* src);
bool writeStart(uint32_t blockNumber, uint32_t eraseCount);
bool writeStop();
private:
//----------------------------------------------------------------------------
uint8_t chipSelectPin_;
uint8_t errorCode_;
uint8_t spiRate_;
uint8_t status_;
uint8_t type_;
// private functions
uint8_t cardAcmd(uint8_t cmd, uint32_t arg) {
cardCommand(CMD55, 0);
return cardCommand(cmd, arg);
}
uint8_t cardCommand(uint8_t cmd, uint32_t arg);
bool readData(uint8_t* dst, uint16_t count);
bool readRegister(uint8_t cmd, void* buf);
void chipSelectHigh();
void chipSelectLow();
void type(uint8_t value) {type_ = value;}
bool waitNotBusy(uint16_t timeoutMillis);
bool writeData(uint8_t token, const uint8_t* src);
};
#endif // Sd2Card_h
#endif
-492
View File
@@ -1,492 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
* Arduino SdFat Library
* Copyright (C) 2009 by William Greiman
*
* This file is part of the Arduino Sd2Card Library
*/
#include "Marlin.h"
#if ENABLED(SDSUPPORT)
#ifndef SdBaseFile_h
#define SdBaseFile_h
/**
* \file
* \brief SdBaseFile class
*/
#include "Marlin.h"
#include "SdFatConfig.h"
#include "SdVolume.h"
//------------------------------------------------------------------------------
/**
* \struct filepos_t
* \brief internal type for istream
* do not use in user apps
*/
struct filepos_t {
/** stream position */
uint32_t position;
/** cluster for position */
uint32_t cluster;
filepos_t() : position(0), cluster(0) {}
};
// use the gnu style oflag in open()
/** open() oflag for reading */
uint8_t const O_READ = 0X01;
/** open() oflag - same as O_IN */
uint8_t const O_RDONLY = O_READ;
/** open() oflag for write */
uint8_t const O_WRITE = 0X02;
/** open() oflag - same as O_WRITE */
uint8_t const O_WRONLY = O_WRITE;
/** open() oflag for reading and writing */
uint8_t const O_RDWR = (O_READ | O_WRITE);
/** open() oflag mask for access modes */
uint8_t const O_ACCMODE = (O_READ | O_WRITE);
/** The file offset shall be set to the end of the file prior to each write. */
uint8_t const O_APPEND = 0X04;
/** synchronous writes - call sync() after each write */
uint8_t const O_SYNC = 0X08;
/** truncate the file to zero length */
uint8_t const O_TRUNC = 0X10;
/** set the initial position at the end of the file */
uint8_t const O_AT_END = 0X20;
/** create the file if nonexistent */
uint8_t const O_CREAT = 0X40;
/** If O_CREAT and O_EXCL are set, open() shall fail if the file exists */
uint8_t const O_EXCL = 0X80;
// SdBaseFile class static and const definitions
// flags for ls()
/** ls() flag to print modify date */
uint8_t const LS_DATE = 1;
/** ls() flag to print file size */
uint8_t const LS_SIZE = 2;
/** ls() flag for recursive list of subdirectories */
uint8_t const LS_R = 4;
// flags for timestamp
/** set the file's last access date */
uint8_t const T_ACCESS = 1;
/** set the file's creation date and time */
uint8_t const T_CREATE = 2;
/** Set the file's write date and time */
uint8_t const T_WRITE = 4;
// values for type_
/** This file has not been opened. */
uint8_t const FAT_FILE_TYPE_CLOSED = 0;
/** A normal file */
uint8_t const FAT_FILE_TYPE_NORMAL = 1;
/** A FAT12 or FAT16 root directory */
uint8_t const FAT_FILE_TYPE_ROOT_FIXED = 2;
/** A FAT32 root directory */
uint8_t const FAT_FILE_TYPE_ROOT32 = 3;
/** A subdirectory file*/
uint8_t const FAT_FILE_TYPE_SUBDIR = 4;
/** Test value for directory type */
uint8_t const FAT_FILE_TYPE_MIN_DIR = FAT_FILE_TYPE_ROOT_FIXED;
/** date field for FAT directory entry
* \param[in] year [1980,2107]
* \param[in] month [1,12]
* \param[in] day [1,31]
*
* \return Packed date for dir_t entry.
*/
static inline uint16_t FAT_DATE(uint16_t year, uint8_t month, uint8_t day) {
return (year - 1980) << 9 | month << 5 | day;
}
/** year part of FAT directory date field
* \param[in] fatDate Date in packed dir format.
*
* \return Extracted year [1980,2107]
*/
static inline uint16_t FAT_YEAR(uint16_t fatDate) {
return 1980 + (fatDate >> 9);
}
/** month part of FAT directory date field
* \param[in] fatDate Date in packed dir format.
*
* \return Extracted month [1,12]
*/
static inline uint8_t FAT_MONTH(uint16_t fatDate) {
return (fatDate >> 5) & 0XF;
}
/** day part of FAT directory date field
* \param[in] fatDate Date in packed dir format.
*
* \return Extracted day [1,31]
*/
static inline uint8_t FAT_DAY(uint16_t fatDate) {
return fatDate & 0X1F;
}
/** time field for FAT directory entry
* \param[in] hour [0,23]
* \param[in] minute [0,59]
* \param[in] second [0,59]
*
* \return Packed time for dir_t entry.
*/
static inline uint16_t FAT_TIME(uint8_t hour, uint8_t minute, uint8_t second) {
return hour << 11 | minute << 5 | second >> 1;
}
/** hour part of FAT directory time field
* \param[in] fatTime Time in packed dir format.
*
* \return Extracted hour [0,23]
*/
static inline uint8_t FAT_HOUR(uint16_t fatTime) {
return fatTime >> 11;
}
/** minute part of FAT directory time field
* \param[in] fatTime Time in packed dir format.
*
* \return Extracted minute [0,59]
*/
static inline uint8_t FAT_MINUTE(uint16_t fatTime) {
return (fatTime >> 5) & 0X3F;
}
/** second part of FAT directory time field
* Note second/2 is stored in packed time.
*
* \param[in] fatTime Time in packed dir format.
*
* \return Extracted second [0,58]
*/
static inline uint8_t FAT_SECOND(uint16_t fatTime) {
return 2 * (fatTime & 0X1F);
}
/** Default date for file timestamps is 1 Jan 2000 */
uint16_t const FAT_DEFAULT_DATE = ((2000 - 1980) << 9) | (1 << 5) | 1;
/** Default time for file timestamp is 1 am */
uint16_t const FAT_DEFAULT_TIME = (1 << 11);
//------------------------------------------------------------------------------
/**
* \class SdBaseFile
* \brief Base class for SdFile with Print and C++ streams.
*/
class SdBaseFile {
public:
/** Create an instance. */
SdBaseFile() : writeError(false), type_(FAT_FILE_TYPE_CLOSED) {}
SdBaseFile(const char* path, uint8_t oflag);
~SdBaseFile() {if (isOpen()) close();}
/**
* writeError is set to true if an error occurs during a write().
* Set writeError to false before calling print() and/or write() and check
* for true after calls to print() and/or write().
*/
bool writeError;
//----------------------------------------------------------------------------
// helpers for stream classes
/** get position for streams
* \param[out] pos struct to receive position
*/
void getpos(filepos_t* pos);
/** set position for streams
* \param[out] pos struct with value for new position
*/
void setpos(filepos_t* pos);
//----------------------------------------------------------------------------
bool close();
bool contiguousRange(uint32_t* bgnBlock, uint32_t* endBlock);
bool createContiguous(SdBaseFile* dirFile,
const char* path, uint32_t size);
/** \return The current cluster number for a file or directory. */
uint32_t curCluster() const {return curCluster_;}
/** \return The current position for a file or directory. */
uint32_t curPosition() const {return curPosition_;}
/** \return Current working directory */
static SdBaseFile* cwd() {return cwd_;}
/** Set the date/time callback function
*
* \param[in] dateTime The user's call back function. The callback
* function is of the form:
*
* \code
* void dateTime(uint16_t* date, uint16_t* time) {
* uint16_t year;
* uint8_t month, day, hour, minute, second;
*
* // User gets date and time from GPS or real-time clock here
*
* // return date using FAT_DATE macro to format fields
* *date = FAT_DATE(year, month, day);
*
* // return time using FAT_TIME macro to format fields
* *time = FAT_TIME(hour, minute, second);
* }
* \endcode
*
* Sets the function that is called when a file is created or when
* a file's directory entry is modified by sync(). All timestamps,
* access, creation, and modify, are set when a file is created.
* sync() maintains the last access date and last modify date/time.
*
* See the timestamp() function.
*/
static void dateTimeCallback(
void (*dateTime)(uint16_t* date, uint16_t* time)) {
dateTime_ = dateTime;
}
/** Cancel the date/time callback function. */
static void dateTimeCallbackCancel() {dateTime_ = 0;}
bool dirEntry(dir_t* dir);
static void dirName(const dir_t& dir, char* name);
bool exists(const char* name);
int16_t fgets(char* str, int16_t num, char* delim = 0);
/** \return The total number of bytes in a file or directory. */
uint32_t fileSize() const {return fileSize_;}
/** \return The first cluster number for a file or directory. */
uint32_t firstCluster() const {return firstCluster_;}
bool getFilename(char* name);
/** \return True if this is a directory else false. */
bool isDir() const {return type_ >= FAT_FILE_TYPE_MIN_DIR;}
/** \return True if this is a normal file else false. */
bool isFile() const {return type_ == FAT_FILE_TYPE_NORMAL;}
/** \return True if this is an open file/directory else false. */
bool isOpen() const {return type_ != FAT_FILE_TYPE_CLOSED;}
/** \return True if this is a subdirectory else false. */
bool isSubDir() const {return type_ == FAT_FILE_TYPE_SUBDIR;}
/** \return True if this is the root directory. */
bool isRoot() const {
return type_ == FAT_FILE_TYPE_ROOT_FIXED || type_ == FAT_FILE_TYPE_ROOT32;
}
void ls(uint8_t flags = 0, uint8_t indent = 0);
bool mkdir(SdBaseFile* dir, const char* path, bool pFlag = true);
// alias for backward compactability
bool makeDir(SdBaseFile* dir, const char* path) {
return mkdir(dir, path, false);
}
bool open(SdBaseFile* dirFile, uint16_t index, uint8_t oflag);
bool open(SdBaseFile* dirFile, const char* path, uint8_t oflag);
bool open(const char* path, uint8_t oflag = O_READ);
bool openNext(SdBaseFile* dirFile, uint8_t oflag);
bool openRoot(SdVolume* vol);
int peek();
static void printFatDate(uint16_t fatDate);
static void printFatTime(uint16_t fatTime);
bool printName();
int16_t read();
int16_t read(void* buf, uint16_t nbyte);
int8_t readDir(dir_t* dir, char* longFilename);
static bool remove(SdBaseFile* dirFile, const char* path);
bool remove();
/** Set the file's current position to zero. */
void rewind() {seekSet(0);}
bool rename(SdBaseFile* dirFile, const char* newPath);
bool rmdir();
// for backward compatibility
bool rmDir() {return rmdir();}
bool rmRfStar();
/** Set the files position to current position + \a pos. See seekSet().
* \param[in] offset The new position in bytes from the current position.
* \return true for success or false for failure.
*/
bool seekCur(int32_t offset) {
return seekSet(curPosition_ + offset);
}
/** Set the files position to end-of-file + \a offset. See seekSet().
* \param[in] offset The new position in bytes from end-of-file.
* \return true for success or false for failure.
*/
bool seekEnd(int32_t offset = 0) {return seekSet(fileSize_ + offset);}
bool seekSet(uint32_t pos);
bool sync();
bool timestamp(SdBaseFile* file);
bool timestamp(uint8_t flag, uint16_t year, uint8_t month, uint8_t day,
uint8_t hour, uint8_t minute, uint8_t second);
/** Type of file. You should use isFile() or isDir() instead of type()
* if possible.
*
* \return The file or directory type.
*/
uint8_t type() const {return type_;}
bool truncate(uint32_t size);
/** \return SdVolume that contains this file. */
SdVolume* volume() const {return vol_;}
int16_t write(const void* buf, uint16_t nbyte);
//------------------------------------------------------------------------------
private:
// allow SdFat to set cwd_
friend class SdFat;
// global pointer to cwd dir
static SdBaseFile* cwd_;
// data time callback function
static void (*dateTime_)(uint16_t* date, uint16_t* time);
// bits defined in flags_
// should be 0X0F
static uint8_t const F_OFLAG = (O_ACCMODE | O_APPEND | O_SYNC);
// sync of directory entry required
static uint8_t const F_FILE_DIR_DIRTY = 0X80;
// private data
uint8_t flags_; // See above for definition of flags_ bits
uint8_t fstate_; // error and eof indicator
uint8_t type_; // type of file see above for values
uint32_t curCluster_; // cluster for current file position
uint32_t curPosition_; // current file position in bytes from beginning
uint32_t dirBlock_; // block for this files directory entry
uint8_t dirIndex_; // index of directory entry in dirBlock
uint32_t fileSize_; // file size in bytes
uint32_t firstCluster_; // first cluster of file
SdVolume* vol_; // volume where file is located
/** experimental don't use */
bool openParent(SdBaseFile* dir);
// private functions
bool addCluster();
bool addDirCluster();
dir_t* cacheDirEntry(uint8_t action);
int8_t lsPrintNext(uint8_t flags, uint8_t indent);
static bool make83Name(const char* str, uint8_t* name, const char** ptr);
bool mkdir(SdBaseFile* parent, const uint8_t dname[11]);
bool open(SdBaseFile* dirFile, const uint8_t dname[11], uint8_t oflag);
bool openCachedEntry(uint8_t cacheIndex, uint8_t oflags);
dir_t* readDirCache();
//------------------------------------------------------------------------------
// to be deleted
static void printDirName(const dir_t& dir,
uint8_t width, bool printSlash);
//------------------------------------------------------------------------------
// Deprecated functions - suppress cpplint warnings with NOLINT comment
#if ALLOW_DEPRECATED_FUNCTIONS && !defined(DOXYGEN)
public:
/** \deprecated Use:
* bool contiguousRange(uint32_t* bgnBlock, uint32_t* endBlock);
* \param[out] bgnBlock the first block address for the file.
* \param[out] endBlock the last block address for the file.
* \return true for success or false for failure.
*/
bool contiguousRange(uint32_t& bgnBlock, uint32_t& endBlock) { // NOLINT
return contiguousRange(&bgnBlock, &endBlock);
}
/** \deprecated Use:
* bool createContiguous(SdBaseFile* dirFile,
* const char* path, uint32_t size)
* \param[in] dirFile The directory where the file will be created.
* \param[in] path A path with a valid DOS 8.3 file name.
* \param[in] size The desired file size.
* \return true for success or false for failure.
*/
bool createContiguous(SdBaseFile& dirFile, // NOLINT
const char* path, uint32_t size) {
return createContiguous(&dirFile, path, size);
}
/** \deprecated Use:
* static void dateTimeCallback(
* void (*dateTime)(uint16_t* date, uint16_t* time));
* \param[in] dateTime The user's call back function.
*/
static void dateTimeCallback(
void (*dateTime)(uint16_t& date, uint16_t& time)) { // NOLINT
oldDateTime_ = dateTime;
dateTime_ = dateTime ? oldToNew : 0;
}
/** \deprecated Use: bool dirEntry(dir_t* dir);
* \param[out] dir Location for return of the file's directory entry.
* \return true for success or false for failure.
*/
bool dirEntry(dir_t& dir) {return dirEntry(&dir);} // NOLINT
/** \deprecated Use:
* bool mkdir(SdBaseFile* dir, const char* path);
* \param[in] dir An open SdFat instance for the directory that will contain
* the new directory.
* \param[in] path A path with a valid 8.3 DOS name for the new directory.
* \return true for success or false for failure.
*/
bool mkdir(SdBaseFile& dir, const char* path) { // NOLINT
return mkdir(&dir, path);
}
/** \deprecated Use:
* bool open(SdBaseFile* dirFile, const char* path, uint8_t oflag);
* \param[in] dirFile An open SdFat instance for the directory containing the
* file to be opened.
* \param[in] path A path with a valid 8.3 DOS name for the file.
* \param[in] oflag Values for \a oflag are constructed by a bitwise-inclusive
* OR of flags O_READ, O_WRITE, O_TRUNC, and O_SYNC.
* \return true for success or false for failure.
*/
bool open(SdBaseFile& dirFile, // NOLINT
const char* path, uint8_t oflag) {
return open(&dirFile, path, oflag);
}
/** \deprecated Do not use in new apps
* \param[in] dirFile An open SdFat instance for the directory containing the
* file to be opened.
* \param[in] path A path with a valid 8.3 DOS name for a file to be opened.
* \return true for success or false for failure.
*/
bool open(SdBaseFile& dirFile, const char* path) { // NOLINT
return open(dirFile, path, O_RDWR);
}
/** \deprecated Use:
* bool open(SdBaseFile* dirFile, uint16_t index, uint8_t oflag);
* \param[in] dirFile An open SdFat instance for the directory.
* \param[in] index The \a index of the directory entry for the file to be
* opened. The value for \a index is (directory file position)/32.
* \param[in] oflag Values for \a oflag are constructed by a bitwise-inclusive
* OR of flags O_READ, O_WRITE, O_TRUNC, and O_SYNC.
* \return true for success or false for failure.
*/
bool open(SdBaseFile& dirFile, uint16_t index, uint8_t oflag) { // NOLINT
return open(&dirFile, index, oflag);
}
/** \deprecated Use: bool openRoot(SdVolume* vol);
* \param[in] vol The FAT volume containing the root directory to be opened.
* \return true for success or false for failure.
*/
bool openRoot(SdVolume& vol) {return openRoot(&vol);} // NOLINT
/** \deprecated Use: int8_t readDir(dir_t* dir);
* \param[out] dir The dir_t struct that will receive the data.
* \return bytes read for success zero for eof or -1 for failure.
*/
int8_t readDir(dir_t& dir, char* longFilename) {return readDir(&dir, longFilename);} // NOLINT
/** \deprecated Use:
* static uint8_t remove(SdBaseFile* dirFile, const char* path);
* \param[in] dirFile The directory that contains the file.
* \param[in] path The name of the file to be removed.
* \return true for success or false for failure.
*/
static bool remove(SdBaseFile& dirFile, const char* path) { // NOLINT
return remove(&dirFile, path);
}
//------------------------------------------------------------------------------
// rest are private
private:
static void (*oldDateTime_)(uint16_t& date, uint16_t& time); // NOLINT
static void oldToNew(uint16_t* date, uint16_t* time) {
uint16_t d;
uint16_t t;
oldDateTime_(d, t);
*date = d;
*time = t;
}
#endif // ALLOW_DEPRECATED_FUNCTIONS
};
#endif // SdBaseFile_h
#endif
-134
View File
@@ -1,134 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
* Arduino SdFat Library
* Copyright (C) 2009 by William Greiman
*
* This file is part of the Arduino Sd2Card Library
*/
/**
* \file
* \brief configuration definitions
*/
#include "Marlin.h"
#if ENABLED(SDSUPPORT)
#ifndef SdFatConfig_h
#define SdFatConfig_h
#include <stdint.h>
//------------------------------------------------------------------------------
/**
* To use multiple SD cards set USE_MULTIPLE_CARDS nonzero.
*
* Using multiple cards costs 400 - 500 bytes of flash.
*
* Each card requires about 550 bytes of SRAM so use of a Mega is recommended.
*/
#define USE_MULTIPLE_CARDS 0
//------------------------------------------------------------------------------
/**
* Call flush for endl if ENDL_CALLS_FLUSH is nonzero
*
* The standard for iostreams is to call flush. This is very costly for
* SdFat. Each call to flush causes 2048 bytes of I/O to the SD.
*
* SdFat has a single 512 byte buffer for SD I/O so it must write the current
* data block to the SD, read the directory block from the SD, update the
* directory entry, write the directory block to the SD and read the data
* block back into the buffer.
*
* The SD flash memory controller is not designed for this many rewrites
* so performance may be reduced by more than a factor of 100.
*
* If ENDL_CALLS_FLUSH is zero, you must call flush and/or close to force
* all data to be written to the SD.
*/
#define ENDL_CALLS_FLUSH 0
//------------------------------------------------------------------------------
/**
* Allow use of deprecated functions if ALLOW_DEPRECATED_FUNCTIONS is nonzero
*/
#define ALLOW_DEPRECATED_FUNCTIONS 1
//------------------------------------------------------------------------------
/**
* Allow FAT12 volumes if FAT12_SUPPORT is nonzero.
* FAT12 has not been well tested.
*/
#define FAT12_SUPPORT 0
//------------------------------------------------------------------------------
/**
* SPI init rate for SD initialization commands. Must be 5 (F_CPU/64)
* or 6 (F_CPU/128).
*/
#define SPI_SD_INIT_RATE 5
//------------------------------------------------------------------------------
/**
* Set the SS pin high for hardware SPI. If SS is chip select for another SPI
* device this will disable that device during the SD init phase.
*/
#define SET_SPI_SS_HIGH 1
//------------------------------------------------------------------------------
/**
* Define MEGA_SOFT_SPI nonzero to use software SPI on Mega Arduinos.
* Pins used are SS 10, MOSI 11, MISO 12, and SCK 13.
*
* MEGA_SOFT_SPI allows an unmodified Adafruit GPS Shield to be used
* on Mega Arduinos. Software SPI works well with GPS Shield V1.1
* but many SD cards will fail with GPS Shield V1.0.
*/
#define MEGA_SOFT_SPI 0
//------------------------------------------------------------------------------
/**
* Set USE_SOFTWARE_SPI nonzero to always use software SPI.
*/
#define USE_SOFTWARE_SPI 0
// define software SPI pins so Mega can use unmodified 168/328 shields
/** Software SPI chip select pin for the SD */
#define SOFT_SPI_CS_PIN 10
/** Software SPI Master Out Slave In pin */
#define SOFT_SPI_MOSI_PIN 11
/** Software SPI Master In Slave Out pin */
#define SOFT_SPI_MISO_PIN 12
/** Software SPI Clock pin */
#define SOFT_SPI_SCK_PIN 13
//------------------------------------------------------------------------------
/**
* The __cxa_pure_virtual function is an error handler that is invoked when
* a pure virtual function is called.
*/
#define USE_CXA_PURE_VIRTUAL 1
/** Number of UTF-16 characters per entry */
#define FILENAME_LENGTH 13
/**
* Defines for long (vfat) filenames
*/
/** Number of VFAT entries used. Every entry has 13 UTF-16 characters */
#define MAX_VFAT_ENTRIES (2)
/** Total size of the buffer used to store the long filenames */
#define LONG_FILENAME_LENGTH (FILENAME_LENGTH*MAX_VFAT_ENTRIES+1)
#endif // SdFatConfig_h
#endif
-655
View File
@@ -1,655 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
* Arduino SdFat Library
* Copyright (C) 2009 by William Greiman
*
* This file is part of the Arduino Sd2Card Library
*/
#include "Marlin.h"
#if ENABLED(SDSUPPORT)
#ifndef SdFatStructs_h
#define SdFatStructs_h
#define PACKED __attribute__((__packed__))
/**
* \file
* \brief FAT file structures
*/
/**
* mostly from Microsoft document fatgen103.doc
* http://www.microsoft.com/whdc/system/platform/firmware/fatgen.mspx
*/
//------------------------------------------------------------------------------
/** Value for byte 510 of boot block or MBR */
uint8_t const BOOTSIG0 = 0X55;
/** Value for byte 511 of boot block or MBR */
uint8_t const BOOTSIG1 = 0XAA;
/** Value for bootSignature field int FAT/FAT32 boot sector */
uint8_t const EXTENDED_BOOT_SIG = 0X29;
//------------------------------------------------------------------------------
/**
* \struct partitionTable
* \brief MBR partition table entry
*
* A partition table entry for a MBR formatted storage device.
* The MBR partition table has four entries.
*/
struct partitionTable {
/**
* Boot Indicator . Indicates whether the volume is the active
* partition. Legal values include: 0X00. Do not use for booting.
* 0X80 Active partition.
*/
uint8_t boot;
/**
* Head part of Cylinder-head-sector address of the first block in
* the partition. Legal values are 0-255. Only used in old PC BIOS.
*/
uint8_t beginHead;
/**
* Sector part of Cylinder-head-sector address of the first block in
* the partition. Legal values are 1-63. Only used in old PC BIOS.
*/
unsigned beginSector : 6;
/** High bits cylinder for first block in partition. */
unsigned beginCylinderHigh : 2;
/**
* Combine beginCylinderLow with beginCylinderHigh. Legal values
* are 0-1023. Only used in old PC BIOS.
*/
uint8_t beginCylinderLow;
/**
* Partition type. See defines that begin with PART_TYPE_ for
* some Microsoft partition types.
*/
uint8_t type;
/**
* head part of cylinder-head-sector address of the last sector in the
* partition. Legal values are 0-255. Only used in old PC BIOS.
*/
uint8_t endHead;
/**
* Sector part of cylinder-head-sector address of the last sector in
* the partition. Legal values are 1-63. Only used in old PC BIOS.
*/
unsigned endSector : 6;
/** High bits of end cylinder */
unsigned endCylinderHigh : 2;
/**
* Combine endCylinderLow with endCylinderHigh. Legal values
* are 0-1023. Only used in old PC BIOS.
*/
uint8_t endCylinderLow;
/** Logical block address of the first block in the partition. */
uint32_t firstSector;
/** Length of the partition, in blocks. */
uint32_t totalSectors;
} PACKED;
/** Type name for partitionTable */
typedef struct partitionTable part_t;
//------------------------------------------------------------------------------
/**
* \struct masterBootRecord
*
* \brief Master Boot Record
*
* The first block of a storage device that is formatted with a MBR.
*/
struct masterBootRecord {
/** Code Area for master boot program. */
uint8_t codeArea[440];
/** Optional Windows NT disk signature. May contain boot code. */
uint32_t diskSignature;
/** Usually zero but may be more boot code. */
uint16_t usuallyZero;
/** Partition tables. */
part_t part[4];
/** First MBR signature byte. Must be 0X55 */
uint8_t mbrSig0;
/** Second MBR signature byte. Must be 0XAA */
uint8_t mbrSig1;
} PACKED;
/** Type name for masterBootRecord */
typedef struct masterBootRecord mbr_t;
//------------------------------------------------------------------------------
/**
* \struct fat_boot
*
* \brief Boot sector for a FAT12/FAT16 volume.
*
*/
struct fat_boot {
/**
* The first three bytes of the boot sector must be valid,
* executable x 86-based CPU instructions. This includes a
* jump instruction that skips the next nonexecutable bytes.
*/
uint8_t jump[3];
/**
* This is typically a string of characters that identifies
* the operating system that formatted the volume.
*/
char oemId[8];
/**
* The size of a hardware sector. Valid decimal values for this
* field are 512, 1024, 2048, and 4096. For most disks used in
* the United States, the value of this field is 512.
*/
uint16_t bytesPerSector;
/**
* Number of sectors per allocation unit. This value must be a
* power of 2 that is greater than 0. The legal values are
* 1, 2, 4, 8, 16, 32, 64, and 128. 128 should be avoided.
*/
uint8_t sectorsPerCluster;
/**
* The number of sectors preceding the start of the first FAT,
* including the boot sector. The value of this field is always 1.
*/
uint16_t reservedSectorCount;
/**
* The number of copies of the FAT on the volume.
* The value of this field is always 2.
*/
uint8_t fatCount;
/**
* For FAT12 and FAT16 volumes, this field contains the count of
* 32-byte directory entries in the root directory. For FAT32 volumes,
* this field must be set to 0. For FAT12 and FAT16 volumes, this
* value should always specify a count that when multiplied by 32
* results in a multiple of bytesPerSector. FAT16 volumes should
* use the value 512.
*/
uint16_t rootDirEntryCount;
/**
* This field is the old 16-bit total count of sectors on the volume.
* This count includes the count of all sectors in all four regions
* of the volume. This field can be 0; if it is 0, then totalSectors32
* must be nonzero. For FAT32 volumes, this field must be 0. For
* FAT12 and FAT16 volumes, this field contains the sector count, and
* totalSectors32 is 0 if the total sector count fits
* (is less than 0x10000).
*/
uint16_t totalSectors16;
/**
* This dates back to the old MS-DOS 1.x media determination and is
* no longer usually used for anything. 0xF8 is the standard value
* for fixed (nonremovable) media. For removable media, 0xF0 is
* frequently used. Legal values are 0xF0 or 0xF8-0xFF.
*/
uint8_t mediaType;
/**
* Count of sectors occupied by one FAT on FAT12/FAT16 volumes.
* On FAT32 volumes this field must be 0, and sectorsPerFat32
* contains the FAT size count.
*/
uint16_t sectorsPerFat16;
/** Sectors per track for interrupt 0x13. Not used otherwise. */
uint16_t sectorsPerTrack;
/** Number of heads for interrupt 0x13. Not used otherwise. */
uint16_t headCount;
/**
* Count of hidden sectors preceding the partition that contains this
* FAT volume. This field is generally only relevant for media
* visible on interrupt 0x13.
*/
uint32_t hidddenSectors;
/**
* This field is the new 32-bit total count of sectors on the volume.
* This count includes the count of all sectors in all four regions
* of the volume. This field can be 0; if it is 0, then
* totalSectors16 must be nonzero.
*/
uint32_t totalSectors32;
/**
* Related to the BIOS physical drive number. Floppy drives are
* identified as 0x00 and physical hard disks are identified as
* 0x80, regardless of the number of physical disk drives.
* Typically, this value is set prior to issuing an INT 13h BIOS
* call to specify the device to access. The value is only
* relevant if the device is a boot device.
*/
uint8_t driveNumber;
/** used by Windows NT - should be zero for FAT */
uint8_t reserved1;
/** 0X29 if next three fields are valid */
uint8_t bootSignature;
/**
* A random serial number created when formatting a disk,
* which helps to distinguish between disks.
* Usually generated by combining date and time.
*/
uint32_t volumeSerialNumber;
/**
* A field once used to store the volume label. The volume label
* is now stored as a special file in the root directory.
*/
char volumeLabel[11];
/**
* A field with a value of either FAT, FAT12 or FAT16,
* depending on the disk format.
*/
char fileSystemType[8];
/** X86 boot code */
uint8_t bootCode[448];
/** must be 0X55 */
uint8_t bootSectorSig0;
/** must be 0XAA */
uint8_t bootSectorSig1;
} PACKED;
/** Type name for FAT Boot Sector */
typedef struct fat_boot fat_boot_t;
//------------------------------------------------------------------------------
/**
* \struct fat32_boot
*
* \brief Boot sector for a FAT32 volume.
*
*/
struct fat32_boot {
/**
* The first three bytes of the boot sector must be valid,
* executable x 86-based CPU instructions. This includes a
* jump instruction that skips the next nonexecutable bytes.
*/
uint8_t jump[3];
/**
* This is typically a string of characters that identifies
* the operating system that formatted the volume.
*/
char oemId[8];
/**
* The size of a hardware sector. Valid decimal values for this
* field are 512, 1024, 2048, and 4096. For most disks used in
* the United States, the value of this field is 512.
*/
uint16_t bytesPerSector;
/**
* Number of sectors per allocation unit. This value must be a
* power of 2 that is greater than 0. The legal values are
* 1, 2, 4, 8, 16, 32, 64, and 128. 128 should be avoided.
*/
uint8_t sectorsPerCluster;
/**
* The number of sectors preceding the start of the first FAT,
* including the boot sector. Must not be zero
*/
uint16_t reservedSectorCount;
/**
* The number of copies of the FAT on the volume.
* The value of this field is always 2.
*/
uint8_t fatCount;
/**
* FAT12/FAT16 only. For FAT32 volumes, this field must be set to 0.
*/
uint16_t rootDirEntryCount;
/**
* For FAT32 volumes, this field must be 0.
*/
uint16_t totalSectors16;
/**
* This dates back to the old MS-DOS 1.x media determination and is
* no longer usually used for anything. 0xF8 is the standard value
* for fixed (nonremovable) media. For removable media, 0xF0 is
* frequently used. Legal values are 0xF0 or 0xF8-0xFF.
*/
uint8_t mediaType;
/**
* On FAT32 volumes this field must be 0, and sectorsPerFat32
* contains the FAT size count.
*/
uint16_t sectorsPerFat16;
/** Sectors per track for interrupt 0x13. Not used otherwise. */
uint16_t sectorsPerTrack;
/** Number of heads for interrupt 0x13. Not used otherwise. */
uint16_t headCount;
/**
* Count of hidden sectors preceding the partition that contains this
* FAT volume. This field is generally only relevant for media
* visible on interrupt 0x13.
*/
uint32_t hidddenSectors;
/**
* Contains the total number of sectors in the FAT32 volume.
*/
uint32_t totalSectors32;
/**
* Count of sectors occupied by one FAT on FAT32 volumes.
*/
uint32_t sectorsPerFat32;
/**
* This field is only defined for FAT32 media and does not exist on
* FAT12 and FAT16 media.
* Bits 0-3 -- Zero-based number of active FAT.
* Only valid if mirroring is disabled.
* Bits 4-6 -- Reserved.
* Bit 7 -- 0 means the FAT is mirrored at runtime into all FATs.
* -- 1 means only one FAT is active; it is the one referenced
* in bits 0-3.
* Bits 8-15 -- Reserved.
*/
uint16_t fat32Flags;
/**
* FAT32 version. High byte is major revision number.
* Low byte is minor revision number. Only 0.0 define.
*/
uint16_t fat32Version;
/**
* Cluster number of the first cluster of the root directory for FAT32.
* This usually 2 but not required to be 2.
*/
uint32_t fat32RootCluster;
/**
* Sector number of FSINFO structure in the reserved area of the
* FAT32 volume. Usually 1.
*/
uint16_t fat32FSInfo;
/**
* If nonzero, indicates the sector number in the reserved area
* of the volume of a copy of the boot record. Usually 6.
* No value other than 6 is recommended.
*/
uint16_t fat32BackBootBlock;
/**
* Reserved for future expansion. Code that formats FAT32 volumes
* should always set all of the bytes of this field to 0.
*/
uint8_t fat32Reserved[12];
/**
* Related to the BIOS physical drive number. Floppy drives are
* identified as 0x00 and physical hard disks are identified as
* 0x80, regardless of the number of physical disk drives.
* Typically, this value is set prior to issuing an INT 13h BIOS
* call to specify the device to access. The value is only
* relevant if the device is a boot device.
*/
uint8_t driveNumber;
/** used by Windows NT - should be zero for FAT */
uint8_t reserved1;
/** 0X29 if next three fields are valid */
uint8_t bootSignature;
/**
* A random serial number created when formatting a disk,
* which helps to distinguish between disks.
* Usually generated by combining date and time.
*/
uint32_t volumeSerialNumber;
/**
* A field once used to store the volume label. The volume label
* is now stored as a special file in the root directory.
*/
char volumeLabel[11];
/**
* A text field with a value of FAT32.
*/
char fileSystemType[8];
/** X86 boot code */
uint8_t bootCode[420];
/** must be 0X55 */
uint8_t bootSectorSig0;
/** must be 0XAA */
uint8_t bootSectorSig1;
} PACKED;
/** Type name for FAT32 Boot Sector */
typedef struct fat32_boot fat32_boot_t;
//------------------------------------------------------------------------------
/** Lead signature for a FSINFO sector */
uint32_t const FSINFO_LEAD_SIG = 0x41615252;
/** Struct signature for a FSINFO sector */
uint32_t const FSINFO_STRUCT_SIG = 0x61417272;
/**
* \struct fat32_fsinfo
*
* \brief FSINFO sector for a FAT32 volume.
*
*/
struct fat32_fsinfo {
/** must be 0X52, 0X52, 0X61, 0X41 */
uint32_t leadSignature;
/** must be zero */
uint8_t reserved1[480];
/** must be 0X72, 0X72, 0X41, 0X61 */
uint32_t structSignature;
/**
* Contains the last known free cluster count on the volume.
* If the value is 0xFFFFFFFF, then the free count is unknown
* and must be computed. Any other value can be used, but is
* not necessarily correct. It should be range checked at least
* to make sure it is <= volume cluster count.
*/
uint32_t freeCount;
/**
* This is a hint for the FAT driver. It indicates the cluster
* number at which the driver should start looking for free clusters.
* If the value is 0xFFFFFFFF, then there is no hint and the driver
* should start looking at cluster 2.
*/
uint32_t nextFree;
/** must be zero */
uint8_t reserved2[12];
/** must be 0X00, 0X00, 0X55, 0XAA */
uint8_t tailSignature[4];
} PACKED;
/** Type name for FAT32 FSINFO Sector */
typedef struct fat32_fsinfo fat32_fsinfo_t;
//------------------------------------------------------------------------------
// End Of Chain values for FAT entries
/** FAT12 end of chain value used by Microsoft. */
uint16_t const FAT12EOC = 0XFFF;
/** Minimum value for FAT12 EOC. Use to test for EOC. */
uint16_t const FAT12EOC_MIN = 0XFF8;
/** FAT16 end of chain value used by Microsoft. */
uint16_t const FAT16EOC = 0XFFFF;
/** Minimum value for FAT16 EOC. Use to test for EOC. */
uint16_t const FAT16EOC_MIN = 0XFFF8;
/** FAT32 end of chain value used by Microsoft. */
uint32_t const FAT32EOC = 0X0FFFFFFF;
/** Minimum value for FAT32 EOC. Use to test for EOC. */
uint32_t const FAT32EOC_MIN = 0X0FFFFFF8;
/** Mask a for FAT32 entry. Entries are 28 bits. */
uint32_t const FAT32MASK = 0X0FFFFFFF;
//------------------------------------------------------------------------------
/**
* \struct directoryEntry
* \brief FAT short directory entry
*
* Short means short 8.3 name, not the entry size.
*
* Date Format. A FAT directory entry date stamp is a 16-bit field that is
* basically a date relative to the MS-DOS epoch of 01/01/1980. Here is the
* format (bit 0 is the LSB of the 16-bit word, bit 15 is the MSB of the
* 16-bit word):
*
* Bits 9-15: Count of years from 1980, valid value range 0-127
* inclusive (1980-2107).
*
* Bits 5-8: Month of year, 1 = January, valid value range 1-12 inclusive.
*
* Bits 0-4: Day of month, valid value range 1-31 inclusive.
*
* Time Format. A FAT directory entry time stamp is a 16-bit field that has
* a granularity of 2 seconds. Here is the format (bit 0 is the LSB of the
* 16-bit word, bit 15 is the MSB of the 16-bit word).
*
* Bits 11-15: Hours, valid value range 0-23 inclusive.
*
* Bits 5-10: Minutes, valid value range 0-59 inclusive.
*
* Bits 0-4: 2-second count, valid value range 0-29 inclusive (0 - 58 seconds).
*
* The valid time range is from Midnight 00:00:00 to 23:59:58.
*/
struct directoryEntry {
/** Short 8.3 name.
*
* The first eight bytes contain the file name with blank fill.
* The last three bytes contain the file extension with blank fill.
*/
uint8_t name[11];
/** Entry attributes.
*
* The upper two bits of the attribute byte are reserved and should
* always be set to 0 when a file is created and never modified or
* looked at after that. See defines that begin with DIR_ATT_.
*/
uint8_t attributes;
/**
* Reserved for use by Windows NT. Set value to 0 when a file is
* created and never modify or look at it after that.
*/
uint8_t reservedNT;
/**
* The granularity of the seconds part of creationTime is 2 seconds
* so this field is a count of tenths of a second and its valid
* value range is 0-199 inclusive. (WHG note - seems to be hundredths)
*/
uint8_t creationTimeTenths;
/** Time file was created. */
uint16_t creationTime;
/** Date file was created. */
uint16_t creationDate;
/**
* Last access date. Note that there is no last access time, only
* a date. This is the date of last read or write. In the case of
* a write, this should be set to the same date as lastWriteDate.
*/
uint16_t lastAccessDate;
/**
* High word of this entry's first cluster number (always 0 for a
* FAT12 or FAT16 volume).
*/
uint16_t firstClusterHigh;
/** Time of last write. File creation is considered a write. */
uint16_t lastWriteTime;
/** Date of last write. File creation is considered a write. */
uint16_t lastWriteDate;
/** Low word of this entry's first cluster number. */
uint16_t firstClusterLow;
/** 32-bit unsigned holding this file's size in bytes. */
uint32_t fileSize;
} PACKED;
/**
* \struct directoryVFATEntry
* \brief VFAT long filename directory entry
*
* directoryVFATEntries are found in the same list as normal directoryEntry.
* But have the attribute field set to DIR_ATT_LONG_NAME.
*
* Long filenames are saved in multiple directoryVFATEntries.
* Each entry containing 13 UTF-16 characters.
*/
struct directoryVFATEntry {
/**
* Sequence number. Consists of 2 parts:
* bit 6: indicates first long filename block for the next file
* bit 0-4: the position of this long filename block (first block is 1)
*/
uint8_t sequenceNumber;
/** First set of UTF-16 characters */
uint16_t name1[5];//UTF-16
/** attributes (at the same location as in directoryEntry), always 0x0F */
uint8_t attributes;
/** Reserved for use by Windows NT. Always 0. */
uint8_t reservedNT;
/** Checksum of the short 8.3 filename, can be used to checked if the file system as modified by a not-long-filename aware implementation. */
uint8_t checksum;
/** Second set of UTF-16 characters */
uint16_t name2[6];//UTF-16
/** firstClusterLow is always zero for longFilenames */
uint16_t firstClusterLow;
/** Third set of UTF-16 characters */
uint16_t name3[2];//UTF-16
} PACKED;
//------------------------------------------------------------------------------
// Definitions for directory entries
//
/** Type name for directoryEntry */
typedef struct directoryEntry dir_t;
/** Type name for directoryVFATEntry */
typedef struct directoryVFATEntry vfat_t;
/** escape for name[0] = 0XE5 */
uint8_t const DIR_NAME_0XE5 = 0X05;
/** name[0] value for entry that is free after being "deleted" */
uint8_t const DIR_NAME_DELETED = 0XE5;
/** name[0] value for entry that is free and no allocated entries follow */
uint8_t const DIR_NAME_FREE = 0X00;
/** file is read-only */
uint8_t const DIR_ATT_READ_ONLY = 0X01;
/** File should hidden in directory listings */
uint8_t const DIR_ATT_HIDDEN = 0X02;
/** Entry is for a system file */
uint8_t const DIR_ATT_SYSTEM = 0X04;
/** Directory entry contains the volume label */
uint8_t const DIR_ATT_VOLUME_ID = 0X08;
/** Entry is for a directory */
uint8_t const DIR_ATT_DIRECTORY = 0X10;
/** Old DOS archive bit for backup support */
uint8_t const DIR_ATT_ARCHIVE = 0X20;
/** Test value for long name entry. Test is
(d->attributes & DIR_ATT_LONG_NAME_MASK) == DIR_ATT_LONG_NAME. */
uint8_t const DIR_ATT_LONG_NAME = 0X0F;
/** Test mask for long name entry */
uint8_t const DIR_ATT_LONG_NAME_MASK = 0X3F;
/** defined attribute bits */
uint8_t const DIR_ATT_DEFINED_BITS = 0X3F;
/** Directory entry is part of a long name
* \param[in] dir Pointer to a directory entry.
*
* \return true if the entry is for part of a long name else false.
*/
static inline uint8_t DIR_IS_LONG_NAME(const dir_t* dir) {
return (dir->attributes & DIR_ATT_LONG_NAME_MASK) == DIR_ATT_LONG_NAME;
}
/** Mask for file/subdirectory tests */
uint8_t const DIR_ATT_FILE_TYPE_MASK = (DIR_ATT_VOLUME_ID | DIR_ATT_DIRECTORY);
/** Directory entry is for a file
* \param[in] dir Pointer to a directory entry.
*
* \return true if the entry is for a normal file else false.
*/
static inline uint8_t DIR_IS_FILE(const dir_t* dir) {
return (dir->attributes & DIR_ATT_FILE_TYPE_MASK) == 0;
}
/** Directory entry is for a subdirectory
* \param[in] dir Pointer to a directory entry.
*
* \return true if the entry is for a subdirectory else false.
*/
static inline uint8_t DIR_IS_SUBDIR(const dir_t* dir) {
return (dir->attributes & DIR_ATT_FILE_TYPE_MASK) == DIR_ATT_DIRECTORY;
}
/** Directory entry is for a file or subdirectory
* \param[in] dir Pointer to a directory entry.
*
* \return true if the entry is for a normal file or subdirectory else false.
*/
static inline uint8_t DIR_IS_FILE_OR_SUBDIR(const dir_t* dir) {
return (dir->attributes & DIR_ATT_VOLUME_ID) == 0;
}
#endif // SdFatStructs_h
#endif
-91
View File
@@ -1,91 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
* Arduino SdFat Library
* Copyright (C) 2008 by William Greiman
*
* This file is part of the Arduino Sd2Card Library
*/
#include "Marlin.h"
#if ENABLED(SDSUPPORT)
#include "SdFatUtil.h"
//------------------------------------------------------------------------------
/** Amount of free RAM
* \return The number of free bytes.
*/
#ifdef __arm__
extern "C" char* sbrk(int incr);
int SdFatUtil::FreeRam() {
char top;
return &top - reinterpret_cast<char*>(sbrk(0));
}
#else // __arm__
extern char* __brkval;
extern char __bss_end;
/** Amount of free RAM
* \return The number of free bytes.
*/
int SdFatUtil::FreeRam() {
char top;
return __brkval ? &top - __brkval : &top - &__bss_end;
}
#endif // __arm
//------------------------------------------------------------------------------
/** %Print a string in flash memory.
*
* \param[in] pr Print object for output.
* \param[in] str Pointer to string stored in flash memory.
*/
void SdFatUtil::print_P(PGM_P str) {
for (uint8_t c; (c = pgm_read_byte(str)); str++) MYSERIAL.write(c);
}
//------------------------------------------------------------------------------
/** %Print a string in flash memory followed by a CR/LF.
*
* \param[in] pr Print object for output.
* \param[in] str Pointer to string stored in flash memory.
*/
void SdFatUtil::println_P(PGM_P str) {
print_P(str);
MYSERIAL.println();
}
//------------------------------------------------------------------------------
/** %Print a string in flash memory to Serial.
*
* \param[in] str Pointer to string stored in flash memory.
*/
void SdFatUtil::SerialPrint_P(PGM_P str) {
print_P(str);
}
//------------------------------------------------------------------------------
/** %Print a string in flash memory to Serial followed by a CR/LF.
*
* \param[in] str Pointer to string stored in flash memory.
*/
void SdFatUtil::SerialPrintln_P(PGM_P str) {
println_P(str);
}
#endif
-227
View File
@@ -1,227 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
* Arduino SdFat Library
* Copyright (C) 2009 by William Greiman
*
* This file is part of the Arduino Sd2Card Library
*/
#include "Marlin.h"
#if ENABLED(SDSUPPORT)
#ifndef SdVolume_h
#define SdVolume_h
/**
* \file
* \brief SdVolume class
*/
#include "SdFatConfig.h"
#include "Sd2Card.h"
#include "SdFatStructs.h"
//==============================================================================
// SdVolume class
/**
* \brief Cache for an SD data block
*/
union cache_t {
/** Used to access cached file data blocks. */
uint8_t data[512];
/** Used to access cached FAT16 entries. */
uint16_t fat16[256];
/** Used to access cached FAT32 entries. */
uint32_t fat32[128];
/** Used to access cached directory entries. */
dir_t dir[16];
/** Used to access a cached Master Boot Record. */
mbr_t mbr;
/** Used to access to a cached FAT boot sector. */
fat_boot_t fbs;
/** Used to access to a cached FAT32 boot sector. */
fat32_boot_t fbs32;
/** Used to access to a cached FAT32 FSINFO sector. */
fat32_fsinfo_t fsinfo;
};
//------------------------------------------------------------------------------
/**
* \class SdVolume
* \brief Access FAT16 and FAT32 volumes on SD and SDHC cards.
*/
class SdVolume {
public:
/** Create an instance of SdVolume */
SdVolume() : fatType_(0) {}
/** Clear the cache and returns a pointer to the cache. Used by the WaveRP
* recorder to do raw write to the SD card. Not for normal apps.
* \return A pointer to the cache buffer or zero if an error occurs.
*/
cache_t* cacheClear() {
if (!cacheFlush()) return 0;
cacheBlockNumber_ = 0XFFFFFFFF;
return &cacheBuffer_;
}
/** Initialize a FAT volume. Try partition one first then try super
* floppy format.
*
* \param[in] dev The Sd2Card where the volume is located.
*
* \return The value one, true, is returned for success and
* the value zero, false, is returned for failure. Reasons for
* failure include not finding a valid partition, not finding a valid
* FAT file system or an I/O error.
*/
bool init(Sd2Card* dev) { return init(dev, 1) ? true : init(dev, 0);}
bool init(Sd2Card* dev, uint8_t part);
// inline functions that return volume info
/** \return The volume's cluster size in blocks. */
uint8_t blocksPerCluster() const {return blocksPerCluster_;}
/** \return The number of blocks in one FAT. */
uint32_t blocksPerFat() const {return blocksPerFat_;}
/** \return The total number of clusters in the volume. */
uint32_t clusterCount() const {return clusterCount_;}
/** \return The shift count required to multiply by blocksPerCluster. */
uint8_t clusterSizeShift() const {return clusterSizeShift_;}
/** \return The logical block number for the start of file data. */
uint32_t dataStartBlock() const {return dataStartBlock_;}
/** \return The number of FAT structures on the volume. */
uint8_t fatCount() const {return fatCount_;}
/** \return The logical block number for the start of the first FAT. */
uint32_t fatStartBlock() const {return fatStartBlock_;}
/** \return The FAT type of the volume. Values are 12, 16 or 32. */
uint8_t fatType() const {return fatType_;}
int32_t freeClusterCount();
/** \return The number of entries in the root directory for FAT16 volumes. */
uint32_t rootDirEntryCount() const {return rootDirEntryCount_;}
/** \return The logical block number for the start of the root directory
on FAT16 volumes or the first cluster number on FAT32 volumes. */
uint32_t rootDirStart() const {return rootDirStart_;}
/** Sd2Card object for this volume
* \return pointer to Sd2Card object.
*/
Sd2Card* sdCard() {return sdCard_;}
/** Debug access to FAT table
*
* \param[in] n cluster number.
* \param[out] v value of entry
* \return true for success or false for failure
*/
bool dbgFat(uint32_t n, uint32_t* v) {return fatGet(n, v);}
//------------------------------------------------------------------------------
private:
// Allow SdBaseFile access to SdVolume private data.
friend class SdBaseFile;
// value for dirty argument in cacheRawBlock to indicate read from cache
static bool const CACHE_FOR_READ = false;
// value for dirty argument in cacheRawBlock to indicate write to cache
static bool const CACHE_FOR_WRITE = true;
#if USE_MULTIPLE_CARDS
cache_t cacheBuffer_; // 512 byte cache for device blocks
uint32_t cacheBlockNumber_; // Logical number of block in the cache
Sd2Card* sdCard_; // Sd2Card object for cache
bool cacheDirty_; // cacheFlush() will write block if true
uint32_t cacheMirrorBlock_; // block number for mirror FAT
#else // USE_MULTIPLE_CARDS
static cache_t cacheBuffer_; // 512 byte cache for device blocks
static uint32_t cacheBlockNumber_; // Logical number of block in the cache
static Sd2Card* sdCard_; // Sd2Card object for cache
static bool cacheDirty_; // cacheFlush() will write block if true
static uint32_t cacheMirrorBlock_; // block number for mirror FAT
#endif // USE_MULTIPLE_CARDS
uint32_t allocSearchStart_; // start cluster for alloc search
uint8_t blocksPerCluster_; // cluster size in blocks
uint32_t blocksPerFat_; // FAT size in blocks
uint32_t clusterCount_; // clusters in one FAT
uint8_t clusterSizeShift_; // shift to convert cluster count to block count
uint32_t dataStartBlock_; // first data block number
uint8_t fatCount_; // number of FATs on volume
uint32_t fatStartBlock_; // start block for first FAT
uint8_t fatType_; // volume type (12, 16, OR 32)
uint16_t rootDirEntryCount_; // number of entries in FAT16 root dir
uint32_t rootDirStart_; // root start block for FAT16, cluster for FAT32
//----------------------------------------------------------------------------
bool allocContiguous(uint32_t count, uint32_t* curCluster);
uint8_t blockOfCluster(uint32_t position) const {
return (position >> 9) & (blocksPerCluster_ - 1);
}
uint32_t clusterStartBlock(uint32_t cluster) const {
return dataStartBlock_ + ((cluster - 2) << clusterSizeShift_);
}
uint32_t blockNumber(uint32_t cluster, uint32_t position) const {
return clusterStartBlock(cluster) + blockOfCluster(position);
}
cache_t* cache() {return &cacheBuffer_;}
uint32_t cacheBlockNumber() {return cacheBlockNumber_;}
#if USE_MULTIPLE_CARDS
bool cacheFlush();
bool cacheRawBlock(uint32_t blockNumber, bool dirty);
#else // USE_MULTIPLE_CARDS
static bool cacheFlush();
static bool cacheRawBlock(uint32_t blockNumber, bool dirty);
#endif // USE_MULTIPLE_CARDS
// used by SdBaseFile write to assign cache to SD location
void cacheSetBlockNumber(uint32_t blockNumber, bool dirty) {
cacheDirty_ = dirty;
cacheBlockNumber_ = blockNumber;
}
void cacheSetDirty() {cacheDirty_ |= CACHE_FOR_WRITE;}
bool chainSize(uint32_t beginCluster, uint32_t* size);
bool fatGet(uint32_t cluster, uint32_t* value);
bool fatPut(uint32_t cluster, uint32_t value);
bool fatPutEOC(uint32_t cluster) {
return fatPut(cluster, 0x0FFFFFFF);
}
bool freeChain(uint32_t cluster);
bool isEOC(uint32_t cluster) const {
if (FAT12_SUPPORT && fatType_ == 12) return cluster >= FAT12EOC_MIN;
if (fatType_ == 16) return cluster >= FAT16EOC_MIN;
return cluster >= FAT32EOC_MIN;
}
bool readBlock(uint32_t block, uint8_t* dst) {
return sdCard_->readBlock(block, dst);
}
bool writeBlock(uint32_t block, const uint8_t* dst) {
return sdCard_->writeBlock(block, dst);
}
//------------------------------------------------------------------------------
// Deprecated functions - suppress cpplint warnings with NOLINT comment
#if ALLOW_DEPRECATED_FUNCTIONS && !defined(DOXYGEN)
public:
/** \deprecated Use: bool SdVolume::init(Sd2Card* dev);
* \param[in] dev The SD card where the volume is located.
* \return true for success or false for failure.
*/
bool init(Sd2Card& dev) {return init(&dev);} // NOLINT
/** \deprecated Use: bool SdVolume::init(Sd2Card* dev, uint8_t vol);
* \param[in] dev The SD card where the volume is located.
* \param[in] part The partition to be used.
* \return true for success or false for failure.
*/
bool init(Sd2Card& dev, uint8_t part) { // NOLINT
return init(&dev, part);
}
#endif // ALLOW_DEPRECATED_FUNCTIONS
};
#endif // SdVolume
#endif
+102
View File
@@ -0,0 +1,102 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
* Custom Bitmap for splashscreen
*
* You may use one of the following tools to generate the C++ bitmap array from
* a black and white image:
*
* - http://www.marlinfw.org/tools/u8glib/converter.html
* - http://www.digole.com/tools/PicturetoC_Hex_converter.php
*/
#include <avr/pgmspace.h>
#define CUSTOM_BOOTSCREEN_TIMEOUT 1500
#define CUSTOM_BOOTSCREEN_BMPWIDTH 107
#define CUSTOM_BOOTSCREEN_BMPHEIGHT 64
const unsigned char custom_start_bmp[] PROGMEM = {
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ................................................................................................................
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ................................................................................................................
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ................................................................................................................
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ................................................................................................................
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ................................................................................................................
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ................................................................................................................
0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ..................................................######........................................................
0x00,0x00,0x00,0x00,0x00,0x01,0xFF,0xF0,0x00,0x00,0x00,0x00,0x00,0x00, // ...............................................#############....................................................
0x00,0x00,0x00,0x00,0x00,0x07,0xFF,0xFC,0x00,0x00,0x00,0x00,0x00,0x00, // .............................................#################..................................................
0x00,0x00,0x00,0x00,0x00,0x1F,0xFF,0xFE,0x00,0x00,0x00,0x00,0x00,0x00, // ...........................................####################.................................................
0x00,0x00,0x00,0x00,0x00,0x3F,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00, // ..........................................######################................................................
0x00,0x00,0x00,0x00,0x00,0x7F,0xFF,0xFF,0x80,0x00,0x00,0x00,0x00,0x00, // .........................................########################...............................................
0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xC0,0x00,0x00,0x00,0x00,0x00, // ........................................##########################..............................................
0x00,0x00,0x00,0x00,0x01,0xFF,0xFF,0xFF,0xE0,0x00,0x00,0x00,0x00,0x00, // .......................................############################.............................................
0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x07,0x00,0x00,0x00,0x00,0x00,0x00, // ...................................................##........###................................................
0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x06,0x00,0x00,0x00,0x00,0x00,0x00, // ...................................................##........##.................................................
0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x0C,0x00,0x00,0x00,0x00,0x00,0x00, // ....................................................##......##..................................................
0x00,0x00,0x00,0x00,0x06,0x00,0x0C,0x0C,0x18,0x00,0x00,0x00,0x00,0x00, // .....................................##.............##......##.....##...........................................
0x00,0x00,0x00,0x00,0x07,0x00,0x06,0x18,0x3C,0x00,0x00,0x00,0x00,0x00, // .....................................###.............##....##.....####..........................................
0x00,0x00,0x00,0x00,0x0F,0x00,0x06,0x18,0x3C,0x00,0x00,0x00,0x00,0x00, // ....................................####.............##....##.....####..........................................
0x00,0x00,0x00,0x00,0x0F,0x80,0x03,0x30,0x7C,0x00,0x00,0x00,0x00,0x00, // ....................................#####.............##..##.....#####..........................................
0x00,0x00,0x00,0x00,0x0F,0xC0,0x03,0x30,0x7C,0x00,0x00,0x00,0x00,0x00, // ....................................######............##..##.....#####..........................................
0x00,0x00,0x00,0x00,0x0F,0xC0,0x01,0xE0,0xFC,0x00,0x00,0x00,0x00,0x00, // ....................................######.............####.....######..........................................
0x00,0x00,0x00,0x00,0x0F,0xE0,0x01,0xC0,0xFC,0x00,0x00,0x00,0x00,0x00, // ....................................#######............###......######..........................................
0x00,0x00,0x00,0x00,0x0F,0xE0,0x00,0xC1,0xFC,0x00,0x00,0x00,0x00,0x00, // ....................................#######.............##.....#######..........................................
0x00,0x00,0x00,0x00,0x0F,0xF0,0x00,0x81,0xFC,0x00,0x00,0x00,0x00,0x00, // ....................................########............#......#######..........................................
0x00,0x00,0x00,0x00,0x0F,0xF0,0x00,0x03,0xFC,0x00,0x00,0x00,0x00,0x00, // ....................................########..................########..........................................
0x00,0x00,0x00,0x00,0x07,0xF8,0x00,0x03,0xFC,0x00,0x00,0x00,0x00,0x00, // .....................................########.................########..........................................
0x00,0x00,0x00,0x00,0x07,0xF8,0x00,0x07,0xF8,0x00,0x00,0x00,0x00,0x00, // .....................................########................########...........................................
0x00,0x00,0x00,0x00,0x07,0xFC,0x00,0x07,0xF8,0x00,0x00,0x00,0x00,0x00, // .....................................#########...............########...........................................
0x00,0x00,0x00,0x00,0x03,0xFC,0x00,0x0F,0xF8,0x00,0x00,0x00,0x00,0x00, // ......................................########..............#########...........................................
0x00,0x00,0x00,0x00,0x03,0xFE,0x00,0x1F,0xF0,0x00,0x00,0x00,0x00,0x00, // ......................................#########............#########............................................
0x00,0x00,0x00,0x00,0x01,0xFE,0x00,0x1F,0xF0,0x00,0x00,0x00,0x00,0x00, // .......................................########............#########............................................
0x00,0x00,0x00,0x00,0x01,0xFF,0x00,0x3F,0xE0,0x00,0x00,0x00,0x00,0x00, // .......................................#########..........#########.............................................
0x00,0x00,0x00,0x00,0x00,0xFF,0x80,0x3F,0xC0,0x00,0x00,0x00,0x00,0x00, // ........................................#########.........########..............................................
0x00,0x00,0x00,0x00,0x00,0x7F,0x80,0x7F,0x80,0x00,0x00,0x00,0x00,0x00, // .........................................########........########...............................................
0x00,0x00,0x00,0x00,0x00,0x3F,0xC0,0x7F,0x00,0x00,0x00,0x00,0x00,0x00, // ..........................................########.......#######................................................
0x00,0x00,0x00,0x00,0x00,0x1F,0xC0,0xFE,0x00,0x00,0x00,0x00,0x00,0x00, // ...........................................#######......#######.................................................
0x00,0x00,0x00,0x00,0x00,0x07,0xE0,0xF8,0x00,0x00,0x00,0x00,0x00,0x00, // .............................................######.....#####...................................................
0x00,0x00,0x00,0x00,0x00,0x00,0xE1,0xE0,0x00,0x00,0x00,0x00,0x00,0x00, // ................................................###....####.....................................................
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ................................................................................................................
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ................................................................................................................
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ................................................................................................................
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ................................................................................................................
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ................................................................................................................
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ................................................................................................................
0x00,0x08,0x08,0xCC,0x04,0x7F,0xE3,0xE0,0x10,0x80,0x87,0xFE,0x00,0x00, // ............#.......#...##..##.......#...##########...#####........#....#.......#....##########.................
0x00,0x0C,0x18,0xCC,0x0C,0x7F,0xC3,0xF8,0x10,0xC0,0x87,0xFE,0x00,0x00, // ............##.....##...##..##......##...#########....#######......#....##......#....##########.................
0x00,0x0C,0x18,0xC6,0x18,0x60,0x03,0x0C,0x10,0xF0,0x86,0x06,0x00,0x00, // ............##.....##...##...##....##....##...........##....##.....#....####....#....##......##.................
0x00,0x06,0x30,0xC3,0x18,0x7F,0xE3,0x06,0x10,0xB8,0x86,0x06,0x00,0x00, // .............##...##....##....##...##....##########...##.....##....#....#.###...#....##......##.................
0x00,0x03,0x60,0xC3,0x30,0x7F,0xE3,0x02,0x10,0x8C,0x86,0x06,0x00,0x00, // ..............##.##.....##....##..##.....##########...##......#....#....#...##..#....##......##.................
0x00,0x03,0xE0,0xC1,0xE0,0x60,0x03,0x03,0x10,0x87,0x86,0x06,0x00,0x00, // ..............#####.....##.....####......##...........##......##...#....#....####....##......##.................
0x00,0x01,0xC0,0xC0,0xE0,0x60,0x03,0x03,0x10,0x83,0x86,0x06,0x00,0x00, // ...............###......##......###......##...........##......##...#....#.....###....##......##.................
0x00,0x00,0x80,0xC0,0xC0,0x7F,0xE3,0xFF,0x10,0x81,0x87,0xFE,0x00,0x00, // ................#.......##......##.......##########...##########...#....#......##....##########.................
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ................................................................................................................
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ................................................................................................................
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ................................................................................................................
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ................................................................................................................
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ................................................................................................................
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ................................................................................................................
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ................................................................................................................
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ................................................................................................................
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ................................................................................................................
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 // ................................................................................................................
};
+73
View File
@@ -0,0 +1,73 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
* Custom Status Screen bitmap
*
* Place this file in the root with your configuration files
* and enable CUSTOM_STATUS_SCREEN_IMAGE in Configuration.h.
*
* Use the Marlin Bitmap Converter to make your own:
* http://marlinfw.org/tools/u8glib/converter.html
*/
//
// Status Screen Logo bitmap
//
#define STATUS_LOGO_Y 4
#define STATUS_LOGO_WIDTH 21
const unsigned char status_logo_bmp[] PROGMEM = {
0x01,0xE0,0x00, // .......####.............
0x07,0xFC,0x00, // .....#########..........
0x1F,0xFE,0x00, // ...############.........
0x3F,0xFF,0x00, // ..##############........
0x00,0x86,0x00, // ........#....##.........
0x00,0x84,0x00, // ........#....#..........
0x40,0x44,0xC0, // .#.......#...#..##......
0xC0,0x48,0xC0, // ##.......#..#...##......
0xE0,0x31,0xC0, // ###.......##...###......
0xE0,0x01,0xC0, // ###............###......
0xF0,0x03,0xC0, // ####..........####......
0x70,0x03,0xC0, // .###..........####......
0x78,0x07,0x80, // .####........####.......
0x78,0x07,0x80, // .####........####.......
0x3C,0x0F,0x00, // ..####......####........
0x1E,0x0E,0x00, // ...####.....###.........
0x0E,0x1C,0x00, // ....###....###..........
0x03,0x10,0x00 // ......##...#............
};
//
// Use default bitmaps
//
#define STATUS_HOTEND_ANIM
#define STATUS_BED_ANIM
#if HOTENDS < 2
#define STATUS_LOGO_X 8
#define STATUS_HEATERS_X 40
#define STATUS_BED_X 72
#else
#define STATUS_LOGO_X 0
#define STATUS_HEATERS_X 32
#define STATUS_BED_X 80
#endif
-100
View File
@@ -1,100 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
#ifndef BOARDS_H
#define BOARDS_H
#define BOARD_UNKNOWN -1
#define BOARD_GEN7_CUSTOM 10 // Gen7 custom (Alfons3 Version) "https://github.com/Alfons3/Generation_7_Electronics"
#define BOARD_GEN7_12 11 // Gen7 v1.1, v1.2
#define BOARD_GEN7_13 12 // Gen7 v1.3
#define BOARD_GEN7_14 13 // Gen7 v1.4
#define BOARD_CNCONTROLS_11 111 // Cartesio CN Controls V11
#define BOARD_CNCONTROLS_12 112 // Cartesio CN Controls V12
#define BOARD_CHEAPTRONIC 2 // Cheaptronic v1.0
#define BOARD_SETHI 20 // Sethi 3D_1
#define BOARD_RAMPS_OLD 3 // MEGA/RAMPS up to 1.2
#define BOARD_RAMPS_13_EFB 33 // RAMPS 1.3 (Power outputs: Hotend, Fan, Bed)
#define BOARD_RAMPS_13_EEB 34 // RAMPS 1.3 (Power outputs: Hotend0, Hotend1, Bed)
#define BOARD_RAMPS_13_EFF 35 // RAMPS 1.3 (Power outputs: Hotend, Fan0, Fan1)
#define BOARD_RAMPS_13_EEF 36 // RAMPS 1.3 (Power outputs: Hotend0, Hotend1, Fan)
#define BOARD_RAMPS_13_SF 38 // RAMPS 1.3 (Power outputs: Spindle, Controller Fan)
#define BOARD_FELIX2 37 // Felix 2.0+ Electronics Board (RAMPS like)
#define BOARD_RIGIDBOARD 42 // Invent-A-Part RigidBoard
#define BOARD_RIGIDBOARD_V2 52 // Invent-A-Part RigidBoard V2
#define BOARD_RAMPS_14_EFB 43 // RAMPS 1.4 (Power outputs: Hotend, Fan, Bed)
#define BOARD_RAMPS_14_EEB 44 // RAMPS 1.4 (Power outputs: Hotend0, Hotend1, Bed)
#define BOARD_RAMPS_14_EFF 45 // RAMPS 1.4 (Power outputs: Hotend, Fan0, Fan1)
#define BOARD_RAMPS_14_EEF 46 // RAMPS 1.4 (Power outputs: Hotend0, Hotend1, Fan)
#define BOARD_RAMPS_14_SF 48 // RAMPS 1.4 (Power outputs: Spindle, Controller Fan)
#define BOARD_GEN6 5 // Gen6
#define BOARD_GEN6_DELUXE 51 // Gen6 deluxe
#define BOARD_SANGUINOLOLU_11 6 // Sanguinololu < 1.2
#define BOARD_SANGUINOLOLU_12 62 // Sanguinololu 1.2 and above
#define BOARD_MELZI 63 // Melzi
#define BOARD_STB_11 64 // STB V1.1
#define BOARD_AZTEEG_X1 65 // Azteeg X1
#define BOARD_MELZI_MAKR3D 66 // Melzi with ATmega1284 (MaKr3d version)
#define BOARD_AZTEEG_X3 67 // Azteeg X3
#define BOARD_AZTEEG_X3_PRO 68 // Azteeg X3 Pro
#define BOARD_ULTIMAKER 7 // Ultimaker
#define BOARD_ULTIMAKER_OLD 71 // Ultimaker (Older electronics. Pre 1.5.4. This is rare)
#define BOARD_ULTIMAIN_2 72 // Ultimainboard 2.x (Uses TEMP_SENSOR 20)
#define BOARD_3DRAG 77 // 3Drag Controller
#define BOARD_K8200 78 // Velleman K8200 Controller (derived from 3Drag Controller)
#define BOARD_K8400 79 // Velleman K8400 Controller (derived from 3Drag Controller)
#define BOARD_TEENSYLU 8 // Teensylu
#define BOARD_RUMBA 80 // Rumba
#define BOARD_PRINTRBOARD 81 // Printrboard (AT90USB1286)
#define BOARD_PRINTRBOARD_REVF 811 // Printrboard Revision F (AT90USB1286)
#define BOARD_BRAINWAVE 82 // Brainwave (AT90USB646)
#define BOARD_SAV_MKI 83 // SAV Mk-I (AT90USB1286)
#define BOARD_TEENSY2 84 // Teensy++2.0 (AT90USB1286) - CLI compile: DEFINES=AT90USBxx_TEENSYPP_ASSIGNMENTS HARDWARE_MOTHERBOARD=84 make
#define BOARD_BRAINWAVE_PRO 85 // Brainwave Pro (AT90USB1286)
#define BOARD_GEN3_PLUS 9 // Gen3+
#define BOARD_GEN3_MONOLITHIC 22 // Gen3 Monolithic Electronics
#define BOARD_MEGATRONICS 70 // Megatronics
#define BOARD_MEGATRONICS_2 701 // Megatronics v2.0
#define BOARD_MINITRONICS 702 // Minitronics v1.0/1.1
#define BOARD_MEGATRONICS_3 703 // Megatronics v3.0
#define BOARD_OMCA_A 90 // Alpha OMCA board
#define BOARD_OMCA 91 // Final OMCA board
#define BOARD_RAMBO 301 // Rambo
#define BOARD_MINIRAMBO 302 // Mini-Rambo
#define BOARD_AJ4P 303 // AJ4P
#define BOARD_MEGACONTROLLER 310 // Mega controller
#define BOARD_ELEFU_3 21 // Elefu Ra Board (v3)
#define BOARD_5DPRINT 88 // 5DPrint D8 Driver Board
#define BOARD_LEAPFROG 999 // Leapfrog
#define BOARD_MKS_BASE 40 // MKS BASE 1.0
#define BOARD_MKS_13 47 // MKS v1.3 or 1.4 (maybe higher)
#define BOARD_SAINSMART_2IN1 49 // Sainsmart 2-in-1 board
#define BOARD_BAM_DICE 401 // 2PrintBeta BAM&DICE with STK drivers
#define BOARD_BAM_DICE_DUE 402 // 2PrintBeta BAM&DICE Due with STK drivers
#define BOARD_BQ_ZUM_MEGA_3D 503 // bq ZUM Mega 3D
#define BOARD_99 99 // This is in pins.h but...?
#define MB(board) (MOTHERBOARD==BOARD_##board)
#endif //__BOARDS_H
-145
View File
@@ -1,145 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
#ifndef __BUZZER_H__
#define __BUZZER_H__
#include "types.h"
#include "fastio.h"
#include "circularqueue.h"
#include "temperature.h"
#include "MarlinConfig.h"
#define TONE_QUEUE_LENGTH 4
/**
* @brief Tone structure
* @details Simple abstraction of a tone based on a duration and a frequency.
*/
struct tone_t {
uint16_t duration;
uint16_t frequency;
};
/**
* @brief Buzzer class
*/
class Buzzer {
private:
struct state_t {
tone_t tone;
uint32_t endtime;
} state;
protected:
CircularQueue<tone_t, TONE_QUEUE_LENGTH> buffer;
/**
* @brief Inverts the sate of a digital PIN
* @details This will invert the current state of an digital IO pin.
*/
void invert() {
TOGGLE(BEEPER_PIN);
}
/**
* @brief Turn off a digital PIN
* @details Alias of digitalWrite(PIN, LOW) using FastIO
*/
void off() {
WRITE(BEEPER_PIN, LOW);
}
/**
* @brief Turn on a digital PIN
* @details Alias of digitalWrite(PIN, HIGH) using FastIO
*/
void on() {
WRITE(BEEPER_PIN, HIGH);
}
/**
* @brief Resets the state of the class
* @details Brings the class state to a known one.
*/
void reset() {
this->off();
this->state.endtime = 0;
}
public:
/**
* @brief Class constructor
*/
Buzzer() {
SET_OUTPUT(BEEPER_PIN);
this->reset();
}
/**
* @brief Add a tone to the queue
* @details Adds a tone_t structure to the ring buffer, will block IO if the
* queue is full waiting for one slot to get available.
*
* @param duration Duration of the tone in milliseconds
* @param frequency Frequency of the tone in hertz
*/
void tone(uint16_t const &duration, uint16_t const &frequency = 0) {
while (buffer.isFull()) {
this->tick();
thermalManager.manage_heater();
}
this->buffer.enqueue((tone_t) { duration, frequency });
}
/**
* @brief Loop function
* @details This function should be called at loop, it will take care of
* playing the tones in the queue.
*/
virtual void tick() {
const millis_t now = millis();
if (!this->state.endtime) {
if (this->buffer.isEmpty()) return;
this->state.tone = this->buffer.dequeue();
this->state.endtime = now + this->state.tone.duration;
if (this->state.tone.frequency > 0) {
#if ENABLED(SPEAKER)
CRITICAL_SECTION_START;
::tone(BEEPER_PIN, this->state.tone.frequency, this->state.tone.duration);
CRITICAL_SECTION_END;
#else
this->on();
#endif
}
}
else if (ELAPSED(now, this->state.endtime)) this->reset();
}
};
extern Buzzer buzzer;
#endif
-624
View File
@@ -1,624 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
#include "cardreader.h"
#include "ultralcd.h"
#include "stepper.h"
#include "temperature.h"
#include "language.h"
#include "Marlin.h"
#if ENABLED(SDSUPPORT)
CardReader::CardReader() {
filesize = 0;
sdpos = 0;
sdprinting = false;
cardOK = false;
saving = false;
logging = false;
workDirDepth = 0;
file_subcall_ctr = 0;
memset(workDirParents, 0, sizeof(workDirParents));
autostart_stilltocheck = true; //the SD start is delayed, because otherwise the serial cannot answer fast enough to make contact with the host software.
autostart_index = 0;
//power to SD reader
#if SDPOWER > -1
OUT_WRITE(SDPOWER, HIGH);
#endif //SDPOWER
next_autostart_ms = millis() + 5000;
}
char *createFilename(char *buffer, const dir_t &p) { //buffer > 12characters
char *pos = buffer;
for (uint8_t i = 0; i < 11; i++) {
if (p.name[i] == ' ') continue;
if (i == 8) *pos++ = '.';
*pos++ = p.name[i];
}
*pos++ = 0;
return buffer;
}
/**
* Dive into a folder and recurse depth-first to perform a pre-set operation lsAction:
* LS_Count - Add +1 to nrFiles for every file within the parent
* LS_GetFilename - Get the filename of the file indexed by nrFiles
* LS_SerialPrint - Print the full path of each file to serial output
*/
void CardReader::lsDive(const char *prepend, SdFile parent, const char * const match/*=NULL*/) {
dir_t p;
uint8_t cnt = 0;
// Read the next entry from a directory
while (parent.readDir(p, longFilename) > 0) {
// If the entry is a directory and the action is LS_SerialPrint
if (DIR_IS_SUBDIR(&p) && lsAction != LS_Count && lsAction != LS_GetFilename) {
// Get the short name for the item, which we know is a folder
char lfilename[FILENAME_LENGTH];
createFilename(lfilename, p);
// Allocate enough stack space for the full path to a folder, trailing slash, and nul
boolean prepend_is_empty = (prepend[0] == '\0');
int len = (prepend_is_empty ? 1 : strlen(prepend)) + strlen(lfilename) + 1 + 1;
char path[len];
// Append the FOLDERNAME12/ to the passed string.
// It contains the full path to the "parent" argument.
// We now have the full path to the item in this folder.
strcpy(path, prepend_is_empty ? "/" : prepend); // root slash if prepend is empty
strcat(path, lfilename); // FILENAME_LENGTH-1 characters maximum
strcat(path, "/"); // 1 character
// Serial.print(path);
// Get a new directory object using the full path
// and dive recursively into it.
SdFile dir;
if (!dir.open(parent, lfilename, O_READ)) {
if (lsAction == LS_SerialPrint) {
SERIAL_ECHO_START;
SERIAL_ECHOPGM(MSG_SD_CANT_OPEN_SUBDIR);
SERIAL_ECHOLN(lfilename);
}
}
lsDive(path, dir);
// close() is done automatically by destructor of SdFile
}
else {
uint8_t pn0 = p.name[0];
if (pn0 == DIR_NAME_FREE) break;
if (pn0 == DIR_NAME_DELETED || pn0 == '.') continue;
if (longFilename[0] == '.') continue;
if (!DIR_IS_FILE_OR_SUBDIR(&p)) continue;
filenameIsDir = DIR_IS_SUBDIR(&p);
if (!filenameIsDir && (p.name[8] != 'G' || p.name[9] == '~')) continue;
switch (lsAction) {
case LS_Count:
nrFiles++;
break;
case LS_SerialPrint:
createFilename(filename, p);
SERIAL_PROTOCOL(prepend);
SERIAL_PROTOCOLLN(filename);
break;
case LS_GetFilename:
createFilename(filename, p);
if (match != NULL) {
if (strcasecmp(match, filename) == 0) return;
}
else if (cnt == nrFiles) return;
cnt++;
break;
}
}
} // while readDir
}
void CardReader::ls() {
lsAction = LS_SerialPrint;
root.rewind();
lsDive("", root);
}
#if ENABLED(LONG_FILENAME_HOST_SUPPORT)
/**
* Get a long pretty path based on a DOS 8.3 path
*/
void CardReader::printLongPath(char *path) {
lsAction = LS_GetFilename;
int i, pathLen = strlen(path);
// SERIAL_ECHOPGM("Full Path: "); SERIAL_ECHOLN(path);
// Zero out slashes to make segments
for (i = 0; i < pathLen; i++) if (path[i] == '/') path[i] = '\0';
SdFile diveDir = root; // start from the root for segment 1
for (i = 0; i < pathLen;) {
if (path[i] == '\0') i++; // move past a single nul
char *segment = &path[i]; // The segment after most slashes
// If a segment is empty (extra-slash) then exit
if (!*segment) break;
// Go to the next segment
while (path[++i]) { }
// SERIAL_ECHOPGM("Looking for segment: "); SERIAL_ECHOLN(segment);
// Find the item, setting the long filename
diveDir.rewind();
lsDive("", diveDir, segment);
// Print /LongNamePart to serial output
SERIAL_PROTOCOLCHAR('/');
SERIAL_PROTOCOL(longFilename[0] ? longFilename : "???");
// If the filename was printed then that's it
if (!filenameIsDir) break;
// SERIAL_ECHOPGM("Opening dir: "); SERIAL_ECHOLN(segment);
// Open the sub-item as the new dive parent
SdFile dir;
if (!dir.open(diveDir, segment, O_READ)) {
SERIAL_EOL;
SERIAL_ECHO_START;
SERIAL_ECHOPGM(MSG_SD_CANT_OPEN_SUBDIR);
SERIAL_ECHO(segment);
break;
}
diveDir.close();
diveDir = dir;
} // while i<pathLen
SERIAL_EOL;
}
#endif // LONG_FILENAME_HOST_SUPPORT
void CardReader::initsd() {
cardOK = false;
if (root.isOpen()) root.close();
#ifndef SPI_SPEED
#define SPI_SPEED SPI_FULL_SPEED
#endif
if (!card.init(SPI_SPEED,SDSS)
#if defined(LCD_SDSS) && (LCD_SDSS != SDSS)
&& !card.init(SPI_SPEED, LCD_SDSS)
#endif
) {
//if (!card.init(SPI_HALF_SPEED,SDSS))
SERIAL_ECHO_START;
SERIAL_ECHOLNPGM(MSG_SD_INIT_FAIL);
}
else if (!volume.init(&card)) {
SERIAL_ERROR_START;
SERIAL_ERRORLNPGM(MSG_SD_VOL_INIT_FAIL);
}
else if (!root.openRoot(&volume)) {
SERIAL_ERROR_START;
SERIAL_ERRORLNPGM(MSG_SD_OPENROOT_FAIL);
}
else {
cardOK = true;
SERIAL_ECHO_START;
SERIAL_ECHOLNPGM(MSG_SD_CARD_OK);
}
workDir = root;
curDir = &root;
/**
if (!workDir.openRoot(&volume)) {
SERIAL_ECHOLNPGM(MSG_SD_WORKDIR_FAIL);
}
*/
}
void CardReader::setroot() {
/*if (!workDir.openRoot(&volume)) {
SERIAL_ECHOLNPGM(MSG_SD_WORKDIR_FAIL);
}*/
workDir = root;
curDir = &workDir;
}
void CardReader::release() {
sdprinting = false;
cardOK = false;
}
void CardReader::openAndPrintFile(const char *name) {
char cmd[4 + strlen(name) + 1]; // Room for "M23 ", filename, and null
sprintf_P(cmd, PSTR("M23 %s"), name);
for (char *c = &cmd[4]; *c; c++) *c = tolower(*c);
enqueue_and_echo_command(cmd);
enqueue_and_echo_commands_P(PSTR("M24"));
}
void CardReader::startFileprint() {
if (cardOK)
sdprinting = true;
}
void CardReader::pauseSDPrint() {
if (sdprinting) sdprinting = false;
}
void CardReader::stopSDPrint() {
if (sdprinting) {
sdprinting = false;
file.close();
}
}
void CardReader::openLogFile(char* name) {
logging = true;
openFile(name, false);
}
void CardReader::getAbsFilename(char *t) {
uint8_t cnt = 0;
*t = '/'; t++; cnt++;
for (uint8_t i = 0; i < workDirDepth; i++) {
workDirParents[i].getFilename(t); //SDBaseFile.getfilename!
while (*t && cnt < MAXPATHNAMELENGTH) { t++; cnt++; } //crawl counter forward.
}
if (cnt < MAXPATHNAMELENGTH - (FILENAME_LENGTH))
file.getFilename(t);
else
t[0] = 0;
}
void CardReader::openFile(char* name, bool read, bool push_current/*=false*/) {
if (!cardOK) return;
if (file.isOpen()) { //replacing current file by new file, or subfile call
if (push_current) {
if (file_subcall_ctr > SD_PROCEDURE_DEPTH - 1) {
SERIAL_ERROR_START;
SERIAL_ERRORPGM("trying to call sub-gcode files with too many levels. MAX level is:");
SERIAL_ERRORLN(SD_PROCEDURE_DEPTH);
kill(PSTR(MSG_KILLED));
return;
}
SERIAL_ECHO_START;
SERIAL_ECHOPGM("SUBROUTINE CALL target:\"");
SERIAL_ECHO(name);
SERIAL_ECHOPGM("\" parent:\"");
//store current filename and position
getAbsFilename(proc_filenames[file_subcall_ctr]);
SERIAL_ECHO(proc_filenames[file_subcall_ctr]);
SERIAL_ECHOPGM("\" pos");
SERIAL_ECHOLN(sdpos);
filespos[file_subcall_ctr] = sdpos;
file_subcall_ctr++;
}
else {
SERIAL_ECHO_START;
SERIAL_ECHOPGM("Now doing file: ");
SERIAL_ECHOLN(name);
}
file.close();
}
else { //opening fresh file
file_subcall_ctr = 0; //resetting procedure depth in case user cancels print while in procedure
SERIAL_ECHO_START;
SERIAL_ECHOPGM("Now fresh file: ");
SERIAL_ECHOLN(name);
}
sdprinting = false;
SdFile myDir;
curDir = &root;
char *fname = name;
char *dirname_start, *dirname_end;
if (name[0] == '/') {
dirname_start = &name[1];
while (dirname_start != NULL) {
dirname_end = strchr(dirname_start, '/');
//SERIAL_ECHOPGM("start:");SERIAL_ECHOLN((int)(dirname_start - name));
//SERIAL_ECHOPGM("end :");SERIAL_ECHOLN((int)(dirname_end - name));
if (dirname_end != NULL && dirname_end > dirname_start) {
char subdirname[FILENAME_LENGTH];
strncpy(subdirname, dirname_start, dirname_end - dirname_start);
subdirname[dirname_end - dirname_start] = 0;
SERIAL_ECHOLN(subdirname);
if (!myDir.open(curDir, subdirname, O_READ)) {
SERIAL_PROTOCOLPGM(MSG_SD_OPEN_FILE_FAIL);
SERIAL_PROTOCOL(subdirname);
SERIAL_PROTOCOLCHAR('.');
return;
}
else {
//SERIAL_ECHOLNPGM("dive ok");
}
curDir = &myDir;
dirname_start = dirname_end + 1;
}
else { // the remainder after all /fsa/fdsa/ is the filename
fname = dirname_start;
//SERIAL_ECHOLNPGM("remainder");
//SERIAL_ECHOLN(fname);
break;
}
}
}
else { //relative path
curDir = &workDir;
}
if (read) {
if (file.open(curDir, fname, O_READ)) {
filesize = file.fileSize();
SERIAL_PROTOCOLPAIR(MSG_SD_FILE_OPENED, fname);
SERIAL_PROTOCOLPAIR(MSG_SD_SIZE, filesize);
SERIAL_EOL;
sdpos = 0;
SERIAL_PROTOCOLLNPGM(MSG_SD_FILE_SELECTED);
getfilename(0, fname);
lcd_setstatus(longFilename[0] ? longFilename : fname);
}
else {
SERIAL_PROTOCOLPAIR(MSG_SD_OPEN_FILE_FAIL, fname);
SERIAL_PROTOCOLCHAR('.');
SERIAL_EOL;
}
}
else { //write
if (!file.open(curDir, fname, O_CREAT | O_APPEND | O_WRITE | O_TRUNC)) {
SERIAL_PROTOCOLPAIR(MSG_SD_OPEN_FILE_FAIL, fname);
SERIAL_PROTOCOLCHAR('.');
SERIAL_EOL;
}
else {
saving = true;
SERIAL_PROTOCOLPAIR(MSG_SD_WRITE_TO_FILE, name);
SERIAL_EOL;
lcd_setstatus(fname);
}
}
}
void CardReader::removeFile(char* name) {
if (!cardOK) return;
file.close();
sdprinting = false;
SdFile myDir;
curDir = &root;
char *fname = name;
char *dirname_start, *dirname_end;
if (name[0] == '/') {
dirname_start = strchr(name, '/') + 1;
while (dirname_start != NULL) {
dirname_end = strchr(dirname_start, '/');
//SERIAL_ECHOPGM("start:");SERIAL_ECHOLN((int)(dirname_start - name));
//SERIAL_ECHOPGM("end :");SERIAL_ECHOLN((int)(dirname_end - name));
if (dirname_end != NULL && dirname_end > dirname_start) {
char subdirname[FILENAME_LENGTH];
strncpy(subdirname, dirname_start, dirname_end - dirname_start);
subdirname[dirname_end - dirname_start] = 0;
SERIAL_ECHOLN(subdirname);
if (!myDir.open(curDir, subdirname, O_READ)) {
SERIAL_PROTOCOLPAIR("open failed, File: ", subdirname);
SERIAL_PROTOCOLCHAR('.');
return;
}
else {
//SERIAL_ECHOLNPGM("dive ok");
}
curDir = &myDir;
dirname_start = dirname_end + 1;
}
else { // the remainder after all /fsa/fdsa/ is the filename
fname = dirname_start;
//SERIAL_ECHOLNPGM("remainder");
//SERIAL_ECHOLN(fname);
break;
}
}
}
else { // relative path
curDir = &workDir;
}
if (file.remove(curDir, fname)) {
SERIAL_PROTOCOLPGM("File deleted:");
SERIAL_PROTOCOLLN(fname);
sdpos = 0;
}
else {
SERIAL_PROTOCOLPGM("Deletion failed, File: ");
SERIAL_PROTOCOL(fname);
SERIAL_PROTOCOLCHAR('.');
}
}
void CardReader::getStatus() {
if (cardOK) {
SERIAL_PROTOCOLPGM(MSG_SD_PRINTING_BYTE);
SERIAL_PROTOCOL(sdpos);
SERIAL_PROTOCOLCHAR('/');
SERIAL_PROTOCOLLN(filesize);
}
else {
SERIAL_PROTOCOLLNPGM(MSG_SD_NOT_PRINTING);
}
}
void CardReader::write_command(char *buf) {
char* begin = buf;
char* npos = 0;
char* end = buf + strlen(buf) - 1;
file.writeError = false;
if ((npos = strchr(buf, 'N')) != NULL) {
begin = strchr(npos, ' ') + 1;
end = strchr(npos, '*') - 1;
}
end[1] = '\r';
end[2] = '\n';
end[3] = '\0';
file.write(begin);
if (file.writeError) {
SERIAL_ERROR_START;
SERIAL_ERRORLNPGM(MSG_SD_ERR_WRITE_TO_FILE);
}
}
void CardReader::checkautostart(bool force) {
if (!force && (!autostart_stilltocheck || ELAPSED(millis(), next_autostart_ms)))
return;
autostart_stilltocheck = false;
if (!cardOK) {
initsd();
if (!cardOK) return; // fail
}
char autoname[10];
sprintf_P(autoname, PSTR("auto%i.g"), autostart_index);
for (int8_t i = 0; i < (int8_t)strlen(autoname); i++) autoname[i] = tolower(autoname[i]);
dir_t p;
root.rewind();
bool found = false;
while (root.readDir(p, NULL) > 0) {
for (int8_t i = 0; i < (int8_t)strlen((char*)p.name); i++) p.name[i] = tolower(p.name[i]);
if (p.name[9] != '~' && strncmp((char*)p.name, autoname, 5) == 0) {
openAndPrintFile(autoname);
found = true;
}
}
if (!found)
autostart_index = -1;
else
autostart_index++;
}
void CardReader::closefile(bool store_location) {
file.sync();
file.close();
saving = logging = false;
if (store_location) {
//future: store printer state, filename and position for continuing a stopped print
// so one can unplug the printer and continue printing the next day.
}
}
/**
* Get the name of a file in the current directory by index
*/
void CardReader::getfilename(uint16_t nr, const char * const match/*=NULL*/) {
curDir = &workDir;
lsAction = LS_GetFilename;
nrFiles = nr;
curDir->rewind();
lsDive("", *curDir, match);
}
uint16_t CardReader::getnrfilenames() {
curDir = &workDir;
lsAction = LS_Count;
nrFiles = 0;
curDir->rewind();
lsDive("", *curDir);
//SERIAL_ECHOLN(nrFiles);
return nrFiles;
}
void CardReader::chdir(const char * relpath) {
SdFile newfile;
SdFile *parent = &root;
if (workDir.isOpen()) parent = &workDir;
if (!newfile.open(*parent, relpath, O_READ)) {
SERIAL_ECHO_START;
SERIAL_ECHOPGM(MSG_SD_CANT_ENTER_SUBDIR);
SERIAL_ECHOLN(relpath);
}
else {
if (workDirDepth < MAX_DIR_DEPTH)
workDirParents[workDirDepth++] = *parent;
workDir = newfile;
}
}
void CardReader::updir() {
if (workDirDepth > 0)
workDir = workDirParents[--workDirDepth];
}
void CardReader::printingHasFinished() {
stepper.synchronize();
file.close();
if (file_subcall_ctr > 0) { // Heading up to a parent file that called current as a procedure.
file_subcall_ctr--;
openFile(proc_filenames[file_subcall_ctr], true, true);
setIndex(filespos[file_subcall_ctr]);
startFileprint();
}
else {
sdprinting = false;
if (SD_FINISHED_STEPPERRELEASE)
enqueue_and_echo_commands_P(PSTR(SD_FINISHED_RELEASECOMMAND));
print_job_timer.stop();
if (print_job_timer.duration() > 60)
enqueue_and_echo_commands_P(PSTR("M31"));
}
}
#endif //SDSUPPORT
-129
View File
@@ -1,129 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
#ifndef CARDREADER_H
#define CARDREADER_H
#include "MarlinConfig.h"
#if ENABLED(SDSUPPORT)
#define MAX_DIR_DEPTH 10 // Maximum folder depth
#include "SdFile.h"
#include "types.h"
#include "enum.h"
class CardReader {
public:
CardReader();
void initsd();
void write_command(char *buf);
//files auto[0-9].g on the sd card are performed in a row
//this is to delay autostart and hence the initialisaiton of the sd card to some seconds after the normal init, so the device is available quick after a reset
void checkautostart(bool x);
void openFile(char* name, bool read, bool push_current=false);
void openLogFile(char* name);
void removeFile(char* name);
void closefile(bool store_location=false);
void release();
void openAndPrintFile(const char *name);
void startFileprint();
void pauseSDPrint();
void stopSDPrint();
void getStatus();
void printingHasFinished();
#if ENABLED(LONG_FILENAME_HOST_SUPPORT)
void printLongPath(char *path);
#endif
void getfilename(uint16_t nr, const char* const match=NULL);
uint16_t getnrfilenames();
void getAbsFilename(char *t);
void ls();
void chdir(const char *relpath);
void updir();
void setroot();
FORCE_INLINE bool isFileOpen() { return file.isOpen(); }
FORCE_INLINE bool eof() { return sdpos >= filesize; }
FORCE_INLINE int16_t get() { sdpos = file.curPosition(); return (int16_t)file.read(); }
FORCE_INLINE void setIndex(long index) { sdpos = index; file.seekSet(index); }
FORCE_INLINE uint8_t percentDone() { return (isFileOpen() && filesize) ? sdpos / ((filesize + 99) / 100) : 0; }
FORCE_INLINE char* getWorkDirName() { workDir.getFilename(filename); return filename; }
public:
bool saving, logging, sdprinting, cardOK, filenameIsDir;
char filename[FILENAME_LENGTH], longFilename[LONG_FILENAME_LENGTH];
int autostart_index;
private:
SdFile root, *curDir, workDir, workDirParents[MAX_DIR_DEPTH];
uint8_t workDirDepth;
Sd2Card card;
SdVolume volume;
SdFile file;
#define SD_PROCEDURE_DEPTH 1
#define MAXPATHNAMELENGTH (FILENAME_LENGTH*MAX_DIR_DEPTH + MAX_DIR_DEPTH + 1)
uint8_t file_subcall_ctr;
uint32_t filespos[SD_PROCEDURE_DEPTH];
char proc_filenames[SD_PROCEDURE_DEPTH][MAXPATHNAMELENGTH];
uint32_t filesize;
uint32_t sdpos;
millis_t next_autostart_ms;
bool autostart_stilltocheck; //the sd start is delayed, because otherwise the serial cannot answer fast enought to make contact with the hostsoftware.
LsAction lsAction; //stored for recursion.
uint16_t nrFiles; //counter for the files in the current directory and recycled as position counter for getting the nrFiles'th name in the directory.
char* diveDirName;
void lsDive(const char *prepend, SdFile parent, const char * const match=NULL);
};
extern CardReader card;
#define IS_SD_PRINTING (card.sdprinting)
#if PIN_EXISTS(SD_DETECT)
#if ENABLED(SD_DETECT_INVERTED)
#define IS_SD_INSERTED (READ(SD_DETECT_PIN) != 0)
#else
#define IS_SD_INSERTED (READ(SD_DETECT_PIN) == 0)
#endif
#else
//No card detect line? Assume the card is inserted.
#define IS_SD_INSERTED true
#endif
#else
#define IS_SD_PRINTING (false)
#endif //SDSUPPORT
#endif //__CARDREADER_H
-994
View File
@@ -1,994 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
* configuration_store.cpp
*
* Configuration and EEPROM storage
*
* IMPORTANT: Whenever there are changes made to the variables stored in EEPROM
* in the functions below, also increment the version number. This makes sure that
* the default values are used whenever there is a change to the data, to prevent
* wrong data being written to the variables.
*
* ALSO: Variables in the Store and Retrieve sections must be in the same order.
* If a feature is disabled, some data must still be written that, when read,
* either sets a Sane Default, or results in No Change to the existing value.
*
*/
#define EEPROM_VERSION "V24"
// Change EEPROM version if these are changed:
#define EEPROM_OFFSET 100
#define MAX_EXTRUDERS 4
/**
* V24 EEPROM Layout:
*
* 100 Version (char x4)
* 104 EEPROM Checksum (uint16_t)
*
* 106 M92 XYZE planner.axis_steps_per_mm (float x4)
* 122 M203 XYZE planner.max_feedrate_mm_s (float x4)
* 138 M201 XYZE planner.max_acceleration_mm_per_s2 (uint32_t x4)
* 154 M204 P planner.acceleration (float)
* 158 M204 R planner.retract_acceleration (float)
* 162 M204 T planner.travel_acceleration (float)
* 166 M205 S planner.min_feedrate_mm_s (float)
* 170 M205 T planner.min_travel_feedrate_mm_s (float)
* 174 M205 B planner.min_segment_time (ulong)
* 178 M205 X planner.max_xy_jerk (float)
* 182 M205 Z planner.max_z_jerk (float)
* 186 M205 E planner.max_e_jerk (float)
* 190 M206 XYZ home_offset (float x3)
*
* Mesh bed leveling:
* 202 M420 S status (uint8)
* 203 z_offset (float)
* 207 mesh_num_x (uint8 as set in firmware)
* 208 mesh_num_y (uint8 as set in firmware)
* 209 G29 S3 XYZ z_values[][] (float x9, by default, up to float x 81)
*
* AUTO BED LEVELING
* 245 M851 zprobe_zoffset (float)
*
* DELTA:
* 249 M666 XYZ endstop_adj (float x3)
* 261 M665 R delta_radius (float)
* 265 M665 L delta_diagonal_rod (float)
* 269 M665 S delta_segments_per_second (float)
* 273 M665 A delta_diagonal_rod_trim_tower_1 (float)
* 277 M665 B delta_diagonal_rod_trim_tower_2 (float)
* 281 M665 C delta_diagonal_rod_trim_tower_3 (float)
*
* Z_DUAL_ENDSTOPS:
* 285 M666 Z z_endstop_adj (float)
*
* ULTIPANEL:
* 289 M145 S0 H preheatHotendTemp1 (int)
* 291 M145 S0 B preheatBedTemp1 (int)
* 293 M145 S0 F preheatFanSpeed1 (int)
* 295 M145 S1 H preheatHotendTemp2 (int)
* 297 M145 S1 B preheatBedTemp2 (int)
* 299 M145 S1 F preheatFanSpeed2 (int)
*
* PIDTEMP:
* 301 M301 E0 PIDC Kp[0], Ki[0], Kd[0], Kc[0] (float x4)
* 317 M301 E1 PIDC Kp[1], Ki[1], Kd[1], Kc[1] (float x4)
* 333 M301 E2 PIDC Kp[2], Ki[2], Kd[2], Kc[2] (float x4)
* 349 M301 E3 PIDC Kp[3], Ki[3], Kd[3], Kc[3] (float x4)
* 365 M301 L lpq_len (int)
*
* PIDTEMPBED:
* 367 M304 PID thermalManager.bedKp, thermalManager.bedKi, thermalManager.bedKd (float x3)
*
* DOGLCD:
* 379 M250 C lcd_contrast (int)
*
* SCARA:
* 381 M365 XYZ axis_scaling (float x3)
*
* FWRETRACT:
* 393 M209 S autoretract_enabled (bool)
* 394 M207 S retract_length (float)
* 398 M207 W retract_length_swap (float)
* 402 M207 F retract_feedrate_mm_s (float)
* 406 M207 Z retract_zlift (float)
* 410 M208 S retract_recover_length (float)
* 414 M208 W retract_recover_length_swap (float)
* 418 M208 F retract_recover_feedrate_mm_s (float)
*
* Volumetric Extrusion:
* 422 M200 D volumetric_enabled (bool)
* 423 M200 T D filament_size (float x4) (T0..3)
*
* 439 This Slot is Available!
*
*/
#include "Marlin.h"
#include "language.h"
#include "endstops.h"
#include "planner.h"
#include "temperature.h"
#include "ultralcd.h"
#include "configuration_store.h"
#if ENABLED(MESH_BED_LEVELING)
#include "mesh_bed_leveling.h"
#endif
uint16_t eeprom_checksum;
const char version[4] = EEPROM_VERSION;
void _EEPROM_writeData(int &pos, uint8_t* value, uint8_t size) {
uint8_t c;
while (size--) {
eeprom_write_byte((unsigned char*)pos, *value);
c = eeprom_read_byte((unsigned char*)pos);
if (c != *value) {
SERIAL_ECHO_START;
SERIAL_ECHOLNPGM(MSG_ERR_EEPROM_WRITE);
}
eeprom_checksum += c;
pos++;
value++;
};
}
void _EEPROM_readData(int &pos, uint8_t* value, uint8_t size) {
do {
uint8_t c = eeprom_read_byte((unsigned char*)pos);
*value = c;
eeprom_checksum += c;
pos++;
value++;
} while (--size);
}
/**
* Post-process after Retrieve or Reset
*/
void Config_Postprocess() {
// steps per s2 needs to be updated to agree with units per s2
planner.reset_acceleration_rates();
// Make sure delta kinematics are updated before refreshing the
// planner position so the stepper counts will be set correctly.
#if ENABLED(DELTA)
recalc_delta_settings(delta_radius, delta_diagonal_rod);
#endif
// Refresh steps_to_mm with the reciprocal of axis_steps_per_mm
// and init stepper.count[], planner.position[] with current_position
planner.refresh_positioning();
#if ENABLED(PIDTEMP)
thermalManager.updatePID();
#endif
calculate_volumetric_multipliers();
}
#if ENABLED(EEPROM_SETTINGS)
#define DUMMY_PID_VALUE 3000.0f
#define EEPROM_START() int eeprom_index = EEPROM_OFFSET
#define EEPROM_SKIP(VAR) eeprom_index += sizeof(VAR)
#define EEPROM_WRITE(VAR) _EEPROM_writeData(eeprom_index, (uint8_t*)&VAR, sizeof(VAR))
#define EEPROM_READ(VAR) _EEPROM_readData(eeprom_index, (uint8_t*)&VAR, sizeof(VAR))
/**
* M500 - Store Configuration
*/
void Config_StoreSettings() {
float dummy = 0.0f;
char ver[4] = "000";
EEPROM_START();
EEPROM_WRITE(ver); // invalidate data first
EEPROM_SKIP(eeprom_checksum); // Skip the checksum slot
eeprom_checksum = 0; // clear before first "real data"
EEPROM_WRITE(planner.axis_steps_per_mm);
EEPROM_WRITE(planner.max_feedrate_mm_s);
EEPROM_WRITE(planner.max_acceleration_mm_per_s2);
EEPROM_WRITE(planner.acceleration);
EEPROM_WRITE(planner.retract_acceleration);
EEPROM_WRITE(planner.travel_acceleration);
EEPROM_WRITE(planner.min_feedrate_mm_s);
EEPROM_WRITE(planner.min_travel_feedrate_mm_s);
EEPROM_WRITE(planner.min_segment_time);
EEPROM_WRITE(planner.max_xy_jerk);
EEPROM_WRITE(planner.max_z_jerk);
EEPROM_WRITE(planner.max_e_jerk);
EEPROM_WRITE(home_offset);
#if ENABLED(MESH_BED_LEVELING)
// Compile time test that sizeof(mbl.z_values) is as expected
typedef char c_assert[(sizeof(mbl.z_values) == (MESH_NUM_X_POINTS) * (MESH_NUM_Y_POINTS) * sizeof(dummy)) ? 1 : -1];
uint8_t mesh_num_x = MESH_NUM_X_POINTS,
mesh_num_y = MESH_NUM_Y_POINTS,
dummy_uint8 = mbl.status & _BV(MBL_STATUS_HAS_MESH_BIT);
EEPROM_WRITE(dummy_uint8);
EEPROM_WRITE(mbl.z_offset);
EEPROM_WRITE(mesh_num_x);
EEPROM_WRITE(mesh_num_y);
EEPROM_WRITE(mbl.z_values);
#else
// For disabled MBL write a default mesh
uint8_t mesh_num_x = 3,
mesh_num_y = 3,
dummy_uint8 = 0;
dummy = 0.0f;
EEPROM_WRITE(dummy_uint8);
EEPROM_WRITE(dummy);
EEPROM_WRITE(mesh_num_x);
EEPROM_WRITE(mesh_num_y);
for (uint8_t q = 0; q < mesh_num_x * mesh_num_y; q++) EEPROM_WRITE(dummy);
#endif // MESH_BED_LEVELING
#if !HAS_BED_PROBE
float zprobe_zoffset = 0;
#endif
EEPROM_WRITE(zprobe_zoffset);
// 9 floats for DELTA / Z_DUAL_ENDSTOPS
#if ENABLED(DELTA)
EEPROM_WRITE(endstop_adj); // 3 floats
EEPROM_WRITE(delta_radius); // 1 float
EEPROM_WRITE(delta_diagonal_rod); // 1 float
EEPROM_WRITE(delta_segments_per_second); // 1 float
EEPROM_WRITE(delta_diagonal_rod_trim_tower_1); // 1 float
EEPROM_WRITE(delta_diagonal_rod_trim_tower_2); // 1 float
EEPROM_WRITE(delta_diagonal_rod_trim_tower_3); // 1 float
#elif ENABLED(Z_DUAL_ENDSTOPS)
EEPROM_WRITE(z_endstop_adj); // 1 float
dummy = 0.0f;
for (uint8_t q = 8; q--;) EEPROM_WRITE(dummy);
#else
dummy = 0.0f;
for (uint8_t q = 9; q--;) EEPROM_WRITE(dummy);
#endif
#if DISABLED(ULTIPANEL)
int preheatHotendTemp1 = PREHEAT_1_TEMP_HOTEND, preheatBedTemp1 = PREHEAT_1_TEMP_BED, preheatFanSpeed1 = PREHEAT_1_FAN_SPEED,
preheatHotendTemp2 = PREHEAT_2_TEMP_HOTEND, preheatBedTemp2 = PREHEAT_2_TEMP_BED, preheatFanSpeed2 = PREHEAT_2_FAN_SPEED;
#endif // !ULTIPANEL
EEPROM_WRITE(preheatHotendTemp1);
EEPROM_WRITE(preheatBedTemp1);
EEPROM_WRITE(preheatFanSpeed1);
EEPROM_WRITE(preheatHotendTemp2);
EEPROM_WRITE(preheatBedTemp2);
EEPROM_WRITE(preheatFanSpeed2);
for (uint8_t e = 0; e < MAX_EXTRUDERS; e++) {
#if ENABLED(PIDTEMP)
if (e < HOTENDS) {
EEPROM_WRITE(PID_PARAM(Kp, e));
EEPROM_WRITE(PID_PARAM(Ki, e));
EEPROM_WRITE(PID_PARAM(Kd, e));
#if ENABLED(PID_EXTRUSION_SCALING)
EEPROM_WRITE(PID_PARAM(Kc, e));
#else
dummy = 1.0f; // 1.0 = default kc
EEPROM_WRITE(dummy);
#endif
}
else
#endif // !PIDTEMP
{
dummy = DUMMY_PID_VALUE; // When read, will not change the existing value
EEPROM_WRITE(dummy); // Kp
dummy = 0.0f;
for (uint8_t q = 3; q--;) EEPROM_WRITE(dummy); // Ki, Kd, Kc
}
} // Hotends Loop
#if DISABLED(PID_EXTRUSION_SCALING)
int lpq_len = 20;
#endif
EEPROM_WRITE(lpq_len);
#if DISABLED(PIDTEMPBED)
dummy = DUMMY_PID_VALUE;
for (uint8_t q = 3; q--;) EEPROM_WRITE(dummy);
#else
EEPROM_WRITE(thermalManager.bedKp);
EEPROM_WRITE(thermalManager.bedKi);
EEPROM_WRITE(thermalManager.bedKd);
#endif
#if !HAS_LCD_CONTRAST
const int lcd_contrast = 32;
#endif
EEPROM_WRITE(lcd_contrast);
#if ENABLED(SCARA)
EEPROM_WRITE(axis_scaling); // 3 floats
#else
dummy = 1.0f;
EEPROM_WRITE(dummy);
#endif
#if ENABLED(FWRETRACT)
EEPROM_WRITE(autoretract_enabled);
EEPROM_WRITE(retract_length);
#if EXTRUDERS > 1
EEPROM_WRITE(retract_length_swap);
#else
dummy = 0.0f;
EEPROM_WRITE(dummy);
#endif
EEPROM_WRITE(retract_feedrate_mm_s);
EEPROM_WRITE(retract_zlift);
EEPROM_WRITE(retract_recover_length);
#if EXTRUDERS > 1
EEPROM_WRITE(retract_recover_length_swap);
#else
dummy = 0.0f;
EEPROM_WRITE(dummy);
#endif
EEPROM_WRITE(retract_recover_feedrate_mm_s);
#endif // FWRETRACT
EEPROM_WRITE(volumetric_enabled);
// Save filament sizes
for (uint8_t q = 0; q < MAX_EXTRUDERS; q++) {
if (q < COUNT(filament_size)) dummy = filament_size[q];
EEPROM_WRITE(dummy);
}
uint16_t final_checksum = eeprom_checksum,
eeprom_size = eeprom_index;
eeprom_index = EEPROM_OFFSET;
EEPROM_WRITE(version);
EEPROM_WRITE(final_checksum);
// Report storage size
SERIAL_ECHO_START;
SERIAL_ECHOPAIR("Settings Stored (", eeprom_size);
SERIAL_ECHOLNPGM(" bytes)");
}
/**
* M501 - Retrieve Configuration
*/
void Config_RetrieveSettings() {
EEPROM_START();
char stored_ver[4];
EEPROM_READ(stored_ver);
uint16_t stored_checksum;
EEPROM_READ(stored_checksum);
// SERIAL_ECHOPAIR("Version: [", ver);
// SERIAL_ECHOPAIR("] Stored version: [", stored_ver);
// SERIAL_ECHOLNPGM("]");
if (strncmp(version, stored_ver, 3) != 0) {
Config_ResetDefault();
}
else {
float dummy = 0;
eeprom_checksum = 0; // clear before reading first "real data"
// version number match
EEPROM_READ(planner.axis_steps_per_mm);
EEPROM_READ(planner.max_feedrate_mm_s);
EEPROM_READ(planner.max_acceleration_mm_per_s2);
EEPROM_READ(planner.acceleration);
EEPROM_READ(planner.retract_acceleration);
EEPROM_READ(planner.travel_acceleration);
EEPROM_READ(planner.min_feedrate_mm_s);
EEPROM_READ(planner.min_travel_feedrate_mm_s);
EEPROM_READ(planner.min_segment_time);
EEPROM_READ(planner.max_xy_jerk);
EEPROM_READ(planner.max_z_jerk);
EEPROM_READ(planner.max_e_jerk);
EEPROM_READ(home_offset);
uint8_t dummy_uint8 = 0, mesh_num_x = 0, mesh_num_y = 0;
EEPROM_READ(dummy_uint8);
EEPROM_READ(dummy);
EEPROM_READ(mesh_num_x);
EEPROM_READ(mesh_num_y);
#if ENABLED(MESH_BED_LEVELING)
mbl.status = dummy_uint8;
mbl.z_offset = dummy;
if (mesh_num_x == MESH_NUM_X_POINTS && mesh_num_y == MESH_NUM_Y_POINTS) {
// EEPROM data fits the current mesh
EEPROM_READ(mbl.z_values);
}
else {
// EEPROM data is stale
mbl.reset();
for (uint8_t q = 0; q < mesh_num_x * mesh_num_y; q++) EEPROM_READ(dummy);
}
#else
// MBL is disabled - skip the stored data
for (uint8_t q = 0; q < mesh_num_x * mesh_num_y; q++) EEPROM_READ(dummy);
#endif // MESH_BED_LEVELING
#if !HAS_BED_PROBE
float zprobe_zoffset = 0;
#endif
EEPROM_READ(zprobe_zoffset);
#if ENABLED(DELTA)
EEPROM_READ(endstop_adj); // 3 floats
EEPROM_READ(delta_radius); // 1 float
EEPROM_READ(delta_diagonal_rod); // 1 float
EEPROM_READ(delta_segments_per_second); // 1 float
EEPROM_READ(delta_diagonal_rod_trim_tower_1); // 1 float
EEPROM_READ(delta_diagonal_rod_trim_tower_2); // 1 float
EEPROM_READ(delta_diagonal_rod_trim_tower_3); // 1 float
#elif ENABLED(Z_DUAL_ENDSTOPS)
EEPROM_READ(z_endstop_adj);
dummy = 0.0f;
for (uint8_t q=8; q--;) EEPROM_READ(dummy);
#else
dummy = 0.0f;
for (uint8_t q=9; q--;) EEPROM_READ(dummy);
#endif
#if DISABLED(ULTIPANEL)
int preheatHotendTemp1, preheatBedTemp1, preheatFanSpeed1,
preheatHotendTemp2, preheatBedTemp2, preheatFanSpeed2;
#endif
EEPROM_READ(preheatHotendTemp1);
EEPROM_READ(preheatBedTemp1);
EEPROM_READ(preheatFanSpeed1);
EEPROM_READ(preheatHotendTemp2);
EEPROM_READ(preheatBedTemp2);
EEPROM_READ(preheatFanSpeed2);
#if ENABLED(PIDTEMP)
for (uint8_t e = 0; e < MAX_EXTRUDERS; e++) {
EEPROM_READ(dummy); // Kp
if (e < HOTENDS && dummy != DUMMY_PID_VALUE) {
// do not need to scale PID values as the values in EEPROM are already scaled
PID_PARAM(Kp, e) = dummy;
EEPROM_READ(PID_PARAM(Ki, e));
EEPROM_READ(PID_PARAM(Kd, e));
#if ENABLED(PID_EXTRUSION_SCALING)
EEPROM_READ(PID_PARAM(Kc, e));
#else
EEPROM_READ(dummy);
#endif
}
else {
for (uint8_t q=3; q--;) EEPROM_READ(dummy); // Ki, Kd, Kc
}
}
#else // !PIDTEMP
// 4 x 4 = 16 slots for PID parameters
for (uint8_t q = MAX_EXTRUDERS * 4; q--;) EEPROM_READ(dummy); // Kp, Ki, Kd, Kc
#endif // !PIDTEMP
#if DISABLED(PID_EXTRUSION_SCALING)
int lpq_len;
#endif
EEPROM_READ(lpq_len);
#if ENABLED(PIDTEMPBED)
EEPROM_READ(dummy); // bedKp
if (dummy != DUMMY_PID_VALUE) {
thermalManager.bedKp = dummy;
EEPROM_READ(thermalManager.bedKi);
EEPROM_READ(thermalManager.bedKd);
}
#else
for (uint8_t q=3; q--;) EEPROM_READ(dummy); // bedKp, bedKi, bedKd
#endif
#if !HAS_LCD_CONTRAST
int lcd_contrast;
#endif
EEPROM_READ(lcd_contrast);
#if ENABLED(SCARA)
EEPROM_READ(axis_scaling); // 3 floats
#else
EEPROM_READ(dummy);
#endif
#if ENABLED(FWRETRACT)
EEPROM_READ(autoretract_enabled);
EEPROM_READ(retract_length);
#if EXTRUDERS > 1
EEPROM_READ(retract_length_swap);
#else
EEPROM_READ(dummy);
#endif
EEPROM_READ(retract_feedrate_mm_s);
EEPROM_READ(retract_zlift);
EEPROM_READ(retract_recover_length);
#if EXTRUDERS > 1
EEPROM_READ(retract_recover_length_swap);
#else
EEPROM_READ(dummy);
#endif
EEPROM_READ(retract_recover_feedrate_mm_s);
#endif // FWRETRACT
EEPROM_READ(volumetric_enabled);
for (uint8_t q = 0; q < MAX_EXTRUDERS; q++) {
EEPROM_READ(dummy);
if (q < COUNT(filament_size)) filament_size[q] = dummy;
}
if (eeprom_checksum == stored_checksum) {
Config_Postprocess();
SERIAL_ECHO_START;
SERIAL_ECHO(version);
SERIAL_ECHOPAIR(" stored settings retrieved (", eeprom_index);
SERIAL_ECHOLNPGM(" bytes)");
}
else {
SERIAL_ERROR_START;
SERIAL_ERRORLNPGM("EEPROM checksum mismatch");
Config_ResetDefault();
}
}
#if ENABLED(EEPROM_CHITCHAT)
Config_PrintSettings();
#endif
}
#endif // EEPROM_SETTINGS
/**
* M502 - Reset Configuration
*/
void Config_ResetDefault() {
float tmp1[] = DEFAULT_AXIS_STEPS_PER_UNIT;
float tmp2[] = DEFAULT_MAX_FEEDRATE;
long tmp3[] = DEFAULT_MAX_ACCELERATION;
LOOP_XYZE(i) {
planner.axis_steps_per_mm[i] = tmp1[i];
planner.max_feedrate_mm_s[i] = tmp2[i];
planner.max_acceleration_mm_per_s2[i] = tmp3[i];
#if ENABLED(SCARA)
if (i < COUNT(axis_scaling))
axis_scaling[i] = 1;
#endif
}
planner.acceleration = DEFAULT_ACCELERATION;
planner.retract_acceleration = DEFAULT_RETRACT_ACCELERATION;
planner.travel_acceleration = DEFAULT_TRAVEL_ACCELERATION;
planner.min_feedrate_mm_s = DEFAULT_MINIMUMFEEDRATE;
planner.min_segment_time = DEFAULT_MINSEGMENTTIME;
planner.min_travel_feedrate_mm_s = DEFAULT_MINTRAVELFEEDRATE;
planner.max_xy_jerk = DEFAULT_XYJERK;
planner.max_z_jerk = DEFAULT_ZJERK;
planner.max_e_jerk = DEFAULT_EJERK;
home_offset[X_AXIS] = home_offset[Y_AXIS] = home_offset[Z_AXIS] = 0;
#if ENABLED(MESH_BED_LEVELING)
mbl.reset();
#endif
#if HAS_BED_PROBE
zprobe_zoffset = Z_PROBE_OFFSET_FROM_EXTRUDER;
#endif
#if ENABLED(DELTA)
endstop_adj[X_AXIS] = endstop_adj[Y_AXIS] = endstop_adj[Z_AXIS] = 0;
delta_radius = DELTA_RADIUS;
delta_diagonal_rod = DELTA_DIAGONAL_ROD;
delta_segments_per_second = DELTA_SEGMENTS_PER_SECOND;
delta_diagonal_rod_trim_tower_1 = DELTA_DIAGONAL_ROD_TRIM_TOWER_1;
delta_diagonal_rod_trim_tower_2 = DELTA_DIAGONAL_ROD_TRIM_TOWER_2;
delta_diagonal_rod_trim_tower_3 = DELTA_DIAGONAL_ROD_TRIM_TOWER_3;
#elif ENABLED(Z_DUAL_ENDSTOPS)
z_endstop_adj = 0;
#endif
#if ENABLED(ULTIPANEL)
preheatHotendTemp1 = PREHEAT_1_TEMP_HOTEND;
preheatBedTemp1 = PREHEAT_1_TEMP_BED;
preheatFanSpeed1 = PREHEAT_1_FAN_SPEED;
preheatHotendTemp2 = PREHEAT_2_TEMP_HOTEND;
preheatBedTemp2 = PREHEAT_2_TEMP_BED;
preheatFanSpeed2 = PREHEAT_2_FAN_SPEED;
#endif
#if HAS_LCD_CONTRAST
lcd_contrast = DEFAULT_LCD_CONTRAST;
#endif
#if ENABLED(PIDTEMP)
#if ENABLED(PID_PARAMS_PER_HOTEND) && HOTENDS > 1
HOTEND_LOOP()
#else
int e = 0; UNUSED(e); // only need to write once
#endif
{
PID_PARAM(Kp, e) = DEFAULT_Kp;
PID_PARAM(Ki, e) = scalePID_i(DEFAULT_Ki);
PID_PARAM(Kd, e) = scalePID_d(DEFAULT_Kd);
#if ENABLED(PID_EXTRUSION_SCALING)
PID_PARAM(Kc, e) = DEFAULT_Kc;
#endif
}
#if ENABLED(PID_EXTRUSION_SCALING)
lpq_len = 20; // default last-position-queue size
#endif
#endif // PIDTEMP
#if ENABLED(PIDTEMPBED)
thermalManager.bedKp = DEFAULT_bedKp;
thermalManager.bedKi = scalePID_i(DEFAULT_bedKi);
thermalManager.bedKd = scalePID_d(DEFAULT_bedKd);
#endif
#if ENABLED(FWRETRACT)
autoretract_enabled = false;
retract_length = RETRACT_LENGTH;
#if EXTRUDERS > 1
retract_length_swap = RETRACT_LENGTH_SWAP;
#endif
retract_feedrate_mm_s = RETRACT_FEEDRATE;
retract_zlift = RETRACT_ZLIFT;
retract_recover_length = RETRACT_RECOVER_LENGTH;
#if EXTRUDERS > 1
retract_recover_length_swap = RETRACT_RECOVER_LENGTH_SWAP;
#endif
retract_recover_feedrate_mm_s = RETRACT_RECOVER_FEEDRATE;
#endif
volumetric_enabled = false;
for (uint8_t q = 0; q < COUNT(filament_size); q++)
filament_size[q] = DEFAULT_NOMINAL_FILAMENT_DIA;
endstops.enable_globally(
#if ENABLED(ENDSTOPS_ALWAYS_ON_DEFAULT)
(true)
#else
(false)
#endif
);
Config_Postprocess();
SERIAL_ECHO_START;
SERIAL_ECHOLNPGM("Hardcoded Default Settings Loaded");
}
#if DISABLED(DISABLE_M503)
#define CONFIG_ECHO_START do{ if (!forReplay) SERIAL_ECHO_START; }while(0)
/**
* M503 - Print Configuration
*/
void Config_PrintSettings(bool forReplay) {
// Always have this function, even with EEPROM_SETTINGS disabled, the current values will be shown
CONFIG_ECHO_START;
if (!forReplay) {
SERIAL_ECHOLNPGM("Steps per unit:");
CONFIG_ECHO_START;
}
SERIAL_ECHOPAIR(" M92 X", planner.axis_steps_per_mm[X_AXIS]);
SERIAL_ECHOPAIR(" Y", planner.axis_steps_per_mm[Y_AXIS]);
SERIAL_ECHOPAIR(" Z", planner.axis_steps_per_mm[Z_AXIS]);
SERIAL_ECHOPAIR(" E", planner.axis_steps_per_mm[E_AXIS]);
SERIAL_EOL;
CONFIG_ECHO_START;
#if ENABLED(SCARA)
if (!forReplay) {
SERIAL_ECHOLNPGM("Scaling factors:");
CONFIG_ECHO_START;
}
SERIAL_ECHOPAIR(" M365 X", axis_scaling[X_AXIS]);
SERIAL_ECHOPAIR(" Y", axis_scaling[Y_AXIS]);
SERIAL_ECHOPAIR(" Z", axis_scaling[Z_AXIS]);
SERIAL_EOL;
CONFIG_ECHO_START;
#endif // SCARA
if (!forReplay) {
SERIAL_ECHOLNPGM("Maximum feedrates (mm/s):");
CONFIG_ECHO_START;
}
SERIAL_ECHOPAIR(" M203 X", planner.max_feedrate_mm_s[X_AXIS]);
SERIAL_ECHOPAIR(" Y", planner.max_feedrate_mm_s[Y_AXIS]);
SERIAL_ECHOPAIR(" Z", planner.max_feedrate_mm_s[Z_AXIS]);
SERIAL_ECHOPAIR(" E", planner.max_feedrate_mm_s[E_AXIS]);
SERIAL_EOL;
CONFIG_ECHO_START;
if (!forReplay) {
SERIAL_ECHOLNPGM("Maximum Acceleration (mm/s2):");
CONFIG_ECHO_START;
}
SERIAL_ECHOPAIR(" M201 X", planner.max_acceleration_mm_per_s2[X_AXIS]);
SERIAL_ECHOPAIR(" Y", planner.max_acceleration_mm_per_s2[Y_AXIS]);
SERIAL_ECHOPAIR(" Z", planner.max_acceleration_mm_per_s2[Z_AXIS]);
SERIAL_ECHOPAIR(" E", planner.max_acceleration_mm_per_s2[E_AXIS]);
SERIAL_EOL;
CONFIG_ECHO_START;
if (!forReplay) {
SERIAL_ECHOLNPGM("Accelerations: P=printing, R=retract and T=travel");
CONFIG_ECHO_START;
}
SERIAL_ECHOPAIR(" M204 P", planner.acceleration);
SERIAL_ECHOPAIR(" R", planner.retract_acceleration);
SERIAL_ECHOPAIR(" T", planner.travel_acceleration);
SERIAL_EOL;
CONFIG_ECHO_START;
if (!forReplay) {
SERIAL_ECHOLNPGM("Advanced variables: S=Min feedrate (mm/s), T=Min travel feedrate (mm/s), B=minimum segment time (ms), X=maximum XY jerk (mm/s), Z=maximum Z jerk (mm/s), E=maximum E jerk (mm/s)");
CONFIG_ECHO_START;
}
SERIAL_ECHOPAIR(" M205 S", planner.min_feedrate_mm_s);
SERIAL_ECHOPAIR(" T", planner.min_travel_feedrate_mm_s);
SERIAL_ECHOPAIR(" B", planner.min_segment_time);
SERIAL_ECHOPAIR(" X", planner.max_xy_jerk);
SERIAL_ECHOPAIR(" Z", planner.max_z_jerk);
SERIAL_ECHOPAIR(" E", planner.max_e_jerk);
SERIAL_EOL;
CONFIG_ECHO_START;
if (!forReplay) {
SERIAL_ECHOLNPGM("Home offset (mm)");
CONFIG_ECHO_START;
}
SERIAL_ECHOPAIR(" M206 X", home_offset[X_AXIS]);
SERIAL_ECHOPAIR(" Y", home_offset[Y_AXIS]);
SERIAL_ECHOPAIR(" Z", home_offset[Z_AXIS]);
SERIAL_EOL;
#if ENABLED(MESH_BED_LEVELING)
if (!forReplay) {
SERIAL_ECHOLNPGM("Mesh bed leveling:");
CONFIG_ECHO_START;
}
SERIAL_ECHOPAIR(" M420 S", mbl.has_mesh() ? 1 : 0);
SERIAL_ECHOPAIR(" X", MESH_NUM_X_POINTS);
SERIAL_ECHOPAIR(" Y", MESH_NUM_Y_POINTS);
SERIAL_EOL;
for (uint8_t py = 1; py <= MESH_NUM_Y_POINTS; py++) {
for (uint8_t px = 1; px <= MESH_NUM_X_POINTS; px++) {
CONFIG_ECHO_START;
SERIAL_ECHOPAIR(" G29 S3 X", px);
SERIAL_ECHOPAIR(" Y", py);
SERIAL_ECHOPGM(" Z");
SERIAL_PROTOCOL_F(mbl.z_values[py-1][px-1], 5);
SERIAL_EOL;
}
}
#endif
#if ENABLED(DELTA)
CONFIG_ECHO_START;
if (!forReplay) {
SERIAL_ECHOLNPGM("Endstop adjustment (mm):");
CONFIG_ECHO_START;
}
SERIAL_ECHOPAIR(" M666 X", endstop_adj[X_AXIS]);
SERIAL_ECHOPAIR(" Y", endstop_adj[Y_AXIS]);
SERIAL_ECHOPAIR(" Z", endstop_adj[Z_AXIS]);
SERIAL_EOL;
CONFIG_ECHO_START;
if (!forReplay) {
SERIAL_ECHOLNPGM("Delta settings: L=diagonal_rod, R=radius, S=segments_per_second, ABC=diagonal_rod_trim_tower_[123]");
CONFIG_ECHO_START;
}
SERIAL_ECHOPAIR(" M665 L", delta_diagonal_rod);
SERIAL_ECHOPAIR(" R", delta_radius);
SERIAL_ECHOPAIR(" S", delta_segments_per_second);
SERIAL_ECHOPAIR(" A", delta_diagonal_rod_trim_tower_1);
SERIAL_ECHOPAIR(" B", delta_diagonal_rod_trim_tower_2);
SERIAL_ECHOPAIR(" C", delta_diagonal_rod_trim_tower_3);
SERIAL_EOL;
#elif ENABLED(Z_DUAL_ENDSTOPS)
CONFIG_ECHO_START;
if (!forReplay) {
SERIAL_ECHOLNPGM("Z2 Endstop adjustment (mm):");
CONFIG_ECHO_START;
}
SERIAL_ECHOPAIR(" M666 Z", z_endstop_adj);
SERIAL_EOL;
#endif // DELTA
#if ENABLED(ULTIPANEL)
CONFIG_ECHO_START;
if (!forReplay) {
SERIAL_ECHOLNPGM("Material heatup parameters:");
CONFIG_ECHO_START;
}
SERIAL_ECHOPAIR(" M145 S0 H", preheatHotendTemp1);
SERIAL_ECHOPAIR(" B", preheatBedTemp1);
SERIAL_ECHOPAIR(" F", preheatFanSpeed1);
SERIAL_EOL;
CONFIG_ECHO_START;
SERIAL_ECHOPAIR(" M145 S1 H", preheatHotendTemp2);
SERIAL_ECHOPAIR(" B", preheatBedTemp2);
SERIAL_ECHOPAIR(" F", preheatFanSpeed2);
SERIAL_EOL;
#endif // ULTIPANEL
#if HAS_PID_HEATING
CONFIG_ECHO_START;
if (!forReplay) {
SERIAL_ECHOLNPGM("PID settings:");
}
#if ENABLED(PIDTEMP)
#if HOTENDS > 1
if (forReplay) {
HOTEND_LOOP() {
CONFIG_ECHO_START;
SERIAL_ECHOPAIR(" M301 E", e);
SERIAL_ECHOPAIR(" P", PID_PARAM(Kp, e));
SERIAL_ECHOPAIR(" I", unscalePID_i(PID_PARAM(Ki, e)));
SERIAL_ECHOPAIR(" D", unscalePID_d(PID_PARAM(Kd, e)));
#if ENABLED(PID_EXTRUSION_SCALING)
SERIAL_ECHOPAIR(" C", PID_PARAM(Kc, e));
if (e == 0) SERIAL_ECHOPAIR(" L", lpq_len);
#endif
SERIAL_EOL;
}
}
else
#endif // HOTENDS > 1
// !forReplay || HOTENDS == 1
{
CONFIG_ECHO_START;
SERIAL_ECHOPAIR(" M301 P", PID_PARAM(Kp, 0)); // for compatibility with hosts, only echo values for E0
SERIAL_ECHOPAIR(" I", unscalePID_i(PID_PARAM(Ki, 0)));
SERIAL_ECHOPAIR(" D", unscalePID_d(PID_PARAM(Kd, 0)));
#if ENABLED(PID_EXTRUSION_SCALING)
SERIAL_ECHOPAIR(" C", PID_PARAM(Kc, 0));
SERIAL_ECHOPAIR(" L", lpq_len);
#endif
SERIAL_EOL;
}
#endif // PIDTEMP
#if ENABLED(PIDTEMPBED)
CONFIG_ECHO_START;
SERIAL_ECHOPAIR(" M304 P", thermalManager.bedKp);
SERIAL_ECHOPAIR(" I", unscalePID_i(thermalManager.bedKi));
SERIAL_ECHOPAIR(" D", unscalePID_d(thermalManager.bedKd));
SERIAL_EOL;
#endif
#endif // PIDTEMP || PIDTEMPBED
#if HAS_LCD_CONTRAST
CONFIG_ECHO_START;
if (!forReplay) {
SERIAL_ECHOLNPGM("LCD Contrast:");
CONFIG_ECHO_START;
}
SERIAL_ECHOPAIR(" M250 C", lcd_contrast);
SERIAL_EOL;
#endif
#if ENABLED(FWRETRACT)
CONFIG_ECHO_START;
if (!forReplay) {
SERIAL_ECHOLNPGM("Retract: S=Length (mm) F:Speed (mm/m) Z: ZLift (mm)");
CONFIG_ECHO_START;
}
SERIAL_ECHOPAIR(" M207 S", retract_length);
#if EXTRUDERS > 1
SERIAL_ECHOPAIR(" W", retract_length_swap);
#endif
SERIAL_ECHOPAIR(" F", MMS_TO_MMM(retract_feedrate_mm_s));
SERIAL_ECHOPAIR(" Z", retract_zlift);
SERIAL_EOL;
CONFIG_ECHO_START;
if (!forReplay) {
SERIAL_ECHOLNPGM("Recover: S=Extra length (mm) F:Speed (mm/m)");
CONFIG_ECHO_START;
}
SERIAL_ECHOPAIR(" M208 S", retract_recover_length);
#if EXTRUDERS > 1
SERIAL_ECHOPAIR(" W", retract_recover_length_swap);
#endif
SERIAL_ECHOPAIR(" F", MMS_TO_MMM(retract_recover_feedrate_mm_s));
SERIAL_EOL;
CONFIG_ECHO_START;
if (!forReplay) {
SERIAL_ECHOLNPGM("Auto-Retract: S=0 to disable, 1 to interpret extrude-only moves as retracts or recoveries");
CONFIG_ECHO_START;
}
SERIAL_ECHOPAIR(" M209 S", autoretract_enabled ? 1 : 0);
SERIAL_EOL;
#endif // FWRETRACT
/**
* Volumetric extrusion M200
*/
if (!forReplay) {
CONFIG_ECHO_START;
SERIAL_ECHOPGM("Filament settings:");
if (volumetric_enabled)
SERIAL_EOL;
else
SERIAL_ECHOLNPGM(" Disabled");
}
CONFIG_ECHO_START;
SERIAL_ECHOPAIR(" M200 D", filament_size[0]);
SERIAL_EOL;
#if EXTRUDERS > 1
CONFIG_ECHO_START;
SERIAL_ECHOPAIR(" M200 T1 D", filament_size[1]);
SERIAL_EOL;
#if EXTRUDERS > 2
CONFIG_ECHO_START;
SERIAL_ECHOPAIR(" M200 T2 D", filament_size[2]);
SERIAL_EOL;
#if EXTRUDERS > 3
CONFIG_ECHO_START;
SERIAL_ECHOPAIR(" M200 T3 D", filament_size[3]);
SERIAL_EOL;
#endif
#endif
#endif
if (!volumetric_enabled) {
CONFIG_ECHO_START;
SERIAL_ECHOLNPGM(" M200 D0");
}
/**
* Auto Bed Leveling
*/
#if HAS_BED_PROBE
if (!forReplay) {
CONFIG_ECHO_START;
SERIAL_ECHOLNPGM("Z-Probe Offset (mm):");
}
CONFIG_ECHO_START;
SERIAL_ECHOPAIR(" M851 Z", zprobe_zoffset);
SERIAL_EOL;
#endif
}
#endif // !DISABLE_M503
-422
View File
@@ -1,422 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
* Standard Marlin Bitmap for splashscreen
*
* You may use one of the following tools to generate the C++ bitmap array from
* a black and white image:
*
* - http://www.marlinfw.org/tools/u8glib/converter.html
* - http://www.digole.com/tools/PicturetoC_Hex_converter.php
*
* Please note that using the high-res version takes 402Bytes of PROGMEM.
*/
//#define START_BMPHIGH
#if ENABLED(SHOW_BOOTSCREEN)
#if ENABLED(START_BMPHIGH)
#define START_BMPWIDTH 112
#define START_BMPHEIGHT 38
#define START_BMPBYTEWIDTH 14
#define START_BMPBYTES 532 // START_BMPWIDTH * START_BMPHEIGHT / 8
const unsigned char start_bmp[START_BMPBYTES] PROGMEM = {
0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xFF, 0xFF,
0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xFF,
0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF,
0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF,
0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF,
0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x3F, 0xFF,
0xC0, 0x0F, 0xC0, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x18, 0x00, 0x1F, 0xFF,
0xC0, 0x3F, 0xE1, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x3C, 0x00, 0x0F, 0xFF,
0xC0, 0x7F, 0xF3, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x78, 0x3C, 0x00, 0x07, 0xFF,
0xC0, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x78, 0x3C, 0x00, 0x03, 0xFF,
0xC1, 0xF8, 0x7F, 0x87, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x01, 0xFF,
0xC1, 0xF0, 0x3F, 0x03, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0xFF,
0xC1, 0xE0, 0x1E, 0x01, 0xE0, 0x1F, 0x00, 0x03, 0xE0, 0x78, 0x3C, 0x03, 0xF0, 0x7F,
0xC1, 0xE0, 0x1E, 0x01, 0xE0, 0x7F, 0xC0, 0x0F, 0xF8, 0x78, 0x3C, 0x07, 0xFC, 0x3F,
0xC1, 0xE0, 0x1E, 0x01, 0xE1, 0xFF, 0xE0, 0x1F, 0xFC, 0x78, 0x3C, 0x0F, 0xFE, 0x1F,
0xC1, 0xE0, 0x1E, 0x01, 0xE3, 0xFF, 0xF0, 0x3F, 0xFE, 0x78, 0x3C, 0x1F, 0xFE, 0x0F,
0xC1, 0xE0, 0x1E, 0x01, 0xE3, 0xF3, 0xF8, 0x3F, 0x3E, 0x78, 0x3C, 0x3F, 0x3F, 0x07,
0xC1, 0xE0, 0x1E, 0x01, 0xE7, 0xE0, 0xFC, 0x7C, 0x1F, 0x78, 0x3C, 0x3E, 0x1F, 0x07,
0xC1, 0xE0, 0x1E, 0x01, 0xE7, 0xC0, 0x7C, 0x7C, 0x0F, 0x78, 0x3C, 0x3C, 0x0F, 0x03,
0xC1, 0xE0, 0x1E, 0x01, 0xE7, 0x80, 0x7C, 0x78, 0x0F, 0x78, 0x3C, 0x3C, 0x0F, 0x03,
0xC1, 0xE0, 0x1E, 0x01, 0xE7, 0x80, 0x3C, 0x78, 0x00, 0x78, 0x3C, 0x3C, 0x0F, 0x03,
0xC1, 0xE0, 0x1E, 0x01, 0xE7, 0x80, 0x3C, 0x78, 0x00, 0x78, 0x3C, 0x3C, 0x0F, 0x03,
0xC1, 0xE0, 0x1E, 0x01, 0xE7, 0x80, 0x3C, 0x78, 0x00, 0x78, 0x3C, 0x3C, 0x0F, 0x03,
0xC1, 0xE0, 0x1E, 0x01, 0xE7, 0xC0, 0x3C, 0x78, 0x00, 0x78, 0x3C, 0x3C, 0x0F, 0x03,
0xC1, 0xE0, 0x1E, 0x01, 0xE3, 0xE0, 0x3C, 0x78, 0x00, 0x7C, 0x3C, 0x3C, 0x0F, 0x03,
0xC1, 0xE0, 0x1E, 0x01, 0xE3, 0xFF, 0x3F, 0xF8, 0x00, 0x7F, 0xBC, 0x3C, 0x0F, 0x03,
0xC1, 0xE0, 0x1E, 0x01, 0xE1, 0xFF, 0x3F, 0xF8, 0x00, 0x3F, 0xBF, 0xFC, 0x0F, 0x03,
0xC1, 0xE0, 0x1E, 0x01, 0xE0, 0xFF, 0x3F, 0xF8, 0x00, 0x1F, 0xBF, 0xFC, 0x0F, 0x03,
0xC1, 0xE0, 0x1E, 0x01, 0xE0, 0x7F, 0x3F, 0xF8, 0x00, 0x0F, 0xBF, 0xFC, 0x0F, 0x03,
0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07,
0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06,
0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E,
0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C,
0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78,
0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0,
0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80 };
#else
#define START_BMPWIDTH 56
#define START_BMPHEIGHT 19
#define START_BMPBYTEWIDTH 7
#define START_BMPBYTES 133 // START_BMPWIDTH * START_BMPHEIGHT / 8
const unsigned char start_bmp[START_BMPBYTES] PROGMEM = {
0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x60, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF,
0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF,
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F,
0x83, 0xCF, 0x00, 0x00, 0x0C, 0x30, 0x3F,
0x87, 0xFF, 0x80, 0x00, 0x0C, 0x30, 0x1F,
0x86, 0x79, 0x80, 0x00, 0x0C, 0x00, 0x0F,
0x8C, 0x30, 0xC7, 0x83, 0x8C, 0x30, 0xE7,
0x8C, 0x30, 0xCF, 0xC7, 0xCC, 0x31, 0xF3,
0x8C, 0x30, 0xDC, 0xEC, 0xEC, 0x33, 0xB9,
0x8C, 0x30, 0xD8, 0x6C, 0x6C, 0x33, 0x19,
0x8C, 0x30, 0xD0, 0x6C, 0x0C, 0x33, 0x19,
0x8C, 0x30, 0xD8, 0x6C, 0x0C, 0x33, 0x19,
0x8C, 0x30, 0xDC, 0x6C, 0x0E, 0x3B, 0x19,
0x8C, 0x30, 0xCF, 0x7C, 0x07, 0x9F, 0x19,
0x8C, 0x30, 0xC7, 0x7C, 0x03, 0x8F, 0x19,
0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06,
0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8 };
#endif
#endif
// Here comes a compile-time operation to match the extruder symbols
// on the info screen to the set number of extruders in configuration.h
//
// When only one extruder is selected, the "1" on the symbol will not
// be displayed.
#if HAS_TEMP_BED
#if HOTENDS == 1
#define STATUS_SCREENWIDTH 115 //Width in pixels
#define STATUS_SCREENHEIGHT 19 //Height in pixels
#define STATUS_SCREENBYTEWIDTH 15 //Width in bytes
const unsigned char status_screen0_bmp[] PROGMEM = { //AVR-GCC, WinAVR
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xE0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x0C, 0x60,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x0E, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x0F, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x0F, 0xA0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x07, 0xA0,
0x7F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x04, 0x00, 0x40, 0x60, 0x20,
0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x82, 0x00, 0x40, 0xF0, 0x20,
0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x82, 0x00, 0x40, 0xF0, 0x20,
0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x04, 0x00, 0x40, 0x60, 0x20,
0x7F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x08, 0x00, 0x5E, 0x07, 0xA0,
0x7F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x10, 0x00, 0x5F, 0x0F, 0xA0,
0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x10, 0x00, 0x4F, 0x0F, 0x20,
0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x08, 0x00, 0x47, 0x0E, 0x20,
0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x04, 0x00, 0x63, 0x0C, 0x60,
0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0x80, 0x7F, 0xFF, 0xE0,
0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00
};
#define STATUS_SCREENWIDTH 115 //Width in pixels
#define STATUS_SCREENHEIGHT 19 //Height in pixels
#define STATUS_SCREENBYTEWIDTH 15 //Width in bytes
const unsigned char status_screen1_bmp[] PROGMEM = { //AVR-GCC, WinAVR
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xE0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0xF8, 0x60,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0xF8, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xF0, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x60, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x01, 0xA0,
0x7F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x04, 0x00, 0x5C, 0x63, 0xA0,
0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x82, 0x00, 0x5E, 0xF7, 0xA0,
0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x82, 0x00, 0x5E, 0xF7, 0xA0,
0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x04, 0x00, 0x5C, 0x63, 0xA0,
0x7F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x08, 0x00, 0x58, 0x01, 0xA0,
0x7F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x10, 0x00, 0x40, 0x60, 0x20,
0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x10, 0x00, 0x40, 0xF0, 0x20,
0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x08, 0x00, 0x41, 0xF8, 0x20,
0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x04, 0x00, 0x61, 0xF8, 0x60,
0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0x80, 0x7F, 0xFF, 0xE0,
0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00
};
#elif HOTENDS == 2
#define STATUS_SCREENWIDTH 115 //Width in pixels
#define STATUS_SCREENHEIGHT 19 //Height in pixels
#define STATUS_SCREENBYTEWIDTH 15 //Width in bytes
const unsigned char status_screen0_bmp[] PROGMEM = { //AVR-GCC, WinAVR
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xE0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x0C, 0x60,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x0E, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x0F, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x0F, 0xA0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x07, 0xA0,
0x7F, 0x80, 0x00, 0x3F, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x41, 0x04, 0x00, 0x40, 0x60, 0x20,
0xFB, 0xC0, 0x00, 0x79, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x20, 0x82, 0x00, 0x40, 0xF0, 0x20,
0xF3, 0xC0, 0x00, 0x76, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x20, 0x82, 0x00, 0x40, 0xF0, 0x20,
0xEB, 0xC0, 0x00, 0x7E, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x41, 0x04, 0x00, 0x40, 0x60, 0x20,
0x7B, 0x80, 0x00, 0x3D, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x82, 0x08, 0x00, 0x5E, 0x07, 0xA0,
0x7B, 0x80, 0x00, 0x3B, 0xC0, 0x00, 0x00, 0x00, 0x01, 0x04, 0x10, 0x00, 0x5F, 0x0F, 0xA0,
0xFB, 0xC0, 0x00, 0x77, 0xE0, 0x00, 0x00, 0x00, 0x01, 0x04, 0x10, 0x00, 0x4F, 0x0F, 0x20,
0xFB, 0xC0, 0x00, 0x70, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x82, 0x08, 0x00, 0x47, 0x0E, 0x20,
0xFF, 0xC0, 0x00, 0x7F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x41, 0x04, 0x00, 0x63, 0x0C, 0x60,
0x3F, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
0x1E, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0x80, 0x7F, 0xFF, 0xE0,
0x0C, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00
};
#define STATUS_SCREENWIDTH 115 //Width in pixels
#define STATUS_SCREENHEIGHT 19 //Height in pixels
#define STATUS_SCREENBYTEWIDTH 15 //Width in bytes
const unsigned char status_screen1_bmp[] PROGMEM = { //AVR-GCC, WinAVR
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xE0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0xF8, 0x60,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0xF8, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xF0, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x60, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x01, 0xA0,
0x7F, 0x80, 0x00, 0x3F, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x41, 0x04, 0x00, 0x5C, 0x63, 0xA0,
0xFB, 0xC0, 0x00, 0x79, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x20, 0x82, 0x00, 0x5E, 0xF7, 0xA0,
0xF3, 0xC0, 0x00, 0x76, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x20, 0x82, 0x00, 0x5E, 0xF7, 0xA0,
0xEB, 0xC0, 0x00, 0x7E, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x41, 0x04, 0x00, 0x5C, 0x63, 0xA0,
0x7B, 0x80, 0x00, 0x3D, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x82, 0x08, 0x00, 0x58, 0x01, 0xA0,
0x7B, 0x80, 0x00, 0x3B, 0xC0, 0x00, 0x00, 0x00, 0x01, 0x04, 0x10, 0x00, 0x40, 0x60, 0x20,
0xFB, 0xC0, 0x00, 0x77, 0xE0, 0x00, 0x00, 0x00, 0x01, 0x04, 0x10, 0x00, 0x40, 0xF0, 0x20,
0xFB, 0xC0, 0x00, 0x70, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x82, 0x08, 0x00, 0x41, 0xF8, 0x20,
0xFF, 0xC0, 0x00, 0x7F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x41, 0x04, 0x00, 0x61, 0xF8, 0x60,
0x3F, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
0x1E, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0x80, 0x7F, 0xFF, 0xE0,
0x0C, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00
};
#else
#define STATUS_SCREENWIDTH 115 //Width in pixels
#define STATUS_SCREENHEIGHT 19 //Height in pixels
#define STATUS_SCREENBYTEWIDTH 15 //Width in bytes
const unsigned char status_screen0_bmp[] PROGMEM = { //AVR-GCC, WinAVR
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xE0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x0C, 0x60,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x0E, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x0F, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x0F, 0xA0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x07, 0xA0,
0x7F, 0x80, 0x00, 0x3F, 0xC0, 0x00, 0x3F, 0xC0, 0x00, 0x41, 0x04, 0x00, 0x40, 0x60, 0x20,
0xFB, 0xC0, 0x00, 0x79, 0xE0, 0x00, 0x79, 0xE0, 0x00, 0x20, 0x82, 0x00, 0x40, 0xF0, 0x20,
0xF3, 0xC0, 0x00, 0x76, 0xE0, 0x00, 0x76, 0xE0, 0x00, 0x20, 0x82, 0x00, 0x40, 0xF0, 0x20,
0xEB, 0xC0, 0x00, 0x7E, 0xE0, 0x00, 0x7E, 0xE0, 0x00, 0x41, 0x04, 0x00, 0x40, 0x60, 0x20,
0x7B, 0x80, 0x00, 0x3D, 0xC0, 0x00, 0x39, 0xC0, 0x00, 0x82, 0x08, 0x00, 0x5E, 0x07, 0xA0,
0x7B, 0x80, 0x00, 0x3B, 0xC0, 0x00, 0x3E, 0xC0, 0x01, 0x04, 0x10, 0x00, 0x5F, 0x0F, 0xA0,
0xFB, 0xC0, 0x00, 0x77, 0xE0, 0x00, 0x76, 0xE0, 0x01, 0x04, 0x10, 0x00, 0x4F, 0x0F, 0x20,
0xFB, 0xC0, 0x00, 0x70, 0xE0, 0x00, 0x79, 0xE0, 0x00, 0x82, 0x08, 0x00, 0x47, 0x0E, 0x20,
0xFF, 0xC0, 0x00, 0x7F, 0xE0, 0x00, 0x7F, 0xE0, 0x00, 0x41, 0x04, 0x00, 0x63, 0x0C, 0x60,
0x3F, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x1F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
0x1E, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x0F, 0x00, 0x01, 0xFF, 0xFF, 0x80, 0x7F, 0xFF, 0xE0,
0x0C, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x01, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00
};
#define STATUS_SCREENWIDTH 115 //Width in pixels
#define STATUS_SCREENHEIGHT 19 //Height in pixels
#define STATUS_SCREENBYTEWIDTH 15 //Width in bytes
const unsigned char status_screen1_bmp[] PROGMEM = { //AVR-GCC, WinAVR
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xE0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0xF8, 0x60,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0xF8, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xF0, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x60, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x01, 0xA0,
0x7F, 0x80, 0x00, 0x3F, 0xC0, 0x00, 0x3F, 0xC0, 0x00, 0x41, 0x04, 0x00, 0x5C, 0x63, 0xA0,
0xFB, 0xC0, 0x00, 0x79, 0xE0, 0x00, 0x79, 0xE0, 0x00, 0x20, 0x82, 0x00, 0x5E, 0xF7, 0xA0,
0xF3, 0xC0, 0x00, 0x76, 0xE0, 0x00, 0x76, 0xE0, 0x00, 0x20, 0x82, 0x00, 0x5E, 0xF7, 0xA0,
0xEB, 0xC0, 0x00, 0x7E, 0xE0, 0x00, 0x7E, 0xE0, 0x00, 0x41, 0x04, 0x00, 0x5C, 0x63, 0xA0,
0x7B, 0x80, 0x00, 0x3D, 0xC0, 0x00, 0x39, 0xC0, 0x00, 0x82, 0x08, 0x00, 0x58, 0x01, 0xA0,
0x7B, 0x80, 0x00, 0x3B, 0xC0, 0x00, 0x3E, 0xC0, 0x01, 0x04, 0x10, 0x00, 0x40, 0x60, 0x20,
0xFB, 0xC0, 0x00, 0x77, 0xE0, 0x00, 0x76, 0xE0, 0x01, 0x04, 0x10, 0x00, 0x40, 0xF0, 0x20,
0xFB, 0xC0, 0x00, 0x70, 0xE0, 0x00, 0x79, 0xE0, 0x00, 0x82, 0x08, 0x00, 0x41, 0xF8, 0x20,
0xFF, 0xC0, 0x00, 0x7F, 0xE0, 0x00, 0x7F, 0xE0, 0x00, 0x41, 0x04, 0x00, 0x61, 0xF8, 0x60,
0x3F, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x1F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
0x1E, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x0F, 0x00, 0x01, 0xFF, 0xFF, 0x80, 0x7F, 0xFF, 0xE0,
0x0C, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x01, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00
};
#endif // Extruders
#else
#if HOTENDS == 1
#define STATUS_SCREENWIDTH 115 //Width in pixels
#define STATUS_SCREENHEIGHT 19 //Height in pixels
#define STATUS_SCREENBYTEWIDTH 15 //Width in bytes
const unsigned char status_screen0_bmp[] PROGMEM = { //AVR-GCC, WinAVR
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xE0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x0C, 0x60,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x0E, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x0F, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x0F, 0xA0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x07, 0xA0,
0x7F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x60, 0x20,
0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xF0, 0x20,
0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xF0, 0x20,
0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x60, 0x20,
0x7F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x07, 0xA0,
0x7F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x0F, 0xA0,
0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x0F, 0x20,
0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x0E, 0x20,
0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x0C, 0x60,
0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xE0,
0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
#define STATUS_SCREENWIDTH 115 //Width in pixels
#define STATUS_SCREENHEIGHT 19 //Height in pixels
#define STATUS_SCREENBYTEWIDTH 15 //Width in bytes
const unsigned char status_screen1_bmp[] PROGMEM = { //AVR-GCC, WinAVR
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xE0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0xF8, 0x60,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0xF8, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xF0, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x60, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x01, 0xA0,
0x7F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x63, 0xA0,
0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0xF7, 0xA0,
0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0xF7, 0xA0,
0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x63, 0xA0,
0x7F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x01, 0xA0,
0x7F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x60, 0x20,
0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xF0, 0x20,
0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0xF8, 0x20,
0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0xF8, 0x60,
0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xE0,
0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
#elif HOTENDS == 2
#define STATUS_SCREENWIDTH 115 //Width in pixels
#define STATUS_SCREENHEIGHT 19 //Height in pixels
#define STATUS_SCREENBYTEWIDTH 15 //Width in bytes
const unsigned char status_screen0_bmp[] PROGMEM = { //AVR-GCC, WinAVR
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xE0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x0C, 0x60,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x0E, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x0F, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x0F, 0xA0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x07, 0xA0,
0x7F, 0x80, 0x00, 0x3F, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x60, 0x20,
0xFB, 0xC0, 0x00, 0x79, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xF0, 0x20,
0xF3, 0xC0, 0x00, 0x76, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xF0, 0x20,
0xEB, 0xC0, 0x00, 0x7E, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x60, 0x20,
0x7B, 0x80, 0x00, 0x3D, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x07, 0xA0,
0x7B, 0x80, 0x00, 0x3B, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x0F, 0xA0,
0xFB, 0xC0, 0x00, 0x77, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x0F, 0x20,
0xFB, 0xC0, 0x00, 0x70, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x0E, 0x20,
0xFF, 0xC0, 0x00, 0x7F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x0C, 0x60,
0x3F, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
0x1E, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xE0,
0x0C, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
#define STATUS_SCREENWIDTH 115 //Width in pixels
#define STATUS_SCREENHEIGHT 19 //Height in pixels
#define STATUS_SCREENBYTEWIDTH 15 //Width in bytes
const unsigned char status_screen1_bmp[] PROGMEM = { //AVR-GCC, WinAVR
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xE0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0xF8, 0x60,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0xF8, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xF0, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x60, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x01, 0xA0,
0x7F, 0x80, 0x00, 0x3F, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x63, 0xA0,
0xFB, 0xC0, 0x00, 0x79, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0xF7, 0xA0,
0xF3, 0xC0, 0x00, 0x76, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0xF7, 0xA0,
0xEB, 0xC0, 0x00, 0x7E, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x63, 0xA0,
0x7B, 0x80, 0x00, 0x3D, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x01, 0xA0,
0x7B, 0x80, 0x00, 0x3B, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x60, 0x20,
0xFB, 0xC0, 0x00, 0x77, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xF0, 0x20,
0xFB, 0xC0, 0x00, 0x70, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0xF8, 0x20,
0xFF, 0xC0, 0x00, 0x7F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0xF8, 0x60,
0x3F, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
0x1E, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xE0,
0x0C, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
#else
#define STATUS_SCREENWIDTH 115 //Width in pixels
#define STATUS_SCREENHEIGHT 19 //Height in pixels
#define STATUS_SCREENBYTEWIDTH 15 //Width in bytes
const unsigned char status_screen0_bmp[] PROGMEM = { //AVR-GCC, WinAVR
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xE0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x0C, 0x60,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x0E, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x0F, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x0F, 0xA0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x07, 0xA0,
0x7F, 0x80, 0x00, 0x3F, 0xC0, 0x00, 0x3F, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x40, 0x60, 0x20,
0xFB, 0xC0, 0x00, 0x79, 0xE0, 0x00, 0x79, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x40, 0xF0, 0x20,
0xF3, 0xC0, 0x00, 0x76, 0xE0, 0x00, 0x76, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x40, 0xF0, 0x20,
0xEB, 0xC0, 0x00, 0x7E, 0xE0, 0x00, 0x7E, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x40, 0x60, 0x20,
0x7B, 0x80, 0x00, 0x3D, 0xC0, 0x00, 0x39, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x07, 0xA0,
0x7B, 0x80, 0x00, 0x3B, 0xC0, 0x00, 0x3E, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x0F, 0xA0,
0xFB, 0xC0, 0x00, 0x77, 0xE0, 0x00, 0x76, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x0F, 0x20,
0xFB, 0xC0, 0x00, 0x70, 0xE0, 0x00, 0x79, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x47, 0x0E, 0x20,
0xFF, 0xC0, 0x00, 0x7F, 0xE0, 0x00, 0x7F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x63, 0x0C, 0x60,
0x3F, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x1F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
0x1E, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xE0,
0x0C, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
#define STATUS_SCREENWIDTH 115 //Width in pixels
#define STATUS_SCREENHEIGHT 19 //Height in pixels
#define STATUS_SCREENBYTEWIDTH 15 //Width in bytes
const unsigned char status_screen1_bmp[] PROGMEM = { //AVR-GCC, WinAVR
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xE0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0xF8, 0x60,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0xF8, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xF0, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x60, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x01, 0xA0,
0x7F, 0x80, 0x00, 0x3F, 0xC0, 0x00, 0x3F, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x63, 0xA0,
0xFB, 0xC0, 0x00, 0x79, 0xE0, 0x00, 0x79, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x5E, 0xF7, 0xA0,
0xF3, 0xC0, 0x00, 0x76, 0xE0, 0x00, 0x76, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x5E, 0xF7, 0xA0,
0xEB, 0xC0, 0x00, 0x7E, 0xE0, 0x00, 0x7E, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x63, 0xA0,
0x7B, 0x80, 0x00, 0x3D, 0xC0, 0x00, 0x39, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x58, 0x01, 0xA0,
0x7B, 0x80, 0x00, 0x3B, 0xC0, 0x00, 0x3E, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x40, 0x60, 0x20,
0xFB, 0xC0, 0x00, 0x77, 0xE0, 0x00, 0x76, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x40, 0xF0, 0x20,
0xFB, 0xC0, 0x00, 0x70, 0xE0, 0x00, 0x79, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x41, 0xF8, 0x20,
0xFF, 0xC0, 0x00, 0x7F, 0xE0, 0x00, 0x7F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x61, 0xF8, 0x60,
0x3F, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x1F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
0x1E, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xE0,
0x0C, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
#endif // Extruders
#endif // HAS_TEMP_BED
-194
View File
@@ -1,194 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
Fontname: HD44780_C v1.2
Copyright: A. Hardtung, public domain
Capital A Height: 7, '1' Height: 7
Calculated Max Values w= 5 h= 8 x= 2 y= 7 dx= 6 dy= 0 ascent= 8 len= 8
Font Bounding box w= 6 h= 9 x= 0 y=-2
Calculated Min Values x= 0 y=-1 dx= 0 dy= 0
Pure Font ascent = 7 descent=-1
X Font ascent = 7 descent=-1
Max Font ascent = 8 descent=-1
*/
#include <U8glib.h>
const u8g_fntpgm_uint8_t HD44780_C_5x7[2522] U8G_SECTION(".progmem.HD44780_C_5x7") = {
0, 6, 9, 0, 254, 7, 1, 145, 3, 34, 32, 255, 255, 8, 255, 7,
255, 0, 0, 0, 6, 0, 0, 1, 7, 7, 6, 2, 0, 128, 128, 128,
128, 128, 0, 128, 3, 2, 2, 6, 1, 5, 160, 160, 5, 7, 7, 6,
0, 0, 80, 80, 248, 80, 248, 80, 80, 5, 7, 7, 6, 0, 0, 32,
120, 160, 112, 40, 240, 32, 5, 7, 7, 6, 0, 0, 192, 200, 16, 32,
64, 152, 24, 5, 7, 7, 6, 0, 0, 96, 144, 160, 64, 168, 144, 104,
2, 3, 3, 6, 1, 4, 192, 64, 128, 3, 7, 7, 6, 1, 0, 32,
64, 128, 128, 128, 64, 32, 3, 7, 7, 6, 1, 0, 128, 64, 32, 32,
32, 64, 128, 5, 5, 5, 6, 0, 1, 32, 168, 112, 168, 32, 5, 5,
5, 6, 0, 1, 32, 32, 248, 32, 32, 2, 3, 3, 6, 2, 255, 192,
64, 128, 5, 1, 1, 6, 0, 3, 248, 2, 2, 2, 6, 2, 0, 192,
192, 5, 5, 5, 6, 0, 1, 8, 16, 32, 64, 128, 5, 7, 7, 6,
0, 0, 112, 136, 152, 168, 200, 136, 112, 3, 7, 7, 6, 1, 0, 64,
192, 64, 64, 64, 64, 224, 5, 7, 7, 6, 0, 0, 112, 136, 8, 112,
128, 128, 248, 5, 7, 7, 6, 0, 0, 248, 16, 32, 16, 8, 8, 240,
5, 7, 7, 6, 0, 0, 16, 48, 80, 144, 248, 16, 16, 5, 7, 7,
6, 0, 0, 248, 128, 240, 8, 8, 136, 112, 5, 7, 7, 6, 0, 0,
48, 64, 128, 240, 136, 136, 112, 5, 7, 7, 6, 0, 0, 248, 8, 16,
32, 32, 32, 32, 5, 7, 7, 6, 0, 0, 112, 136, 136, 112, 136, 136,
112, 5, 7, 7, 6, 0, 0, 112, 136, 136, 120, 8, 16, 96, 2, 5,
5, 6, 2, 0, 192, 192, 0, 192, 192, 2, 6, 6, 6, 2, 255, 192,
192, 0, 192, 64, 128, 4, 7, 7, 6, 0, 0, 16, 32, 64, 128, 64,
32, 16, 5, 3, 3, 6, 0, 2, 248, 0, 248, 4, 7, 7, 6, 1,
0, 128, 64, 32, 16, 32, 64, 128, 5, 7, 7, 6, 0, 0, 112, 136,
8, 16, 32, 0, 32, 5, 6, 6, 6, 0, 0, 112, 136, 8, 104, 168,
112, 5, 7, 7, 6, 0, 0, 112, 136, 136, 248, 136, 136, 136, 5, 7,
7, 6, 0, 0, 240, 136, 136, 240, 136, 136, 240, 5, 7, 7, 6, 0,
0, 112, 136, 128, 128, 128, 136, 112, 5, 7, 7, 6, 0, 0, 224, 144,
136, 136, 136, 144, 224, 5, 7, 7, 6, 0, 0, 248, 128, 128, 240, 128,
128, 248, 5, 7, 7, 6, 0, 0, 248, 128, 128, 240, 128, 128, 128, 5,
7, 7, 6, 0, 0, 112, 136, 128, 184, 136, 136, 112, 5, 7, 7, 6,
0, 0, 136, 136, 136, 248, 136, 136, 136, 1, 7, 7, 6, 2, 0, 128,
128, 128, 128, 128, 128, 128, 5, 7, 7, 6, 0, 0, 56, 16, 16, 16,
16, 144, 96, 5, 7, 7, 6, 0, 0, 136, 144, 160, 192, 160, 144, 136,
5, 7, 7, 6, 0, 0, 128, 128, 128, 128, 128, 128, 248, 5, 7, 7,
6, 0, 0, 136, 216, 168, 136, 136, 136, 136, 5, 7, 7, 6, 0, 0,
136, 136, 200, 168, 152, 136, 136, 5, 7, 7, 6, 0, 0, 112, 136, 136,
136, 136, 136, 112, 5, 7, 7, 6, 0, 0, 240, 136, 136, 240, 128, 128,
128, 5, 7, 7, 6, 0, 0, 112, 136, 136, 136, 168, 144, 104, 5, 7,
7, 6, 0, 0, 240, 136, 136, 240, 160, 144, 136, 5, 7, 7, 6, 0,
0, 120, 128, 128, 112, 8, 8, 240, 5, 7, 7, 6, 0, 0, 248, 32,
32, 32, 32, 32, 32, 5, 7, 7, 6, 0, 0, 136, 136, 136, 136, 136,
136, 112, 5, 7, 7, 6, 0, 0, 136, 136, 136, 136, 136, 80, 32, 5,
7, 7, 6, 0, 0, 136, 136, 136, 136, 136, 168, 80, 5, 7, 7, 6,
0, 0, 136, 136, 80, 32, 80, 136, 136, 5, 7, 7, 6, 0, 0, 136,
136, 136, 80, 32, 32, 32, 5, 7, 7, 6, 0, 0, 248, 8, 16, 32,
64, 128, 248, 3, 7, 7, 6, 1, 0, 224, 128, 128, 128, 128, 128, 224,
5, 7, 7, 6, 0, 0, 32, 112, 160, 160, 168, 112, 32, 3, 7, 7,
6, 1, 0, 224, 32, 32, 32, 32, 32, 224, 5, 3, 3, 6, 0, 4,
32, 80, 136, 5, 1, 1, 6, 0, 0, 248, 2, 2, 2, 6, 2, 5,
128, 64, 5, 5, 5, 6, 0, 0, 112, 8, 120, 136, 120, 5, 7, 7,
6, 0, 0, 128, 128, 176, 200, 136, 136, 240, 5, 5, 5, 6, 0, 0,
112, 128, 128, 136, 112, 5, 7, 7, 6, 0, 0, 8, 8, 104, 152, 136,
136, 120, 5, 5, 5, 6, 0, 0, 112, 136, 248, 128, 112, 5, 7, 7,
6, 0, 0, 48, 72, 224, 64, 64, 64, 64, 5, 6, 6, 6, 0, 255,
112, 136, 136, 120, 8, 112, 5, 7, 7, 6, 0, 0, 128, 128, 176, 200,
136, 136, 136, 1, 7, 7, 6, 2, 0, 128, 0, 128, 128, 128, 128, 128,
3, 8, 8, 6, 1, 255, 32, 0, 32, 32, 32, 32, 160, 64, 4, 7,
7, 6, 0, 0, 128, 128, 144, 160, 192, 160, 144, 3, 7, 7, 6, 1,
0, 192, 64, 64, 64, 64, 64, 224, 5, 5, 5, 6, 0, 0, 208, 168,
168, 168, 168, 5, 5, 5, 6, 0, 0, 176, 200, 136, 136, 136, 5, 5,
5, 6, 0, 0, 112, 136, 136, 136, 112, 5, 6, 6, 6, 0, 255, 240,
136, 136, 240, 128, 128, 5, 6, 6, 6, 0, 255, 120, 136, 136, 120, 8,
8, 5, 5, 5, 6, 0, 0, 176, 200, 128, 128, 128, 5, 5, 5, 6,
0, 0, 112, 128, 112, 8, 240, 5, 7, 7, 6, 0, 0, 64, 64, 224,
64, 64, 72, 48, 5, 5, 5, 6, 0, 0, 136, 136, 136, 152, 104, 5,
5, 5, 6, 0, 0, 136, 136, 136, 80, 32, 5, 5, 5, 6, 0, 0,
136, 136, 168, 168, 80, 5, 5, 5, 6, 0, 0, 136, 80, 32, 80, 136,
5, 6, 6, 6, 0, 255, 136, 136, 136, 120, 8, 112, 5, 5, 5, 6,
0, 0, 248, 16, 32, 64, 248, 5, 5, 5, 6, 0, 2, 184, 168, 168,
168, 184, 5, 5, 5, 6, 0, 2, 184, 136, 184, 160, 184, 5, 5, 5,
6, 0, 2, 184, 160, 184, 136, 184, 5, 6, 6, 6, 0, 1, 8, 40,
72, 248, 64, 32, 5, 5, 5, 6, 0, 0, 56, 112, 224, 136, 240, 0,
0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0,
0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0,
6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0,
0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0,
0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0,
6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0,
0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0,
0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0,
6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0,
0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0,
0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0,
6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 5,
7, 7, 6, 0, 0, 248, 136, 128, 240, 136, 136, 240, 5, 7, 7, 6,
0, 0, 248, 136, 128, 128, 128, 128, 128, 5, 7, 7, 6, 0, 0, 80,
0, 248, 128, 240, 128, 248, 5, 7, 7, 6, 0, 0, 168, 168, 168, 112,
168, 168, 168, 5, 7, 7, 6, 0, 0, 240, 8, 8, 112, 8, 8, 240,
5, 7, 7, 6, 0, 0, 136, 136, 152, 168, 200, 136, 136, 5, 8, 8,
6, 0, 0, 80, 32, 136, 152, 168, 168, 200, 136, 5, 7, 7, 6, 0,
0, 120, 40, 40, 40, 40, 168, 72, 5, 7, 7, 6, 0, 0, 248, 136,
136, 136, 136, 136, 136, 5, 7, 7, 6, 0, 0, 136, 136, 136, 80, 32,
64, 128, 5, 7, 7, 6, 0, 0, 32, 112, 168, 168, 168, 112, 32, 5,
7, 7, 6, 0, 0, 136, 136, 136, 120, 8, 8, 8, 5, 7, 7, 6,
0, 0, 168, 168, 168, 168, 168, 168, 248, 5, 7, 7, 6, 0, 0, 192,
64, 64, 112, 72, 72, 112, 5, 7, 7, 6, 0, 0, 136, 136, 136, 200,
168, 168, 200, 5, 7, 7, 6, 0, 0, 112, 136, 8, 56, 8, 136, 112,
5, 7, 7, 6, 0, 0, 144, 168, 168, 232, 168, 168, 144, 5, 7, 7,
6, 0, 0, 120, 136, 136, 120, 40, 72, 136, 5, 7, 7, 6, 0, 0,
24, 96, 128, 240, 136, 136, 112, 4, 5, 5, 6, 0, 0, 224, 144, 224,
144, 224, 5, 5, 5, 6, 0, 0, 248, 136, 128, 128, 128, 5, 7, 7,
6, 0, 0, 80, 0, 112, 136, 248, 128, 112, 5, 5, 5, 6, 0, 0,
168, 168, 112, 168, 168, 5, 5, 5, 6, 0, 0, 240, 8, 48, 8, 240,
5, 5, 5, 6, 0, 0, 136, 152, 168, 200, 136, 5, 7, 7, 6, 0,
0, 80, 32, 136, 152, 168, 200, 136, 4, 5, 5, 6, 0, 0, 144, 160,
192, 160, 144, 5, 5, 5, 6, 0, 0, 248, 40, 40, 168, 72, 5, 5,
5, 6, 0, 0, 136, 216, 168, 136, 136, 5, 5, 5, 6, 0, 0, 136,
136, 248, 136, 136, 5, 5, 5, 6, 0, 0, 248, 136, 136, 136, 136, 5,
5, 5, 6, 0, 0, 248, 32, 32, 32, 32, 5, 5, 5, 6, 0, 0,
136, 136, 120, 8, 8, 5, 5, 5, 6, 0, 0, 168, 168, 168, 168, 248,
5, 5, 5, 6, 0, 0, 192, 64, 112, 72, 112, 5, 5, 5, 6, 0,
0, 136, 136, 200, 168, 200, 4, 5, 5, 6, 0, 0, 128, 128, 224, 144,
224, 5, 5, 5, 6, 0, 0, 112, 136, 56, 136, 112, 5, 5, 5, 6,
0, 0, 144, 168, 232, 168, 144, 5, 5, 5, 6, 0, 0, 120, 136, 120,
40, 72, 5, 5, 5, 6, 0, 1, 32, 72, 144, 72, 32, 5, 5, 5,
6, 0, 1, 32, 144, 72, 144, 32, 5, 3, 3, 6, 0, 0, 72, 144,
216, 5, 3, 3, 6, 0, 4, 216, 72, 144, 5, 7, 7, 6, 0, 0,
144, 208, 176, 144, 56, 40, 56, 5, 7, 7, 6, 0, 0, 32, 0, 32,
64, 128, 136, 112, 5, 7, 7, 6, 0, 0, 24, 32, 32, 112, 32, 32,
192, 5, 7, 7, 6, 0, 0, 32, 80, 64, 240, 64, 64, 120, 1, 2,
2, 6, 2, 0, 128, 128, 1, 4, 4, 6, 2, 0, 128, 128, 128, 128,
3, 5, 5, 6, 1, 0, 160, 160, 160, 0, 224, 3, 5, 5, 6, 1,
0, 160, 160, 160, 0, 160, 5, 7, 7, 6, 0, 0, 160, 0, 232, 16,
32, 64, 128, 5, 5, 5, 6, 0, 1, 216, 112, 32, 112, 216, 5, 7,
7, 6, 0, 0, 160, 64, 168, 16, 32, 64, 128, 3, 6, 6, 6, 1,
1, 224, 64, 64, 64, 64, 224, 5, 6, 6, 6, 0, 1, 248, 80, 80,
80, 80, 248, 5, 7, 7, 6, 0, 0, 32, 112, 168, 32, 32, 32, 32,
5, 7, 7, 6, 0, 0, 32, 32, 32, 32, 168, 112, 32, 5, 7, 7,
6, 0, 0, 128, 144, 176, 248, 176, 144, 128, 5, 7, 7, 6, 0, 0,
8, 72, 104, 248, 104, 72, 8, 5, 7, 7, 6, 0, 0, 128, 136, 168,
248, 168, 136, 128, 5, 7, 7, 6, 0, 0, 128, 224, 136, 16, 32, 64,
128, 2, 2, 2, 6, 2, 2, 192, 192, 5, 8, 8, 6, 0, 255, 120,
40, 40, 40, 72, 136, 248, 136, 5, 8, 8, 6, 0, 255, 136, 136, 136,
136, 136, 136, 248, 8, 5, 8, 8, 6, 0, 255, 168, 168, 168, 168, 168,
168, 248, 8, 5, 6, 6, 6, 0, 255, 120, 40, 72, 136, 248, 136, 5,
7, 7, 6, 0, 255, 32, 32, 112, 168, 168, 112, 32, 5, 6, 6, 6,
0, 255, 136, 136, 136, 136, 248, 8, 5, 6, 6, 6, 0, 255, 168, 168,
168, 168, 248, 8, 2, 2, 2, 6, 2, 6, 64, 128, 3, 1, 1, 6,
1, 7, 160, 5, 2, 2, 6, 0, 6, 72, 176, 5, 8, 8, 6, 0,
0, 16, 32, 0, 112, 136, 248, 128, 112, 5, 6, 6, 6, 0, 255, 112,
128, 136, 112, 32, 96, 3, 7, 7, 6, 1, 0, 160, 0, 160, 160, 160,
32, 192, 5, 6, 6, 6, 0, 1, 32, 112, 112, 112, 248, 32, 5, 5,
5, 6, 0, 1, 80, 0, 136, 0, 80, 5, 5, 5, 6, 0, 1, 112,
136, 136, 136, 112, 5, 7, 7, 6, 0, 0, 136, 144, 168, 88, 184, 8,
8, 5, 7, 7, 6, 0, 0, 136, 144, 184, 72, 184, 8, 56, 5, 7,
7, 6, 0, 0, 136, 144, 184, 72, 152, 32, 56, 5, 8, 8, 6, 0,
0, 192, 64, 192, 72, 216, 56, 8, 8, 5, 7, 7, 6, 0, 0, 136,
248, 136, 248, 136, 248, 136, 4, 5, 5, 6, 0, 2, 192, 0, 48, 0,
96, 5, 8, 8, 6, 0, 0, 64, 160, 224, 168, 8, 40, 120, 32, 5,
8, 8, 6, 0, 0, 64, 112, 64, 120, 64, 112, 64, 224, 5, 8, 8,
6, 0, 0, 32, 112, 32, 248, 32, 112, 32, 112, 5, 7, 7, 6, 0,
0, 104, 0, 232, 0, 104, 16, 56, 5, 8, 8, 6, 0, 0, 16, 112,
16, 240, 16, 112, 16, 56, 5, 7, 7, 6, 0, 1, 32, 112, 32, 248,
32, 112, 32, 5, 8, 8, 6, 0, 0, 16, 144, 80, 48, 80, 144, 16,
56, 5, 8, 8, 6, 0, 0, 48, 72, 32, 80, 80, 32, 144, 96, 5,
7, 7, 6, 0, 0, 120, 168, 168, 120, 40, 40, 40, 5, 8, 8, 6,
0, 0, 248, 248, 248, 248, 248, 248, 248, 248
};
-192
View File
@@ -1,192 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
Fontname: HD44780_J
Copyright: A. Hardtung, public domain
Capital A Height: 7, '1' Height: 7
Calculated Max Values w= 6 h=10 x= 2 y= 5 dx= 6 dy= 0 ascent= 8 len= 8
Font Bounding box w= 6 h= 9 x= 0 y=-2
Calculated Min Values x= 0 y=-2 dx= 0 dy= 0
Pure Font ascent = 7 descent=-1
X Font ascent = 7 descent=-1
Max Font ascent = 8 descent=-2
*/
#include <U8glib.h>
const u8g_fntpgm_uint8_t HD44780_J_5x7[2492] U8G_SECTION(".progmem.HD44780_J_5x7") = {
0, 6, 9, 0, 254, 7, 1, 145, 3, 34, 32, 255, 255, 8, 254, 7,
255, 0, 0, 0, 6, 0, 0, 1, 7, 7, 6, 2, 0, 128, 128, 128,
128, 128, 0, 128, 3, 2, 2, 6, 1, 5, 160, 160, 5, 7, 7, 6,
0, 0, 80, 80, 248, 80, 248, 80, 80, 5, 7, 7, 6, 0, 0, 32,
120, 160, 112, 40, 240, 32, 5, 7, 7, 6, 0, 0, 192, 200, 16, 32,
64, 152, 24, 5, 7, 7, 6, 0, 0, 96, 144, 160, 64, 168, 144, 104,
2, 3, 3, 6, 1, 4, 192, 64, 128, 3, 7, 7, 6, 1, 0, 32,
64, 128, 128, 128, 64, 32, 3, 7, 7, 6, 1, 0, 128, 64, 32, 32,
32, 64, 128, 5, 5, 5, 6, 0, 1, 32, 168, 112, 168, 32, 5, 5,
5, 6, 0, 1, 32, 32, 248, 32, 32, 2, 3, 3, 6, 2, 255, 192,
64, 128, 5, 1, 1, 6, 0, 3, 248, 2, 2, 2, 6, 2, 0, 192,
192, 5, 5, 5, 6, 0, 1, 8, 16, 32, 64, 128, 5, 7, 7, 6,
0, 0, 112, 136, 152, 168, 200, 136, 112, 3, 7, 7, 6, 1, 0, 64,
192, 64, 64, 64, 64, 224, 5, 7, 7, 6, 0, 0, 112, 136, 8, 112,
128, 128, 248, 5, 7, 7, 6, 0, 0, 248, 16, 32, 16, 8, 8, 240,
5, 7, 7, 6, 0, 0, 16, 48, 80, 144, 248, 16, 16, 5, 7, 7,
6, 0, 0, 248, 128, 240, 8, 8, 136, 112, 5, 7, 7, 6, 0, 0,
48, 64, 128, 240, 136, 136, 112, 5, 7, 7, 6, 0, 0, 248, 8, 16,
32, 32, 32, 32, 5, 7, 7, 6, 0, 0, 112, 136, 136, 112, 136, 136,
112, 5, 7, 7, 6, 0, 0, 112, 136, 136, 120, 8, 16, 96, 2, 5,
5, 6, 2, 0, 192, 192, 0, 192, 192, 2, 6, 6, 6, 2, 255, 192,
192, 0, 192, 64, 128, 4, 7, 7, 6, 0, 0, 16, 32, 64, 128, 64,
32, 16, 5, 3, 3, 6, 0, 2, 248, 0, 248, 4, 7, 7, 6, 1,
0, 128, 64, 32, 16, 32, 64, 128, 5, 7, 7, 6, 0, 0, 112, 136,
8, 16, 32, 0, 32, 5, 6, 6, 6, 0, 0, 112, 136, 8, 104, 168,
112, 5, 7, 7, 6, 0, 0, 112, 136, 136, 248, 136, 136, 136, 5, 7,
7, 6, 0, 0, 240, 136, 136, 240, 136, 136, 240, 5, 7, 7, 6, 0,
0, 112, 136, 128, 128, 128, 136, 112, 5, 7, 7, 6, 0, 0, 224, 144,
136, 136, 136, 144, 224, 5, 7, 7, 6, 0, 0, 248, 128, 128, 240, 128,
128, 248, 5, 7, 7, 6, 0, 0, 248, 128, 128, 240, 128, 128, 128, 5,
7, 7, 6, 0, 0, 112, 136, 128, 184, 136, 136, 112, 5, 7, 7, 6,
0, 0, 136, 136, 136, 248, 136, 136, 136, 1, 7, 7, 6, 2, 0, 128,
128, 128, 128, 128, 128, 128, 5, 7, 7, 6, 0, 0, 56, 16, 16, 16,
16, 144, 96, 5, 7, 7, 6, 0, 0, 136, 144, 160, 192, 160, 144, 136,
5, 7, 7, 6, 0, 0, 128, 128, 128, 128, 128, 128, 248, 5, 7, 7,
6, 0, 0, 136, 216, 168, 136, 136, 136, 136, 5, 7, 7, 6, 0, 0,
136, 136, 200, 168, 152, 136, 136, 5, 7, 7, 6, 0, 0, 112, 136, 136,
136, 136, 136, 112, 5, 7, 7, 6, 0, 0, 240, 136, 136, 240, 128, 128,
128, 5, 7, 7, 6, 0, 0, 112, 136, 136, 136, 168, 144, 104, 5, 7,
7, 6, 0, 0, 240, 136, 136, 240, 160, 144, 136, 5, 7, 7, 6, 0,
0, 120, 128, 128, 112, 8, 8, 240, 5, 7, 7, 6, 0, 0, 248, 32,
32, 32, 32, 32, 32, 5, 7, 7, 6, 0, 0, 136, 136, 136, 136, 136,
136, 112, 5, 7, 7, 6, 0, 0, 136, 136, 136, 136, 136, 80, 32, 5,
7, 7, 6, 0, 0, 136, 136, 136, 136, 136, 168, 80, 5, 7, 7, 6,
0, 0, 136, 136, 80, 32, 80, 136, 136, 5, 7, 7, 6, 0, 0, 136,
136, 136, 80, 32, 32, 32, 5, 7, 7, 6, 0, 0, 248, 8, 16, 32,
64, 128, 248, 3, 7, 7, 6, 1, 0, 224, 128, 128, 128, 128, 128, 224,
5, 7, 7, 6, 0, 0, 136, 80, 248, 32, 248, 32, 32, 3, 7, 7,
6, 1, 0, 224, 32, 32, 32, 32, 32, 224, 5, 3, 3, 6, 0, 4,
32, 80, 136, 5, 1, 1, 6, 0, 0, 248, 2, 2, 2, 6, 2, 5,
128, 64, 5, 5, 5, 6, 0, 0, 112, 8, 120, 136, 120, 5, 7, 7,
6, 0, 0, 128, 128, 176, 200, 136, 136, 240, 5, 5, 5, 6, 0, 0,
112, 128, 128, 136, 112, 5, 7, 7, 6, 0, 0, 8, 8, 104, 152, 136,
136, 120, 5, 5, 5, 6, 0, 0, 112, 136, 248, 128, 112, 5, 7, 7,
6, 0, 0, 48, 72, 224, 64, 64, 64, 64, 5, 6, 6, 6, 0, 255,
112, 136, 136, 120, 8, 112, 5, 7, 7, 6, 0, 0, 128, 128, 176, 200,
136, 136, 136, 1, 7, 7, 6, 2, 0, 128, 0, 128, 128, 128, 128, 128,
3, 8, 8, 6, 1, 255, 32, 0, 32, 32, 32, 32, 160, 64, 4, 7,
7, 6, 0, 0, 128, 128, 144, 160, 192, 160, 144, 3, 7, 7, 6, 1,
0, 192, 64, 64, 64, 64, 64, 224, 5, 5, 5, 6, 0, 0, 208, 168,
168, 168, 168, 5, 5, 5, 6, 0, 0, 176, 200, 136, 136, 136, 5, 5,
5, 6, 0, 0, 112, 136, 136, 136, 112, 5, 6, 6, 6, 0, 255, 240,
136, 136, 240, 128, 128, 5, 6, 6, 6, 0, 255, 120, 136, 136, 120, 8,
8, 5, 5, 5, 6, 0, 0, 176, 200, 128, 128, 128, 5, 5, 5, 6,
0, 0, 112, 128, 112, 8, 240, 5, 7, 7, 6, 0, 0, 64, 64, 224,
64, 64, 72, 48, 5, 5, 5, 6, 0, 0, 136, 136, 136, 152, 104, 5,
5, 5, 6, 0, 0, 136, 136, 136, 80, 32, 5, 5, 5, 6, 0, 0,
136, 136, 168, 168, 80, 5, 5, 5, 6, 0, 0, 136, 80, 32, 80, 136,
5, 6, 6, 6, 0, 255, 136, 136, 136, 120, 8, 112, 5, 5, 5, 6,
0, 0, 248, 16, 32, 64, 248, 3, 7, 7, 6, 1, 0, 32, 64, 64,
128, 64, 64, 32, 1, 7, 7, 6, 2, 0, 128, 128, 128, 128, 128, 128,
128, 3, 7, 7, 6, 1, 0, 128, 64, 64, 32, 64, 64, 128, 5, 5,
5, 6, 0, 1, 32, 16, 248, 16, 32, 5, 5, 5, 6, 0, 1, 32,
64, 248, 64, 32, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0,
0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6,
0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0,
0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0,
0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6,
0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0,
0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0,
0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6,
0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0,
0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0,
0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6,
0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0,
0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 3, 3, 3, 6, 0, 0,
224, 160, 224, 3, 4, 4, 6, 2, 3, 224, 128, 128, 128, 3, 4, 4,
6, 0, 0, 32, 32, 32, 224, 3, 3, 3, 6, 0, 0, 128, 64, 32,
2, 2, 2, 6, 1, 2, 192, 192, 5, 6, 6, 6, 0, 0, 248, 8,
248, 8, 16, 32, 5, 5, 5, 6, 0, 0, 248, 8, 48, 32, 64, 4,
5, 5, 6, 0, 0, 16, 32, 96, 160, 32, 5, 5, 5, 6, 0, 0,
32, 248, 136, 8, 48, 5, 4, 4, 6, 0, 0, 248, 32, 32, 248, 5,
5, 5, 6, 0, 0, 16, 248, 48, 80, 144, 5, 5, 5, 6, 0, 0,
64, 248, 72, 80, 64, 5, 4, 4, 6, 0, 0, 112, 16, 16, 248, 4,
5, 5, 6, 0, 0, 240, 16, 240, 16, 240, 5, 4, 4, 6, 0, 0,
168, 168, 8, 48, 5, 1, 1, 6, 0, 3, 248, 5, 7, 7, 6, 0,
0, 248, 8, 40, 48, 32, 32, 64, 5, 7, 7, 6, 0, 0, 8, 16,
32, 96, 160, 32, 32, 5, 7, 7, 6, 0, 0, 32, 248, 136, 136, 8,
16, 32, 5, 6, 6, 6, 0, 0, 248, 32, 32, 32, 32, 248, 5, 7,
7, 6, 0, 0, 16, 248, 16, 48, 80, 144, 16, 5, 7, 7, 6, 0,
0, 64, 248, 72, 72, 72, 72, 144, 5, 7, 7, 6, 0, 0, 32, 248,
32, 248, 32, 32, 32, 5, 6, 6, 6, 0, 0, 120, 72, 136, 8, 16,
96, 5, 7, 7, 6, 0, 0, 64, 120, 144, 16, 16, 16, 32, 5, 6,
6, 6, 0, 0, 248, 8, 8, 8, 8, 248, 5, 7, 7, 6, 0, 0,
80, 248, 80, 80, 16, 32, 64, 5, 6, 6, 6, 0, 0, 192, 8, 200,
8, 16, 224, 5, 6, 6, 6, 0, 0, 248, 8, 16, 32, 80, 136, 5,
7, 7, 6, 0, 0, 64, 248, 72, 80, 64, 64, 56, 5, 6, 6, 6,
0, 0, 136, 136, 72, 8, 16, 96, 5, 6, 6, 6, 0, 0, 120, 72,
168, 24, 16, 96, 5, 7, 7, 6, 0, 0, 16, 224, 32, 248, 32, 32,
64, 5, 6, 6, 6, 0, 0, 168, 168, 168, 8, 16, 32, 5, 7, 7,
6, 0, 0, 112, 0, 248, 32, 32, 32, 64, 3, 7, 7, 6, 1, 0,
128, 128, 128, 192, 160, 128, 128, 5, 7, 7, 6, 0, 0, 32, 32, 248,
32, 32, 64, 128, 5, 6, 6, 6, 0, 0, 112, 0, 0, 0, 0, 248,
5, 6, 6, 6, 0, 0, 248, 8, 80, 32, 80, 128, 5, 7, 7, 6,
0, 0, 32, 248, 16, 32, 112, 168, 32, 3, 7, 7, 6, 1, 0, 32,
32, 32, 32, 32, 64, 128, 5, 6, 6, 6, 0, 0, 32, 16, 136, 136,
136, 136, 5, 7, 7, 6, 0, 0, 128, 128, 248, 128, 128, 128, 120, 5,
6, 6, 6, 0, 0, 248, 8, 8, 8, 16, 96, 5, 5, 5, 6, 0,
1, 64, 160, 16, 8, 8, 5, 7, 7, 6, 0, 0, 32, 248, 32, 32,
168, 168, 32, 5, 6, 6, 6, 0, 0, 248, 8, 8, 80, 32, 16, 4,
6, 6, 6, 1, 0, 224, 0, 224, 0, 224, 16, 5, 6, 6, 6, 0,
0, 32, 64, 128, 136, 248, 8, 5, 6, 6, 6, 0, 0, 8, 8, 80,
32, 80, 128, 5, 6, 6, 6, 0, 0, 248, 64, 248, 64, 64, 56, 5,
7, 7, 6, 0, 0, 64, 64, 248, 72, 80, 64, 64, 5, 7, 7, 6,
0, 0, 112, 16, 16, 16, 16, 16, 248, 5, 6, 6, 6, 0, 0, 248,
8, 248, 8, 8, 248, 5, 7, 7, 6, 0, 0, 112, 0, 248, 8, 8,
16, 32, 4, 7, 7, 6, 0, 0, 144, 144, 144, 144, 16, 32, 64, 5,
6, 6, 6, 0, 0, 32, 160, 160, 168, 168, 176, 5, 7, 7, 6, 0,
0, 128, 128, 128, 136, 144, 160, 192, 5, 6, 6, 6, 0, 0, 248, 136,
136, 136, 136, 248, 5, 6, 6, 6, 0, 0, 248, 136, 136, 8, 16, 32,
5, 6, 6, 6, 0, 0, 192, 0, 8, 8, 16, 224, 4, 3, 3, 6,
0, 4, 32, 144, 64, 3, 3, 3, 6, 0, 4, 224, 160, 224, 5, 5,
5, 6, 0, 1, 72, 168, 144, 144, 104, 5, 7, 7, 6, 0, 0, 80,
0, 112, 8, 120, 136, 120, 4, 8, 8, 6, 1, 255, 96, 144, 144, 224,
144, 144, 224, 128, 5, 5, 5, 6, 0, 0, 112, 128, 96, 136, 112, 5,
6, 6, 6, 0, 255, 136, 136, 152, 232, 136, 128, 5, 5, 5, 6, 0,
0, 120, 160, 144, 136, 112, 5, 7, 7, 6, 0, 254, 48, 72, 136, 136,
240, 128, 128, 5, 8, 8, 6, 0, 254, 120, 136, 136, 136, 120, 8, 8,
112, 5, 5, 5, 6, 0, 1, 56, 32, 32, 160, 64, 4, 3, 3, 6,
0, 3, 16, 208, 16, 4, 8, 8, 6, 0, 255, 16, 0, 48, 16, 16,
16, 144, 96, 3, 3, 3, 6, 0, 4, 160, 64, 160, 5, 7, 7, 6,
0, 0, 32, 112, 160, 160, 168, 112, 32, 5, 7, 7, 6, 0, 0, 64,
64, 224, 64, 224, 64, 120, 5, 7, 7, 6, 0, 0, 112, 0, 176, 200,
136, 136, 136, 5, 7, 7, 6, 0, 0, 80, 0, 112, 136, 136, 136, 112,
5, 7, 7, 6, 0, 255, 176, 200, 136, 136, 240, 128, 128, 5, 7, 7,
6, 0, 255, 104, 152, 136, 136, 120, 8, 8, 5, 6, 6, 6, 0, 0,
112, 136, 248, 136, 136, 112, 5, 3, 3, 6, 0, 2, 88, 168, 208, 5,
5, 5, 6, 0, 0, 112, 136, 136, 80, 216, 5, 7, 7, 6, 0, 0,
80, 0, 136, 136, 136, 152, 104, 5, 7, 7, 6, 0, 0, 248, 128, 64,
32, 64, 128, 248, 5, 5, 5, 6, 0, 0, 248, 80, 80, 80, 152, 5,
7, 7, 6, 0, 0, 248, 0, 136, 80, 32, 80, 136, 5, 7, 7, 6,
0, 255, 136, 136, 136, 136, 120, 8, 112, 5, 6, 6, 6, 0, 0, 8,
240, 32, 248, 32, 32, 5, 5, 5, 6, 0, 0, 248, 64, 120, 72, 136,
5, 5, 5, 6, 0, 0, 248, 168, 248, 136, 136, 5, 5, 5, 6, 0,
1, 32, 0, 248, 0, 32, 0, 0, 0, 6, 0, 0, 6, 10, 10, 6,
0, 254, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252
};
-226
View File
@@ -1,226 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
Fontname: HD44780_W
Copyright: A.Hardtung, public domain
Capital A Height: 7, '1' Height: 7
Calculated Max Values w= 5 h= 9 x= 2 y= 5 dx= 6 dy= 0 ascent= 8 len= 9
Font Bounding box w= 6 h= 9 x= 0 y=-2
Calculated Min Values x= 0 y=-1 dx= 0 dy= 0
Pure Font ascent = 7 descent=-1
X Font ascent = 7 descent=-1
Max Font ascent = 8 descent=-1
*/
#include <U8glib.h>
const u8g_fntpgm_uint8_t HD44780_W_5x7[3034] U8G_SECTION(".progmem.HD44780_W_5x7") = {
0, 6, 9, 0, 254, 7, 2, 79, 3, 222, 16, 255, 255, 8, 255, 7,
255, 4, 7, 7, 6, 0, 0, 16, 48, 112, 240, 112, 48, 16, 4, 7,
7, 6, 1, 0, 128, 192, 224, 240, 224, 192, 128, 5, 3, 3, 6, 0,
4, 216, 72, 144, 5, 3, 3, 6, 0, 4, 216, 144, 72, 5, 7, 7,
6, 0, 0, 32, 112, 248, 0, 32, 112, 248, 5, 7, 7, 6, 0, 0,
248, 112, 32, 0, 248, 112, 32, 5, 5, 5, 6, 0, 1, 112, 248, 248,
248, 112, 5, 7, 7, 6, 0, 0, 8, 8, 40, 72, 248, 64, 32, 5,
7, 7, 6, 0, 0, 32, 112, 168, 32, 32, 32, 32, 5, 7, 7, 6,
0, 0, 32, 32, 32, 32, 168, 112, 32, 5, 5, 5, 6, 0, 1, 32,
64, 248, 64, 32, 5, 5, 5, 6, 0, 1, 32, 16, 248, 16, 32, 5,
7, 7, 6, 0, 0, 16, 32, 64, 32, 16, 0, 248, 5, 7, 7, 6,
0, 0, 64, 32, 16, 32, 64, 0, 248, 5, 5, 5, 6, 0, 1, 32,
32, 112, 112, 248, 5, 5, 5, 6, 0, 0, 248, 112, 112, 32, 32, 0,
0, 0, 6, 0, 0, 1, 7, 7, 6, 2, 0, 128, 128, 128, 128, 128,
0, 128, 3, 2, 2, 6, 1, 5, 160, 160, 5, 7, 7, 6, 0, 0,
80, 80, 248, 80, 248, 80, 80, 5, 7, 7, 6, 0, 0, 32, 120, 160,
112, 40, 240, 32, 5, 7, 7, 6, 0, 0, 192, 200, 16, 32, 64, 152,
24, 5, 7, 7, 6, 0, 0, 96, 144, 160, 64, 168, 144, 104, 2, 3,
3, 6, 1, 4, 192, 64, 128, 3, 7, 7, 6, 1, 0, 32, 64, 128,
128, 128, 64, 32, 3, 7, 7, 6, 1, 0, 128, 64, 32, 32, 32, 64,
128, 5, 5, 5, 6, 0, 1, 32, 168, 112, 168, 32, 5, 5, 5, 6,
0, 1, 32, 32, 248, 32, 32, 2, 3, 3, 6, 2, 255, 192, 64, 128,
5, 1, 1, 6, 0, 3, 248, 2, 2, 2, 6, 2, 0, 192, 192, 5,
5, 5, 6, 0, 1, 8, 16, 32, 64, 128, 5, 7, 7, 6, 0, 0,
112, 136, 152, 168, 200, 136, 112, 3, 7, 7, 6, 1, 0, 64, 192, 64,
64, 64, 64, 224, 5, 7, 7, 6, 0, 0, 112, 136, 8, 112, 128, 128,
248, 5, 7, 7, 6, 0, 0, 248, 16, 32, 16, 8, 8, 240, 5, 7,
7, 6, 0, 0, 16, 48, 80, 144, 248, 16, 16, 5, 7, 7, 6, 0,
0, 248, 128, 240, 8, 8, 136, 112, 5, 7, 7, 6, 0, 0, 48, 64,
128, 240, 136, 136, 112, 5, 7, 7, 6, 0, 0, 248, 8, 16, 32, 32,
32, 32, 5, 7, 7, 6, 0, 0, 112, 136, 136, 112, 136, 136, 112, 5,
7, 7, 6, 0, 0, 112, 136, 136, 120, 8, 16, 96, 2, 5, 5, 6,
2, 0, 192, 192, 0, 192, 192, 2, 6, 6, 6, 2, 255, 192, 192, 0,
192, 64, 128, 4, 7, 7, 6, 0, 0, 16, 32, 64, 128, 64, 32, 16,
5, 3, 3, 6, 0, 2, 248, 0, 248, 4, 7, 7, 6, 1, 0, 128,
64, 32, 16, 32, 64, 128, 5, 7, 7, 6, 0, 0, 112, 136, 8, 16,
32, 0, 32, 5, 6, 6, 6, 0, 0, 112, 136, 8, 104, 168, 112, 5,
7, 7, 6, 0, 0, 112, 136, 136, 248, 136, 136, 136, 5, 7, 7, 6,
0, 0, 240, 136, 136, 240, 136, 136, 240, 5, 7, 7, 6, 0, 0, 112,
136, 128, 128, 128, 136, 112, 5, 7, 7, 6, 0, 0, 224, 144, 136, 136,
136, 144, 224, 5, 7, 7, 6, 0, 0, 248, 128, 128, 240, 128, 128, 248,
5, 7, 7, 6, 0, 0, 248, 128, 128, 240, 128, 128, 128, 5, 7, 7,
6, 0, 0, 112, 136, 128, 184, 136, 136, 112, 5, 7, 7, 6, 0, 0,
136, 136, 136, 248, 136, 136, 136, 1, 7, 7, 6, 2, 0, 128, 128, 128,
128, 128, 128, 128, 5, 7, 7, 6, 0, 0, 56, 16, 16, 16, 16, 144,
96, 5, 7, 7, 6, 0, 0, 136, 144, 160, 192, 160, 144, 136, 5, 7,
7, 6, 0, 0, 128, 128, 128, 128, 128, 128, 248, 5, 7, 7, 6, 0,
0, 136, 216, 168, 136, 136, 136, 136, 5, 7, 7, 6, 0, 0, 136, 136,
200, 168, 152, 136, 136, 5, 7, 7, 6, 0, 0, 112, 136, 136, 136, 136,
136, 112, 5, 7, 7, 6, 0, 0, 240, 136, 136, 240, 128, 128, 128, 5,
7, 7, 6, 0, 0, 112, 136, 136, 136, 168, 144, 104, 5, 7, 7, 6,
0, 0, 240, 136, 136, 240, 160, 144, 136, 5, 7, 7, 6, 0, 0, 120,
128, 128, 112, 8, 8, 240, 5, 7, 7, 6, 0, 0, 248, 32, 32, 32,
32, 32, 32, 5, 7, 7, 6, 0, 0, 136, 136, 136, 136, 136, 136, 112,
5, 7, 7, 6, 0, 0, 136, 136, 136, 136, 136, 80, 32, 5, 7, 7,
6, 0, 0, 136, 136, 136, 136, 136, 168, 80, 5, 7, 7, 6, 0, 0,
136, 136, 80, 32, 80, 136, 136, 5, 7, 7, 6, 0, 0, 136, 136, 136,
80, 32, 32, 32, 5, 7, 7, 6, 0, 0, 248, 8, 16, 32, 64, 128,
248, 3, 7, 7, 6, 1, 0, 224, 128, 128, 128, 128, 128, 224, 5, 5,
5, 6, 0, 1, 128, 64, 32, 16, 8, 3, 7, 7, 6, 1, 0, 224,
32, 32, 32, 32, 32, 224, 5, 3, 3, 6, 0, 4, 32, 80, 136, 5,
1, 1, 6, 0, 0, 248, 2, 2, 2, 6, 2, 5, 128, 64, 5, 5,
5, 6, 0, 0, 112, 8, 120, 136, 120, 5, 7, 7, 6, 0, 0, 128,
128, 176, 200, 136, 136, 240, 5, 5, 5, 6, 0, 0, 112, 128, 128, 136,
112, 5, 7, 7, 6, 0, 0, 8, 8, 104, 152, 136, 136, 120, 5, 5,
5, 6, 0, 0, 112, 136, 248, 128, 112, 5, 7, 7, 6, 0, 0, 48,
72, 224, 64, 64, 64, 64, 5, 6, 6, 6, 0, 255, 112, 136, 136, 120,
8, 112, 5, 7, 7, 6, 0, 0, 128, 128, 176, 200, 136, 136, 136, 1,
7, 7, 6, 2, 0, 128, 0, 128, 128, 128, 128, 128, 3, 8, 8, 6,
1, 255, 32, 0, 32, 32, 32, 32, 160, 64, 4, 7, 7, 6, 0, 0,
128, 128, 144, 160, 192, 160, 144, 3, 7, 7, 6, 1, 0, 192, 64, 64,
64, 64, 64, 224, 5, 5, 5, 6, 0, 0, 208, 168, 168, 168, 168, 5,
5, 5, 6, 0, 0, 176, 200, 136, 136, 136, 5, 5, 5, 6, 0, 0,
112, 136, 136, 136, 112, 5, 6, 6, 6, 0, 255, 240, 136, 136, 240, 128,
128, 5, 6, 6, 6, 0, 255, 120, 136, 136, 120, 8, 8, 5, 5, 5,
6, 0, 0, 176, 200, 128, 128, 128, 5, 5, 5, 6, 0, 0, 112, 128,
112, 8, 240, 5, 7, 7, 6, 0, 0, 64, 64, 224, 64, 64, 72, 48,
5, 5, 5, 6, 0, 0, 136, 136, 136, 152, 104, 5, 5, 5, 6, 0,
0, 136, 136, 136, 80, 32, 5, 5, 5, 6, 0, 0, 136, 136, 168, 168,
80, 5, 5, 5, 6, 0, 0, 136, 80, 32, 80, 136, 5, 6, 6, 6,
0, 255, 136, 136, 136, 120, 8, 112, 5, 5, 5, 6, 0, 0, 248, 16,
32, 64, 248, 3, 7, 7, 6, 1, 0, 32, 64, 64, 128, 64, 64, 32,
1, 7, 7, 6, 2, 0, 128, 128, 128, 128, 128, 128, 128, 3, 7, 7,
6, 1, 0, 128, 64, 64, 32, 64, 64, 128, 5, 6, 6, 6, 0, 1,
8, 40, 72, 248, 64, 32, 5, 7, 7, 6, 0, 0, 32, 80, 136, 136,
136, 136, 248, 5, 7, 7, 6, 0, 0, 248, 136, 128, 240, 136, 136, 240,
5, 8, 8, 6, 0, 255, 120, 40, 40, 40, 72, 136, 248, 136, 5, 7,
7, 6, 0, 0, 168, 168, 168, 112, 168, 168, 168, 5, 7, 7, 6, 0,
0, 240, 8, 8, 112, 8, 8, 240, 5, 7, 7, 6, 0, 0, 136, 136,
152, 168, 200, 136, 136, 5, 8, 8, 6, 0, 0, 80, 32, 136, 152, 168,
168, 200, 136, 5, 7, 7, 6, 0, 0, 120, 40, 40, 40, 40, 168, 72,
5, 7, 7, 6, 0, 0, 248, 136, 136, 136, 136, 136, 136, 5, 7, 7,
6, 0, 0, 136, 136, 136, 80, 32, 64, 128, 5, 8, 8, 6, 0, 255,
136, 136, 136, 136, 136, 136, 248, 8, 5, 7, 7, 6, 0, 0, 136, 136,
136, 120, 8, 8, 8, 5, 7, 7, 6, 0, 0, 168, 168, 168, 168, 168,
168, 248, 5, 8, 8, 6, 0, 255, 168, 168, 168, 168, 168, 168, 248, 8,
5, 7, 7, 6, 0, 0, 192, 64, 64, 112, 72, 72, 112, 5, 7, 7,
6, 0, 0, 136, 136, 136, 200, 168, 168, 200, 5, 7, 7, 6, 0, 0,
112, 136, 40, 80, 8, 136, 112, 5, 5, 5, 6, 0, 0, 64, 160, 144,
144, 104, 5, 7, 7, 6, 0, 0, 32, 48, 40, 40, 32, 224, 224, 5,
7, 7, 6, 0, 0, 248, 136, 128, 128, 128, 128, 128, 5, 5, 5, 6,
0, 0, 248, 80, 80, 80, 152, 5, 7, 7, 6, 0, 0, 248, 128, 64,
32, 64, 128, 248, 5, 5, 5, 6, 0, 0, 120, 144, 144, 144, 96, 5,
7, 7, 6, 0, 0, 48, 40, 56, 40, 200, 216, 24, 5, 6, 6, 6,
0, 0, 8, 112, 160, 32, 32, 16, 5, 6, 6, 6, 0, 1, 32, 112,
112, 112, 248, 32, 5, 7, 7, 6, 0, 0, 112, 136, 136, 248, 136, 136,
112, 5, 5, 5, 6, 0, 0, 112, 136, 136, 80, 216, 5, 7, 7, 6,
0, 0, 48, 72, 32, 80, 136, 136, 112, 5, 3, 3, 6, 0, 2, 88,
168, 208, 5, 6, 6, 6, 0, 0, 80, 248, 248, 248, 112, 32, 5, 5,
5, 6, 0, 0, 112, 128, 96, 136, 112, 5, 7, 7, 6, 0, 0, 112,
136, 136, 136, 136, 136, 136, 5, 7, 7, 6, 0, 0, 216, 216, 216, 216,
216, 216, 216, 1, 7, 7, 6, 2, 0, 128, 0, 128, 128, 128, 128, 128,
5, 7, 7, 6, 0, 0, 32, 112, 160, 160, 168, 112, 32, 5, 7, 7,
6, 0, 0, 48, 64, 64, 224, 64, 80, 168, 5, 5, 5, 6, 0, 0,
136, 112, 80, 112, 136, 5, 7, 7, 6, 0, 0, 136, 80, 248, 32, 248,
32, 32, 1, 7, 7, 6, 2, 0, 128, 128, 128, 0, 128, 128, 128, 5,
8, 8, 6, 0, 0, 48, 72, 32, 80, 80, 32, 144, 96, 5, 7, 7,
6, 0, 0, 24, 32, 32, 112, 32, 32, 192, 5, 7, 7, 6, 0, 0,
248, 136, 184, 184, 184, 136, 248, 5, 7, 7, 6, 0, 0, 112, 8, 120,
136, 120, 0, 248, 5, 5, 5, 6, 0, 1, 40, 80, 160, 80, 40, 5,
7, 7, 6, 0, 0, 144, 168, 168, 232, 168, 168, 144, 5, 7, 7, 6,
0, 0, 120, 136, 136, 120, 40, 72, 136, 5, 7, 7, 6, 0, 0, 248,
136, 168, 136, 152, 168, 248, 2, 3, 3, 6, 2, 4, 64, 128, 192, 4,
5, 5, 6, 0, 3, 96, 144, 144, 144, 96, 5, 7, 7, 6, 0, 0,
32, 32, 248, 32, 32, 0, 248, 4, 5, 5, 6, 0, 3, 96, 144, 32,
64, 240, 3, 5, 5, 6, 0, 3, 224, 32, 224, 32, 224, 5, 8, 8,
6, 0, 0, 224, 144, 224, 128, 144, 184, 144, 24, 5, 8, 8, 6, 0,
255, 136, 136, 136, 136, 152, 232, 128, 128, 5, 7, 7, 6, 0, 0, 120,
152, 152, 120, 24, 24, 24, 2, 2, 2, 6, 2, 2, 192, 192, 5, 5,
5, 6, 0, 0, 80, 136, 168, 168, 80, 3, 5, 5, 6, 0, 3, 64,
192, 64, 64, 224, 5, 7, 7, 6, 0, 0, 112, 136, 136, 136, 112, 0,
248, 5, 5, 5, 6, 0, 1, 160, 80, 40, 80, 160, 5, 7, 7, 6,
0, 0, 136, 144, 168, 88, 184, 8, 8, 5, 7, 7, 6, 0, 0, 136,
144, 184, 72, 152, 32, 56, 5, 8, 8, 6, 0, 0, 192, 64, 192, 72,
216, 56, 8, 8, 5, 7, 7, 6, 0, 0, 32, 0, 32, 64, 128, 136,
112, 5, 8, 8, 6, 0, 0, 64, 32, 32, 80, 136, 248, 136, 136, 5,
8, 8, 6, 0, 0, 16, 32, 32, 80, 136, 248, 136, 136, 5, 8, 8,
6, 0, 0, 32, 80, 0, 112, 136, 248, 136, 136, 5, 8, 8, 6, 0,
0, 104, 144, 0, 112, 136, 248, 136, 136, 5, 8, 8, 6, 0, 0, 80,
0, 32, 80, 136, 248, 136, 136, 5, 8, 8, 6, 0, 0, 32, 80, 32,
112, 136, 248, 136, 136, 5, 7, 7, 6, 0, 0, 56, 96, 160, 184, 224,
160, 184, 5, 8, 8, 6, 0, 255, 112, 136, 128, 128, 136, 112, 32, 96,
5, 8, 8, 6, 0, 0, 64, 32, 0, 248, 128, 240, 128, 248, 5, 8,
8, 6, 0, 0, 8, 16, 0, 248, 128, 240, 128, 248, 5, 8, 8, 6,
0, 0, 32, 80, 0, 248, 128, 240, 128, 248, 5, 7, 7, 6, 0, 0,
80, 0, 248, 128, 240, 128, 248, 3, 8, 8, 6, 1, 0, 128, 64, 0,
224, 64, 64, 64, 224, 3, 8, 8, 6, 1, 0, 32, 64, 0, 224, 64,
64, 64, 224, 3, 8, 8, 6, 1, 0, 64, 160, 0, 224, 64, 64, 64,
224, 3, 7, 7, 6, 1, 0, 160, 0, 224, 64, 64, 64, 224, 5, 7,
7, 6, 0, 0, 112, 72, 72, 232, 72, 72, 112, 5, 8, 8, 6, 0,
0, 104, 144, 0, 136, 200, 168, 152, 136, 5, 8, 8, 6, 0, 0, 64,
32, 112, 136, 136, 136, 136, 112, 5, 8, 8, 6, 0, 0, 16, 32, 112,
136, 136, 136, 136, 112, 5, 8, 8, 6, 0, 0, 32, 80, 0, 112, 136,
136, 136, 112, 5, 8, 8, 6, 0, 0, 104, 144, 0, 112, 136, 136, 136,
112, 5, 8, 8, 6, 0, 0, 80, 0, 112, 136, 136, 136, 136, 112, 5,
5, 5, 6, 0, 1, 136, 80, 32, 80, 136, 5, 7, 7, 6, 0, 0,
112, 32, 112, 168, 112, 32, 112, 5, 8, 8, 6, 0, 0, 64, 32, 136,
136, 136, 136, 136, 112, 5, 8, 8, 6, 0, 0, 16, 32, 136, 136, 136,
136, 136, 112, 5, 8, 8, 6, 0, 0, 32, 80, 0, 136, 136, 136, 136,
112, 5, 8, 8, 6, 0, 0, 80, 0, 136, 136, 136, 136, 136, 112, 5,
8, 8, 6, 0, 0, 16, 32, 136, 80, 32, 32, 32, 32, 5, 8, 8,
6, 0, 0, 192, 64, 112, 72, 72, 112, 64, 224, 5, 7, 7, 6, 0,
0, 48, 72, 72, 112, 72, 72, 176, 5, 8, 8, 6, 0, 0, 64, 32,
0, 112, 8, 120, 136, 120, 5, 8, 8, 6, 0, 0, 16, 32, 0, 112,
8, 120, 136, 120, 5, 8, 8, 6, 0, 0, 32, 80, 0, 112, 8, 120,
136, 120, 5, 8, 8, 6, 0, 0, 104, 144, 0, 112, 8, 120, 136, 120,
5, 7, 7, 6, 0, 0, 80, 0, 112, 8, 120, 136, 120, 5, 8, 8,
6, 0, 0, 32, 80, 32, 112, 8, 120, 136, 120, 5, 6, 6, 6, 0,
0, 208, 40, 120, 160, 168, 80, 5, 6, 6, 6, 0, 255, 112, 128, 136,
112, 32, 96, 5, 8, 8, 6, 0, 0, 64, 32, 0, 112, 136, 248, 128,
112, 5, 8, 8, 6, 0, 0, 16, 32, 0, 112, 136, 248, 128, 112, 5,
8, 8, 6, 0, 0, 32, 80, 0, 112, 136, 248, 128, 112, 5, 7, 7,
6, 0, 0, 80, 0, 112, 136, 248, 128, 112, 3, 8, 8, 6, 1, 0,
128, 64, 0, 64, 192, 64, 64, 224, 3, 8, 8, 6, 1, 0, 32, 64,
0, 64, 192, 64, 64, 224, 3, 8, 8, 6, 1, 0, 64, 160, 0, 64,
192, 64, 64, 224, 3, 7, 7, 6, 1, 0, 160, 0, 64, 192, 64, 64,
224, 5, 7, 7, 6, 0, 0, 160, 64, 160, 16, 120, 136, 112, 5, 8,
8, 6, 0, 0, 104, 144, 0, 176, 200, 136, 136, 136, 5, 8, 8, 6,
0, 0, 64, 32, 0, 112, 136, 136, 136, 112, 5, 8, 8, 6, 0, 0,
16, 32, 0, 112, 136, 136, 136, 112, 5, 8, 8, 6, 0, 0, 32, 80,
0, 112, 136, 136, 136, 112, 5, 8, 8, 6, 0, 0, 104, 144, 0, 112,
136, 136, 136, 112, 5, 7, 7, 6, 0, 0, 80, 0, 112, 136, 136, 136,
112, 5, 5, 5, 6, 0, 1, 32, 0, 248, 0, 32, 5, 7, 7, 6,
0, 0, 16, 32, 112, 168, 112, 32, 64, 5, 8, 8, 6, 0, 0, 64,
32, 0, 136, 136, 136, 152, 104, 5, 8, 8, 6, 0, 0, 16, 32, 0,
136, 136, 136, 152, 104, 5, 8, 8, 6, 0, 0, 32, 80, 0, 136, 136,
136, 152, 104, 5, 7, 7, 6, 0, 0, 80, 0, 136, 136, 136, 152, 104,
5, 9, 9, 6, 0, 255, 16, 32, 0, 136, 136, 136, 248, 8, 112, 4,
7, 7, 6, 1, 0, 192, 64, 96, 80, 96, 64, 224, 5, 8, 8, 6,
0, 255, 80, 0, 136, 136, 136, 248, 8, 112
};
-198
View File
@@ -1,198 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
Fontname: ISO10646-1
Copyright: A.Hardtung, public domain
Capital A Height: 7, '1' Height: 7
Calculated Max Values w= 5 h= 9 x= 2 y= 7 dx= 6 dy= 0 ascent= 8 len= 9
Font Bounding box w= 6 h= 9 x= 0 y=-2
Calculated Min Values x= 0 y=-1 dx= 0 dy= 0
Pure Font ascent = 7 descent=-1
X Font ascent = 7 descent=-1
Max Font ascent = 8 descent=-1
*/
#include <U8glib.h>
const u8g_fntpgm_uint8_t ISO10646_1_5x7[2592] U8G_SECTION(".progmem.ISO10646_1_5x7") = {
0, 6, 9, 0, 254, 7, 1, 146, 3, 33, 32, 255, 255, 8, 255, 7,
255, 0, 0, 0, 6, 0, 0, 1, 7, 7, 6, 2, 0, 128, 128, 128,
128, 128, 0, 128, 3, 2, 2, 6, 1, 5, 160, 160, 5, 7, 7, 6,
0, 0, 80, 80, 248, 80, 248, 80, 80, 5, 7, 7, 6, 0, 0, 32,
120, 160, 112, 40, 240, 32, 5, 7, 7, 6, 0, 0, 192, 200, 16, 32,
64, 152, 24, 5, 7, 7, 6, 0, 0, 96, 144, 160, 64, 168, 144, 104,
2, 3, 3, 6, 1, 4, 192, 64, 128, 3, 7, 7, 6, 1, 0, 32,
64, 128, 128, 128, 64, 32, 3, 7, 7, 6, 1, 0, 128, 64, 32, 32,
32, 64, 128, 5, 5, 5, 6, 0, 1, 32, 168, 112, 168, 32, 5, 5,
5, 6, 0, 1, 32, 32, 248, 32, 32, 2, 3, 3, 6, 2, 255, 192,
64, 128, 5, 1, 1, 6, 0, 3, 248, 2, 2, 2, 6, 2, 0, 192,
192, 5, 5, 5, 6, 0, 1, 8, 16, 32, 64, 128, 5, 7, 7, 6,
0, 0, 112, 136, 136, 136, 136, 136, 112, 3, 7, 7, 6, 1, 0, 64,
192, 64, 64, 64, 64, 224, 5, 7, 7, 6, 0, 0, 112, 136, 8, 112,
128, 128, 248, 5, 7, 7, 6, 0, 0, 248, 16, 32, 16, 8, 8, 240,
5, 7, 7, 6, 0, 0, 16, 48, 80, 144, 248, 16, 16, 5, 7, 7,
6, 0, 0, 248, 128, 240, 8, 8, 136, 112, 5, 7, 7, 6, 0, 0,
112, 128, 128, 240, 136, 136, 112, 5, 7, 7, 6, 0, 0, 248, 8, 16,
32, 32, 32, 32, 5, 7, 7, 6, 0, 0, 112, 136, 136, 112, 136, 136,
112, 5, 7, 7, 6, 0, 0, 112, 136, 136, 120, 8, 8, 112, 2, 5,
5, 6, 2, 0, 192, 192, 0, 192, 192, 2, 6, 6, 6, 2, 255, 192,
192, 0, 192, 64, 128, 4, 7, 7, 6, 0, 0, 16, 32, 64, 128, 64,
32, 16, 5, 3, 3, 6, 0, 2, 248, 0, 248, 4, 7, 7, 6, 1,
0, 128, 64, 32, 16, 32, 64, 128, 5, 7, 7, 6, 0, 0, 112, 136,
8, 16, 32, 0, 32, 5, 7, 7, 6, 0, 0, 112, 136, 8, 104, 168,
168, 112, 5, 7, 7, 6, 0, 0, 112, 136, 136, 248, 136, 136, 136, 5,
7, 7, 6, 0, 0, 240, 136, 136, 240, 136, 136, 240, 5, 7, 7, 6,
0, 0, 112, 136, 128, 128, 128, 136, 112, 5, 7, 7, 6, 0, 0, 240,
136, 136, 136, 136, 136, 240, 5, 7, 7, 6, 0, 0, 248, 128, 128, 240,
128, 128, 248, 5, 7, 7, 6, 0, 0, 248, 128, 128, 240, 128, 128, 128,
5, 7, 7, 6, 0, 0, 112, 136, 128, 184, 136, 136, 112, 5, 7, 7,
6, 0, 0, 136, 136, 136, 248, 136, 136, 136, 1, 7, 7, 6, 2, 0,
128, 128, 128, 128, 128, 128, 128, 5, 7, 7, 6, 0, 0, 56, 16, 16,
16, 16, 144, 96, 5, 7, 7, 6, 0, 0, 136, 144, 160, 192, 160, 144,
136, 5, 7, 7, 6, 0, 0, 128, 128, 128, 128, 128, 128, 248, 5, 7,
7, 6, 0, 0, 136, 216, 168, 136, 136, 136, 136, 5, 7, 7, 6, 0,
0, 136, 136, 200, 168, 152, 136, 136, 5, 7, 7, 6, 0, 0, 112, 136,
136, 136, 136, 136, 112, 5, 7, 7, 6, 0, 0, 240, 136, 136, 240, 128,
128, 128, 5, 7, 7, 6, 0, 0, 112, 136, 136, 136, 168, 144, 104, 5,
7, 7, 6, 0, 0, 240, 136, 136, 240, 160, 144, 136, 5, 7, 7, 6,
0, 0, 120, 128, 128, 112, 8, 8, 240, 5, 7, 7, 6, 0, 0, 248,
32, 32, 32, 32, 32, 32, 5, 7, 7, 6, 0, 0, 136, 136, 136, 136,
136, 136, 112, 5, 7, 7, 6, 0, 0, 136, 136, 136, 136, 136, 80, 32,
5, 7, 7, 6, 0, 0, 136, 136, 136, 136, 136, 168, 80, 5, 7, 7,
6, 0, 0, 136, 136, 80, 32, 80, 136, 136, 5, 7, 7, 6, 0, 0,
136, 136, 136, 80, 32, 32, 32, 5, 7, 7, 6, 0, 0, 248, 8, 16,
32, 64, 128, 248, 3, 7, 7, 6, 1, 0, 224, 128, 128, 128, 128, 128,
224, 5, 5, 5, 6, 0, 1, 128, 64, 32, 16, 8, 3, 7, 7, 6,
1, 0, 224, 32, 32, 32, 32, 32, 224, 5, 3, 3, 6, 0, 4, 32,
80, 136, 5, 1, 1, 6, 0, 0, 248, 2, 2, 2, 6, 2, 5, 128,
64, 5, 5, 5, 6, 0, 0, 112, 8, 120, 136, 120, 5, 7, 7, 6,
0, 0, 128, 128, 176, 200, 136, 136, 240, 5, 5, 5, 6, 0, 0, 112,
128, 128, 136, 112, 5, 7, 7, 6, 0, 0, 8, 8, 104, 152, 136, 136,
120, 5, 5, 5, 6, 0, 0, 112, 136, 248, 128, 112, 5, 7, 7, 6,
0, 0, 48, 72, 224, 64, 64, 64, 64, 5, 6, 6, 6, 0, 255, 112,
136, 136, 120, 8, 112, 5, 7, 7, 6, 0, 0, 128, 128, 176, 200, 136,
136, 136, 1, 7, 7, 6, 2, 0, 128, 0, 128, 128, 128, 128, 128, 3,
8, 8, 6, 1, 255, 32, 0, 32, 32, 32, 32, 160, 64, 4, 7, 7,
6, 0, 0, 128, 128, 144, 160, 192, 160, 144, 3, 7, 7, 6, 1, 0,
192, 64, 64, 64, 64, 64, 224, 5, 5, 5, 6, 0, 0, 208, 168, 168,
168, 168, 5, 5, 5, 6, 0, 0, 176, 200, 136, 136, 136, 5, 5, 5,
6, 0, 0, 112, 136, 136, 136, 112, 5, 6, 6, 6, 0, 255, 240, 136,
136, 240, 128, 128, 5, 6, 6, 6, 0, 255, 120, 136, 136, 120, 8, 8,
5, 5, 5, 6, 0, 0, 176, 200, 128, 128, 128, 5, 5, 5, 6, 0,
0, 112, 128, 112, 8, 240, 4, 7, 7, 6, 0, 0, 64, 64, 224, 64,
64, 64, 48, 5, 5, 5, 6, 0, 0, 136, 136, 136, 152, 104, 5, 5,
5, 6, 0, 0, 136, 136, 136, 80, 32, 5, 5, 5, 6, 0, 0, 136,
136, 168, 168, 80, 5, 5, 5, 6, 0, 0, 136, 80, 32, 80, 136, 5,
6, 6, 6, 0, 255, 136, 136, 136, 120, 8, 112, 5, 5, 5, 6, 0,
0, 248, 16, 32, 64, 248, 3, 7, 7, 6, 1, 0, 32, 64, 64, 128,
64, 64, 32, 1, 7, 7, 6, 2, 0, 128, 128, 128, 128, 128, 128, 128,
3, 7, 7, 6, 1, 0, 128, 64, 64, 32, 64, 64, 128, 5, 2, 2,
6, 0, 2, 104, 144, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0,
0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0,
6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0,
0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0,
0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0,
6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0,
0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0,
0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0,
6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0,
0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0,
0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0,
6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0,
0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0,
0, 1, 7, 7, 6, 2, 0, 128, 0, 128, 128, 128, 128, 128, 5, 7,
7, 6, 0, 0, 32, 112, 168, 160, 168, 112, 32, 5, 7, 7, 6, 0,
0, 48, 64, 64, 224, 64, 80, 168, 5, 5, 5, 6, 0, 0, 136, 112,
80, 112, 136, 5, 7, 7, 6, 0, 0, 136, 80, 32, 248, 32, 248, 32,
1, 7, 7, 6, 2, 0, 128, 128, 128, 0, 128, 128, 128, 5, 8, 8,
6, 0, 0, 48, 72, 32, 80, 80, 32, 144, 96, 3, 1, 1, 6, 1,
7, 160, 5, 7, 7, 6, 0, 0, 248, 136, 184, 184, 184, 136, 248, 5,
7, 7, 6, 0, 1, 112, 8, 120, 136, 120, 0, 248, 5, 5, 5, 6,
0, 1, 40, 80, 160, 80, 40, 5, 3, 3, 6, 0, 1, 248, 8, 8,
2, 2, 2, 6, 2, 6, 64, 128, 5, 7, 7, 6, 0, 0, 248, 136,
168, 136, 152, 168, 248, 5, 1, 1, 6, 0, 6, 248, 4, 4, 4, 6,
0, 3, 96, 144, 144, 96, 5, 7, 7, 6, 0, 0, 32, 32, 248, 32,
32, 0, 248, 4, 5, 5, 6, 0, 3, 96, 144, 32, 64, 240, 3, 5,
5, 6, 0, 3, 224, 32, 224, 32, 224, 2, 2, 2, 6, 2, 6, 64,
128, 5, 8, 8, 6, 0, 255, 136, 136, 136, 136, 152, 232, 128, 128, 5,
7, 7, 6, 0, 0, 120, 152, 152, 120, 24, 24, 24, 2, 2, 2, 6,
2, 2, 192, 192, 2, 2, 2, 6, 2, 255, 64, 128, 3, 5, 5, 6,
0, 3, 64, 192, 64, 64, 224, 5, 7, 7, 6, 0, 1, 112, 136, 136,
136, 112, 0, 248, 5, 5, 5, 6, 0, 1, 160, 80, 40, 80, 160, 5,
7, 7, 6, 0, 0, 136, 144, 168, 88, 184, 8, 8, 5, 7, 7, 6,
0, 0, 136, 144, 184, 72, 152, 32, 56, 5, 8, 8, 6, 0, 0, 192,
64, 192, 72, 216, 56, 8, 8, 5, 7, 7, 6, 0, 0, 32, 0, 32,
64, 128, 136, 112, 5, 8, 8, 6, 0, 0, 64, 32, 0, 112, 136, 248,
136, 136, 5, 8, 8, 6, 0, 0, 16, 32, 0, 112, 136, 248, 136, 136,
5, 8, 8, 6, 0, 0, 32, 80, 0, 112, 136, 248, 136, 136, 5, 8,
8, 6, 0, 0, 104, 144, 0, 112, 136, 248, 136, 136, 5, 8, 8, 6,
0, 0, 80, 0, 112, 136, 136, 248, 136, 136, 5, 8, 8, 6, 0, 0,
32, 80, 32, 112, 136, 248, 136, 136, 5, 7, 7, 6, 0, 0, 56, 96,
160, 184, 224, 160, 184, 5, 8, 8, 6, 0, 255, 112, 136, 128, 128, 136,
112, 32, 96, 5, 8, 8, 6, 0, 0, 64, 32, 0, 248, 128, 240, 128,
248, 5, 8, 8, 6, 0, 0, 8, 16, 0, 248, 128, 240, 128, 248, 5,
8, 8, 6, 0, 0, 32, 80, 0, 248, 128, 240, 128, 248, 5, 7, 7,
6, 0, 0, 80, 0, 248, 128, 240, 128, 248, 3, 8, 8, 6, 1, 0,
128, 64, 0, 224, 64, 64, 64, 224, 3, 8, 8, 6, 1, 0, 32, 64,
0, 224, 64, 64, 64, 224, 3, 8, 8, 6, 1, 0, 64, 160, 0, 224,
64, 64, 64, 224, 3, 7, 7, 6, 1, 0, 160, 0, 224, 64, 64, 64,
224, 5, 7, 7, 6, 0, 0, 112, 72, 72, 232, 72, 72, 112, 5, 8,
8, 6, 0, 0, 104, 144, 0, 136, 200, 168, 152, 136, 5, 8, 8, 6,
0, 0, 64, 32, 112, 136, 136, 136, 136, 112, 5, 8, 8, 6, 0, 0,
16, 32, 112, 136, 136, 136, 136, 112, 5, 8, 8, 6, 0, 0, 32, 80,
0, 112, 136, 136, 136, 112, 5, 8, 8, 6, 0, 0, 104, 144, 0, 112,
136, 136, 136, 112, 5, 8, 8, 6, 0, 0, 80, 0, 112, 136, 136, 136,
136, 112, 5, 5, 5, 6, 0, 1, 136, 80, 32, 80, 136, 5, 8, 8,
6, 0, 255, 16, 112, 168, 168, 168, 168, 112, 64, 5, 8, 8, 6, 0,
0, 64, 32, 136, 136, 136, 136, 136, 112, 5, 8, 8, 6, 0, 0, 16,
32, 136, 136, 136, 136, 136, 112, 5, 8, 8, 6, 0, 0, 32, 80, 0,
136, 136, 136, 136, 112, 5, 8, 8, 6, 0, 0, 80, 0, 136, 136, 136,
136, 136, 112, 5, 8, 8, 6, 0, 0, 16, 32, 136, 80, 32, 32, 32,
32, 5, 9, 9, 6, 0, 255, 192, 64, 112, 72, 72, 112, 64, 64, 224,
4, 8, 8, 6, 1, 255, 96, 144, 144, 160, 144, 144, 224, 128, 5, 8,
8, 6, 0, 0, 64, 32, 0, 112, 8, 120, 136, 120, 5, 8, 8, 6,
0, 0, 16, 32, 0, 112, 8, 120, 136, 120, 5, 8, 8, 6, 0, 0,
32, 80, 0, 112, 8, 120, 136, 120, 5, 8, 8, 6, 0, 0, 104, 144,
0, 112, 8, 120, 136, 120, 5, 7, 7, 6, 0, 0, 80, 0, 112, 8,
120, 136, 120, 5, 8, 8, 6, 0, 0, 32, 80, 32, 112, 8, 120, 136,
120, 5, 6, 6, 6, 0, 0, 208, 40, 120, 160, 168, 80, 5, 6, 6,
6, 0, 255, 112, 128, 136, 112, 32, 96, 5, 8, 8, 6, 0, 0, 64,
32, 0, 112, 136, 248, 128, 112, 5, 8, 8, 6, 0, 0, 16, 32, 0,
112, 136, 248, 128, 112, 5, 8, 8, 6, 0, 0, 32, 80, 0, 112, 136,
248, 128, 112, 5, 7, 7, 6, 0, 0, 80, 0, 112, 136, 248, 128, 112,
3, 8, 8, 6, 1, 0, 128, 64, 0, 64, 192, 64, 64, 224, 3, 8,
8, 6, 1, 0, 32, 64, 0, 64, 192, 64, 64, 224, 3, 8, 8, 6,
1, 0, 64, 160, 0, 64, 192, 64, 64, 224, 3, 7, 7, 6, 1, 0,
160, 0, 64, 192, 64, 64, 224, 5, 7, 7, 6, 0, 0, 160, 64, 160,
16, 120, 136, 112, 5, 8, 8, 6, 0, 0, 104, 144, 0, 176, 200, 136,
136, 136, 5, 8, 8, 6, 0, 0, 64, 32, 0, 112, 136, 136, 136, 112,
5, 8, 8, 6, 0, 0, 16, 32, 0, 112, 136, 136, 136, 112, 5, 8,
8, 6, 0, 0, 32, 80, 0, 112, 136, 136, 136, 112, 5, 8, 8, 6,
0, 0, 104, 144, 0, 112, 136, 136, 136, 112, 5, 7, 7, 6, 0, 0,
80, 0, 112, 136, 136, 136, 112, 5, 5, 5, 6, 0, 1, 32, 0, 248,
0, 32, 5, 7, 7, 6, 0, 255, 16, 112, 168, 168, 168, 112, 64, 5,
8, 8, 6, 0, 0, 64, 32, 0, 136, 136, 136, 152, 104, 5, 8, 8,
6, 0, 0, 16, 32, 0, 136, 136, 136, 152, 104, 5, 8, 8, 6, 0,
0, 32, 80, 0, 136, 136, 136, 152, 104, 5, 7, 7, 6, 0, 0, 80,
0, 136, 136, 136, 152, 104, 5, 9, 9, 6, 0, 255, 16, 32, 0, 136,
136, 136, 248, 8, 112, 4, 7, 7, 6, 1, 255, 192, 64, 96, 80, 96,
64, 224, 5, 8, 8, 6, 0, 255, 80, 0, 136, 136, 136, 120, 8, 112
};
-196
View File
@@ -1,196 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
Fontname: ISO10646_5_Cyrillic
Copyright: A. Hardtung, public domain
Capital A Height: 7, '1' Height: 7
Calculated Max Values w= 5 h= 9 x= 2 y= 5 dx= 6 dy= 0 ascent= 8 len= 9
Font Bounding box w= 6 h= 9 x= 0 y=-2
Calculated Min Values x= 0 y=-1 dx= 0 dy= 0
Pure Font ascent = 7 descent=-1
X Font ascent = 7 descent=-1
Max Font ascent = 8 descent=-1
*/
#include <U8glib.h>
const u8g_fntpgm_uint8_t ISO10646_5_Cyrillic_5x7[2560] U8G_SECTION(".progmem.ISO10646_5_Cyrillic_5x7") = {
0, 6, 9, 0, 254, 7, 1, 145, 3, 32, 32, 255, 255, 8, 255, 7,
255, 0, 0, 0, 6, 0, 0, 1, 7, 7, 6, 2, 0, 128, 128, 128,
128, 128, 0, 128, 3, 2, 2, 6, 1, 5, 160, 160, 5, 7, 7, 6,
0, 0, 80, 80, 248, 80, 248, 80, 80, 5, 7, 7, 6, 0, 0, 32,
120, 160, 112, 40, 240, 32, 5, 7, 7, 6, 0, 0, 192, 200, 16, 32,
64, 152, 24, 5, 7, 7, 6, 0, 0, 96, 144, 160, 64, 168, 144, 104,
2, 3, 3, 6, 1, 4, 192, 64, 128, 3, 7, 7, 6, 1, 0, 32,
64, 128, 128, 128, 64, 32, 3, 7, 7, 6, 1, 0, 128, 64, 32, 32,
32, 64, 128, 5, 5, 5, 6, 0, 1, 32, 168, 112, 168, 32, 5, 5,
5, 6, 0, 1, 32, 32, 248, 32, 32, 2, 3, 3, 6, 2, 255, 192,
64, 128, 5, 1, 1, 6, 0, 3, 248, 2, 2, 2, 6, 2, 0, 192,
192, 5, 5, 5, 6, 0, 1, 8, 16, 32, 64, 128, 5, 7, 7, 6,
0, 0, 112, 136, 152, 168, 200, 136, 112, 3, 7, 7, 6, 1, 0, 64,
192, 64, 64, 64, 64, 224, 5, 7, 7, 6, 0, 0, 112, 136, 8, 112,
128, 128, 248, 5, 7, 7, 6, 0, 0, 248, 16, 32, 16, 8, 8, 240,
5, 7, 7, 6, 0, 0, 16, 48, 80, 144, 248, 16, 16, 5, 7, 7,
6, 0, 0, 248, 128, 240, 8, 8, 136, 112, 5, 7, 7, 6, 0, 0,
48, 64, 128, 240, 136, 136, 112, 5, 7, 7, 6, 0, 0, 248, 8, 16,
32, 32, 32, 32, 5, 7, 7, 6, 0, 0, 112, 136, 136, 112, 136, 136,
112, 5, 7, 7, 6, 0, 0, 112, 136, 136, 120, 8, 16, 96, 2, 5,
5, 6, 2, 0, 192, 192, 0, 192, 192, 2, 6, 6, 6, 2, 255, 192,
192, 0, 192, 64, 128, 4, 7, 7, 6, 0, 0, 16, 32, 64, 128, 64,
32, 16, 5, 3, 3, 6, 0, 2, 248, 0, 248, 4, 7, 7, 6, 1,
0, 128, 64, 32, 16, 32, 64, 128, 5, 7, 7, 6, 0, 0, 112, 136,
8, 16, 32, 0, 32, 5, 6, 6, 6, 0, 0, 112, 136, 8, 104, 168,
112, 5, 7, 7, 6, 0, 0, 112, 136, 136, 248, 136, 136, 136, 5, 7,
7, 6, 0, 0, 240, 136, 136, 240, 136, 136, 240, 5, 7, 7, 6, 0,
0, 112, 136, 128, 128, 128, 136, 112, 5, 7, 7, 6, 0, 0, 224, 144,
136, 136, 136, 144, 224, 5, 7, 7, 6, 0, 0, 248, 128, 128, 240, 128,
128, 248, 5, 7, 7, 6, 0, 0, 248, 128, 128, 240, 128, 128, 128, 5,
7, 7, 6, 0, 0, 112, 136, 128, 184, 136, 136, 112, 5, 7, 7, 6,
0, 0, 136, 136, 136, 248, 136, 136, 136, 1, 7, 7, 6, 2, 0, 128,
128, 128, 128, 128, 128, 128, 5, 7, 7, 6, 0, 0, 56, 16, 16, 16,
16, 144, 96, 5, 7, 7, 6, 0, 0, 136, 144, 160, 192, 160, 144, 136,
5, 7, 7, 6, 0, 0, 128, 128, 128, 128, 128, 128, 248, 5, 7, 7,
6, 0, 0, 136, 216, 168, 136, 136, 136, 136, 5, 7, 7, 6, 0, 0,
136, 136, 200, 168, 152, 136, 136, 5, 7, 7, 6, 0, 0, 112, 136, 136,
136, 136, 136, 112, 5, 7, 7, 6, 0, 0, 240, 136, 136, 240, 128, 128,
128, 5, 7, 7, 6, 0, 0, 112, 136, 136, 136, 168, 144, 104, 5, 7,
7, 6, 0, 0, 240, 136, 136, 240, 160, 144, 136, 5, 7, 7, 6, 0,
0, 120, 128, 128, 112, 8, 8, 240, 5, 7, 7, 6, 0, 0, 248, 32,
32, 32, 32, 32, 32, 5, 7, 7, 6, 0, 0, 136, 136, 136, 136, 136,
136, 112, 5, 7, 7, 6, 0, 0, 136, 136, 136, 136, 136, 80, 32, 5,
7, 7, 6, 0, 0, 136, 136, 136, 136, 136, 168, 80, 5, 7, 7, 6,
0, 0, 136, 136, 80, 32, 80, 136, 136, 5, 7, 7, 6, 0, 0, 136,
136, 136, 80, 32, 32, 32, 5, 7, 7, 6, 0, 0, 248, 8, 16, 32,
64, 128, 248, 3, 7, 7, 6, 1, 0, 224, 128, 128, 128, 128, 128, 224,
5, 5, 5, 6, 0, 1, 128, 64, 32, 16, 8, 3, 7, 7, 6, 1,
0, 224, 32, 32, 32, 32, 32, 224, 5, 3, 3, 6, 0, 4, 32, 80,
136, 5, 1, 1, 6, 0, 0, 248, 2, 2, 2, 6, 2, 5, 128, 64,
5, 5, 5, 6, 0, 0, 112, 8, 120, 136, 120, 5, 7, 7, 6, 0,
0, 128, 128, 176, 200, 136, 136, 240, 5, 5, 5, 6, 0, 0, 112, 128,
128, 136, 112, 5, 7, 7, 6, 0, 0, 8, 8, 104, 152, 136, 136, 120,
5, 5, 5, 6, 0, 0, 112, 136, 248, 128, 112, 5, 7, 7, 6, 0,
0, 48, 72, 224, 64, 64, 64, 64, 5, 6, 6, 6, 0, 255, 112, 136,
136, 120, 8, 112, 5, 7, 7, 6, 0, 0, 128, 128, 176, 200, 136, 136,
136, 1, 7, 7, 6, 2, 0, 128, 0, 128, 128, 128, 128, 128, 3, 8,
8, 6, 1, 255, 32, 0, 32, 32, 32, 32, 160, 64, 4, 7, 7, 6,
0, 0, 128, 128, 144, 160, 192, 160, 144, 3, 7, 7, 6, 1, 0, 192,
64, 64, 64, 64, 64, 224, 5, 5, 5, 6, 0, 0, 208, 168, 168, 168,
168, 5, 5, 5, 6, 0, 0, 176, 200, 136, 136, 136, 5, 5, 5, 6,
0, 0, 112, 136, 136, 136, 112, 5, 6, 6, 6, 0, 255, 240, 136, 136,
240, 128, 128, 5, 6, 6, 6, 0, 255, 120, 136, 136, 120, 8, 8, 5,
5, 5, 6, 0, 0, 176, 200, 128, 128, 128, 5, 5, 5, 6, 0, 0,
112, 128, 112, 8, 240, 5, 7, 7, 6, 0, 0, 64, 64, 224, 64, 64,
72, 48, 5, 5, 5, 6, 0, 0, 136, 136, 136, 152, 104, 5, 5, 5,
6, 0, 0, 136, 136, 136, 80, 32, 5, 5, 5, 6, 0, 0, 136, 136,
168, 168, 80, 5, 5, 5, 6, 0, 0, 136, 80, 32, 80, 136, 5, 6,
6, 6, 0, 255, 136, 136, 136, 120, 8, 112, 5, 5, 5, 6, 0, 0,
248, 16, 32, 64, 248, 3, 7, 7, 6, 1, 0, 32, 64, 64, 128, 64,
64, 32, 1, 7, 7, 6, 2, 0, 128, 128, 128, 128, 128, 128, 128, 3,
7, 7, 6, 1, 0, 128, 64, 64, 32, 64, 64, 128, 5, 2, 2, 6,
0, 3, 104, 144, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0,
0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6,
0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0,
0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0,
0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6,
0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0,
0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0,
0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6,
0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0,
0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0,
0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6,
0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0,
0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 5, 8, 8, 6, 0, 0,
64, 248, 128, 128, 240, 128, 128, 248, 5, 8, 8, 6, 0, 0, 80, 248,
128, 128, 240, 128, 128, 248, 5, 7, 7, 6, 0, 0, 224, 64, 64, 112,
72, 72, 112, 5, 8, 8, 6, 0, 0, 16, 32, 248, 136, 128, 128, 128,
128, 5, 7, 7, 6, 0, 0, 48, 72, 128, 224, 128, 72, 48, 5, 7,
7, 6, 0, 0, 112, 136, 128, 112, 8, 136, 112, 3, 7, 7, 6, 1,
0, 224, 64, 64, 64, 64, 64, 224, 3, 8, 8, 6, 1, 0, 160, 0,
224, 64, 64, 64, 64, 224, 5, 7, 7, 6, 0, 0, 56, 16, 16, 16,
16, 144, 96, 5, 7, 7, 6, 0, 0, 160, 160, 160, 184, 168, 168, 184,
5, 7, 7, 6, 0, 0, 160, 160, 160, 248, 168, 168, 184, 4, 7, 7,
6, 0, 0, 224, 64, 112, 80, 80, 80, 80, 5, 8, 8, 6, 0, 0,
16, 32, 136, 144, 160, 224, 144, 136, 5, 8, 8, 6, 0, 0, 64, 32,
136, 152, 168, 200, 136, 136, 5, 9, 9, 6, 0, 255, 80, 32, 136, 136,
136, 80, 32, 32, 32, 5, 8, 8, 6, 0, 255, 136, 136, 136, 136, 136,
136, 248, 32, 5, 7, 7, 6, 0, 0, 112, 136, 136, 248, 136, 136, 136,
5, 7, 7, 6, 0, 0, 248, 128, 128, 240, 136, 136, 240, 5, 7, 7,
6, 0, 0, 240, 136, 136, 240, 136, 136, 240, 5, 7, 7, 6, 0, 0,
248, 136, 128, 128, 128, 128, 128, 5, 8, 8, 6, 0, 255, 120, 40, 40,
40, 72, 136, 248, 136, 5, 7, 7, 6, 0, 0, 248, 128, 128, 240, 128,
128, 248, 5, 7, 7, 6, 0, 0, 168, 168, 168, 112, 168, 168, 168, 5,
7, 7, 6, 0, 0, 240, 8, 8, 112, 8, 8, 240, 5, 7, 7, 6,
0, 0, 136, 136, 152, 168, 200, 136, 136, 5, 8, 8, 6, 0, 0, 80,
32, 136, 152, 168, 168, 200, 136, 5, 7, 7, 6, 0, 0, 136, 144, 160,
192, 160, 144, 136, 5, 7, 7, 6, 0, 0, 120, 40, 40, 40, 40, 168,
72, 5, 7, 7, 6, 0, 0, 136, 216, 168, 136, 136, 136, 136, 5, 7,
7, 6, 0, 0, 136, 136, 136, 248, 136, 136, 136, 5, 7, 7, 6, 0,
0, 112, 136, 136, 136, 136, 136, 112, 5, 7, 7, 6, 0, 0, 248, 136,
136, 136, 136, 136, 136, 5, 7, 7, 6, 0, 0, 240, 136, 136, 240, 128,
128, 128, 5, 7, 7, 6, 0, 0, 112, 136, 128, 128, 128, 136, 112, 5,
7, 7, 6, 0, 0, 248, 32, 32, 32, 32, 32, 32, 5, 7, 7, 6,
0, 0, 136, 136, 136, 80, 32, 64, 128, 5, 7, 7, 6, 0, 0, 32,
112, 168, 168, 168, 112, 32, 5, 7, 7, 6, 0, 0, 136, 136, 80, 32,
80, 136, 136, 5, 8, 8, 6, 0, 255, 136, 136, 136, 136, 136, 136, 248,
8, 5, 7, 7, 6, 0, 0, 136, 136, 136, 152, 104, 8, 8, 5, 7,
7, 6, 0, 0, 168, 168, 168, 168, 168, 168, 248, 5, 8, 8, 6, 0,
255, 168, 168, 168, 168, 168, 168, 248, 8, 5, 7, 7, 6, 0, 0, 192,
64, 64, 112, 72, 72, 112, 5, 7, 7, 6, 0, 0, 136, 136, 136, 200,
168, 168, 200, 5, 7, 7, 6, 0, 0, 128, 128, 128, 240, 136, 136, 240,
5, 7, 7, 6, 0, 0, 112, 136, 8, 56, 8, 136, 112, 5, 7, 7,
6, 0, 0, 144, 168, 168, 232, 168, 168, 144, 5, 7, 7, 6, 0, 0,
120, 136, 136, 120, 40, 72, 136, 5, 5, 5, 6, 0, 0, 112, 8, 120,
136, 120, 5, 7, 7, 6, 0, 0, 24, 96, 128, 240, 136, 136, 112, 4,
5, 5, 6, 0, 0, 224, 144, 224, 144, 224, 5, 5, 5, 6, 0, 0,
248, 136, 128, 128, 128, 5, 6, 6, 6, 0, 255, 120, 40, 72, 136, 248,
136, 5, 5, 5, 6, 0, 0, 112, 136, 248, 128, 112, 5, 5, 5, 6,
0, 0, 168, 168, 112, 168, 168, 5, 5, 5, 6, 0, 0, 240, 8, 48,
8, 240, 5, 5, 5, 6, 0, 0, 136, 152, 168, 200, 136, 5, 7, 7,
6, 0, 0, 80, 32, 136, 152, 168, 200, 136, 4, 5, 5, 6, 0, 0,
144, 160, 192, 160, 144, 5, 5, 5, 6, 0, 0, 248, 40, 40, 168, 72,
5, 5, 5, 6, 0, 0, 136, 216, 168, 136, 136, 5, 5, 5, 6, 0,
0, 136, 136, 248, 136, 136, 5, 5, 5, 6, 0, 0, 112, 136, 136, 136,
112, 5, 5, 5, 6, 0, 0, 248, 136, 136, 136, 136, 5, 6, 6, 6,
0, 255, 240, 136, 136, 240, 128, 128, 5, 5, 5, 6, 0, 0, 112, 128,
128, 136, 112, 5, 5, 5, 6, 0, 0, 248, 32, 32, 32, 32, 5, 6,
6, 6, 0, 255, 136, 136, 136, 120, 8, 112, 5, 6, 6, 6, 0, 0,
32, 112, 168, 168, 112, 32, 5, 5, 5, 6, 0, 0, 136, 80, 32, 80,
136, 5, 6, 6, 6, 0, 255, 136, 136, 136, 136, 248, 8, 5, 5, 5,
6, 0, 0, 136, 136, 248, 8, 8, 5, 5, 5, 6, 0, 0, 168, 168,
168, 168, 248, 5, 6, 6, 6, 0, 255, 168, 168, 168, 168, 248, 8, 5,
5, 5, 6, 0, 0, 192, 64, 112, 72, 112, 5, 5, 5, 6, 0, 0,
136, 136, 200, 168, 200, 3, 5, 5, 6, 1, 0, 128, 128, 192, 160, 192,
5, 5, 5, 6, 0, 0, 112, 136, 56, 136, 112, 5, 5, 5, 6, 0,
0, 144, 168, 232, 168, 144, 5, 5, 5, 6, 0, 0, 120, 136, 120, 40,
72, 5, 8, 8, 6, 0, 0, 64, 32, 0, 112, 136, 248, 128, 112, 5,
7, 7, 6, 0, 0, 80, 0, 112, 136, 248, 128, 112, 5, 9, 9, 6,
0, 255, 64, 224, 64, 64, 120, 72, 72, 72, 16, 5, 8, 8, 6, 0,
0, 16, 32, 0, 248, 136, 128, 128, 128, 5, 5, 5, 6, 0, 0, 112,
136, 96, 136, 112, 5, 5, 5, 6, 0, 0, 112, 128, 112, 8, 240, 1,
7, 7, 6, 2, 0, 128, 0, 128, 128, 128, 128, 128, 3, 7, 7, 6,
1, 0, 160, 0, 64, 64, 64, 64, 64, 3, 8, 8, 6, 1, 255, 32,
0, 32, 32, 32, 32, 160, 64, 5, 5, 5, 6, 0, 0, 160, 160, 184,
168, 184, 5, 5, 5, 6, 0, 0, 160, 160, 248, 168, 184, 5, 6, 6,
6, 0, 0, 64, 224, 64, 120, 72, 72, 4, 8, 8, 6, 0, 0, 16,
32, 0, 144, 160, 192, 160, 144, 5, 8, 8, 6, 0, 0, 64, 32, 0,
136, 152, 168, 200, 136, 5, 9, 9, 6, 0, 255, 80, 32, 0, 136, 136,
136, 120, 8, 112, 5, 6, 6, 6, 0, 255, 136, 136, 136, 136, 248, 32
};
-293
View File
@@ -1,293 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
Fontname: ISO10646_CN
Copyright: A. Hardtung, public domain
Capital A Height: 7, '1' Height: 7
Calculated Max Values w=11 h=11 x= 2 y=10 dx=12 dy= 0 ascent=10 len=22
Font Bounding box w=12 h=11 x= 0 y=-2
Calculated Min Values x= 0 y=-1 dx= 0 dy= 0
Pure Font ascent = 7 descent=-1
X Font ascent = 7 descent=-1
Max Font ascent =10 descent=-1
*/
#include <U8glib.h>
const u8g_fntpgm_uint8_t ISO10646_CN[4105] U8G_SECTION(".progmem.ISO10646_CN") = {
0, 12, 11, 0, 254, 7, 1, 146, 3, 33, 32, 255, 255, 10, 255, 7,
255, 0, 0, 0, 6, 0, 10, 1, 7, 7, 6, 2, 0, 128, 128, 128,
128, 128, 0, 128, 3, 2, 2, 6, 1, 5, 160, 160, 5, 7, 7, 6,
0, 0, 80, 80, 248, 80, 248, 80, 80, 5, 7, 7, 6, 0, 0, 32,
120, 160, 112, 40, 240, 32, 5, 7, 7, 6, 0, 0, 192, 200, 16, 32,
64, 152, 24, 5, 7, 7, 6, 0, 0, 96, 144, 160, 64, 168, 144, 104,
2, 3, 3, 6, 1, 4, 192, 64, 128, 3, 7, 7, 6, 1, 0, 32,
64, 128, 128, 128, 64, 32, 3, 7, 7, 6, 1, 0, 128, 64, 32, 32,
32, 64, 128, 5, 5, 5, 6, 0, 1, 32, 168, 112, 168, 32, 5, 5,
5, 6, 0, 1, 32, 32, 248, 32, 32, 2, 3, 3, 6, 2, 255, 192,
64, 128, 5, 1, 1, 6, 0, 3, 248, 2, 2, 2, 6, 2, 0, 192,
192, 5, 5, 5, 6, 0, 1, 8, 16, 32, 64, 128, 5, 7, 7, 6,
0, 0, 112, 136, 152, 168, 200, 136, 112, 3, 7, 7, 6, 1, 0, 64,
192, 64, 64, 64, 64, 224, 5, 7, 7, 6, 0, 0, 112, 136, 8, 112,
128, 128, 248, 5, 7, 7, 6, 0, 0, 248, 16, 32, 16, 8, 8, 240,
5, 7, 7, 6, 0, 0, 16, 48, 80, 144, 248, 16, 16, 5, 7, 7,
6, 0, 0, 248, 128, 240, 8, 8, 136, 112, 5, 7, 7, 6, 0, 0,
112, 128, 128, 240, 136, 136, 112, 5, 7, 7, 6, 0, 0, 248, 8, 16,
32, 32, 32, 32, 5, 7, 7, 6, 0, 0, 112, 136, 136, 112, 136, 136,
112, 5, 7, 7, 6, 0, 0, 112, 136, 136, 120, 8, 8, 112, 2, 5,
5, 6, 2, 0, 192, 192, 0, 192, 192, 2, 6, 6, 6, 2, 255, 192,
192, 0, 192, 64, 128, 4, 7, 7, 6, 0, 0, 16, 32, 64, 128, 64,
32, 16, 5, 3, 3, 6, 0, 2, 248, 0, 248, 4, 7, 7, 6, 0,
0, 128, 64, 32, 16, 32, 64, 128, 5, 7, 7, 6, 0, 0, 112, 136,
8, 16, 32, 0, 32, 5, 7, 7, 6, 0, 0, 112, 136, 8, 104, 168,
168, 112, 5, 7, 7, 6, 0, 0, 112, 136, 136, 248, 136, 136, 136, 5,
7, 7, 6, 0, 0, 240, 136, 136, 240, 136, 136, 240, 5, 7, 7, 6,
0, 0, 112, 136, 128, 128, 128, 136, 112, 5, 7, 7, 6, 0, 0, 240,
136, 136, 136, 136, 136, 240, 5, 7, 7, 6, 0, 0, 248, 128, 128, 240,
128, 128, 248, 5, 7, 7, 6, 0, 0, 248, 128, 128, 240, 128, 128, 128,
5, 7, 7, 6, 0, 0, 112, 136, 128, 184, 136, 136, 112, 5, 7, 7,
6, 0, 0, 136, 136, 136, 248, 136, 136, 136, 1, 7, 7, 6, 2, 0,
128, 128, 128, 128, 128, 128, 128, 5, 7, 7, 6, 0, 0, 56, 16, 16,
16, 16, 144, 96, 5, 7, 7, 6, 0, 0, 136, 144, 160, 192, 160, 144,
136, 5, 7, 7, 6, 0, 0, 128, 128, 128, 128, 128, 128, 248, 5, 7,
7, 6, 0, 0, 136, 216, 168, 136, 136, 136, 136, 5, 7, 7, 6, 0,
0, 136, 136, 200, 168, 152, 136, 136, 5, 7, 7, 6, 0, 0, 112, 136,
136, 136, 136, 136, 112, 5, 7, 7, 6, 0, 0, 240, 136, 136, 240, 128,
128, 128, 5, 7, 7, 6, 0, 0, 112, 136, 136, 136, 168, 144, 104, 5,
7, 7, 6, 0, 0, 240, 136, 136, 240, 160, 144, 136, 5, 7, 7, 6,
0, 0, 120, 128, 128, 112, 8, 8, 240, 5, 7, 7, 6, 0, 0, 248,
32, 32, 32, 32, 32, 32, 5, 7, 7, 6, 0, 0, 136, 136, 136, 136,
136, 136, 112, 5, 7, 7, 6, 0, 0, 136, 136, 136, 136, 136, 80, 32,
5, 7, 7, 6, 0, 0, 136, 136, 136, 136, 136, 168, 80, 5, 7, 7,
6, 0, 0, 136, 136, 80, 32, 80, 136, 136, 5, 7, 7, 6, 0, 0,
136, 136, 136, 80, 32, 32, 32, 5, 7, 7, 6, 0, 0, 248, 8, 16,
32, 64, 128, 248, 3, 7, 7, 6, 0, 0, 224, 128, 128, 128, 128, 128,
224, 5, 5, 5, 6, 0, 1, 128, 64, 32, 16, 8, 3, 7, 7, 6,
0, 0, 224, 32, 32, 32, 32, 32, 224, 5, 3, 3, 6, 0, 4, 32,
80, 136, 5, 1, 1, 6, 0, 0, 248, 2, 2, 2, 6, 2, 5, 128,
64, 5, 5, 5, 6, 0, 0, 112, 8, 120, 136, 120, 5, 7, 7, 6,
0, 0, 128, 128, 176, 200, 136, 136, 240, 5, 5, 5, 6, 0, 0, 112,
128, 128, 136, 112, 5, 7, 7, 6, 0, 0, 8, 8, 104, 152, 136, 136,
120, 5, 5, 5, 6, 0, 0, 112, 136, 248, 128, 112, 5, 7, 7, 6,
0, 0, 48, 72, 224, 64, 64, 64, 64, 5, 6, 6, 6, 0, 255, 112,
136, 136, 120, 8, 112, 5, 7, 7, 6, 0, 0, 128, 128, 176, 200, 136,
136, 136, 1, 7, 7, 6, 2, 0, 128, 0, 128, 128, 128, 128, 128, 3,
8, 8, 6, 1, 255, 32, 0, 32, 32, 32, 32, 160, 64, 4, 7, 7,
6, 1, 0, 128, 128, 144, 160, 192, 160, 144, 3, 7, 7, 6, 1, 0,
192, 64, 64, 64, 64, 64, 224, 5, 5, 5, 6, 0, 0, 208, 168, 168,
168, 168, 5, 5, 5, 6, 0, 0, 176, 200, 136, 136, 136, 5, 5, 5,
6, 0, 0, 112, 136, 136, 136, 112, 5, 6, 6, 6, 0, 255, 240, 136,
136, 240, 128, 128, 5, 6, 6, 6, 0, 255, 120, 136, 136, 120, 8, 8,
5, 5, 5, 6, 0, 0, 176, 200, 128, 128, 128, 5, 5, 5, 6, 0,
0, 112, 128, 112, 8, 240, 4, 7, 7, 6, 0, 0, 64, 64, 224, 64,
64, 64, 48, 5, 5, 5, 6, 0, 0, 136, 136, 136, 152, 104, 5, 5,
5, 6, 0, 0, 136, 136, 136, 80, 32, 5, 5, 5, 6, 0, 0, 136,
136, 168, 168, 80, 5, 5, 5, 6, 0, 0, 136, 80, 32, 80, 136, 5,
6, 6, 6, 0, 255, 136, 136, 136, 120, 8, 112, 5, 5, 5, 6, 0,
0, 248, 16, 32, 64, 248, 3, 7, 7, 6, 1, 0, 32, 64, 64, 128,
64, 64, 32, 1, 7, 7, 6, 2, 0, 128, 128, 128, 128, 128, 128, 128,
3, 7, 7, 6, 1, 0, 128, 64, 64, 32, 64, 64, 128, 5, 2, 2,
6, 0, 3, 104, 144, 0, 0, 0, 6, 0, 10, 0, 0, 0, 12, 0,
10, 0, 0, 0, 12, 0, 10, 0, 0, 0, 12, 0, 10, 0, 0, 0,
12, 0, 10, 0, 0, 0, 12, 0, 10, 0, 0, 0, 12, 0, 10, 0,
0, 0, 12, 0, 10, 0, 0, 0, 12, 0, 10, 0, 0, 0, 12, 0,
10, 0, 0, 0, 12, 0, 10, 0, 0, 0, 12, 0, 10, 0, 0, 0,
12, 0, 10, 0, 0, 0, 12, 0, 10, 0, 0, 0, 12, 0, 10, 0,
0, 0, 12, 0, 10, 0, 0, 0, 12, 0, 10, 0, 0, 0, 12, 0,
10, 0, 0, 0, 12, 0, 10, 0, 0, 0, 12, 0, 10, 0, 0, 0,
12, 0, 10, 0, 0, 0, 12, 0, 10, 0, 0, 0, 12, 0, 10, 0,
0, 0, 12, 0, 10, 0, 0, 0, 12, 0, 10, 0, 0, 0, 12, 0,
10, 0, 0, 0, 12, 0, 10, 0, 0, 0, 12, 0, 10, 0, 0, 0,
12, 0, 10, 0, 0, 0, 12, 0, 10, 11, 11, 22, 12, 0, 255, 255,
224, 2, 0, 2, 0, 4, 0, 13, 0, 20, 128, 36, 64, 196, 32, 4,
0, 4, 0, 4, 0, 11, 11, 22, 12, 0, 255, 249, 0, 138, 0, 171,
224, 172, 64, 170, 64, 170, 64, 170, 64, 170, 128, 33, 0, 82, 128, 140,
96, 11, 11, 22, 12, 0, 255, 36, 0, 36, 0, 63, 128, 68, 0, 132,
0, 4, 0, 255, 224, 10, 0, 17, 0, 32, 128, 192, 96, 11, 11, 22,
12, 0, 255, 36, 0, 36, 0, 63, 192, 68, 0, 4, 0, 255, 224, 9,
0, 9, 0, 17, 32, 33, 32, 64, 224, 11, 11, 22, 12, 0, 255, 32,
0, 61, 224, 81, 32, 145, 32, 17, 32, 255, 32, 17, 32, 41, 32, 37,
224, 69, 32, 128, 0, 11, 11, 22, 12, 0, 255, 32, 128, 127, 192, 8,
64, 255, 224, 17, 0, 32, 128, 95, 64, 128, 32, 63, 128, 0, 0, 127,
192, 11, 11, 22, 12, 0, 255, 34, 64, 71, 224, 148, 128, 228, 128, 47,
224, 68, 128, 244, 128, 7, 224, 52, 128, 196, 128, 7, 224, 11, 11, 22,
12, 0, 255, 4, 128, 143, 224, 73, 0, 25, 0, 47, 192, 9, 0, 9,
0, 47, 192, 73, 0, 137, 0, 15, 224, 11, 11, 22, 12, 0, 255, 16,
0, 63, 128, 81, 0, 14, 0, 49, 128, 192, 96, 63, 128, 36, 128, 63,
128, 36, 128, 63, 128, 11, 11, 22, 12, 0, 255, 34, 128, 250, 64, 7,
224, 250, 128, 138, 128, 138, 128, 250, 128, 34, 128, 178, 128, 170, 160, 100,
224, 11, 11, 22, 12, 0, 255, 34, 32, 71, 64, 146, 128, 239, 224, 34,
0, 71, 192, 236, 64, 7, 192, 52, 64, 199, 192, 4, 64, 11, 11, 22,
12, 0, 255, 8, 0, 15, 192, 8, 0, 8, 0, 255, 224, 8, 0, 14,
0, 9, 128, 8, 64, 8, 0, 8, 0, 10, 11, 22, 12, 0, 255, 255,
128, 0, 128, 0, 128, 128, 128, 128, 128, 255, 128, 128, 0, 128, 0, 128,
64, 128, 64, 127, 192, 11, 11, 22, 12, 0, 255, 71, 192, 65, 0, 239,
224, 65, 0, 69, 0, 105, 96, 201, 32, 77, 96, 73, 32, 79, 224, 200,
32, 11, 11, 22, 12, 0, 255, 8, 0, 4, 0, 4, 0, 10, 0, 10,
0, 10, 0, 17, 0, 17, 0, 32, 128, 64, 64, 128, 32, 11, 11, 22,
12, 0, 255, 34, 64, 34, 0, 247, 224, 34, 0, 35, 224, 53, 32, 229,
32, 37, 64, 40, 128, 41, 64, 114, 32, 11, 10, 20, 12, 0, 0, 68,
64, 68, 64, 68, 64, 127, 192, 4, 0, 4, 0, 132, 32, 132, 32, 132,
32, 255, 224, 11, 11, 22, 12, 0, 255, 4, 0, 0, 0, 127, 192, 4,
0, 4, 0, 4, 0, 127, 192, 4, 0, 4, 0, 4, 0, 255, 224, 11,
11, 22, 12, 0, 255, 255, 224, 17, 0, 1, 192, 254, 0, 72, 128, 37,
0, 4, 0, 255, 224, 21, 0, 36, 128, 196, 96, 11, 11, 22, 12, 0,
255, 17, 0, 127, 192, 68, 64, 127, 192, 68, 64, 127, 192, 4, 0, 255,
224, 4, 0, 4, 0, 4, 0, 9, 11, 22, 12, 0, 255, 16, 0, 255,
128, 128, 128, 128, 128, 255, 128, 128, 128, 128, 128, 255, 128, 128, 128, 128,
128, 255, 128, 11, 11, 22, 12, 0, 255, 113, 0, 1, 0, 3, 224, 249,
32, 33, 32, 65, 32, 81, 32, 137, 32, 250, 32, 2, 32, 4, 192, 11,
11, 22, 12, 0, 255, 127, 192, 17, 0, 17, 0, 17, 0, 17, 0, 255,
224, 17, 0, 17, 0, 33, 0, 33, 0, 65, 0, 11, 11, 22, 12, 0,
255, 33, 0, 34, 0, 244, 64, 87, 224, 80, 32, 87, 192, 148, 64, 84,
64, 36, 64, 87, 192, 148, 64, 11, 11, 22, 12, 0, 255, 17, 0, 10,
0, 127, 192, 4, 0, 4, 0, 255, 224, 4, 0, 10, 0, 17, 0, 32,
128, 192, 96, 10, 11, 22, 12, 0, 255, 95, 192, 0, 64, 132, 64, 132,
64, 191, 64, 132, 64, 140, 64, 148, 64, 164, 64, 140, 64, 129, 192, 11,
11, 22, 12, 0, 255, 36, 0, 39, 192, 36, 0, 36, 0, 255, 224, 0,
0, 20, 64, 36, 128, 71, 0, 12, 0, 112, 0, 11, 11, 22, 12, 0,
255, 36, 128, 4, 128, 15, 192, 228, 128, 36, 128, 63, 224, 36, 128, 36,
128, 40, 128, 80, 0, 143, 224, 11, 11, 22, 12, 0, 255, 8, 0, 8,
0, 255, 128, 136, 128, 136, 128, 255, 128, 136, 128, 136, 128, 255, 160, 136,
32, 7, 224, 11, 11, 22, 12, 0, 255, 39, 128, 36, 128, 244, 128, 36,
128, 116, 128, 108, 128, 164, 128, 36, 128, 36, 160, 40, 160, 48, 96, 10,
11, 22, 12, 0, 255, 255, 192, 128, 64, 128, 64, 158, 64, 146, 64, 146,
64, 158, 64, 128, 64, 128, 64, 255, 192, 128, 64, 11, 11, 22, 12, 0,
255, 127, 192, 68, 0, 95, 192, 80, 64, 95, 192, 80, 64, 95, 192, 66,
0, 74, 128, 82, 64, 166, 32, 11, 11, 22, 12, 0, 255, 4, 0, 7,
224, 4, 0, 127, 192, 64, 64, 64, 64, 64, 64, 127, 192, 0, 0, 82,
64, 137, 32, 11, 11, 22, 12, 0, 255, 71, 128, 36, 128, 4, 128, 4,
128, 232, 96, 32, 0, 47, 192, 36, 64, 34, 128, 49, 0, 38, 192, 11,
11, 22, 12, 0, 255, 127, 192, 74, 64, 127, 192, 4, 0, 255, 224, 4,
0, 63, 128, 32, 128, 36, 128, 36, 128, 255, 224, 11, 11, 22, 12, 0,
255, 34, 0, 79, 224, 72, 32, 79, 224, 200, 0, 79, 224, 74, 160, 90,
160, 111, 224, 74, 160, 72, 96, 11, 11, 22, 12, 0, 255, 243, 192, 36,
64, 42, 128, 241, 0, 34, 128, 101, 224, 114, 32, 165, 64, 32, 128, 35,
0, 44, 0, 11, 11, 22, 12, 0, 255, 4, 0, 255, 224, 128, 32, 0,
0, 255, 224, 4, 0, 36, 0, 39, 192, 36, 0, 84, 0, 143, 224, 11,
11, 22, 12, 0, 255, 115, 224, 16, 128, 81, 0, 35, 224, 250, 32, 42,
160, 34, 160, 34, 160, 32, 128, 33, 64, 98, 32, 11, 11, 22, 12, 0,
255, 34, 0, 247, 128, 34, 128, 54, 128, 226, 160, 37, 160, 36, 96, 104,
32, 0, 0, 82, 64, 137, 32, 11, 11, 22, 12, 0, 255, 115, 192, 66,
0, 66, 0, 123, 224, 74, 64, 74, 64, 122, 64, 74, 64, 66, 64, 68,
64, 136, 64, 11, 11, 22, 12, 0, 255, 8, 0, 255, 224, 8, 0, 31,
192, 48, 64, 95, 192, 144, 64, 31, 192, 16, 64, 16, 64, 16, 192, 11,
11, 22, 12, 0, 255, 2, 0, 127, 224, 66, 0, 66, 0, 95, 192, 66,
0, 71, 0, 74, 128, 82, 64, 98, 32, 130, 0, 11, 11, 22, 12, 0,
255, 243, 192, 150, 64, 145, 128, 166, 96, 161, 0, 151, 192, 145, 0, 149,
0, 231, 224, 129, 0, 129, 0, 11, 11, 22, 12, 0, 255, 15, 128, 136,
128, 79, 128, 8, 128, 143, 128, 64, 0, 31, 192, 53, 64, 85, 64, 149,
64, 63, 224, 11, 11, 22, 12, 0, 255, 39, 224, 32, 128, 248, 128, 32,
128, 32, 128, 56, 128, 224, 128, 32, 128, 32, 128, 32, 128, 97, 128, 11,
11, 22, 12, 0, 255, 31, 224, 145, 0, 87, 192, 20, 64, 23, 192, 148,
64, 87, 192, 17, 0, 85, 64, 153, 32, 35, 0, 11, 11, 22, 12, 0,
255, 32, 128, 39, 224, 242, 64, 33, 128, 34, 64, 52, 32, 226, 64, 34,
64, 34, 64, 34, 64, 100, 64, 11, 11, 22, 12, 0, 255, 65, 0, 65,
0, 79, 224, 233, 32, 73, 32, 73, 32, 111, 224, 201, 32, 73, 32, 73,
32, 207, 224, 11, 11, 22, 12, 0, 255, 33, 0, 241, 0, 79, 224, 169,
32, 249, 32, 47, 224, 57, 32, 233, 32, 41, 32, 47, 224, 40, 32, 11,
11, 22, 12, 0, 255, 143, 224, 73, 32, 9, 32, 203, 160, 73, 32, 79,
224, 72, 32, 75, 160, 74, 160, 107, 160, 80, 224, 11, 11, 22, 12, 0,
255, 127, 192, 4, 0, 68, 64, 36, 64, 36, 128, 4, 0, 255, 224, 4,
0, 4, 0, 4, 0, 4, 0, 11, 11, 22, 12, 0, 255, 130, 0, 66,
0, 31, 224, 194, 0, 95, 192, 82, 64, 95, 192, 71, 0, 74, 128, 82,
64, 191, 224, 11, 11, 22, 12, 0, 255, 4, 0, 127, 224, 72, 128, 127,
224, 72, 128, 79, 128, 64, 0, 95, 192, 72, 64, 71, 128, 152, 96, 11,
11, 22, 12, 0, 255, 1, 0, 239, 224, 161, 0, 164, 64, 175, 224, 164,
64, 175, 224, 169, 32, 233, 32, 2, 128, 12, 96, 11, 11, 22, 12, 0,
255, 20, 192, 246, 160, 188, 96, 167, 128, 168, 128, 191, 224, 169, 32, 239,
224, 9, 32, 15, 224, 9, 32, 11, 11, 22, 12, 0, 255, 127, 128, 64,
128, 66, 128, 98, 128, 84, 128, 72, 128, 72, 128, 84, 160, 98, 160, 64,
96, 128, 32, 11, 11, 22, 12, 0, 255, 4, 0, 127, 224, 64, 32, 127,
224, 64, 0, 125, 224, 84, 32, 76, 160, 84, 96, 100, 160, 141, 96, 11,
11, 22, 12, 0, 255, 130, 0, 95, 224, 4, 0, 8, 64, 159, 224, 64,
32, 10, 128, 10, 128, 74, 160, 146, 160, 34, 96, 11, 11, 22, 12, 0,
255, 65, 0, 79, 224, 232, 32, 66, 128, 68, 64, 104, 32, 199, 192, 65,
0, 65, 0, 65, 0, 207, 224, 11, 11, 22, 12, 0, 255, 80, 32, 125,
32, 145, 32, 255, 32, 17, 32, 125, 32, 85, 32, 85, 32, 84, 32, 92,
32, 16, 224, 11, 11, 22, 12, 0, 255, 63, 128, 32, 128, 63, 128, 32,
128, 255, 224, 72, 0, 123, 192, 73, 64, 121, 64, 72, 128, 251, 96, 11,
11, 22, 12, 0, 255, 4, 0, 4, 0, 4, 0, 36, 128, 36, 64, 68,
64, 68, 32, 132, 32, 4, 0, 4, 0, 28, 0, 11, 11, 22, 12, 0,
255, 4, 0, 4, 0, 4, 0, 255, 224, 4, 0, 10, 0, 10, 0, 17,
0, 17, 0, 32, 128, 192, 96, 9, 10, 20, 10, 0, 0, 136, 128, 73,
0, 8, 0, 255, 128, 0, 128, 0, 128, 127, 128, 0, 128, 0, 128, 255,
128, 11, 11, 22, 12, 0, 255, 33, 0, 18, 0, 255, 224, 0, 0, 120,
128, 74, 128, 122, 128, 74, 128, 122, 128, 72, 128, 89, 128, 11, 11, 22,
12, 0, 255, 39, 192, 0, 0, 0, 0, 239, 224, 33, 0, 34, 0, 36,
64, 47, 224, 32, 32, 80, 0, 143, 224, 11, 11, 22, 12, 0, 255, 32,
128, 39, 0, 249, 0, 33, 192, 119, 0, 33, 0, 249, 224, 39, 0, 113,
32, 169, 32, 32, 224, 11, 11, 22, 12, 0, 255, 16, 64, 16, 64, 253,
224, 16, 64, 56, 192, 53, 64, 82, 64, 148, 64, 16, 64, 16, 64, 16,
192, 11, 11, 22, 12, 0, 255, 0, 64, 248, 64, 11, 224, 8, 64, 136,
64, 82, 64, 81, 64, 33, 64, 80, 64, 72, 64, 137, 192, 10, 11, 22,
12, 0, 255, 132, 0, 132, 64, 132, 128, 245, 0, 134, 0, 132, 0, 132,
0, 148, 0, 164, 64, 196, 64, 131, 192, 11, 11, 22, 12, 0, 255, 17,
32, 125, 0, 17, 0, 255, 224, 41, 0, 253, 64, 73, 64, 124, 128, 8,
160, 253, 96, 10, 32, 11, 11, 22, 12, 0, 255, 23, 192, 36, 64, 36,
64, 103, 192, 161, 0, 47, 224, 33, 0, 35, 128, 37, 64, 41, 32, 33,
0, 11, 11, 22, 12, 0, 255, 8, 0, 255, 224, 16, 0, 39, 192, 32,
128, 97, 0, 175, 224, 33, 0, 33, 0, 33, 0, 35, 0, 11, 11, 22,
12, 0, 255, 36, 0, 47, 224, 180, 0, 164, 128, 164, 160, 170, 192, 42,
128, 40, 128, 41, 64, 50, 64, 36, 32, 11, 11, 22, 12, 0, 255, 127,
224, 128, 0, 63, 192, 32, 64, 63, 192, 16, 0, 31, 192, 16, 64, 40,
128, 71, 0, 56, 224, 11, 11, 22, 12, 0, 255, 127, 224, 64, 0, 64,
0, 64, 0, 64, 0, 64, 0, 64, 0, 64, 0, 64, 0, 64, 0, 128,
0, 11, 11, 22, 12, 0, 255, 255, 224, 4, 0, 127, 192, 68, 64, 127,
192, 68, 64, 127, 192, 68, 0, 36, 0, 24, 0, 231, 224, 11, 11, 22,
12, 0, 255, 17, 224, 253, 0, 69, 0, 41, 224, 253, 64, 17, 64, 125,
64, 17, 64, 85, 64, 146, 64, 52, 64, 11, 11, 22, 12, 0, 255, 33,
0, 95, 224, 64, 0, 207, 192, 64, 0, 79, 192, 64, 0, 79, 192, 72,
64, 79, 192, 72, 64, 11, 11, 22, 12, 0, 255, 4, 0, 127, 192, 64,
64, 127, 192, 64, 64, 127, 192, 64, 64, 127, 192, 4, 64, 82, 32, 191,
160, 11, 11, 22, 12, 0, 255, 127, 192, 68, 64, 127, 192, 68, 64, 127,
192, 4, 0, 27, 0, 224, 224, 17, 0, 17, 0, 97, 0, 11, 11, 22,
12, 0, 255, 255, 224, 4, 0, 8, 0, 127, 224, 73, 32, 79, 32, 73,
32, 79, 32, 73, 32, 73, 32, 127, 224, 11, 11, 22, 12, 0, 255, 253,
224, 86, 64, 121, 64, 56, 128, 85, 64, 146, 32, 255, 224, 4, 0, 39,
192, 36, 0, 255, 224, 11, 11, 22, 12, 0, 255, 251, 128, 82, 0, 123,
224, 18, 64, 250, 64, 20, 64, 63, 128, 32, 128, 63, 128, 32, 128, 63,
128, 11, 11, 22, 12, 0, 255, 31, 224, 32, 0, 39, 192, 100, 64, 167,
192, 32, 0, 47, 224, 40, 32, 39, 192, 33, 0, 35, 0, 11, 11, 22,
12, 0, 255, 243, 224, 130, 32, 130, 32, 250, 32, 130, 32, 130, 32, 138,
32, 178, 32, 194, 224, 2, 0, 2, 0, 11, 11, 22, 12, 0, 255, 36,
128, 70, 160, 149, 192, 228, 128, 39, 224, 68, 128, 245, 192, 6, 160, 52,
128, 196, 128, 7, 224, 11, 11, 22, 12, 0, 255, 39, 192, 65, 0, 135,
224, 224, 32, 34, 128, 69, 128, 242, 128, 15, 224, 48, 128, 193, 64, 2,
32, 11, 11, 22, 12, 0, 255, 2, 0, 2, 0, 34, 0, 35, 192, 34,
0, 34, 0, 34, 0, 34, 0, 34, 0, 34, 0, 255, 224, 9, 11, 22,
12, 0, 255, 8, 0, 8, 0, 255, 128, 136, 128, 136, 128, 136, 128, 255,
128, 136, 128, 136, 128, 136, 128, 255, 128, 11, 11, 22, 12, 0, 255, 33,
0, 83, 160, 65, 0, 247, 224, 81, 0, 83, 192, 86, 64, 83, 192, 90,
64, 83, 192, 66, 64, 11, 11, 22, 12, 0, 255, 127, 192, 4, 0, 4,
0, 4, 0, 255, 224, 10, 0, 10, 0, 18, 0, 34, 32, 66, 32, 129,
224, 11, 11, 22, 12, 0, 255, 17, 0, 33, 0, 47, 224, 97, 0, 163,
128, 35, 128, 37, 64, 37, 64, 41, 32, 33, 0, 33, 0, 11, 11, 22,
12, 0, 255, 247, 224, 148, 32, 244, 32, 151, 224, 148, 128, 244, 128, 151,
224, 148, 128, 244, 160, 150, 96, 4, 32, 11, 11, 22, 12, 0, 255, 123,
224, 148, 128, 4, 0, 127, 192, 4, 0, 255, 224, 1, 0, 255, 224, 33,
0, 17, 0, 7, 0, 11, 11, 22, 12, 0, 255, 33, 0, 71, 192, 145,
0, 47, 224, 96, 128, 175, 224, 32, 128, 36, 128, 34, 128, 32, 128, 35,
128, 11, 11, 22, 12, 0, 255, 39, 192, 36, 64, 247, 192, 46, 224, 42,
160, 62, 224, 225, 0, 47, 224, 35, 128, 37, 64, 105, 32, 11, 11, 22,
12, 0, 255, 20, 0, 39, 224, 42, 0, 98, 0, 163, 192, 34, 0, 34,
0, 35, 224, 34, 0, 34, 0, 34, 0
};
-206
View File
@@ -1,206 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/*
Fontname: ISO10646_4_Greek
Copyright: A. Hardtung, public domain
Capital A Height: 7, '1' Height: 7
Calculated Max Values w= 5 h=10 x= 2 y= 6 dx= 6 dy= 0 ascent= 8 len=10
Font Bounding box w= 6 h= 9 x= 0 y=-2
Calculated Min Values x= 0 y=-2 dx= 0 dy= 0
Pure Font ascent = 7 descent=-1
X Font ascent = 7 descent=-1
Max Font ascent = 8 descent=-2
*/
#include <U8glib.h>
const u8g_fntpgm_uint8_t ISO10646_Greek_5x7[2728] U8G_SECTION(".progmem.ISO10646_Greek_5x7") = {
0,6,9,0,254,7,1,145,3,32,32,255,255,8,254,7,
255,0,0,0,6,0,0,1,7,7,6,2,0,128,128,128,
128,128,0,128,3,2,2,6,1,5,160,160,5,7,7,6,
0,0,80,80,248,80,248,80,80,5,7,7,6,0,0,32,
120,160,112,40,240,32,5,7,7,6,0,0,192,200,16,32,
64,152,24,5,7,7,6,0,0,96,144,160,64,168,144,104,
2,3,3,6,1,4,192,64,128,3,7,7,6,1,0,32,
64,128,128,128,64,32,3,7,7,6,1,0,128,64,32,32,
32,64,128,5,5,5,6,0,1,32,168,112,168,32,5,5,
5,6,0,1,32,32,248,32,32,2,3,3,6,2,255,192,
64,128,5,1,1,6,0,3,248,2,2,2,6,2,0,192,
192,5,5,5,6,0,1,8,16,32,64,128,5,7,7,6,
0,0,112,136,152,168,200,136,112,3,7,7,6,1,0,64,
192,64,64,64,64,224,5,7,7,6,0,0,112,136,8,112,
128,128,248,5,7,7,6,0,0,248,16,32,16,8,8,240,
5,7,7,6,0,0,16,48,80,144,248,16,16,5,7,7,
6,0,0,248,128,240,8,8,136,112,5,7,7,6,0,0,
48,64,128,240,136,136,112,5,7,7,6,0,0,248,8,16,
32,32,32,32,5,7,7,6,0,0,112,136,136,112,136,136,
112,5,7,7,6,0,0,112,136,136,120,8,16,96,2,5,
5,6,2,0,192,192,0,192,192,2,6,6,6,2,255,192,
192,0,192,64,128,4,7,7,6,0,0,16,32,64,128,64,
32,16,5,3,3,6,0,2,248,0,248,4,7,7,6,1,
0,128,64,32,16,32,64,128,5,7,7,6,0,0,112,136,
8,16,32,0,32,5,6,6,6,0,0,112,136,8,104,168,
112,5,7,7,6,0,0,112,136,136,248,136,136,136,5,7,
7,6,0,0,240,136,136,240,136,136,240,5,7,7,6,0,
0,112,136,128,128,128,136,112,5,7,7,6,0,0,224,144,
136,136,136,144,224,5,7,7,6,0,0,248,128,128,240,128,
128,248,5,7,7,6,0,0,248,128,128,240,128,128,128,5,
7,7,6,0,0,112,136,128,184,136,136,112,5,7,7,6,
0,0,136,136,136,248,136,136,136,1,7,7,6,2,0,128,
128,128,128,128,128,128,5,7,7,6,0,0,56,16,16,16,
16,144,96,5,7,7,6,0,0,136,144,160,192,160,144,136,
5,7,7,6,0,0,128,128,128,128,128,128,248,5,7,7,
6,0,0,136,216,168,136,136,136,136,5,7,7,6,0,0,
136,136,200,168,152,136,136,5,7,7,6,0,0,112,136,136,
136,136,136,112,5,7,7,6,0,0,240,136,136,240,128,128,
128,5,7,7,6,0,0,112,136,136,136,168,144,104,5,7,
7,6,0,0,240,136,136,240,160,144,136,5,7,7,6,0,
0,120,128,128,112,8,8,240,5,7,7,6,0,0,248,32,
32,32,32,32,32,5,7,7,6,0,0,136,136,136,136,136,
136,112,5,7,7,6,0,0,136,136,136,136,136,80,32,5,
7,7,6,0,0,136,136,136,136,136,168,80,5,7,7,6,
0,0,136,136,80,32,80,136,136,5,7,7,6,0,0,136,
136,136,80,32,32,32,5,7,7,6,0,0,248,8,16,32,
64,128,248,3,7,7,6,1,0,224,128,128,128,128,128,224,
5,5,5,6,0,1,128,64,32,16,8,3,7,7,6,1,
0,224,32,32,32,32,32,224,5,3,3,6,0,4,32,80,
136,5,1,1,6,0,0,248,2,2,2,6,2,5,128,64,
5,5,5,6,0,0,112,8,120,136,120,5,7,7,6,0,
0,128,128,176,200,136,136,240,5,5,5,6,0,0,112,128,
128,136,112,5,7,7,6,0,0,8,8,104,152,136,136,120,
5,5,5,6,0,0,112,136,248,128,112,5,7,7,6,0,
0,48,72,224,64,64,64,64,5,6,6,6,0,255,112,136,
136,120,8,112,5,7,7,6,0,0,128,128,176,200,136,136,
136,1,7,7,6,2,0,128,0,128,128,128,128,128,3,8,
8,6,1,255,32,0,32,32,32,32,160,64,4,7,7,6,
0,0,128,128,144,160,192,160,144,3,7,7,6,1,0,192,
64,64,64,64,64,224,5,5,5,6,0,0,208,168,168,168,
168,5,5,5,6,0,0,176,200,136,136,136,5,5,5,6,
0,0,112,136,136,136,112,5,6,6,6,0,255,240,136,136,
240,128,128,5,6,6,6,0,255,120,136,136,120,8,8,5,
5,5,6,0,0,176,200,128,128,128,5,5,5,6,0,0,
112,128,112,8,240,5,7,7,6,0,0,64,64,224,64,64,
72,48,5,5,5,6,0,0,136,136,136,152,104,5,5,5,
6,0,0,136,136,136,80,32,5,5,5,6,0,0,136,136,
168,168,80,5,5,5,6,0,0,136,80,32,80,136,5,6,
6,6,0,255,136,136,136,120,8,112,5,5,5,6,0,0,
248,16,32,64,248,3,7,7,6,1,0,32,64,64,128,64,
64,32,1,7,7,6,2,0,128,128,128,128,128,128,128,3,
7,7,6,1,0,128,64,64,32,64,64,128,5,2,2,6,
0,3,104,144,0,0,0,6,0,0,0,0,0,6,0,0,
0,0,0,6,0,0,0,0,0,6,0,0,0,0,0,6,
0,0,2,2,2,6,1,6,64,128,3,3,3,6,1,5,
32,64,160,5,8,8,6,0,0,64,160,80,80,136,248,136,
136,2,2,2,6,1,2,192,192,5,8,8,6,0,0,64,
128,248,128,240,128,128,248,5,8,8,6,0,0,64,128,136,
136,248,136,136,136,4,8,8,6,0,0,64,128,112,32,32,
32,32,112,0,0,0,6,0,0,5,8,8,6,0,0,64,
128,112,136,136,136,136,112,0,0,0,6,0,0,5,8,8,
6,0,0,64,128,8,136,112,32,32,32,5,8,8,6,0,
0,64,128,112,136,136,136,80,216,3,8,8,6,1,0,32,
64,160,0,64,64,64,32,5,7,7,6,0,0,32,80,136,
136,248,136,136,5,7,7,6,0,0,240,72,72,112,72,72,
240,5,7,7,6,0,0,248,128,128,128,128,128,128,5,6,
6,6,0,0,32,80,80,136,136,248,5,7,7,6,0,0,
248,128,128,240,128,128,248,5,7,7,6,0,0,248,8,16,
32,64,128,248,5,7,7,6,0,0,136,136,136,248,136,136,
136,5,7,7,6,0,0,112,136,136,168,136,136,112,3,7,
7,6,1,0,224,64,64,64,64,64,224,5,7,7,6,0,
0,136,144,160,192,160,144,136,5,7,7,6,0,0,32,80,
136,136,136,136,136,5,7,7,6,0,0,136,216,168,168,136,
136,136,5,7,7,6,0,0,136,200,200,168,152,152,136,5,
7,7,6,0,0,248,0,0,112,0,0,248,5,7,7,6,
0,0,112,136,136,136,136,136,112,5,7,7,6,0,0,248,
80,80,80,80,80,80,5,7,7,6,0,0,240,136,136,240,
128,128,128,0,0,0,6,0,0,5,7,7,6,0,0,248,
128,64,32,64,128,248,5,7,7,6,0,0,248,32,32,32,
32,32,32,5,7,7,6,0,0,136,136,80,32,32,32,32,
5,7,7,6,0,0,112,32,112,168,112,32,112,5,7,7,
6,0,0,136,136,80,32,80,136,136,5,7,7,6,0,0,
168,168,168,168,112,32,32,5,6,6,6,0,0,112,136,136,
80,80,216,3,8,8,6,1,0,160,0,224,64,64,64,64,
224,5,8,8,6,0,0,80,0,136,136,136,80,32,32,5,
8,8,6,0,0,32,64,8,104,152,144,144,104,5,8,8,
6,0,0,32,64,0,112,136,224,136,112,5,10,10,6,0,
254,32,64,0,112,136,136,136,136,8,8,2,8,8,6,1,
0,64,128,0,128,128,128,128,64,5,8,8,6,0,0,16,
32,80,0,136,136,136,112,5,6,6,6,0,0,8,104,152,
144,144,104,4,7,7,6,0,254,96,144,240,144,224,128,128,
5,6,6,6,0,255,136,72,80,32,32,64,5,6,6,6,
0,0,48,64,112,136,136,112,5,5,5,6,0,0,112,136,
224,136,112,5,9,9,6,0,254,128,112,64,128,128,128,112,
8,112,5,7,7,6,0,254,184,200,136,136,136,8,8,5,
5,5,6,0,0,112,136,248,136,112,3,5,5,6,1,0,
128,128,128,128,96,4,5,5,6,0,0,144,160,192,160,144,
5,6,6,6,0,0,64,32,32,80,80,136,5,7,7,6,
0,254,136,136,136,216,168,128,128,5,5,5,6,0,0,136,
136,80,96,32,5,10,10,6,0,254,128,224,128,112,32,64,
128,112,8,112,5,5,5,6,0,0,112,136,136,136,112,5,
5,5,6,0,0,248,80,80,80,80,5,7,7,6,0,254,
112,136,136,200,176,128,128,5,7,7,6,0,254,48,64,128,
64,48,8,112,5,5,5,6,0,0,104,144,144,144,96,4,
5,5,6,0,0,240,64,64,64,48,5,5,5,6,0,0,
136,136,144,144,224,5,8,8,6,0,254,48,168,168,168,168,
112,32,32,5,6,6,6,0,255,136,80,32,32,80,136,5,
7,7,6,0,254,168,168,168,168,112,32,32,5,5,5,6,
0,0,80,136,136,168,112,4,7,7,6,0,0,160,0,64,
64,64,64,48,5,7,7,6,0,0,80,0,136,136,144,144,
224,4,8,8,6,0,0,32,64,0,96,144,144,144,96,5,
8,8,6,0,0,32,64,0,136,136,144,144,96,5,8,8,
6,0,0,32,64,0,80,136,136,168,112,5,7,7,6,0,
255,144,160,192,160,144,136,16,5,8,8,6,0,0,96,144,
160,128,240,136,136,112,5,7,7,6,0,0,112,80,56,144,
144,144,96,5,6,6,6,0,0,152,80,32,32,32,32,5,
8,8,6,0,0,64,128,152,80,32,32,32,32,5,8,8,
6,0,0,80,0,152,80,32,32,32,32,5,7,7,6,0,
255,48,168,168,168,168,112,32,5,5,5,6,0,0,248,80,
80,80,88,5,6,6,6,0,255,136,80,112,80,136,16,5,
7,7,6,0,255,112,136,136,136,112,32,112,5,6,6,6,
0,255,112,136,136,112,32,112,5,6,6,6,0,0,112,136,
128,112,32,112,5,7,7,6,0,254,8,112,128,128,112,16,
96,5,6,6,6,0,0,248,128,128,240,128,128,4,5,5,
6,0,0,240,128,224,128,128,5,6,6,6,0,0,248,0,
0,112,0,248,4,5,5,6,0,0,64,128,240,16,32,5,
7,7,6,0,0,224,80,40,40,8,8,16,5,7,7,6,
0,0,192,32,80,40,8,8,8,5,8,8,6,0,254,168,
168,168,168,168,88,8,112,5,7,7,6,0,254,168,168,168,
168,88,8,112,5,6,6,6,0,0,104,136,136,120,8,8,
5,6,6,6,0,255,104,136,136,120,8,8,4,8,8,6,
0,254,128,224,144,144,144,144,32,192,5,5,5,6,0,0,
104,144,112,16,224,5,6,6,6,0,0,96,144,16,96,136,
112,4,6,6,6,0,0,96,144,16,96,128,112,5,6,6,
6,0,0,136,80,32,80,136,248,5,5,5,6,0,0,136,
80,32,80,112,5,6,6,6,0,0,120,128,240,136,136,112,
4,5,5,6,0,0,240,128,224,144,96,3,6,6,6,1,
0,64,224,64,64,64,64,3,6,6,6,1,255,64,224,64,
64,64,128,5,5,5,6,0,0,136,80,112,80,136,5,7,
7,6,0,254,112,136,136,136,240,128,112,4,5,5,6,0,
0,112,128,128,128,112,2,8,8,6,1,255,64,0,192,64,
64,64,64,128,5,7,7,6,0,0,112,136,136,248,136,136,
112,4,5,5,6,0,0,112,128,224,128,112,4,5,5,6,
0,0,224,16,112,16,224,5,7,7,6,0,0,128,240,136,
136,136,240,128,4,7,7,6,0,255,128,224,144,144,144,224,
128,5,6,6,6,0,0,112,136,128,128,136,112,5,6,6,
6,0,0,136,216,168,136,136,136,5,7,7,6,0,254,136,
216,168,136,136,128,128,5,8,8,6,0,254,112,136,136,136,
112,64,224,64,5,6,6,6,0,0,112,136,8,8,136,112,
5,6,6,6,0,0,112,136,160,128,136,112,5,6,6,6,
0,0,112,136,40,8,136,112};
-192
View File
@@ -1,192 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
Fontname: ISO10646_Kana
Copyright: A. Hardtung, public domain
Capital A Height: 7, '1' Height: 7
Calculated Max Values w= 5 h= 8 x= 2 y= 5 dx= 6 dy= 0 ascent= 8 len= 8
Font Bounding box w= 6 h= 9 x= 0 y=-2
Calculated Min Values x= 0 y=-1 dx= 0 dy= 0
Pure Font ascent = 7 descent=-1
X Font ascent = 7 descent=-1
Max Font ascent = 8 descent=-1
*/
#include <U8glib.h>
const u8g_fntpgm_uint8_t ISO10646_Kana_5x7[2482] U8G_SECTION(".progmem.ISO10646_Kana_5x7") = {
0, 6, 9, 0, 254, 7, 1, 145, 3, 32, 32, 255, 255, 8, 255, 7,
255, 0, 0, 0, 6, 0, 0, 1, 7, 7, 6, 2, 0, 128, 128, 128,
128, 128, 0, 128, 3, 2, 2, 6, 1, 5, 160, 160, 5, 7, 7, 6,
0, 0, 80, 80, 248, 80, 248, 80, 80, 5, 7, 7, 6, 0, 0, 32,
120, 160, 112, 40, 240, 32, 5, 7, 7, 6, 0, 0, 192, 200, 16, 32,
64, 152, 24, 5, 7, 7, 6, 0, 0, 96, 144, 160, 64, 168, 144, 104,
2, 3, 3, 6, 1, 4, 192, 64, 128, 3, 7, 7, 6, 1, 0, 32,
64, 128, 128, 128, 64, 32, 3, 7, 7, 6, 1, 0, 128, 64, 32, 32,
32, 64, 128, 5, 5, 5, 6, 0, 1, 32, 168, 112, 168, 32, 5, 5,
5, 6, 0, 1, 32, 32, 248, 32, 32, 2, 3, 3, 6, 2, 255, 192,
64, 128, 5, 1, 1, 6, 0, 3, 248, 2, 2, 2, 6, 2, 0, 192,
192, 5, 5, 5, 6, 0, 1, 8, 16, 32, 64, 128, 5, 7, 7, 6,
0, 0, 112, 136, 152, 168, 200, 136, 112, 3, 7, 7, 6, 1, 0, 64,
192, 64, 64, 64, 64, 224, 5, 7, 7, 6, 0, 0, 112, 136, 8, 112,
128, 128, 248, 5, 7, 7, 6, 0, 0, 248, 16, 32, 16, 8, 8, 240,
5, 7, 7, 6, 0, 0, 16, 48, 80, 144, 248, 16, 16, 5, 7, 7,
6, 0, 0, 248, 128, 240, 8, 8, 136, 112, 5, 7, 7, 6, 0, 0,
48, 64, 128, 240, 136, 136, 112, 5, 7, 7, 6, 0, 0, 248, 8, 16,
32, 32, 32, 32, 5, 7, 7, 6, 0, 0, 112, 136, 136, 112, 136, 136,
112, 5, 7, 7, 6, 0, 0, 112, 136, 136, 120, 8, 16, 96, 2, 5,
5, 6, 2, 0, 192, 192, 0, 192, 192, 2, 6, 6, 6, 2, 255, 192,
192, 0, 192, 64, 128, 4, 7, 7, 6, 0, 0, 16, 32, 64, 128, 64,
32, 16, 5, 3, 3, 6, 0, 2, 248, 0, 248, 4, 7, 7, 6, 1,
0, 128, 64, 32, 16, 32, 64, 128, 5, 7, 7, 6, 0, 0, 112, 136,
8, 16, 32, 0, 32, 5, 6, 6, 6, 0, 0, 112, 136, 8, 104, 168,
112, 5, 7, 7, 6, 0, 0, 112, 136, 136, 248, 136, 136, 136, 5, 7,
7, 6, 0, 0, 240, 136, 136, 240, 136, 136, 240, 5, 7, 7, 6, 0,
0, 112, 136, 128, 128, 128, 136, 112, 5, 7, 7, 6, 0, 0, 224, 144,
136, 136, 136, 144, 224, 5, 7, 7, 6, 0, 0, 248, 128, 128, 240, 128,
128, 248, 5, 7, 7, 6, 0, 0, 248, 128, 128, 240, 128, 128, 128, 5,
7, 7, 6, 0, 0, 112, 136, 128, 184, 136, 136, 112, 5, 7, 7, 6,
0, 0, 136, 136, 136, 248, 136, 136, 136, 1, 7, 7, 6, 2, 0, 128,
128, 128, 128, 128, 128, 128, 5, 7, 7, 6, 0, 0, 56, 16, 16, 16,
16, 144, 96, 5, 7, 7, 6, 0, 0, 136, 144, 160, 192, 160, 144, 136,
5, 7, 7, 6, 0, 0, 128, 128, 128, 128, 128, 128, 248, 5, 7, 7,
6, 0, 0, 136, 216, 168, 136, 136, 136, 136, 5, 7, 7, 6, 0, 0,
136, 136, 200, 168, 152, 136, 136, 5, 7, 7, 6, 0, 0, 112, 136, 136,
136, 136, 136, 112, 5, 7, 7, 6, 0, 0, 240, 136, 136, 240, 128, 128,
128, 5, 7, 7, 6, 0, 0, 112, 136, 136, 136, 168, 144, 104, 5, 7,
7, 6, 0, 0, 240, 136, 136, 240, 160, 144, 136, 5, 7, 7, 6, 0,
0, 120, 128, 128, 112, 8, 8, 240, 5, 7, 7, 6, 0, 0, 248, 32,
32, 32, 32, 32, 32, 5, 7, 7, 6, 0, 0, 136, 136, 136, 136, 136,
136, 112, 5, 7, 7, 6, 0, 0, 136, 136, 136, 136, 136, 80, 32, 5,
7, 7, 6, 0, 0, 136, 136, 136, 136, 136, 168, 80, 5, 7, 7, 6,
0, 0, 136, 136, 80, 32, 80, 136, 136, 5, 7, 7, 6, 0, 0, 136,
136, 136, 80, 32, 32, 32, 5, 7, 7, 6, 0, 0, 248, 8, 16, 32,
64, 128, 248, 3, 7, 7, 6, 1, 0, 224, 128, 128, 128, 128, 128, 224,
5, 5, 5, 6, 0, 1, 128, 64, 32, 16, 8, 3, 7, 7, 6, 1,
0, 224, 32, 32, 32, 32, 32, 224, 5, 3, 3, 6, 0, 4, 32, 80,
136, 5, 1, 1, 6, 0, 0, 248, 2, 2, 2, 6, 2, 5, 128, 64,
5, 5, 5, 6, 0, 0, 112, 8, 120, 136, 120, 5, 7, 7, 6, 0,
0, 128, 128, 176, 200, 136, 136, 240, 5, 5, 5, 6, 0, 0, 112, 128,
128, 136, 112, 5, 7, 7, 6, 0, 0, 8, 8, 104, 152, 136, 136, 120,
5, 5, 5, 6, 0, 0, 112, 136, 248, 128, 112, 5, 7, 7, 6, 0,
0, 48, 72, 224, 64, 64, 64, 64, 5, 6, 6, 6, 0, 255, 112, 136,
136, 120, 8, 112, 5, 7, 7, 6, 0, 0, 128, 128, 176, 200, 136, 136,
136, 1, 7, 7, 6, 2, 0, 128, 0, 128, 128, 128, 128, 128, 3, 8,
8, 6, 1, 255, 32, 0, 32, 32, 32, 32, 160, 64, 4, 7, 7, 6,
0, 0, 128, 128, 144, 160, 192, 160, 144, 3, 7, 7, 6, 1, 0, 192,
64, 64, 64, 64, 64, 224, 5, 5, 5, 6, 0, 0, 208, 168, 168, 168,
168, 5, 5, 5, 6, 0, 0, 176, 200, 136, 136, 136, 5, 5, 5, 6,
0, 0, 112, 136, 136, 136, 112, 5, 6, 6, 6, 0, 255, 240, 136, 136,
240, 128, 128, 5, 6, 6, 6, 0, 255, 120, 136, 136, 120, 8, 8, 5,
5, 5, 6, 0, 0, 176, 200, 128, 128, 128, 5, 5, 5, 6, 0, 0,
112, 128, 112, 8, 240, 5, 7, 7, 6, 0, 0, 64, 64, 224, 64, 64,
72, 48, 5, 5, 5, 6, 0, 0, 136, 136, 136, 152, 104, 5, 5, 5,
6, 0, 0, 136, 136, 136, 80, 32, 5, 5, 5, 6, 0, 0, 136, 136,
168, 168, 80, 5, 5, 5, 6, 0, 0, 136, 80, 32, 80, 136, 5, 6,
6, 6, 0, 255, 136, 136, 136, 120, 8, 112, 5, 5, 5, 6, 0, 0,
248, 16, 32, 64, 248, 3, 7, 7, 6, 1, 0, 32, 64, 64, 128, 64,
64, 32, 1, 7, 7, 6, 2, 0, 128, 128, 128, 128, 128, 128, 128, 3,
7, 7, 6, 1, 0, 128, 64, 64, 32, 64, 64, 128, 5, 2, 2, 6,
0, 3, 104, 144, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0,
0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6,
0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0,
0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0,
0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6,
0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0,
0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0,
0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6,
0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0,
0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0,
0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6,
0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0,
0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 5, 3, 3, 6, 0, 1,
248, 0, 248, 4, 4, 4, 6, 0, 0, 240, 16, 96, 64, 5, 6, 6,
6, 0, 0, 248, 8, 40, 48, 32, 64, 3, 4, 4, 6, 1, 0, 32,
64, 192, 64, 4, 6, 6, 6, 0, 0, 16, 32, 96, 160, 32, 32, 4,
4, 4, 6, 0, 0, 32, 240, 144, 32, 5, 6, 6, 6, 0, 0, 32,
248, 136, 8, 16, 32, 3, 4, 4, 6, 1, 0, 224, 64, 64, 224, 5,
5, 5, 6, 0, 0, 248, 32, 32, 32, 248, 4, 4, 4, 6, 0, 0,
32, 240, 96, 160, 5, 6, 6, 6, 0, 0, 16, 248, 48, 80, 144, 16,
5, 6, 6, 6, 0, 0, 64, 248, 72, 72, 72, 144, 5, 8, 8, 6,
0, 0, 40, 0, 64, 248, 72, 72, 72, 144, 5, 6, 6, 6, 0, 0,
32, 248, 32, 248, 32, 32, 5, 8, 8, 6, 0, 0, 40, 0, 32, 248,
32, 248, 32, 32, 4, 5, 5, 6, 0, 0, 112, 144, 16, 32, 192, 5,
7, 7, 6, 0, 0, 40, 0, 112, 144, 16, 32, 192, 5, 6, 6, 6,
0, 0, 64, 120, 144, 16, 16, 32, 5, 8, 8, 6, 0, 0, 40, 0,
64, 120, 144, 16, 16, 32, 5, 5, 5, 6, 0, 0, 248, 8, 8, 8,
248, 5, 7, 7, 6, 0, 0, 40, 0, 248, 8, 8, 8, 248, 5, 6,
6, 6, 0, 0, 80, 248, 80, 16, 32, 64, 5, 8, 8, 6, 0, 0,
40, 0, 80, 248, 80, 16, 32, 64, 5, 5, 5, 6, 0, 0, 192, 8,
200, 16, 224, 5, 7, 7, 6, 0, 0, 40, 0, 192, 8, 200, 16, 224,
5, 5, 5, 6, 0, 0, 248, 16, 32, 80, 136, 5, 7, 7, 6, 0,
0, 40, 0, 248, 16, 32, 80, 136, 5, 6, 6, 6, 0, 0, 64, 248,
72, 80, 64, 56, 5, 8, 8, 6, 0, 0, 40, 0, 64, 248, 72, 80,
64, 56, 5, 5, 5, 6, 0, 0, 136, 136, 72, 16, 96, 5, 7, 7,
6, 0, 0, 40, 0, 136, 136, 72, 16, 96, 5, 5, 5, 6, 0, 0,
120, 72, 168, 16, 96, 5, 7, 7, 6, 0, 0, 40, 0, 120, 72, 168,
16, 96, 5, 6, 6, 6, 0, 0, 16, 224, 32, 248, 32, 64, 5, 8,
8, 6, 0, 0, 40, 0, 16, 224, 32, 248, 32, 64, 5, 4, 4, 6,
0, 0, 168, 168, 8, 48, 5, 5, 5, 6, 0, 0, 168, 168, 8, 16,
32, 5, 7, 7, 6, 0, 0, 40, 0, 168, 168, 8, 16, 32, 5, 6,
6, 6, 0, 0, 112, 0, 248, 32, 32, 64, 5, 8, 8, 6, 0, 0,
40, 0, 112, 0, 248, 32, 32, 64, 3, 6, 6, 6, 1, 0, 128, 128,
192, 160, 128, 128, 4, 8, 8, 6, 1, 0, 80, 0, 128, 128, 192, 160,
128, 128, 5, 6, 6, 6, 0, 0, 32, 248, 32, 32, 64, 128, 5, 5,
5, 6, 0, 0, 112, 0, 0, 0, 248, 5, 5, 5, 6, 0, 0, 248,
8, 80, 32, 208, 5, 6, 6, 6, 0, 0, 32, 248, 16, 32, 112, 168,
3, 6, 6, 6, 1, 0, 32, 32, 32, 32, 64, 128, 5, 5, 5, 6,
0, 0, 16, 136, 136, 136, 136, 5, 7, 7, 6, 0, 0, 40, 0, 16,
136, 136, 136, 136, 5, 8, 8, 6, 0, 0, 24, 24, 0, 16, 136, 136,
136, 136, 5, 6, 6, 6, 0, 0, 128, 128, 248, 128, 128, 120, 5, 7,
7, 6, 0, 0, 40, 128, 128, 248, 128, 128, 120, 5, 7, 7, 6, 0,
0, 24, 152, 128, 248, 128, 128, 120, 5, 5, 5, 6, 0, 0, 248, 8,
8, 16, 96, 5, 7, 7, 6, 0, 0, 40, 0, 248, 8, 8, 16, 96,
5, 8, 8, 6, 0, 0, 24, 24, 0, 248, 8, 8, 16, 96, 5, 4,
4, 6, 0, 1, 64, 160, 16, 8, 5, 6, 6, 6, 0, 1, 40, 0,
64, 160, 16, 8, 5, 6, 6, 6, 0, 1, 24, 24, 64, 160, 16, 8,
5, 6, 6, 6, 0, 0, 32, 248, 32, 168, 168, 32, 5, 8, 8, 6,
0, 0, 40, 0, 32, 248, 32, 168, 168, 32, 5, 8, 8, 6, 0, 0,
24, 24, 32, 248, 32, 168, 168, 32, 5, 5, 5, 6, 0, 0, 248, 8,
80, 32, 16, 4, 5, 5, 6, 1, 0, 224, 0, 224, 0, 240, 5, 5,
5, 6, 0, 0, 32, 64, 136, 248, 8, 5, 5, 5, 6, 0, 0, 8,
40, 16, 40, 192, 5, 5, 5, 6, 0, 0, 248, 64, 248, 64, 56, 5,
4, 4, 6, 0, 0, 64, 248, 80, 64, 5, 6, 6, 6, 0, 0, 64,
248, 72, 80, 64, 64, 4, 4, 4, 6, 0, 0, 96, 32, 32, 240, 5,
5, 5, 6, 0, 0, 112, 16, 16, 16, 248, 4, 5, 5, 6, 0, 0,
240, 16, 240, 16, 240, 5, 5, 5, 6, 0, 0, 248, 8, 248, 8, 248,
5, 6, 6, 6, 0, 0, 112, 0, 248, 8, 16, 32, 4, 6, 6, 6,
0, 0, 144, 144, 144, 144, 16, 32, 5, 5, 5, 6, 0, 0, 32, 160,
168, 168, 176, 4, 5, 5, 6, 0, 0, 128, 128, 144, 160, 192, 5, 5,
5, 6, 0, 0, 248, 136, 136, 136, 248, 4, 4, 4, 6, 0, 0, 240,
144, 16, 32, 5, 5, 5, 6, 0, 0, 248, 136, 8, 16, 32, 5, 6,
6, 6, 0, 0, 16, 248, 80, 80, 248, 16, 5, 5, 5, 6, 0, 0,
248, 8, 48, 32, 248, 5, 5, 5, 6, 0, 0, 248, 8, 248, 8, 48,
5, 5, 5, 6, 0, 0, 192, 8, 8, 16, 224, 5, 8, 8, 6, 0,
0, 40, 0, 32, 248, 136, 8, 16, 32, 4, 4, 4, 6, 0, 0, 64,
240, 80, 160, 4, 4, 4, 6, 0, 0, 64, 240, 32, 64, 5, 7, 7,
6, 0, 0, 40, 0, 248, 136, 8, 16, 96, 5, 8, 8, 6, 0, 0,
40, 0, 16, 248, 80, 80, 248, 16, 5, 7, 7, 6, 0, 0, 40, 0,
248, 8, 48, 32, 248, 5, 7, 7, 6, 0, 0, 40, 0, 248, 8, 248,
8, 48, 2, 2, 2, 6, 2, 2, 192, 192, 5, 1, 1, 6, 0, 2,
248, 5, 4, 4, 6, 0, 1, 128, 96, 16, 8, 5, 5, 5, 6, 0,
1, 40, 128, 96, 16, 8, 5, 6, 6, 6, 0, 0, 248, 8, 8, 8,
8, 8
};
-45
View File
@@ -1,45 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
Fontname: Marlin_symbols
Copyright: Created with Fony 1.4.7
Capital A Height: 0, '1' Height: 0
Calculated Max Values w= 5 h=10 x= 0 y= 3 dx= 6 dy= 0 ascent= 8 len=10
Font Bounding box w= 6 h= 9 x= 0 y=-2
Calculated Min Values x= 0 y=-2 dx= 0 dy= 0
Pure Font ascent = 0 descent= 0
X Font ascent = 0 descent= 0
Max Font ascent = 8 descent=-2
*/
#include <U8glib.h>
const u8g_fntpgm_uint8_t Marlin_symbols[140] U8G_SECTION(".progmem.Marlin_symbols") = {
0, 6, 9, 0, 254, 0, 0, 0, 0, 0, 1, 9, 0, 8, 254, 0,
0, 5, 8, 8, 6, 0, 0, 64, 240, 200, 136, 136, 152, 120, 16, 5,
8, 8, 6, 0, 0, 192, 248, 136, 136, 136, 136, 136, 248, 5, 5, 5,
6, 0, 1, 32, 48, 248, 48, 32, 5, 8, 8, 6, 0, 0, 32, 112,
248, 32, 32, 32, 32, 224, 5, 9, 9, 6, 0, 255, 32, 112, 168, 168,
184, 136, 136, 112, 32, 5, 9, 9, 6, 0, 255, 224, 128, 192, 176, 168,
40, 48, 40, 40, 5, 9, 9, 6, 0, 255, 248, 168, 136, 136, 136, 136,
136, 168, 248, 5, 10, 10, 6, 0, 254, 32, 80, 80, 80, 80, 136, 168,
168, 136, 112, 3, 3, 3, 6, 0, 3, 64, 160, 64
};
-378
View File
@@ -1,378 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
* endstops.cpp - A singleton object to manage endstops
*/
#include "Marlin.h"
#include "cardreader.h"
#include "endstops.h"
#include "temperature.h"
#include "stepper.h"
#include "ultralcd.h"
// TEST_ENDSTOP: test the old and the current status of an endstop
#define TEST_ENDSTOP(ENDSTOP) (TEST(current_endstop_bits & old_endstop_bits, ENDSTOP))
Endstops endstops;
// public:
bool Endstops::enabled = true,
Endstops::enabled_globally =
#if ENABLED(ENDSTOPS_ALWAYS_ON_DEFAULT)
(true)
#else
(false)
#endif
;
volatile char Endstops::endstop_hit_bits; // use X_MIN, Y_MIN, Z_MIN and Z_MIN_PROBE as BIT value
#if ENABLED(Z_DUAL_ENDSTOPS)
uint16_t
#else
byte
#endif
Endstops::current_endstop_bits = 0,
Endstops::old_endstop_bits = 0;
#if HAS_BED_PROBE
volatile bool Endstops::z_probe_enabled = false;
#endif
/**
* Class and Instance Methods
*/
void Endstops::init() {
#if HAS_X_MIN
SET_INPUT(X_MIN_PIN);
#if ENABLED(ENDSTOPPULLUP_XMIN)
WRITE(X_MIN_PIN,HIGH);
#endif
#endif
#if HAS_Y_MIN
SET_INPUT(Y_MIN_PIN);
#if ENABLED(ENDSTOPPULLUP_YMIN)
WRITE(Y_MIN_PIN,HIGH);
#endif
#endif
#if HAS_Z_MIN
SET_INPUT(Z_MIN_PIN);
#if ENABLED(ENDSTOPPULLUP_ZMIN)
WRITE(Z_MIN_PIN,HIGH);
#endif
#endif
#if HAS_Z2_MIN
SET_INPUT(Z2_MIN_PIN);
#if ENABLED(ENDSTOPPULLUP_ZMIN)
WRITE(Z2_MIN_PIN,HIGH);
#endif
#endif
#if HAS_X_MAX
SET_INPUT(X_MAX_PIN);
#if ENABLED(ENDSTOPPULLUP_XMAX)
WRITE(X_MAX_PIN,HIGH);
#endif
#endif
#if HAS_Y_MAX
SET_INPUT(Y_MAX_PIN);
#if ENABLED(ENDSTOPPULLUP_YMAX)
WRITE(Y_MAX_PIN,HIGH);
#endif
#endif
#if HAS_Z_MAX
SET_INPUT(Z_MAX_PIN);
#if ENABLED(ENDSTOPPULLUP_ZMAX)
WRITE(Z_MAX_PIN,HIGH);
#endif
#endif
#if HAS_Z2_MAX
SET_INPUT(Z2_MAX_PIN);
#if ENABLED(ENDSTOPPULLUP_ZMAX)
WRITE(Z2_MAX_PIN,HIGH);
#endif
#endif
#if HAS_Z_MIN_PROBE_PIN && ENABLED(Z_MIN_PROBE_ENDSTOP) // Check for Z_MIN_PROBE_ENDSTOP so we don't pull a pin high unless it's to be used.
SET_INPUT(Z_MIN_PROBE_PIN);
#if ENABLED(ENDSTOPPULLUP_ZMIN_PROBE)
WRITE(Z_MIN_PROBE_PIN,HIGH);
#endif
#endif
} // Endstops::init
void Endstops::report_state() {
if (endstop_hit_bits) {
#if ENABLED(ULTRA_LCD)
char chrX = ' ', chrY = ' ', chrZ = ' ', chrP = ' ';
#define _SET_STOP_CHAR(A,C) (chr## A = C)
#else
#define _SET_STOP_CHAR(A,C) ;
#endif
#define _ENDSTOP_HIT_ECHO(A,C) do{ \
SERIAL_ECHOPAIR(" " STRINGIFY(A) ":", stepper.triggered_position_mm(A ##_AXIS)); \
_SET_STOP_CHAR(A,C); }while(0)
#define _ENDSTOP_HIT_TEST(A,C) \
if (TEST(endstop_hit_bits, A ##_MIN) || TEST(endstop_hit_bits, A ##_MAX)) \
_ENDSTOP_HIT_ECHO(A,C)
SERIAL_ECHO_START;
SERIAL_ECHOPGM(MSG_ENDSTOPS_HIT);
_ENDSTOP_HIT_TEST(X, 'X');
_ENDSTOP_HIT_TEST(Y, 'Y');
_ENDSTOP_HIT_TEST(Z, 'Z');
#if ENABLED(Z_MIN_PROBE_ENDSTOP)
#define P_AXIS Z_AXIS
if (TEST(endstop_hit_bits, Z_MIN_PROBE)) _ENDSTOP_HIT_ECHO(P, 'P');
#endif
SERIAL_EOL;
#if ENABLED(ULTRA_LCD)
char msg[3 * strlen(MSG_LCD_ENDSTOPS) + 8 + 1]; // Room for a UTF 8 string
sprintf_P(msg, PSTR(MSG_LCD_ENDSTOPS " %c %c %c %c"), chrX, chrY, chrZ, chrP);
lcd_setstatus(msg);
#endif
hit_on_purpose();
#if ENABLED(ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED) && ENABLED(SDSUPPORT)
if (stepper.abort_on_endstop_hit) {
card.sdprinting = false;
card.closefile();
quickstop_stepper();
thermalManager.disable_all_heaters(); // switch off all heaters.
}
#endif
}
} // Endstops::report_state
void Endstops::M119() {
SERIAL_PROTOCOLLNPGM(MSG_M119_REPORT);
#if HAS_X_MIN
SERIAL_PROTOCOLPGM(MSG_X_MIN);
SERIAL_PROTOCOLLN(((READ(X_MIN_PIN)^X_MIN_ENDSTOP_INVERTING) ? MSG_ENDSTOP_HIT : MSG_ENDSTOP_OPEN));
#endif
#if HAS_X_MAX
SERIAL_PROTOCOLPGM(MSG_X_MAX);
SERIAL_PROTOCOLLN(((READ(X_MAX_PIN)^X_MAX_ENDSTOP_INVERTING) ? MSG_ENDSTOP_HIT : MSG_ENDSTOP_OPEN));
#endif
#if HAS_Y_MIN
SERIAL_PROTOCOLPGM(MSG_Y_MIN);
SERIAL_PROTOCOLLN(((READ(Y_MIN_PIN)^Y_MIN_ENDSTOP_INVERTING) ? MSG_ENDSTOP_HIT : MSG_ENDSTOP_OPEN));
#endif
#if HAS_Y_MAX
SERIAL_PROTOCOLPGM(MSG_Y_MAX);
SERIAL_PROTOCOLLN(((READ(Y_MAX_PIN)^Y_MAX_ENDSTOP_INVERTING) ? MSG_ENDSTOP_HIT : MSG_ENDSTOP_OPEN));
#endif
#if HAS_Z_MIN
SERIAL_PROTOCOLPGM(MSG_Z_MIN);
SERIAL_PROTOCOLLN(((READ(Z_MIN_PIN)^Z_MIN_ENDSTOP_INVERTING) ? MSG_ENDSTOP_HIT : MSG_ENDSTOP_OPEN));
#endif
#if HAS_Z_MAX
SERIAL_PROTOCOLPGM(MSG_Z_MAX);
SERIAL_PROTOCOLLN(((READ(Z_MAX_PIN)^Z_MAX_ENDSTOP_INVERTING) ? MSG_ENDSTOP_HIT : MSG_ENDSTOP_OPEN));
#endif
#if HAS_Z2_MAX
SERIAL_PROTOCOLPGM(MSG_Z2_MAX);
SERIAL_PROTOCOLLN(((READ(Z2_MAX_PIN)^Z2_MAX_ENDSTOP_INVERTING) ? MSG_ENDSTOP_HIT : MSG_ENDSTOP_OPEN));
#endif
#if HAS_Z_MIN_PROBE_PIN
SERIAL_PROTOCOLPGM(MSG_Z_PROBE);
SERIAL_PROTOCOLLN(((READ(Z_MIN_PROBE_PIN)^Z_MIN_PROBE_ENDSTOP_INVERTING) ? MSG_ENDSTOP_HIT : MSG_ENDSTOP_OPEN));
#endif
} // Endstops::M119
#if ENABLED(Z_DUAL_ENDSTOPS)
// Pass the result of the endstop test
void Endstops::test_dual_z_endstops(EndstopEnum es1, EndstopEnum es2) {
byte z_test = TEST_ENDSTOP(es1) | (TEST_ENDSTOP(es2) << 1); // bit 0 for Z, bit 1 for Z2
if (stepper.current_block->steps[Z_AXIS] > 0) {
stepper.endstop_triggered(Z_AXIS);
SBI(endstop_hit_bits, Z_MIN);
if (!stepper.performing_homing || (z_test == 0x3)) //if not performing home or if both endstops were trigged during homing...
stepper.kill_current_block();
}
}
#endif
// Check endstops - Called from ISR!
void Endstops::update() {
#define _ENDSTOP_PIN(AXIS, MINMAX) AXIS ##_## MINMAX ##_PIN
#define _ENDSTOP_INVERTING(AXIS, MINMAX) AXIS ##_## MINMAX ##_ENDSTOP_INVERTING
#define _ENDSTOP_HIT(AXIS) SBI(endstop_hit_bits, _ENDSTOP(AXIS, MIN))
#define _ENDSTOP(AXIS, MINMAX) AXIS ##_## MINMAX
// UPDATE_ENDSTOP_BIT: set the current endstop bits for an endstop to its status
#define UPDATE_ENDSTOP_BIT(AXIS, MINMAX) SET_BIT(current_endstop_bits, _ENDSTOP(AXIS, MINMAX), (READ(_ENDSTOP_PIN(AXIS, MINMAX)) != _ENDSTOP_INVERTING(AXIS, MINMAX)))
// COPY_BIT: copy the value of COPY_BIT to BIT in bits
#define COPY_BIT(bits, COPY_BIT, BIT) SET_BIT(bits, BIT, TEST(bits, COPY_BIT))
#define UPDATE_ENDSTOP(AXIS,MINMAX) do { \
UPDATE_ENDSTOP_BIT(AXIS, MINMAX); \
if (TEST_ENDSTOP(_ENDSTOP(AXIS, MINMAX)) && stepper.current_block->steps[_AXIS(AXIS)] > 0) { \
_ENDSTOP_HIT(AXIS); \
stepper.endstop_triggered(_AXIS(AXIS)); \
} \
} while(0)
#if ENABLED(COREXY) || ENABLED(COREXZ)
// Head direction in -X axis for CoreXY and CoreXZ bots.
// If DeltaA == -DeltaB, the movement is only in Y or Z axis
if ((stepper.current_block->steps[CORE_AXIS_1] != stepper.current_block->steps[CORE_AXIS_2]) || (stepper.motor_direction(CORE_AXIS_1) == stepper.motor_direction(CORE_AXIS_2))) {
if (stepper.motor_direction(X_HEAD))
#else
if (stepper.motor_direction(X_AXIS)) // stepping along -X axis (regular Cartesian bot)
#endif
{ // -direction
#if ENABLED(DUAL_X_CARRIAGE)
// with 2 x-carriages, endstops are only checked in the homing direction for the active extruder
if ((stepper.current_block->active_extruder == 0 && X_HOME_DIR == -1) || (stepper.current_block->active_extruder != 0 && X2_HOME_DIR == -1))
#endif
{
#if HAS_X_MIN
UPDATE_ENDSTOP(X, MIN);
#endif
}
}
else { // +direction
#if ENABLED(DUAL_X_CARRIAGE)
// with 2 x-carriages, endstops are only checked in the homing direction for the active extruder
if ((stepper.current_block->active_extruder == 0 && X_HOME_DIR == 1) || (stepper.current_block->active_extruder != 0 && X2_HOME_DIR == 1))
#endif
{
#if HAS_X_MAX
UPDATE_ENDSTOP(X, MAX);
#endif
}
}
#if ENABLED(COREXY) || ENABLED(COREXZ)
}
#endif
#if ENABLED(COREXY) || ENABLED(COREYZ)
// Head direction in -Y axis for CoreXY / CoreYZ bots.
// If DeltaA == DeltaB, the movement is only in X or Y axis
if ((stepper.current_block->steps[CORE_AXIS_1] != stepper.current_block->steps[CORE_AXIS_2]) || (stepper.motor_direction(CORE_AXIS_1) != stepper.motor_direction(CORE_AXIS_2))) {
if (stepper.motor_direction(Y_HEAD))
#else
if (stepper.motor_direction(Y_AXIS)) // -direction
#endif
{ // -direction
#if HAS_Y_MIN
UPDATE_ENDSTOP(Y, MIN);
#endif
}
else { // +direction
#if HAS_Y_MAX
UPDATE_ENDSTOP(Y, MAX);
#endif
}
#if ENABLED(COREXY) || ENABLED(COREYZ)
}
#endif
#if ENABLED(COREXZ) || ENABLED(COREYZ)
// Head direction in -Z axis for CoreXZ or CoreYZ bots.
// If DeltaA == DeltaB, the movement is only in X or Y axis
if ((stepper.current_block->steps[CORE_AXIS_1] != stepper.current_block->steps[CORE_AXIS_2]) || (stepper.motor_direction(CORE_AXIS_1) != stepper.motor_direction(CORE_AXIS_2))) {
if (stepper.motor_direction(Z_HEAD))
#else
if (stepper.motor_direction(Z_AXIS))
#endif
{ // z -direction
#if HAS_Z_MIN
#if ENABLED(Z_DUAL_ENDSTOPS)
UPDATE_ENDSTOP_BIT(Z, MIN);
#if HAS_Z2_MIN
UPDATE_ENDSTOP_BIT(Z2, MIN);
#else
COPY_BIT(current_endstop_bits, Z_MIN, Z2_MIN);
#endif
test_dual_z_endstops(Z_MIN, Z2_MIN);
#else // !Z_DUAL_ENDSTOPS
#if HAS_BED_PROBE && ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN)
if (z_probe_enabled) UPDATE_ENDSTOP(Z, MIN);
#else
UPDATE_ENDSTOP(Z, MIN);
#endif
#endif // !Z_DUAL_ENDSTOPS
#endif // HAS_Z_MIN
#if HAS_BED_PROBE && ENABLED(Z_MIN_PROBE_ENDSTOP) && DISABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN)
if (z_probe_enabled) {
UPDATE_ENDSTOP(Z, MIN_PROBE);
if (TEST_ENDSTOP(Z_MIN_PROBE)) SBI(endstop_hit_bits, Z_MIN_PROBE);
}
#endif
}
else { // z +direction
#if HAS_Z_MAX
#if ENABLED(Z_DUAL_ENDSTOPS)
UPDATE_ENDSTOP_BIT(Z, MAX);
#if HAS_Z2_MAX
UPDATE_ENDSTOP_BIT(Z2, MAX);
#else
COPY_BIT(current_endstop_bits, Z_MAX, Z2_MAX);
#endif
test_dual_z_endstops(Z_MAX, Z2_MAX);
#else // !Z_DUAL_ENDSTOPS
UPDATE_ENDSTOP(Z, MAX);
#endif // !Z_DUAL_ENDSTOPS
#endif // Z_MAX_PIN
}
#if ENABLED(COREXZ)
}
#endif
old_endstop_bits = current_endstop_bits;
} // Endstops::update()
-95
View File
@@ -1,95 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
* endstops.h - manages endstops
*/
#ifndef ENDSTOPS_H
#define ENDSTOPS_H
#include "enum.h"
class Endstops {
public:
static bool enabled, enabled_globally;
static volatile char endstop_hit_bits; // use X_MIN, Y_MIN, Z_MIN and Z_MIN_PROBE as BIT value
#if ENABLED(Z_DUAL_ENDSTOPS)
static uint16_t
#else
static byte
#endif
current_endstop_bits, old_endstop_bits;
Endstops() {};
/**
* Initialize the endstop pins
*/
void init();
/**
* Update the endstops bits from the pins
*/
static void update();
/**
* Print an error message reporting the position when the endstops were last hit.
*/
static void report_state(); //call from somewhere to create an serial error message with the locations the endstops where hit, in case they were triggered
/**
* Report endstop positions in response to M119
*/
static void M119();
// Enable / disable endstop checking globally
static void enable_globally(bool onoff=true) { enabled_globally = enabled = onoff; }
// Enable / disable endstop checking
static void enable(bool onoff=true) { enabled = onoff; }
// Disable / Enable endstops based on ENSTOPS_ONLY_FOR_HOMING and global enable
static void not_homing() { enabled = enabled_globally; }
// Clear endstops (i.e., they were hit intentionally) to suppress the report
static void hit_on_purpose() { endstop_hit_bits = 0; }
// Enable / disable endstop z-probe checking
#if HAS_BED_PROBE
static volatile bool z_probe_enabled;
static void enable_z_probe(bool onoff=true) { z_probe_enabled = onoff; }
#endif
private:
#if ENABLED(Z_DUAL_ENDSTOPS)
static void test_dual_z_endstops(EndstopEnum es1, EndstopEnum es2);
#endif
};
extern Endstops endstops;
#endif // ENDSTOPS_H
-193
View File
@@ -1,193 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
#ifndef __ENUM_H__
#define __ENUM_H__
/**
* Axis indices as enumerated constants
*
* Special axis:
* - A_AXIS and B_AXIS are used by COREXY printers
* - X_HEAD and Y_HEAD is used for systems that don't have a 1:1 relationship
* between X_AXIS and X Head movement, like CoreXY bots
*/
enum AxisEnum {
NO_AXIS = -1,
X_AXIS = 0,
A_AXIS = 0,
Y_AXIS = 1,
B_AXIS = 1,
Z_AXIS = 2,
C_AXIS = 2,
E_AXIS = 3,
X_HEAD = 4,
Y_HEAD = 5,
Z_HEAD = 6
};
#define LOOP_XYZ(VAR) for (uint8_t VAR=X_AXIS; VAR<=Z_AXIS; VAR++)
#define LOOP_XYZE(VAR) for (uint8_t VAR=X_AXIS; VAR<=E_AXIS; VAR++)
typedef enum {
LINEARUNIT_MM,
LINEARUNIT_INCH
} LinearUnit;
typedef enum {
TEMPUNIT_C,
TEMPUNIT_K,
TEMPUNIT_F
} TempUnit;
/**
* Debug flags
* Not yet widely applied
*/
enum DebugFlags {
DEBUG_NONE = 0,
DEBUG_ECHO = _BV(0), ///< Echo commands in order as they are processed
DEBUG_INFO = _BV(1), ///< Print messages for code that has debug output
DEBUG_ERRORS = _BV(2), ///< Not implemented
DEBUG_DRYRUN = _BV(3), ///< Ignore temperature setting and E movement commands
DEBUG_COMMUNICATION = _BV(4), ///< Not implemented
DEBUG_LEVELING = _BV(5) ///< Print detailed output for homing and leveling
};
enum EndstopEnum {
X_MIN,
Y_MIN,
Z_MIN,
Z_MIN_PROBE,
X_MAX,
Y_MAX,
Z_MAX,
Z2_MIN,
Z2_MAX
};
/**
* Temperature
* Stages in the ISR loop
*/
enum TempState {
PrepareTemp_0,
MeasureTemp_0,
PrepareTemp_BED,
MeasureTemp_BED,
PrepareTemp_1,
MeasureTemp_1,
PrepareTemp_2,
MeasureTemp_2,
PrepareTemp_3,
MeasureTemp_3,
Prepare_FILWIDTH,
Measure_FILWIDTH,
StartupDelay // Startup, delay initial temp reading a tiny bit so the hardware can settle
};
#if ENABLED(EMERGENCY_PARSER)
enum e_parser_state {
state_RESET,
state_N,
state_M,
state_M1,
state_M10,
state_M108,
state_M11,
state_M112,
state_M4,
state_M41,
state_M410,
state_IGNORE // to '\n'
};
#endif
#if ENABLED(FILAMENT_CHANGE_FEATURE)
enum FilamentChangeMenuResponse {
FILAMENT_CHANGE_RESPONSE_WAIT_FOR,
FILAMENT_CHANGE_RESPONSE_EXTRUDE_MORE,
FILAMENT_CHANGE_RESPONSE_RESUME_PRINT
};
#if ENABLED(ULTIPANEL)
enum FilamentChangeMessage {
FILAMENT_CHANGE_MESSAGE_INIT,
FILAMENT_CHANGE_MESSAGE_UNLOAD,
FILAMENT_CHANGE_MESSAGE_INSERT,
FILAMENT_CHANGE_MESSAGE_LOAD,
FILAMENT_CHANGE_MESSAGE_EXTRUDE,
FILAMENT_CHANGE_MESSAGE_OPTION,
FILAMENT_CHANGE_MESSAGE_RESUME,
FILAMENT_CHANGE_MESSAGE_STATUS
};
#endif
#endif
/**
* States for managing Marlin and host communication
* Marlin sends messages if blocked or busy
*/
#if ENABLED(HOST_KEEPALIVE_FEATURE)
enum MarlinBusyState {
NOT_BUSY, // Not in a handler
IN_HANDLER, // Processing a GCode
IN_PROCESS, // Known to be blocking command input (as in G29)
PAUSED_FOR_USER, // Blocking pending any input
PAUSED_FOR_INPUT // Blocking pending text input (concept)
};
#endif
#if ENABLED(MESH_BED_LEVELING)
enum MeshLevelingState {
MeshReport,
MeshStart,
MeshNext,
MeshSet,
MeshSetZOffset,
MeshReset
};
enum MBLStatus {
MBL_STATUS_NONE = 0,
MBL_STATUS_HAS_MESH_BIT = 0,
MBL_STATUS_ACTIVE_BIT = 1
};
#endif
/**
* SD Card
*/
enum LsAction { LS_SerialPrint, LS_Count, LS_GetFilename };
/**
* Ultra LCD
*/
enum LCDViewAction {
LCDVIEW_NONE,
LCDVIEW_REDRAW_NOW,
LCDVIEW_CALL_REDRAW_NEXT,
LCDVIEW_CLEAR_CALL_REDRAW,
LCDVIEW_CALL_NO_REDRAW
};
#endif // __ENUM_H__
File diff suppressed because it is too large Load Diff
@@ -1,799 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
* Configuration_adv.h
*
* Advanced settings.
* Only change these if you know exactly what you're doing.
* Some of these settings can damage your printer if improperly set!
*
* Basic settings can be found in Configuration.h
*
*/
#ifndef CONFIGURATION_ADV_H
#define CONFIGURATION_ADV_H
/**
*
* ***********************************
* ** ATTENTION TO ALL DEVELOPERS **
* ***********************************
*
* You must increment this version number for every significant change such as,
* but not limited to: ADD, DELETE RENAME OR REPURPOSE any directive/option.
*
* Note: Update also Version.h !
*/
#define CONFIGURATION_ADV_H_VERSION 010100
// @section temperature
//===========================================================================
//=============================Thermal Settings ============================
//===========================================================================
#if DISABLED(PIDTEMPBED)
#define BED_CHECK_INTERVAL 5000 // ms between checks in bang-bang control
#if ENABLED(BED_LIMIT_SWITCHING)
#define BED_HYSTERESIS 2 // Only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
#endif
#endif
/**
* Thermal Protection protects your printer from damage and fire if a
* thermistor falls out or temperature sensors fail in any way.
*
* The issue: If a thermistor falls out or a temperature sensor fails,
* Marlin can no longer sense the actual temperature. Since a disconnected
* thermistor reads as a low temperature, the firmware will keep the heater on.
*
* The solution: Once the temperature reaches the target, start observing.
* If the temperature stays too far below the target (hysteresis) for too long (period),
* the firmware will halt the machine as a safety precaution.
*
* If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
*/
#if ENABLED(THERMAL_PROTECTION_HOTENDS)
#define THERMAL_PROTECTION_PERIOD 40 // Seconds
#define THERMAL_PROTECTION_HYSTERESIS 4 // Degrees Celsius
/**
* Whenever an M104 or M109 increases the target temperature the firmware will wait for the
* WATCH_TEMP_PERIOD to expire, and if the temperature hasn't increased by WATCH_TEMP_INCREASE
* degrees, the machine is halted, requiring a hard reset. This test restarts with any M104/M109,
* but only if the current temperature is far enough below the target for a reliable test.
*
* If you get false positives for "Heating failed" increase WATCH_TEMP_PERIOD and/or decrease WATCH_TEMP_INCREASE
* WATCH_TEMP_INCREASE should not be below 2.
*/
#define WATCH_TEMP_PERIOD 20 // Seconds
#define WATCH_TEMP_INCREASE 2 // Degrees Celsius
#endif
/**
* Thermal Protection parameters for the bed are just as above for hotends.
*/
#if ENABLED(THERMAL_PROTECTION_BED)
#define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds
#define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius
/**
* Whenever an M140 or M190 increases the target temperature the firmware will wait for the
* WATCH_BED_TEMP_PERIOD to expire, and if the temperature hasn't increased by WATCH_BED_TEMP_INCREASE
* degrees, the machine is halted, requiring a hard reset. This test restarts with any M140/M190,
* but only if the current temperature is far enough below the target for a reliable test.
*
* If you get too many "Heating failed" errors, increase WATCH_BED_TEMP_PERIOD and/or decrease
* WATCH_BED_TEMP_INCREASE. (WATCH_BED_TEMP_INCREASE should not be below 2.)
*/
#define WATCH_BED_TEMP_PERIOD 60 // Seconds
#define WATCH_BED_TEMP_INCREASE 2 // Degrees Celsius
#endif
#if ENABLED(PIDTEMP)
// this adds an experimental additional term to the heating power, proportional to the extrusion speed.
// if Kc is chosen well, the additional required power due to increased melting should be compensated.
//#define PID_EXTRUSION_SCALING
#if ENABLED(PID_EXTRUSION_SCALING)
#define DEFAULT_Kc (100) //heating power=Kc*(e_speed)
#define LPQ_MAX_LEN 50
#endif
#endif
/**
* Automatic Temperature:
* The hotend target temperature is calculated by all the buffered lines of gcode.
* The maximum buffered steps/sec of the extruder motor is called "se".
* Start autotemp mode with M109 S<mintemp> B<maxtemp> F<factor>
* The target temperature is set to mintemp+factor*se[steps/sec] and is limited by
* mintemp and maxtemp. Turn this off by executing M109 without F*
* Also, if the temperature is set to a value below mintemp, it will not be changed by autotemp.
* On an Ultimaker, some initial testing worked with M109 S215 B260 F1 in the start.gcode
*/
#define AUTOTEMP
#if ENABLED(AUTOTEMP)
#define AUTOTEMP_OLDWEIGHT 0.98
#endif
//Show Temperature ADC value
//The M105 command return, besides traditional information, the ADC value read from temperature sensors.
//#define SHOW_TEMP_ADC_VALUES
/**
* High Temperature Thermistor Support
*
* Thermistors able to support high temperature tend to have a hard time getting
* good readings at room and lower temperatures. This means HEATER_X_RAW_LO_TEMP
* will probably be caught when the heating element first turns on during the
* preheating process, which will trigger a min_temp_error as a safety measure
* and force stop everything.
* To circumvent this limitation, we allow for a preheat time (during which,
* min_temp_error won't be triggered) and add a min_temp buffer to handle
* aberrant readings.
*
* If you want to enable this feature for your hotend thermistor(s)
* uncomment and set values > 0 in the constants below
*/
// The number of consecutive low temperature errors that can occur
// before a min_temp_error is triggered. (Shouldn't be more than 10.)
//#define MAX_CONSECUTIVE_LOW_TEMPERATURE_ERROR_ALLOWED 0
// The number of milliseconds a hotend will preheat before starting to check
// the temperature. This value should NOT be set to the time it takes the
// hot end to reach the target temperature, but the time it takes to reach
// the minimum temperature your thermistor can read. The lower the better/safer.
// This shouldn't need to be more than 30 seconds (30000)
//#define MILLISECONDS_PREHEAT_TIME 0
// @section extruder
// extruder run-out prevention.
//if the machine is idle, and the temperature over MINTEMP, every couple of SECONDS some filament is extruded
//#define EXTRUDER_RUNOUT_PREVENT
#define EXTRUDER_RUNOUT_MINTEMP 190
#define EXTRUDER_RUNOUT_SECONDS 30
#define EXTRUDER_RUNOUT_ESTEPS 14 // mm filament
#define EXTRUDER_RUNOUT_SPEED 1500 // extrusion speed
#define EXTRUDER_RUNOUT_EXTRUDE 100
// @section temperature
//These defines help to calibrate the AD595 sensor in case you get wrong temperature measurements.
//The measured temperature is defined as "actualTemp = (measuredTemp * TEMP_SENSOR_AD595_GAIN) + TEMP_SENSOR_AD595_OFFSET"
#define TEMP_SENSOR_AD595_OFFSET 3.0
#define TEMP_SENSOR_AD595_GAIN 2.0
//This is for controlling a fan to cool down the stepper drivers
//it will turn on when any driver is enabled
//and turn off after the set amount of seconds from last driver being disabled again
#define CONTROLLERFAN_PIN -1 //Pin used for the fan to cool controller (-1 to disable)
#define CONTROLLERFAN_SECS 60 //How many seconds, after all motors were disabled, the fan should run
#define CONTROLLERFAN_SPEED 255 // == full speed
// When first starting the main fan, run it at full speed for the
// given number of milliseconds. This gets the fan spinning reliably
// before setting a PWM value. (Does not work with software PWM for fan on Sanguinololu)
//#define FAN_KICKSTART_TIME 100
// This defines the minimal speed for the main fan, run in PWM mode
// to enable uncomment and set minimal PWM speed for reliable running (1-255)
// if fan speed is [1 - (FAN_MIN_PWM-1)] it is set to FAN_MIN_PWM
//#define FAN_MIN_PWM 50
// @section extruder
// Extruder cooling fans
// Configure fan pin outputs to automatically turn on/off when the associated
// extruder temperature is above/below EXTRUDER_AUTO_FAN_TEMPERATURE.
// Multiple extruders can be assigned to the same pin in which case
// the fan will turn on when any selected extruder is above the threshold.
#define EXTRUDER_0_AUTO_FAN_PIN 7
#define EXTRUDER_1_AUTO_FAN_PIN 7
#define EXTRUDER_2_AUTO_FAN_PIN -1
#define EXTRUDER_3_AUTO_FAN_PIN -1
#define EXTRUDER_AUTO_FAN_TEMPERATURE 35
#define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed
//===========================================================================
//============================ Mechanical Settings ==========================
//===========================================================================
// @section homing
// If you want endstops to stay on (by default) even when not homing
// enable this option. Override at any time with M120, M121.
//#define ENDSTOPS_ALWAYS_ON_DEFAULT
// @section extras
//#define Z_LATE_ENABLE // Enable Z the last moment. Needed if your Z driver overheats.
// Dual X Steppers
// Uncomment this option to drive two X axis motors.
// The next unused E driver will be assigned to the second X stepper.
//#define X_DUAL_STEPPER_DRIVERS
#if ENABLED(X_DUAL_STEPPER_DRIVERS)
// Set true if the two X motors need to rotate in opposite directions
#define INVERT_X2_VS_X_DIR true
#endif
// Dual Y Steppers
// Uncomment this option to drive two Y axis motors.
// The next unused E driver will be assigned to the second Y stepper.
//#define Y_DUAL_STEPPER_DRIVERS
#if ENABLED(Y_DUAL_STEPPER_DRIVERS)
// Set true if the two Y motors need to rotate in opposite directions
#define INVERT_Y2_VS_Y_DIR true
#endif
// A single Z stepper driver is usually used to drive 2 stepper motors.
// Uncomment this option to use a separate stepper driver for each Z axis motor.
// The next unused E driver will be assigned to the second Z stepper.
//#define Z_DUAL_STEPPER_DRIVERS
#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
// Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
// That way the machine is capable to align the bed during home, since both Z steppers are homed.
// There is also an implementation of M666 (software endstops adjustment) to this feature.
// After Z homing, this adjustment is applied to just one of the steppers in order to align the bed.
// One just need to home the Z axis and measure the distance difference between both Z axis and apply the math: Z adjust = Z - Z2.
// If the Z stepper axis is closer to the bed, the measure Z > Z2 (yes, it is.. think about it) and the Z adjust would be positive.
// Play a little bit with small adjustments (0.5mm) and check the behaviour.
// The M119 (endstops report) will start reporting the Z2 Endstop as well.
//#define Z_DUAL_ENDSTOPS
#if ENABLED(Z_DUAL_ENDSTOPS)
#define Z2_USE_ENDSTOP _XMAX_
#endif
#endif // Z_DUAL_STEPPER_DRIVERS
// Enable this for dual x-carriage printers.
// A dual x-carriage design has the advantage that the inactive extruder can be parked which
// prevents hot-end ooze contaminating the print. It also reduces the weight of each x-carriage
// allowing faster printing speeds. Connect your X2 stepper to the first unused E plug.
//#define DUAL_X_CARRIAGE
#if ENABLED(DUAL_X_CARRIAGE)
// Configuration for second X-carriage
// Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
// the second x-carriage always homes to the maximum endstop.
#define X2_MIN_POS 80 // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
#define X2_MAX_POS 353 // set maximum to the distance between toolheads when both heads are homed
#define X2_HOME_DIR 1 // the second X-carriage always homes to the maximum endstop position
#define X2_HOME_POS X2_MAX_POS // default home position is the maximum carriage position
// However: In this mode the HOTEND_OFFSET_X value for the second extruder provides a software
// override for X2_HOME_POS. This also allow recalibration of the distance between the two endstops
// without modifying the firmware (through the "M218 T1 X???" command).
// Remember: you should set the second extruder x-offset to 0 in your slicer.
// There are a few selectable movement modes for dual x-carriages using M605 S<mode>
// Mode 0: Full control. The slicer has full control over both x-carriages and can achieve optimal travel results
// as long as it supports dual x-carriages. (M605 S0)
// Mode 1: Auto-park mode. The firmware will automatically park and unpark the x-carriages on tool changes so
// that additional slicer support is not required. (M605 S1)
// Mode 2: Duplication mode. The firmware will transparently make the second x-carriage and extruder copy all
// actions of the first x-carriage. This allows the printer to print 2 arbitrary items at
// once. (2nd extruder x offset and temp offset are set using: M605 S2 [Xnnn] [Rmmm])
// This is the default power-up mode which can be later using M605.
#define DEFAULT_DUAL_X_CARRIAGE_MODE 0
// Default settings in "Auto-park Mode"
#define TOOLCHANGE_PARK_ZLIFT 0.2 // the distance to raise Z axis when parking an extruder
#define TOOLCHANGE_UNPARK_ZLIFT 1 // the distance to raise Z axis when unparking an extruder
// Default x offset in duplication mode (typically set to half print bed width)
#define DEFAULT_DUPLICATION_X_OFFSET 100
#endif //DUAL_X_CARRIAGE
// @section homing
//homing hits the endstop, then retracts by this distance, before it tries to slowly bump again:
#define X_HOME_BUMP_MM 5
#define Y_HOME_BUMP_MM 5
#define Z_HOME_BUMP_MM 2
#define HOMING_BUMP_DIVISOR {2, 2, 4} // Re-Bump Speed Divisor (Divides the Homing Feedrate)
//#define QUICK_HOME //if this is defined, if both x and y are to be homed, a diagonal move will be performed initially.
// When G28 is called, this option will make Y home before X
#define HOME_Y_BEFORE_X
// @section machine
#define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder
//#define DUAL_NOZZLE_DUPLICATION_MODE
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false
#define INVERT_Y_STEP_PIN false
#define INVERT_Z_STEP_PIN false
#define INVERT_E_STEP_PIN false
// Default stepper release if idle. Set to 0 to deactivate.
// Steppers will shut down DEFAULT_STEPPER_DEACTIVE_TIME seconds after the last move when DISABLE_INACTIVE_? is true.
// Time can be set by M18 and M84.
#define DEFAULT_STEPPER_DEACTIVE_TIME 120
#define DISABLE_INACTIVE_X true
#define DISABLE_INACTIVE_Y true
#define DISABLE_INACTIVE_Z true // set to false if the nozzle will fall down on your printed part when print has finished.
#define DISABLE_INACTIVE_E true
#define DEFAULT_MINIMUMFEEDRATE 0.0 // minimum feedrate
#define DEFAULT_MINTRAVELFEEDRATE 0.0
// @section lcd
#if ENABLED(ULTIPANEL)
#define MANUAL_FEEDRATE {50*60, 50*60, 4*60, 60} // Feedrates for manual moves along X, Y, Z, E from panel
#define ULTIPANEL_FEEDMULTIPLY // Comment to disable setting feedrate multiplier via encoder
#endif
// @section extras
// minimum time in microseconds that a movement needs to take if the buffer is emptied.
#define DEFAULT_MINSEGMENTTIME 20000
// If defined the movements slow down when the look ahead buffer is only half full
#define SLOWDOWN
// Frequency limit
// See nophead's blog for more info
// Not working O
//#define XY_FREQUENCY_LIMIT 15
// Minimum planner junction speed. Sets the default minimum speed the planner plans for at the end
// of the buffer and all stops. This should not be much greater than zero and should only be changed
// if unwanted behavior is observed on a user's machine when running at very slow speeds.
#define MINIMUM_PLANNER_SPEED 0.05// (mm/sec)
// Microstep setting (Only functional when stepper driver microstep pins are connected to MCU.
#define MICROSTEP_MODES {16,16,16,16,16} // [1,2,4,8,16]
// Motor Current setting (Only functional when motor driver current ref pins are connected to a digital trimpot on supported boards)
#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
// Motor Current controlled via PWM (Overridable on supported boards with PWM-driven motor driver current)
//#define PWM_MOTOR_CURRENT {1300, 1300, 1250} // Values in milliamps
// uncomment to enable an I2C based DIGIPOT like on the Azteeg X3 Pro
//#define DIGIPOT_I2C
// Number of channels available for I2C digipot, For Azteeg X3 Pro we have 8
#define DIGIPOT_I2C_NUM_CHANNELS 8
// actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
#define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0}
//===========================================================================
//=============================Additional Features===========================
//===========================================================================
#define ENCODER_RATE_MULTIPLIER // If defined, certain menu edit operations automatically multiply the steps when the encoder is moved quickly
#define ENCODER_10X_STEPS_PER_SEC 75 // If the encoder steps per sec exceeds this value, multiply steps moved x10 to quickly advance the value
#define ENCODER_100X_STEPS_PER_SEC 160 // If the encoder steps per sec exceeds this value, multiply steps moved x100 to really quickly advance the value
//#define CHDK 4 //Pin for triggering CHDK to take a picture see how to use it here http://captain-slow.dk/2014/03/09/3d-printing-timelapses/
#define CHDK_DELAY 50 //How long in ms the pin should stay HIGH before going LOW again
// @section lcd
// Include a page of printer information in the LCD Main Menu
//#define LCD_INFO_MENU
#if ENABLED(SDSUPPORT)
// Some RAMPS and other boards don't detect when an SD card is inserted. You can work
// around this by connecting a push button or single throw switch to the pin defined
// as SD_DETECT_PIN in your board's pins definitions.
// This setting should be disabled unless you are using a push button, pulling the pin to ground.
// Note: This is always disabled for ULTIPANEL (except ELB_FULL_GRAPHIC_CONTROLLER).
#define SD_DETECT_INVERTED
#define SD_FINISHED_STEPPERRELEASE true //if sd support and the file is finished: disable steppers?
#define SD_FINISHED_RELEASECOMMAND "M84 X Y Z E" // You might want to keep the z enabled so your bed stays in place.
#define SDCARD_RATHERRECENTFIRST //reverse file order of sd card menu display. Its sorted practically after the file system block order.
// if a file is deleted, it frees a block. hence, the order is not purely chronological. To still have auto0.g accessible, there is again the option to do that.
// using:
//#define MENU_ADDAUTOSTART
// Show a progress bar on HD44780 LCDs for SD printing
//#define LCD_PROGRESS_BAR
#if ENABLED(LCD_PROGRESS_BAR)
// Amount of time (ms) to show the bar
#define PROGRESS_BAR_BAR_TIME 2000
// Amount of time (ms) to show the status message
#define PROGRESS_BAR_MSG_TIME 3000
// Amount of time (ms) to retain the status message (0=forever)
#define PROGRESS_MSG_EXPIRE 0
// Enable this to show messages for MSG_TIME then hide them
//#define PROGRESS_MSG_ONCE
#endif
// This allows hosts to request long names for files and folders with M33
//#define LONG_FILENAME_HOST_SUPPORT
// This option allows you to abort SD printing when any endstop is triggered.
// This feature must be enabled with "M540 S1" or from the LCD menu.
// To have any effect, endstops must be enabled during SD printing.
//#define ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED
#endif // SDSUPPORT
// for dogm lcd displays you can choose some additional fonts:
#if ENABLED(DOGLCD)
// save 3120 bytes of PROGMEM by commenting out #define USE_BIG_EDIT_FONT
// we don't have a big font for Cyrillic, Kana
//#define USE_BIG_EDIT_FONT
// If you have spare 2300Byte of progmem and want to use a
// smaller font on the Info-screen uncomment the next line.
//#define USE_SMALL_INFOFONT
#endif // DOGLCD
// @section safety
// The hardware watchdog should reset the microcontroller disabling all outputs,
// in case the firmware gets stuck and doesn't do temperature regulation.
#define USE_WATCHDOG
#if ENABLED(USE_WATCHDOG)
// If you have a watchdog reboot in an ArduinoMega2560 then the device will hang forever, as a watchdog reset will leave the watchdog on.
// The "WATCHDOG_RESET_MANUAL" goes around this by not using the hardware reset.
// However, THIS FEATURE IS UNSAFE!, as it will only work if interrupts are disabled. And the code could hang in an interrupt routine with interrupts disabled.
//#define WATCHDOG_RESET_MANUAL
#endif
// @section lcd
// Babystepping enables the user to control the axis in tiny amounts, independently from the normal printing process
// it can e.g. be used to change z-positions in the print startup phase in real-time
// does not respect endstops!
//#define BABYSTEPPING
#if ENABLED(BABYSTEPPING)
#define BABYSTEP_XY //not only z, but also XY in the menu. more clutter, more functions
//not implemented for deltabots!
#define BABYSTEP_INVERT_Z false //true for inverse movements in Z
#define BABYSTEP_MULTIPLICATOR 1 //faster movements
#endif
// @section extruder
// extruder advance constant (s2/mm3)
//
// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
//
// Hooke's law says: force = k * distance
// Bernoulli's principle says: v ^ 2 / 2 + g . h + pressure / density = constant
// so: v ^ 2 is proportional to number of steps we advance the extruder
//#define ADVANCE
#if ENABLED(ADVANCE)
#define EXTRUDER_ADVANCE_K .0
#define D_FILAMENT 2.85
#endif
// Implementation of a linear pressure control
// Assumption: advance = k * (delta velocity)
// K=0 means advance disabled. A good value for a gregs wade extruder will be around K=75
//#define LIN_ADVANCE
#if ENABLED(LIN_ADVANCE)
#define LIN_ADVANCE_K 75
#endif
// @section leveling
// Default mesh area is an area with an inset margin on the print area.
// Below are the macros that are used to define the borders for the mesh area,
// made available here for specialized needs, ie dual extruder setup.
#if ENABLED(MESH_BED_LEVELING)
#define MESH_MIN_X (X_MIN_POS + MESH_INSET)
#define MESH_MAX_X (X_MAX_POS - (MESH_INSET))
#define MESH_MIN_Y (Y_MIN_POS + MESH_INSET)
#define MESH_MAX_Y (Y_MAX_POS - (MESH_INSET))
#endif
// @section extras
// Arc interpretation settings:
#define ARC_SUPPORT // Disabling this saves ~2738 bytes
#define MM_PER_ARC_SEGMENT 1
#define N_ARC_CORRECTION 25
// Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
//#define BEZIER_CURVE_SUPPORT
const unsigned int dropsegments = 5; //everything with less than this number of steps will be ignored as move and joined with the next movement
// @section temperature
// Control heater 0 and heater 1 in parallel.
//#define HEATERS_PARALLEL
//===========================================================================
//================================= Buffers =================================
//===========================================================================
// @section hidden
// The number of linear motions that can be in the plan at any give time.
// THE BLOCK_BUFFER_SIZE NEEDS TO BE A POWER OF 2, i.g. 8,16,32 because shifts and ors are used to do the ring-buffering.
#if ENABLED(SDSUPPORT)
#define BLOCK_BUFFER_SIZE 16 // SD,LCD,Buttons take more memory, block buffer needs to be smaller
#else
#define BLOCK_BUFFER_SIZE 16 // maximize block buffer
#endif
// @section serial
// The ASCII buffer for serial input
#define MAX_CMD_SIZE 96
#define BUFSIZE 4
// Transfer Buffer Size
// To save 386 bytes of PROGMEM (and TX_BUFFER_SIZE+3 bytes of RAM) set to 0.
// To buffer a simple "ok" you need 4 bytes.
// For ADVANCED_OK (M105) you need 32 bytes.
// For debug-echo: 128 bytes for the optimal speed.
// Other output doesn't need to be that speedy.
// :[0,2,4,8,16,32,64,128,256]
#define TX_BUFFER_SIZE 0
// Enable an emergency-command parser to intercept certain commands as they
// enter the serial receive buffer, so they cannot be blocked.
// Currently handles M108, M112, M410
// Does not work on boards using AT90USB (USBCON) processors!
//#define EMERGENCY_PARSER
// Bad Serial-connections can miss a received command by sending an 'ok'
// Therefore some clients abort after 30 seconds in a timeout.
// Some other clients start sending commands while receiving a 'wait'.
// This "wait" is only sent when the buffer is empty. 1 second is a good value here.
//#define NO_TIMEOUTS 1000 // Milliseconds
// Some clients will have this feature soon. This could make the NO_TIMEOUTS unnecessary.
//#define ADVANCED_OK
// @section fwretract
// Firmware based and LCD controlled retract
// M207 and M208 can be used to define parameters for the retraction.
// The retraction can be called by the slicer using G10 and G11
// until then, intended retractions can be detected by moves that only extrude and the direction.
// the moves are than replaced by the firmware controlled ones.
//#define FWRETRACT //ONLY PARTIALLY TESTED
#if ENABLED(FWRETRACT)
#define MIN_RETRACT 0.1 //minimum extruded mm to accept a automatic gcode retraction attempt
#define RETRACT_LENGTH 3 //default retract length (positive mm)
#define RETRACT_LENGTH_SWAP 13 //default swap retract length (positive mm), for extruder change
#define RETRACT_FEEDRATE 45 //default feedrate for retracting (mm/s)
#define RETRACT_ZLIFT 0 //default retract Z-lift
#define RETRACT_RECOVER_LENGTH 0 //default additional recover length (mm, added to retract length when recovering)
#define RETRACT_RECOVER_LENGTH_SWAP 0 //default additional swap recover length (mm, added to retract length when recovering from extruder change)
#define RETRACT_RECOVER_FEEDRATE 8 //default feedrate for recovering from retraction (mm/s)
#endif
// Add support for experimental filament exchange support M600; requires display
#if ENABLED(ULTIPANEL)
// #define FILAMENT_CHANGE_FEATURE // Enable filament exchange menu and M600 g-code (used for runout sensor too)
#if ENABLED(FILAMENT_CHANGE_FEATURE)
#define FILAMENT_CHANGE_X_POS 30 // X position of hotend
#define FILAMENT_CHANGE_Y_POS 10 // Y position of hotend
#define FILAMENT_CHANGE_Z_ADD 10 // Z addition of hotend (lift)
#define FILAMENT_CHANGE_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
#define FILAMENT_CHANGE_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
#define FILAMENT_CHANGE_RETRACT_LENGTH 1 // Initial retract in mm
// It is a short retract used immediately after print interrupt before move to filament exchange position
#define FILAMENT_CHANGE_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
//#define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm
// Longer length for bowden printers to unload filament from whole bowden tube,
// shorter lenght for printers without bowden to unload filament from extruder only,
// 0 to disable unloading for manual unloading
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast
#define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm
// Longer length for bowden printers to fast load filament into whole bowden tube over the hotend,
// Short or zero length for printers without bowden where loading is not used
#define FILAMENT_CHANGE_LOAD_FEEDRATE 10 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast
#define FILAMENT_CHANGE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is load over the hotend,
// 0 to disable for manual extrusion
// Filament can be extruded repeatedly from the filament exchange menu to fill the hotend,
// or until outcoming filament color is not clear for filament color change
#define FILAMENT_CHANGE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
#endif
#endif
/******************************************************************************\
* enable this section if you have TMC26X motor drivers.
* you need to import the TMC26XStepper library into the Arduino IDE for this
******************************************************************************/
// @section tmc
//#define HAVE_TMCDRIVER
#if ENABLED(HAVE_TMCDRIVER)
//#define X_IS_TMC
#define X_MAX_CURRENT 1000 //in mA
#define X_SENSE_RESISTOR 91 //in mOhms
#define X_MICROSTEPS 16 //number of microsteps
//#define X2_IS_TMC
#define X2_MAX_CURRENT 1000 //in mA
#define X2_SENSE_RESISTOR 91 //in mOhms
#define X2_MICROSTEPS 16 //number of microsteps
//#define Y_IS_TMC
#define Y_MAX_CURRENT 1000 //in mA
#define Y_SENSE_RESISTOR 91 //in mOhms
#define Y_MICROSTEPS 16 //number of microsteps
//#define Y2_IS_TMC
#define Y2_MAX_CURRENT 1000 //in mA
#define Y2_SENSE_RESISTOR 91 //in mOhms
#define Y2_MICROSTEPS 16 //number of microsteps
//#define Z_IS_TMC
#define Z_MAX_CURRENT 1000 //in mA
#define Z_SENSE_RESISTOR 91 //in mOhms
#define Z_MICROSTEPS 16 //number of microsteps
//#define Z2_IS_TMC
#define Z2_MAX_CURRENT 1000 //in mA
#define Z2_SENSE_RESISTOR 91 //in mOhms
#define Z2_MICROSTEPS 16 //number of microsteps
//#define E0_IS_TMC
#define E0_MAX_CURRENT 1000 //in mA
#define E0_SENSE_RESISTOR 91 //in mOhms
#define E0_MICROSTEPS 16 //number of microsteps
//#define E1_IS_TMC
#define E1_MAX_CURRENT 1000 //in mA
#define E1_SENSE_RESISTOR 91 //in mOhms
#define E1_MICROSTEPS 16 //number of microsteps
//#define E2_IS_TMC
#define E2_MAX_CURRENT 1000 //in mA
#define E2_SENSE_RESISTOR 91 //in mOhms
#define E2_MICROSTEPS 16 //number of microsteps
//#define E3_IS_TMC
#define E3_MAX_CURRENT 1000 //in mA
#define E3_SENSE_RESISTOR 91 //in mOhms
#define E3_MICROSTEPS 16 //number of microsteps
#endif
/******************************************************************************\
* enable this section if you have L6470 motor drivers.
* you need to import the L6470 library into the Arduino IDE for this
******************************************************************************/
// @section l6470
//#define HAVE_L6470DRIVER
#if ENABLED(HAVE_L6470DRIVER)
//#define X_IS_L6470
#define X_MICROSTEPS 16 //number of microsteps
#define X_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define X_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define X_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define X2_IS_L6470
#define X2_MICROSTEPS 16 //number of microsteps
#define X2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define X2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define X2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define Y_IS_L6470
#define Y_MICROSTEPS 16 //number of microsteps
#define Y_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define Y_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define Y_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define Y2_IS_L6470
#define Y2_MICROSTEPS 16 //number of microsteps
#define Y2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define Y2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define Y2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define Z_IS_L6470
#define Z_MICROSTEPS 16 //number of microsteps
#define Z_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define Z_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define Z_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define Z2_IS_L6470
#define Z2_MICROSTEPS 16 //number of microsteps
#define Z2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define Z2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define Z2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define E0_IS_L6470
#define E0_MICROSTEPS 16 //number of microsteps
#define E0_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define E0_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define E0_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define E1_IS_L6470
#define E1_MICROSTEPS 16 //number of microsteps
#define E1_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define E1_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define E1_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define E2_IS_L6470
#define E2_MICROSTEPS 16 //number of microsteps
#define E2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define E2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define E2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define E3_IS_L6470
#define E3_MICROSTEPS 16 //number of microsteps
#define E3_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define E3_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define E3_STALLCURRENT 1500 //current in mA where the driver will detect a stall
#endif
/**
* TWI/I2C BUS
*
* This feature is an EXPERIMENTAL feature so it shall not be used on production
* machines. Enabling this will allow you to send and receive I2C data from slave
* devices on the bus.
*
* ; Example #1
* ; This macro send the string "Marlin" to the slave device with address 0x63 (99)
* ; It uses multiple M155 commands with one B<base 10> arg
* M155 A99 ; Target slave address
* M155 B77 ; M
* M155 B97 ; a
* M155 B114 ; r
* M155 B108 ; l
* M155 B105 ; i
* M155 B110 ; n
* M155 S1 ; Send the current buffer
*
* ; Example #2
* ; Request 6 bytes from slave device with address 0x63 (99)
* M156 A99 B5
*
* ; Example #3
* ; Example serial output of a M156 request
* echo:i2c-reply: from:99 bytes:5 data:hello
*/
// @section i2cbus
//#define EXPERIMENTAL_I2CBUS
#endif // CONFIGURATION_ADV_H
@@ -1,103 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
* Custom Bitmap for splashscreen
*
* You may use one of the following tools to generate the C++ bitmap array from
* a black and white image:
*
* - http://www.marlinfw.org/tools/u8glib/converter.html
* - http://www.digole.com/tools/PicturetoC_Hex_converter.php
*/
#include <avr/pgmspace.h>
#define CUSTOM_BOOTSCREEN_TIMEOUT 2500
#define CUSTOM_BOOTSCREEN_BMPWIDTH 63
#define CUSTOM_BOOTSCREEN_BMPHEIGHT 64
const unsigned char custom_start_bmp[512] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x07, 0xc0, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x03, 0xff, 0xff, 0xc0, 0x00, 0x00,
0x00, 0x00, 0x1f, 0xff, 0xff, 0xf0, 0x00, 0x00,
0x00, 0x00, 0x7f, 0xff, 0xff, 0xfc, 0x00, 0x00,
0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00,
0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00,
0x00, 0x00, 0x00, 0x07, 0xc0, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x07, 0xc0, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x07, 0xc0, 0x00, 0x00, 0x00,
0x00, 0x0f, 0x07, 0x87, 0xff, 0xff, 0xe0, 0x00,
0x00, 0x1f, 0x8f, 0xc7, 0xff, 0xff, 0xf1, 0x00,
0x01, 0x1f, 0x8f, 0xc7, 0xff, 0xff, 0xf1, 0x80,
0x03, 0x1f, 0x8f, 0xc7, 0xff, 0xff, 0xf1, 0x80,
0x07, 0x1f, 0x8f, 0xc7, 0xff, 0xff, 0xe1, 0xc0,
0x07, 0x1f, 0x8f, 0xc7, 0xc0, 0x00, 0x01, 0xe0,
0x0f, 0x1f, 0x8f, 0xc7, 0xc0, 0x00, 0x01, 0xe0,
0x0f, 0x1f, 0x8f, 0xc7, 0xc0, 0x00, 0x01, 0xf0,
0x1f, 0x1f, 0x8f, 0xc7, 0xc0, 0x00, 0x01, 0xf0,
0x1f, 0x1f, 0x8f, 0xc7, 0xff, 0xff, 0xe1, 0xf0,
0x3f, 0x1f, 0x8f, 0xc7, 0xff, 0xff, 0xf1, 0xf8,
0x3f, 0x1f, 0x8f, 0xc7, 0xff, 0xff, 0xf1, 0xf8,
0x3f, 0x1f, 0x8f, 0xc7, 0xff, 0xff, 0xf1, 0xf8,
0x3f, 0x1f, 0x8f, 0xc7, 0xff, 0xff, 0xe1, 0xf8,
0x7f, 0x1f, 0x8f, 0xc7, 0xc0, 0x00, 0x01, 0xfc,
0x7f, 0x1f, 0x8f, 0xc7, 0xc0, 0x00, 0x01, 0xfc,
0x7f, 0x1f, 0x8f, 0xc7, 0xc0, 0x00, 0x01, 0xfc,
0x7f, 0x1f, 0x8f, 0xc7, 0xc0, 0x00, 0x01, 0xfc,
0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
0x7f, 0x00, 0x00, 0x07, 0xc7, 0xe3, 0xf1, 0xfc,
0x7f, 0x00, 0x00, 0x07, 0xc7, 0xe3, 0xf1, 0xfc,
0x7f, 0x00, 0x00, 0x07, 0xc7, 0xe3, 0xf1, 0xfc,
0x3f, 0x0f, 0xff, 0xff, 0xc7, 0xe3, 0xf1, 0xf8,
0x3f, 0x1f, 0xff, 0xff, 0xc7, 0xe3, 0xf1, 0xf8,
0x3f, 0x1f, 0xff, 0xff, 0xc7, 0xe3, 0xf1, 0xf8,
0x3f, 0x1f, 0xff, 0xff, 0xc7, 0xe3, 0xf1, 0xf8,
0x1f, 0x1f, 0xff, 0xff, 0xc7, 0xe3, 0xf1, 0xf0,
0x1f, 0x0f, 0xff, 0xff, 0xc7, 0xe3, 0xf1, 0xf0,
0x1f, 0x00, 0x00, 0x07, 0xc7, 0xe3, 0xf1, 0xe0,
0x0f, 0x00, 0x00, 0x07, 0xc7, 0xe3, 0xf1, 0xe0,
0x0f, 0x00, 0x00, 0x07, 0xc7, 0xe3, 0xf1, 0xc0,
0x07, 0x0f, 0xff, 0xff, 0xc7, 0xe3, 0xf1, 0xc0,
0x03, 0x1f, 0xff, 0xff, 0xc7, 0xe3, 0xf1, 0x80,
0x03, 0x1f, 0xff, 0xff, 0xc7, 0xe3, 0xf1, 0x00,
0x01, 0x1f, 0xff, 0xff, 0xc7, 0xe3, 0xf0, 0x00,
0x00, 0x1f, 0xff, 0xff, 0xc7, 0xe3, 0xf0, 0x00,
0x00, 0x0f, 0xff, 0xff, 0xc3, 0xc1, 0xe0, 0x00,
0x00, 0x00, 0x00, 0x07, 0xc0, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x07, 0xc0, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x07, 0xc0, 0x00, 0x00, 0x00,
0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00,
0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00,
0x00, 0x01, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00,
0x00, 0x00, 0x7f, 0xff, 0xff, 0xfc, 0x00, 0x00,
0x00, 0x00, 0x1f, 0xff, 0xff, 0xf0, 0x00, 0x00,
0x00, 0x00, 0x07, 0xff, 0xff, 0x80, 0x00, 0x00,
0x00, 0x00, 0x00, 0x7f, 0xf8, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
File diff suppressed because it is too large Load Diff
@@ -1,799 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
* Configuration_adv.h
*
* Advanced settings.
* Only change these if you know exactly what you're doing.
* Some of these settings can damage your printer if improperly set!
*
* Basic settings can be found in Configuration.h
*
*/
#ifndef CONFIGURATION_ADV_H
#define CONFIGURATION_ADV_H
/**
*
* ***********************************
* ** ATTENTION TO ALL DEVELOPERS **
* ***********************************
*
* You must increment this version number for every significant change such as,
* but not limited to: ADD, DELETE RENAME OR REPURPOSE any directive/option.
*
* Note: Update also Version.h !
*/
#define CONFIGURATION_ADV_H_VERSION 010100
// @section temperature
//===========================================================================
//=============================Thermal Settings ============================
//===========================================================================
#if DISABLED(PIDTEMPBED)
#define BED_CHECK_INTERVAL 5000 // ms between checks in bang-bang control
#if ENABLED(BED_LIMIT_SWITCHING)
#define BED_HYSTERESIS 2 // Only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
#endif
#endif
/**
* Thermal Protection protects your printer from damage and fire if a
* thermistor falls out or temperature sensors fail in any way.
*
* The issue: If a thermistor falls out or a temperature sensor fails,
* Marlin can no longer sense the actual temperature. Since a disconnected
* thermistor reads as a low temperature, the firmware will keep the heater on.
*
* The solution: Once the temperature reaches the target, start observing.
* If the temperature stays too far below the target (hysteresis) for too long (period),
* the firmware will halt the machine as a safety precaution.
*
* If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
*/
#if ENABLED(THERMAL_PROTECTION_HOTENDS)
#define THERMAL_PROTECTION_PERIOD 40 // Seconds
#define THERMAL_PROTECTION_HYSTERESIS 4 // Degrees Celsius
/**
* Whenever an M104 or M109 increases the target temperature the firmware will wait for the
* WATCH_TEMP_PERIOD to expire, and if the temperature hasn't increased by WATCH_TEMP_INCREASE
* degrees, the machine is halted, requiring a hard reset. This test restarts with any M104/M109,
* but only if the current temperature is far enough below the target for a reliable test.
*
* If you get false positives for "Heating failed" increase WATCH_TEMP_PERIOD and/or decrease WATCH_TEMP_INCREASE
* WATCH_TEMP_INCREASE should not be below 2.
*/
#define WATCH_TEMP_PERIOD 20 // Seconds
#define WATCH_TEMP_INCREASE 2 // Degrees Celsius
#endif
/**
* Thermal Protection parameters for the bed are just as above for hotends.
*/
#if ENABLED(THERMAL_PROTECTION_BED)
#define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds
#define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius
/**
* Whenever an M140 or M190 increases the target temperature the firmware will wait for the
* WATCH_BED_TEMP_PERIOD to expire, and if the temperature hasn't increased by WATCH_BED_TEMP_INCREASE
* degrees, the machine is halted, requiring a hard reset. This test restarts with any M140/M190,
* but only if the current temperature is far enough below the target for a reliable test.
*
* If you get too many "Heating failed" errors, increase WATCH_BED_TEMP_PERIOD and/or decrease
* WATCH_BED_TEMP_INCREASE. (WATCH_BED_TEMP_INCREASE should not be below 2.)
*/
#define WATCH_BED_TEMP_PERIOD 60 // Seconds
#define WATCH_BED_TEMP_INCREASE 2 // Degrees Celsius
#endif
#if ENABLED(PIDTEMP)
// this adds an experimental additional term to the heating power, proportional to the extrusion speed.
// if Kc is chosen well, the additional required power due to increased melting should be compensated.
//#define PID_EXTRUSION_SCALING
#if ENABLED(PID_EXTRUSION_SCALING)
#define DEFAULT_Kc (100) //heating power=Kc*(e_speed)
#define LPQ_MAX_LEN 50
#endif
#endif
/**
* Automatic Temperature:
* The hotend target temperature is calculated by all the buffered lines of gcode.
* The maximum buffered steps/sec of the extruder motor is called "se".
* Start autotemp mode with M109 S<mintemp> B<maxtemp> F<factor>
* The target temperature is set to mintemp+factor*se[steps/sec] and is limited by
* mintemp and maxtemp. Turn this off by executing M109 without F*
* Also, if the temperature is set to a value below mintemp, it will not be changed by autotemp.
* On an Ultimaker, some initial testing worked with M109 S215 B260 F1 in the start.gcode
*/
#define AUTOTEMP
#if ENABLED(AUTOTEMP)
#define AUTOTEMP_OLDWEIGHT 0.98
#endif
//Show Temperature ADC value
//The M105 command return, besides traditional information, the ADC value read from temperature sensors.
//#define SHOW_TEMP_ADC_VALUES
/**
* High Temperature Thermistor Support
*
* Thermistors able to support high temperature tend to have a hard time getting
* good readings at room and lower temperatures. This means HEATER_X_RAW_LO_TEMP
* will probably be caught when the heating element first turns on during the
* preheating process, which will trigger a min_temp_error as a safety measure
* and force stop everything.
* To circumvent this limitation, we allow for a preheat time (during which,
* min_temp_error won't be triggered) and add a min_temp buffer to handle
* aberrant readings.
*
* If you want to enable this feature for your hotend thermistor(s)
* uncomment and set values > 0 in the constants below
*/
// The number of consecutive low temperature errors that can occur
// before a min_temp_error is triggered. (Shouldn't be more than 10.)
//#define MAX_CONSECUTIVE_LOW_TEMPERATURE_ERROR_ALLOWED 0
// The number of milliseconds a hotend will preheat before starting to check
// the temperature. This value should NOT be set to the time it takes the
// hot end to reach the target temperature, but the time it takes to reach
// the minimum temperature your thermistor can read. The lower the better/safer.
// This shouldn't need to be more than 30 seconds (30000)
//#define MILLISECONDS_PREHEAT_TIME 0
// @section extruder
// extruder run-out prevention.
//if the machine is idle, and the temperature over MINTEMP, every couple of SECONDS some filament is extruded
//#define EXTRUDER_RUNOUT_PREVENT
#define EXTRUDER_RUNOUT_MINTEMP 190
#define EXTRUDER_RUNOUT_SECONDS 30
#define EXTRUDER_RUNOUT_ESTEPS 14 // mm filament
#define EXTRUDER_RUNOUT_SPEED 1500 // extrusion speed
#define EXTRUDER_RUNOUT_EXTRUDE 100
// @section temperature
//These defines help to calibrate the AD595 sensor in case you get wrong temperature measurements.
//The measured temperature is defined as "actualTemp = (measuredTemp * TEMP_SENSOR_AD595_GAIN) + TEMP_SENSOR_AD595_OFFSET"
#define TEMP_SENSOR_AD595_OFFSET 0.0
#define TEMP_SENSOR_AD595_GAIN 1.0
//This is for controlling a fan to cool down the stepper drivers
//it will turn on when any driver is enabled
//and turn off after the set amount of seconds from last driver being disabled again
#define CONTROLLERFAN_PIN -1 //Pin used for the fan to cool controller (-1 to disable)
#define CONTROLLERFAN_SECS 60 //How many seconds, after all motors were disabled, the fan should run
#define CONTROLLERFAN_SPEED 255 // == full speed
// When first starting the main fan, run it at full speed for the
// given number of milliseconds. This gets the fan spinning reliably
// before setting a PWM value. (Does not work with software PWM for fan on Sanguinololu)
//#define FAN_KICKSTART_TIME 100
// This defines the minimal speed for the main fan, run in PWM mode
// to enable uncomment and set minimal PWM speed for reliable running (1-255)
// if fan speed is [1 - (FAN_MIN_PWM-1)] it is set to FAN_MIN_PWM
//#define FAN_MIN_PWM 50
// @section extruder
// Extruder cooling fans
// Configure fan pin outputs to automatically turn on/off when the associated
// extruder temperature is above/below EXTRUDER_AUTO_FAN_TEMPERATURE.
// Multiple extruders can be assigned to the same pin in which case
// the fan will turn on when any selected extruder is above the threshold.
#define EXTRUDER_0_AUTO_FAN_PIN -1
#define EXTRUDER_1_AUTO_FAN_PIN -1
#define EXTRUDER_2_AUTO_FAN_PIN -1
#define EXTRUDER_3_AUTO_FAN_PIN -1
#define EXTRUDER_AUTO_FAN_TEMPERATURE 50
#define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed
//===========================================================================
//============================ Mechanical Settings ==========================
//===========================================================================
// @section homing
// If you want endstops to stay on (by default) even when not homing
// enable this option. Override at any time with M120, M121.
//#define ENDSTOPS_ALWAYS_ON_DEFAULT
// @section extras
//#define Z_LATE_ENABLE // Enable Z the last moment. Needed if your Z driver overheats.
// Dual X Steppers
// Uncomment this option to drive two X axis motors.
// The next unused E driver will be assigned to the second X stepper.
//#define X_DUAL_STEPPER_DRIVERS
#if ENABLED(X_DUAL_STEPPER_DRIVERS)
// Set true if the two X motors need to rotate in opposite directions
#define INVERT_X2_VS_X_DIR true
#endif
// Dual Y Steppers
// Uncomment this option to drive two Y axis motors.
// The next unused E driver will be assigned to the second Y stepper.
//#define Y_DUAL_STEPPER_DRIVERS
#if ENABLED(Y_DUAL_STEPPER_DRIVERS)
// Set true if the two Y motors need to rotate in opposite directions
#define INVERT_Y2_VS_Y_DIR true
#endif
// A single Z stepper driver is usually used to drive 2 stepper motors.
// Uncomment this option to use a separate stepper driver for each Z axis motor.
// The next unused E driver will be assigned to the second Z stepper.
//#define Z_DUAL_STEPPER_DRIVERS
#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
// Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
// That way the machine is capable to align the bed during home, since both Z steppers are homed.
// There is also an implementation of M666 (software endstops adjustment) to this feature.
// After Z homing, this adjustment is applied to just one of the steppers in order to align the bed.
// One just need to home the Z axis and measure the distance difference between both Z axis and apply the math: Z adjust = Z - Z2.
// If the Z stepper axis is closer to the bed, the measure Z > Z2 (yes, it is.. think about it) and the Z adjust would be positive.
// Play a little bit with small adjustments (0.5mm) and check the behaviour.
// The M119 (endstops report) will start reporting the Z2 Endstop as well.
//#define Z_DUAL_ENDSTOPS
#if ENABLED(Z_DUAL_ENDSTOPS)
#define Z2_USE_ENDSTOP _XMAX_
#endif
#endif // Z_DUAL_STEPPER_DRIVERS
// Enable this for dual x-carriage printers.
// A dual x-carriage design has the advantage that the inactive extruder can be parked which
// prevents hot-end ooze contaminating the print. It also reduces the weight of each x-carriage
// allowing faster printing speeds. Connect your X2 stepper to the first unused E plug.
//#define DUAL_X_CARRIAGE
#if ENABLED(DUAL_X_CARRIAGE)
// Configuration for second X-carriage
// Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
// the second x-carriage always homes to the maximum endstop.
#define X2_MIN_POS 80 // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
#define X2_MAX_POS 353 // set maximum to the distance between toolheads when both heads are homed
#define X2_HOME_DIR 1 // the second X-carriage always homes to the maximum endstop position
#define X2_HOME_POS X2_MAX_POS // default home position is the maximum carriage position
// However: In this mode the HOTEND_OFFSET_X value for the second extruder provides a software
// override for X2_HOME_POS. This also allow recalibration of the distance between the two endstops
// without modifying the firmware (through the "M218 T1 X???" command).
// Remember: you should set the second extruder x-offset to 0 in your slicer.
// There are a few selectable movement modes for dual x-carriages using M605 S<mode>
// Mode 0: Full control. The slicer has full control over both x-carriages and can achieve optimal travel results
// as long as it supports dual x-carriages. (M605 S0)
// Mode 1: Auto-park mode. The firmware will automatically park and unpark the x-carriages on tool changes so
// that additional slicer support is not required. (M605 S1)
// Mode 2: Duplication mode. The firmware will transparently make the second x-carriage and extruder copy all
// actions of the first x-carriage. This allows the printer to print 2 arbitrary items at
// once. (2nd extruder x offset and temp offset are set using: M605 S2 [Xnnn] [Rmmm])
// This is the default power-up mode which can be later using M605.
#define DEFAULT_DUAL_X_CARRIAGE_MODE 0
// Default settings in "Auto-park Mode"
#define TOOLCHANGE_PARK_ZLIFT 0.2 // the distance to raise Z axis when parking an extruder
#define TOOLCHANGE_UNPARK_ZLIFT 1 // the distance to raise Z axis when unparking an extruder
// Default x offset in duplication mode (typically set to half print bed width)
#define DEFAULT_DUPLICATION_X_OFFSET 100
#endif //DUAL_X_CARRIAGE
// @section homing
//homing hits the endstop, then retracts by this distance, before it tries to slowly bump again:
#define X_HOME_BUMP_MM 5
#define Y_HOME_BUMP_MM 5
#define Z_HOME_BUMP_MM 3
#define HOMING_BUMP_DIVISOR {2, 2, 4} // Re-Bump Speed Divisor (Divides the Homing Feedrate)
//#define QUICK_HOME //if this is defined, if both x and y are to be homed, a diagonal move will be performed initially.
// When G28 is called, this option will make Y home before X
//#define HOME_Y_BEFORE_X
// @section machine
#define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder
//#define DUAL_NOZZLE_DUPLICATION_MODE
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false
#define INVERT_Y_STEP_PIN false
#define INVERT_Z_STEP_PIN false
#define INVERT_E_STEP_PIN false
// Default stepper release if idle. Set to 0 to deactivate.
// Steppers will shut down DEFAULT_STEPPER_DEACTIVE_TIME seconds after the last move when DISABLE_INACTIVE_? is true.
// Time can be set by M18 and M84.
#define DEFAULT_STEPPER_DEACTIVE_TIME 60
#define DISABLE_INACTIVE_X true
#define DISABLE_INACTIVE_Y true
#define DISABLE_INACTIVE_Z true // set to false if the nozzle will fall down on your printed part when print has finished.
#define DISABLE_INACTIVE_E true
#define DEFAULT_MINIMUMFEEDRATE 0.0 // minimum feedrate
#define DEFAULT_MINTRAVELFEEDRATE 0.0
// @section lcd
#if ENABLED(ULTIPANEL)
#define MANUAL_FEEDRATE {50*60, 50*60, 4*60, 60} // Feedrates for manual moves along X, Y, Z, E from panel
#define ULTIPANEL_FEEDMULTIPLY // Comment to disable setting feedrate multiplier via encoder
#endif
// @section extras
// minimum time in microseconds that a movement needs to take if the buffer is emptied.
#define DEFAULT_MINSEGMENTTIME 20000
// If defined the movements slow down when the look ahead buffer is only half full
#define SLOWDOWN
// Frequency limit
// See nophead's blog for more info
// Not working O
//#define XY_FREQUENCY_LIMIT 15
// Minimum planner junction speed. Sets the default minimum speed the planner plans for at the end
// of the buffer and all stops. This should not be much greater than zero and should only be changed
// if unwanted behavior is observed on a user's machine when running at very slow speeds.
#define MINIMUM_PLANNER_SPEED 0.05// (mm/sec)
// Microstep setting (Only functional when stepper driver microstep pins are connected to MCU.
#define MICROSTEP_MODES {16,16,16,16,16} // [1,2,4,8,16]
// Motor Current setting (Only functional when motor driver current ref pins are connected to a digital trimpot on supported boards)
#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
// Motor Current controlled via PWM (Overridable on supported boards with PWM-driven motor driver current)
//#define PWM_MOTOR_CURRENT {1300, 1300, 1250} // Values in milliamps
// uncomment to enable an I2C based DIGIPOT like on the Azteeg X3 Pro
//#define DIGIPOT_I2C
// Number of channels available for I2C digipot, For Azteeg X3 Pro we have 8
#define DIGIPOT_I2C_NUM_CHANNELS 8
// actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
#define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0}
//===========================================================================
//=============================Additional Features===========================
//===========================================================================
#define ENCODER_RATE_MULTIPLIER // If defined, certain menu edit operations automatically multiply the steps when the encoder is moved quickly
#define ENCODER_10X_STEPS_PER_SEC 75 // If the encoder steps per sec exceeds this value, multiply steps moved x10 to quickly advance the value
#define ENCODER_100X_STEPS_PER_SEC 160 // If the encoder steps per sec exceeds this value, multiply steps moved x100 to really quickly advance the value
//#define CHDK 4 //Pin for triggering CHDK to take a picture see how to use it here http://captain-slow.dk/2014/03/09/3d-printing-timelapses/
#define CHDK_DELAY 50 //How long in ms the pin should stay HIGH before going LOW again
// @section lcd
// Include a page of printer information in the LCD Main Menu
//#define LCD_INFO_MENU
#if ENABLED(SDSUPPORT)
// Some RAMPS and other boards don't detect when an SD card is inserted. You can work
// around this by connecting a push button or single throw switch to the pin defined
// as SD_DETECT_PIN in your board's pins definitions.
// This setting should be disabled unless you are using a push button, pulling the pin to ground.
// Note: This is always disabled for ULTIPANEL (except ELB_FULL_GRAPHIC_CONTROLLER).
#define SD_DETECT_INVERTED
#define SD_FINISHED_STEPPERRELEASE true //if sd support and the file is finished: disable steppers?
#define SD_FINISHED_RELEASECOMMAND "M84 X Y Z E" // You might want to keep the z enabled so your bed stays in place.
#define SDCARD_RATHERRECENTFIRST //reverse file order of sd card menu display. Its sorted practically after the file system block order.
// if a file is deleted, it frees a block. hence, the order is not purely chronological. To still have auto0.g accessible, there is again the option to do that.
// using:
//#define MENU_ADDAUTOSTART
// Show a progress bar on HD44780 LCDs for SD printing
//#define LCD_PROGRESS_BAR
#if ENABLED(LCD_PROGRESS_BAR)
// Amount of time (ms) to show the bar
#define PROGRESS_BAR_BAR_TIME 2000
// Amount of time (ms) to show the status message
#define PROGRESS_BAR_MSG_TIME 3000
// Amount of time (ms) to retain the status message (0=forever)
#define PROGRESS_MSG_EXPIRE 0
// Enable this to show messages for MSG_TIME then hide them
//#define PROGRESS_MSG_ONCE
#endif
// This allows hosts to request long names for files and folders with M33
//#define LONG_FILENAME_HOST_SUPPORT
// This option allows you to abort SD printing when any endstop is triggered.
// This feature must be enabled with "M540 S1" or from the LCD menu.
// To have any effect, endstops must be enabled during SD printing.
//#define ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED
#endif // SDSUPPORT
// for dogm lcd displays you can choose some additional fonts:
#if ENABLED(DOGLCD)
// save 3120 bytes of PROGMEM by commenting out #define USE_BIG_EDIT_FONT
// we don't have a big font for Cyrillic, Kana
//#define USE_BIG_EDIT_FONT
// If you have spare 2300Byte of progmem and want to use a
// smaller font on the Info-screen uncomment the next line.
//#define USE_SMALL_INFOFONT
#endif // DOGLCD
// @section safety
// The hardware watchdog should reset the microcontroller disabling all outputs,
// in case the firmware gets stuck and doesn't do temperature regulation.
#define USE_WATCHDOG
#if ENABLED(USE_WATCHDOG)
// If you have a watchdog reboot in an ArduinoMega2560 then the device will hang forever, as a watchdog reset will leave the watchdog on.
// The "WATCHDOG_RESET_MANUAL" goes around this by not using the hardware reset.
// However, THIS FEATURE IS UNSAFE!, as it will only work if interrupts are disabled. And the code could hang in an interrupt routine with interrupts disabled.
//#define WATCHDOG_RESET_MANUAL
#endif
// @section lcd
// Babystepping enables the user to control the axis in tiny amounts, independently from the normal printing process
// it can e.g. be used to change z-positions in the print startup phase in real-time
// does not respect endstops!
//#define BABYSTEPPING
#if ENABLED(BABYSTEPPING)
#define BABYSTEP_XY //not only z, but also XY in the menu. more clutter, more functions
//not implemented for deltabots!
#define BABYSTEP_INVERT_Z false //true for inverse movements in Z
#define BABYSTEP_MULTIPLICATOR 1 //faster movements
#endif
// @section extruder
// extruder advance constant (s2/mm3)
//
// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
//
// Hooke's law says: force = k * distance
// Bernoulli's principle says: v ^ 2 / 2 + g . h + pressure / density = constant
// so: v ^ 2 is proportional to number of steps we advance the extruder
//#define ADVANCE
#if ENABLED(ADVANCE)
#define EXTRUDER_ADVANCE_K .0
#define D_FILAMENT 2.85
#endif
// Implementation of a linear pressure control
// Assumption: advance = k * (delta velocity)
// K=0 means advance disabled. A good value for a gregs wade extruder will be around K=75
//#define LIN_ADVANCE
#if ENABLED(LIN_ADVANCE)
#define LIN_ADVANCE_K 75
#endif
// @section leveling
// Default mesh area is an area with an inset margin on the print area.
// Below are the macros that are used to define the borders for the mesh area,
// made available here for specialized needs, ie dual extruder setup.
#if ENABLED(MESH_BED_LEVELING)
#define MESH_MIN_X (X_MIN_POS + MESH_INSET)
#define MESH_MAX_X (X_MAX_POS - (MESH_INSET))
#define MESH_MIN_Y (Y_MIN_POS + MESH_INSET)
#define MESH_MAX_Y (Y_MAX_POS - (MESH_INSET))
#endif
// @section extras
// Arc interpretation settings:
#define ARC_SUPPORT // Disabling this saves ~2738 bytes
#define MM_PER_ARC_SEGMENT 1
#define N_ARC_CORRECTION 25
// Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
//#define BEZIER_CURVE_SUPPORT
const unsigned int dropsegments = 5; //everything with less than this number of steps will be ignored as move and joined with the next movement
// @section temperature
// Control heater 0 and heater 1 in parallel.
//#define HEATERS_PARALLEL
//===========================================================================
//================================= Buffers =================================
//===========================================================================
// @section hidden
// The number of linear motions that can be in the plan at any give time.
// THE BLOCK_BUFFER_SIZE NEEDS TO BE A POWER OF 2, i.g. 8,16,32 because shifts and ors are used to do the ring-buffering.
#if ENABLED(SDSUPPORT)
#define BLOCK_BUFFER_SIZE 16 // SD,LCD,Buttons take more memory, block buffer needs to be smaller
#else
#define BLOCK_BUFFER_SIZE 16 // maximize block buffer
#endif
// @section serial
// The ASCII buffer for serial input
#define MAX_CMD_SIZE 96
#define BUFSIZE 4
// Transfer Buffer Size
// To save 386 bytes of PROGMEM (and TX_BUFFER_SIZE+3 bytes of RAM) set to 0.
// To buffer a simple "ok" you need 4 bytes.
// For ADVANCED_OK (M105) you need 32 bytes.
// For debug-echo: 128 bytes for the optimal speed.
// Other output doesn't need to be that speedy.
// :[0,2,4,8,16,32,64,128,256]
#define TX_BUFFER_SIZE 0
// Enable an emergency-command parser to intercept certain commands as they
// enter the serial receive buffer, so they cannot be blocked.
// Currently handles M108, M112, M410
// Does not work on boards using AT90USB (USBCON) processors!
//#define EMERGENCY_PARSER
// Bad Serial-connections can miss a received command by sending an 'ok'
// Therefore some clients abort after 30 seconds in a timeout.
// Some other clients start sending commands while receiving a 'wait'.
// This "wait" is only sent when the buffer is empty. 1 second is a good value here.
//#define NO_TIMEOUTS 1000 // Milliseconds
// Some clients will have this feature soon. This could make the NO_TIMEOUTS unnecessary.
//#define ADVANCED_OK
// @section fwretract
// Firmware based and LCD controlled retract
// M207 and M208 can be used to define parameters for the retraction.
// The retraction can be called by the slicer using G10 and G11
// until then, intended retractions can be detected by moves that only extrude and the direction.
// the moves are than replaced by the firmware controlled ones.
//#define FWRETRACT //ONLY PARTIALLY TESTED
#if ENABLED(FWRETRACT)
#define MIN_RETRACT 0.1 //minimum extruded mm to accept a automatic gcode retraction attempt
#define RETRACT_LENGTH 3 //default retract length (positive mm)
#define RETRACT_LENGTH_SWAP 13 //default swap retract length (positive mm), for extruder change
#define RETRACT_FEEDRATE 45 //default feedrate for retracting (mm/s)
#define RETRACT_ZLIFT 0 //default retract Z-lift
#define RETRACT_RECOVER_LENGTH 0 //default additional recover length (mm, added to retract length when recovering)
#define RETRACT_RECOVER_LENGTH_SWAP 0 //default additional swap recover length (mm, added to retract length when recovering from extruder change)
#define RETRACT_RECOVER_FEEDRATE 8 //default feedrate for recovering from retraction (mm/s)
#endif
// Add support for experimental filament exchange support M600; requires display
#if ENABLED(ULTIPANEL)
// #define FILAMENT_CHANGE_FEATURE // Enable filament exchange menu and M600 g-code (used for runout sensor too)
#if ENABLED(FILAMENT_CHANGE_FEATURE)
#define FILAMENT_CHANGE_X_POS 3 // X position of hotend
#define FILAMENT_CHANGE_Y_POS 3 // Y position of hotend
#define FILAMENT_CHANGE_Z_ADD 10 // Z addition of hotend (lift)
#define FILAMENT_CHANGE_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
#define FILAMENT_CHANGE_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
#define FILAMENT_CHANGE_RETRACT_LENGTH 2 // Initial retract in mm
// It is a short retract used immediately after print interrupt before move to filament exchange position
#define FILAMENT_CHANGE_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
#define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm
// Longer length for bowden printers to unload filament from whole bowden tube,
// shorter lenght for printers without bowden to unload filament from extruder only,
// 0 to disable unloading for manual unloading
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast
#define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm
// Longer length for bowden printers to fast load filament into whole bowden tube over the hotend,
// Short or zero length for printers without bowden where loading is not used
#define FILAMENT_CHANGE_LOAD_FEEDRATE 10 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast
#define FILAMENT_CHANGE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is load over the hotend,
// 0 to disable for manual extrusion
// Filament can be extruded repeatedly from the filament exchange menu to fill the hotend,
// or until outcoming filament color is not clear for filament color change
#define FILAMENT_CHANGE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
#endif
#endif
/******************************************************************************\
* enable this section if you have TMC26X motor drivers.
* you need to import the TMC26XStepper library into the Arduino IDE for this
******************************************************************************/
// @section tmc
//#define HAVE_TMCDRIVER
#if ENABLED(HAVE_TMCDRIVER)
//#define X_IS_TMC
#define X_MAX_CURRENT 1000 //in mA
#define X_SENSE_RESISTOR 91 //in mOhms
#define X_MICROSTEPS 16 //number of microsteps
//#define X2_IS_TMC
#define X2_MAX_CURRENT 1000 //in mA
#define X2_SENSE_RESISTOR 91 //in mOhms
#define X2_MICROSTEPS 16 //number of microsteps
//#define Y_IS_TMC
#define Y_MAX_CURRENT 1000 //in mA
#define Y_SENSE_RESISTOR 91 //in mOhms
#define Y_MICROSTEPS 16 //number of microsteps
//#define Y2_IS_TMC
#define Y2_MAX_CURRENT 1000 //in mA
#define Y2_SENSE_RESISTOR 91 //in mOhms
#define Y2_MICROSTEPS 16 //number of microsteps
//#define Z_IS_TMC
#define Z_MAX_CURRENT 1000 //in mA
#define Z_SENSE_RESISTOR 91 //in mOhms
#define Z_MICROSTEPS 16 //number of microsteps
//#define Z2_IS_TMC
#define Z2_MAX_CURRENT 1000 //in mA
#define Z2_SENSE_RESISTOR 91 //in mOhms
#define Z2_MICROSTEPS 16 //number of microsteps
//#define E0_IS_TMC
#define E0_MAX_CURRENT 1000 //in mA
#define E0_SENSE_RESISTOR 91 //in mOhms
#define E0_MICROSTEPS 16 //number of microsteps
//#define E1_IS_TMC
#define E1_MAX_CURRENT 1000 //in mA
#define E1_SENSE_RESISTOR 91 //in mOhms
#define E1_MICROSTEPS 16 //number of microsteps
//#define E2_IS_TMC
#define E2_MAX_CURRENT 1000 //in mA
#define E2_SENSE_RESISTOR 91 //in mOhms
#define E2_MICROSTEPS 16 //number of microsteps
//#define E3_IS_TMC
#define E3_MAX_CURRENT 1000 //in mA
#define E3_SENSE_RESISTOR 91 //in mOhms
#define E3_MICROSTEPS 16 //number of microsteps
#endif
/******************************************************************************\
* enable this section if you have L6470 motor drivers.
* you need to import the L6470 library into the Arduino IDE for this
******************************************************************************/
// @section l6470
//#define HAVE_L6470DRIVER
#if ENABLED(HAVE_L6470DRIVER)
//#define X_IS_L6470
#define X_MICROSTEPS 16 //number of microsteps
#define X_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define X_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define X_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define X2_IS_L6470
#define X2_MICROSTEPS 16 //number of microsteps
#define X2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define X2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define X2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define Y_IS_L6470
#define Y_MICROSTEPS 16 //number of microsteps
#define Y_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define Y_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define Y_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define Y2_IS_L6470
#define Y2_MICROSTEPS 16 //number of microsteps
#define Y2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define Y2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define Y2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define Z_IS_L6470
#define Z_MICROSTEPS 16 //number of microsteps
#define Z_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define Z_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define Z_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define Z2_IS_L6470
#define Z2_MICROSTEPS 16 //number of microsteps
#define Z2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define Z2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define Z2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define E0_IS_L6470
#define E0_MICROSTEPS 16 //number of microsteps
#define E0_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define E0_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define E0_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define E1_IS_L6470
#define E1_MICROSTEPS 16 //number of microsteps
#define E1_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define E1_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define E1_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define E2_IS_L6470
#define E2_MICROSTEPS 16 //number of microsteps
#define E2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define E2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define E2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define E3_IS_L6470
#define E3_MICROSTEPS 16 //number of microsteps
#define E3_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define E3_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define E3_STALLCURRENT 1500 //current in mA where the driver will detect a stall
#endif
/**
* TWI/I2C BUS
*
* This feature is an EXPERIMENTAL feature so it shall not be used on production
* machines. Enabling this will allow you to send and receive I2C data from slave
* devices on the bus.
*
* ; Example #1
* ; This macro send the string "Marlin" to the slave device with address 0x63 (99)
* ; It uses multiple M155 commands with one B<base 10> arg
* M155 A99 ; Target slave address
* M155 B77 ; M
* M155 B97 ; a
* M155 B114 ; r
* M155 B108 ; l
* M155 B105 ; i
* M155 B110 ; n
* M155 S1 ; Send the current buffer
*
* ; Example #2
* ; Request 6 bytes from slave device with address 0x63 (99)
* M156 A99 B5
*
* ; Example #3
* ; Example serial output of a M156 request
* echo:i2c-reply: from:99 bytes:5 data:hello
*/
// @section i2cbus
//#define EXPERIMENTAL_I2CBUS
#endif // CONFIGURATION_ADV_H
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -1,799 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
* Configuration_adv.h
*
* Advanced settings.
* Only change these if you know exactly what you're doing.
* Some of these settings can damage your printer if improperly set!
*
* Basic settings can be found in Configuration.h
*
*/
#ifndef CONFIGURATION_ADV_H
#define CONFIGURATION_ADV_H
/**
*
* ***********************************
* ** ATTENTION TO ALL DEVELOPERS **
* ***********************************
*
* You must increment this version number for every significant change such as,
* but not limited to: ADD, DELETE RENAME OR REPURPOSE any directive/option.
*
* Note: Update also Version.h !
*/
#define CONFIGURATION_ADV_H_VERSION 010100
// @section temperature
//===========================================================================
//=============================Thermal Settings ============================
//===========================================================================
#if DISABLED(PIDTEMPBED)
#define BED_CHECK_INTERVAL 5000 // ms between checks in bang-bang control
#if ENABLED(BED_LIMIT_SWITCHING)
#define BED_HYSTERESIS 2 // Only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
#endif
#endif
/**
* Thermal Protection protects your printer from damage and fire if a
* thermistor falls out or temperature sensors fail in any way.
*
* The issue: If a thermistor falls out or a temperature sensor fails,
* Marlin can no longer sense the actual temperature. Since a disconnected
* thermistor reads as a low temperature, the firmware will keep the heater on.
*
* The solution: Once the temperature reaches the target, start observing.
* If the temperature stays too far below the target (hysteresis) for too long (period),
* the firmware will halt the machine as a safety precaution.
*
* If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
*/
#if ENABLED(THERMAL_PROTECTION_HOTENDS)
#define THERMAL_PROTECTION_PERIOD 40 // Seconds
#define THERMAL_PROTECTION_HYSTERESIS 4 // Degrees Celsius
/**
* Whenever an M104 or M109 increases the target temperature the firmware will wait for the
* WATCH_TEMP_PERIOD to expire, and if the temperature hasn't increased by WATCH_TEMP_INCREASE
* degrees, the machine is halted, requiring a hard reset. This test restarts with any M104/M109,
* but only if the current temperature is far enough below the target for a reliable test.
*
* If you get false positives for "Heating failed" increase WATCH_TEMP_PERIOD and/or decrease WATCH_TEMP_INCREASE
* WATCH_TEMP_INCREASE should not be below 2.
*/
#define WATCH_TEMP_PERIOD 20 // Seconds
#define WATCH_TEMP_INCREASE 2 // Degrees Celsius
#endif
/**
* Thermal Protection parameters for the bed are just as above for hotends.
*/
#if ENABLED(THERMAL_PROTECTION_BED)
#define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds
#define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius
/**
* Whenever an M140 or M190 increases the target temperature the firmware will wait for the
* WATCH_BED_TEMP_PERIOD to expire, and if the temperature hasn't increased by WATCH_BED_TEMP_INCREASE
* degrees, the machine is halted, requiring a hard reset. This test restarts with any M140/M190,
* but only if the current temperature is far enough below the target for a reliable test.
*
* If you get too many "Heating failed" errors, increase WATCH_BED_TEMP_PERIOD and/or decrease
* WATCH_BED_TEMP_INCREASE. (WATCH_BED_TEMP_INCREASE should not be below 2.)
*/
#define WATCH_BED_TEMP_PERIOD 60 // Seconds
#define WATCH_BED_TEMP_INCREASE 2 // Degrees Celsius
#endif
#if ENABLED(PIDTEMP)
// this adds an experimental additional term to the heating power, proportional to the extrusion speed.
// if Kc is chosen well, the additional required power due to increased melting should be compensated.
//#define PID_EXTRUSION_SCALING
#if ENABLED(PID_EXTRUSION_SCALING)
#define DEFAULT_Kc (100) //heating power=Kc*(e_speed)
#define LPQ_MAX_LEN 50
#endif
#endif
/**
* Automatic Temperature:
* The hotend target temperature is calculated by all the buffered lines of gcode.
* The maximum buffered steps/sec of the extruder motor is called "se".
* Start autotemp mode with M109 S<mintemp> B<maxtemp> F<factor>
* The target temperature is set to mintemp+factor*se[steps/sec] and is limited by
* mintemp and maxtemp. Turn this off by executing M109 without F*
* Also, if the temperature is set to a value below mintemp, it will not be changed by autotemp.
* On an Ultimaker, some initial testing worked with M109 S215 B260 F1 in the start.gcode
*/
#define AUTOTEMP
#if ENABLED(AUTOTEMP)
#define AUTOTEMP_OLDWEIGHT 0.98
#endif
//Show Temperature ADC value
//The M105 command return, besides traditional information, the ADC value read from temperature sensors.
//#define SHOW_TEMP_ADC_VALUES
/**
* High Temperature Thermistor Support
*
* Thermistors able to support high temperature tend to have a hard time getting
* good readings at room and lower temperatures. This means HEATER_X_RAW_LO_TEMP
* will probably be caught when the heating element first turns on during the
* preheating process, which will trigger a min_temp_error as a safety measure
* and force stop everything.
* To circumvent this limitation, we allow for a preheat time (during which,
* min_temp_error won't be triggered) and add a min_temp buffer to handle
* aberrant readings.
*
* If you want to enable this feature for your hotend thermistor(s)
* uncomment and set values > 0 in the constants below
*/
// The number of consecutive low temperature errors that can occur
// before a min_temp_error is triggered. (Shouldn't be more than 10.)
//#define MAX_CONSECUTIVE_LOW_TEMPERATURE_ERROR_ALLOWED 0
// The number of milliseconds a hotend will preheat before starting to check
// the temperature. This value should NOT be set to the time it takes the
// hot end to reach the target temperature, but the time it takes to reach
// the minimum temperature your thermistor can read. The lower the better/safer.
// This shouldn't need to be more than 30 seconds (30000)
//#define MILLISECONDS_PREHEAT_TIME 0
// @section extruder
// extruder run-out prevention.
//if the machine is idle, and the temperature over MINTEMP, every couple of SECONDS some filament is extruded
//#define EXTRUDER_RUNOUT_PREVENT
#define EXTRUDER_RUNOUT_MINTEMP 190
#define EXTRUDER_RUNOUT_SECONDS 30
#define EXTRUDER_RUNOUT_ESTEPS 14 // mm filament
#define EXTRUDER_RUNOUT_SPEED 1500 // extrusion speed
#define EXTRUDER_RUNOUT_EXTRUDE 100
// @section temperature
//These defines help to calibrate the AD595 sensor in case you get wrong temperature measurements.
//The measured temperature is defined as "actualTemp = (measuredTemp * TEMP_SENSOR_AD595_GAIN) + TEMP_SENSOR_AD595_OFFSET"
#define TEMP_SENSOR_AD595_OFFSET 0.0
#define TEMP_SENSOR_AD595_GAIN 1.0
//This is for controlling a fan to cool down the stepper drivers
//it will turn on when any driver is enabled
//and turn off after the set amount of seconds from last driver being disabled again
#define CONTROLLERFAN_PIN -1 //Pin used for the fan to cool controller (-1 to disable)
#define CONTROLLERFAN_SECS 60 //How many seconds, after all motors were disabled, the fan should run
#define CONTROLLERFAN_SPEED 255 // == full speed
// When first starting the main fan, run it at full speed for the
// given number of milliseconds. This gets the fan spinning reliably
// before setting a PWM value. (Does not work with software PWM for fan on Sanguinololu)
//#define FAN_KICKSTART_TIME 100
// This defines the minimal speed for the main fan, run in PWM mode
// to enable uncomment and set minimal PWM speed for reliable running (1-255)
// if fan speed is [1 - (FAN_MIN_PWM-1)] it is set to FAN_MIN_PWM
//#define FAN_MIN_PWM 50
// @section extruder
// Extruder cooling fans
// Configure fan pin outputs to automatically turn on/off when the associated
// extruder temperature is above/below EXTRUDER_AUTO_FAN_TEMPERATURE.
// Multiple extruders can be assigned to the same pin in which case
// the fan will turn on when any selected extruder is above the threshold.
#define EXTRUDER_0_AUTO_FAN_PIN -1
#define EXTRUDER_1_AUTO_FAN_PIN -1
#define EXTRUDER_2_AUTO_FAN_PIN -1
#define EXTRUDER_3_AUTO_FAN_PIN -1
#define EXTRUDER_AUTO_FAN_TEMPERATURE 50
#define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed
//===========================================================================
//============================ Mechanical Settings ==========================
//===========================================================================
// @section homing
// If you want endstops to stay on (by default) even when not homing
// enable this option. Override at any time with M120, M121.
#define ENDSTOPS_ALWAYS_ON_DEFAULT
// @section extras
//#define Z_LATE_ENABLE // Enable Z the last moment. Needed if your Z driver overheats.
// Dual X Steppers
// Uncomment this option to drive two X axis motors.
// The next unused E driver will be assigned to the second X stepper.
//#define X_DUAL_STEPPER_DRIVERS
#if ENABLED(X_DUAL_STEPPER_DRIVERS)
// Set true if the two X motors need to rotate in opposite directions
#define INVERT_X2_VS_X_DIR true
#endif
// Dual Y Steppers
// Uncomment this option to drive two Y axis motors.
// The next unused E driver will be assigned to the second Y stepper.
//#define Y_DUAL_STEPPER_DRIVERS
#if ENABLED(Y_DUAL_STEPPER_DRIVERS)
// Set true if the two Y motors need to rotate in opposite directions
#define INVERT_Y2_VS_Y_DIR true
#endif
// A single Z stepper driver is usually used to drive 2 stepper motors.
// Uncomment this option to use a separate stepper driver for each Z axis motor.
// The next unused E driver will be assigned to the second Z stepper.
//#define Z_DUAL_STEPPER_DRIVERS
#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
// Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
// That way the machine is capable to align the bed during home, since both Z steppers are homed.
// There is also an implementation of M666 (software endstops adjustment) to this feature.
// After Z homing, this adjustment is applied to just one of the steppers in order to align the bed.
// One just need to home the Z axis and measure the distance difference between both Z axis and apply the math: Z adjust = Z - Z2.
// If the Z stepper axis is closer to the bed, the measure Z > Z2 (yes, it is.. think about it) and the Z adjust would be positive.
// Play a little bit with small adjustments (0.5mm) and check the behaviour.
// The M119 (endstops report) will start reporting the Z2 Endstop as well.
//#define Z_DUAL_ENDSTOPS
#if ENABLED(Z_DUAL_ENDSTOPS)
#define Z2_USE_ENDSTOP _XMAX_
#endif
#endif // Z_DUAL_STEPPER_DRIVERS
// Enable this for dual x-carriage printers.
// A dual x-carriage design has the advantage that the inactive extruder can be parked which
// prevents hot-end ooze contaminating the print. It also reduces the weight of each x-carriage
// allowing faster printing speeds. Connect your X2 stepper to the first unused E plug.
//#define DUAL_X_CARRIAGE
#if ENABLED(DUAL_X_CARRIAGE)
// Configuration for second X-carriage
// Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
// the second x-carriage always homes to the maximum endstop.
#define X2_MIN_POS 80 // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
#define X2_MAX_POS 353 // set maximum to the distance between toolheads when both heads are homed
#define X2_HOME_DIR 1 // the second X-carriage always homes to the maximum endstop position
#define X2_HOME_POS X2_MAX_POS // default home position is the maximum carriage position
// However: In this mode the HOTEND_OFFSET_X value for the second extruder provides a software
// override for X2_HOME_POS. This also allow recalibration of the distance between the two endstops
// without modifying the firmware (through the "M218 T1 X???" command).
// Remember: you should set the second extruder x-offset to 0 in your slicer.
// There are a few selectable movement modes for dual x-carriages using M605 S<mode>
// Mode 0: Full control. The slicer has full control over both x-carriages and can achieve optimal travel results
// as long as it supports dual x-carriages. (M605 S0)
// Mode 1: Auto-park mode. The firmware will automatically park and unpark the x-carriages on tool changes so
// that additional slicer support is not required. (M605 S1)
// Mode 2: Duplication mode. The firmware will transparently make the second x-carriage and extruder copy all
// actions of the first x-carriage. This allows the printer to print 2 arbitrary items at
// once. (2nd extruder x offset and temp offset are set using: M605 S2 [Xnnn] [Rmmm])
// This is the default power-up mode which can be later using M605.
#define DEFAULT_DUAL_X_CARRIAGE_MODE 0
// Default settings in "Auto-park Mode"
#define TOOLCHANGE_PARK_ZLIFT 0.2 // the distance to raise Z axis when parking an extruder
#define TOOLCHANGE_UNPARK_ZLIFT 1 // the distance to raise Z axis when unparking an extruder
// Default x offset in duplication mode (typically set to half print bed width)
#define DEFAULT_DUPLICATION_X_OFFSET 100
#endif //DUAL_X_CARRIAGE
// @section homing
//homing hits the endstop, then retracts by this distance, before it tries to slowly bump again:
#define X_HOME_BUMP_MM 5
#define Y_HOME_BUMP_MM 5
#define Z_HOME_BUMP_MM 2
#define HOMING_BUMP_DIVISOR {2, 2, 4} // Re-Bump Speed Divisor (Divides the Homing Feedrate)
//#define QUICK_HOME //if this is defined, if both x and y are to be homed, a diagonal move will be performed initially.
// When G28 is called, this option will make Y home before X
//#define HOME_Y_BEFORE_X
// @section machine
#define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder
//#define DUAL_NOZZLE_DUPLICATION_MODE
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false
#define INVERT_Y_STEP_PIN false
#define INVERT_Z_STEP_PIN false
#define INVERT_E_STEP_PIN false
// Default stepper release if idle. Set to 0 to deactivate.
// Steppers will shut down DEFAULT_STEPPER_DEACTIVE_TIME seconds after the last move when DISABLE_INACTIVE_? is true.
// Time can be set by M18 and M84.
#define DEFAULT_STEPPER_DEACTIVE_TIME 60
#define DISABLE_INACTIVE_X true
#define DISABLE_INACTIVE_Y true
#define DISABLE_INACTIVE_Z true // set to false if the nozzle will fall down on your printed part when print has finished.
#define DISABLE_INACTIVE_E true
#define DEFAULT_MINIMUMFEEDRATE 0.0 // minimum feedrate
#define DEFAULT_MINTRAVELFEEDRATE 0.0
// @section lcd
#if ENABLED(ULTIPANEL)
#define MANUAL_FEEDRATE {120*60, 120*60, 18*60, 60} // Feedrates for manual moves along X, Y, Z, E from panel
#define ULTIPANEL_FEEDMULTIPLY // Comment to disable setting feedrate multiplier via encoder
#endif
// @section extras
// minimum time in microseconds that a movement needs to take if the buffer is emptied.
#define DEFAULT_MINSEGMENTTIME 20000
// If defined the movements slow down when the look ahead buffer is only half full
#define SLOWDOWN
// Frequency limit
// See nophead's blog for more info
// Not working O
//#define XY_FREQUENCY_LIMIT 15
// Minimum planner junction speed. Sets the default minimum speed the planner plans for at the end
// of the buffer and all stops. This should not be much greater than zero and should only be changed
// if unwanted behavior is observed on a user's machine when running at very slow speeds.
#define MINIMUM_PLANNER_SPEED 0.05// (mm/sec)
// Microstep setting (Only functional when stepper driver microstep pins are connected to MCU.
#define MICROSTEP_MODES {16,16,16,16,16} // [1,2,4,8,16]
// Motor Current setting (Only functional when motor driver current ref pins are connected to a digital trimpot on supported boards)
#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
// Motor Current controlled via PWM (Overridable on supported boards with PWM-driven motor driver current)
//#define PWM_MOTOR_CURRENT {1300, 1300, 1250} // Values in milliamps
// uncomment to enable an I2C based DIGIPOT like on the Azteeg X3 Pro
//#define DIGIPOT_I2C
// Number of channels available for I2C digipot, For Azteeg X3 Pro we have 8
#define DIGIPOT_I2C_NUM_CHANNELS 8
// actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
#define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0}
//===========================================================================
//=============================Additional Features===========================
//===========================================================================
#define ENCODER_RATE_MULTIPLIER // If defined, certain menu edit operations automatically multiply the steps when the encoder is moved quickly
#define ENCODER_10X_STEPS_PER_SEC 75 // If the encoder steps per sec exceeds this value, multiply steps moved x10 to quickly advance the value
#define ENCODER_100X_STEPS_PER_SEC 160 // If the encoder steps per sec exceeds this value, multiply steps moved x100 to really quickly advance the value
//#define CHDK 4 //Pin for triggering CHDK to take a picture see how to use it here http://captain-slow.dk/2014/03/09/3d-printing-timelapses/
#define CHDK_DELAY 50 //How long in ms the pin should stay HIGH before going LOW again
// @section lcd
// Include a page of printer information in the LCD Main Menu
//#define LCD_INFO_MENU
#if ENABLED(SDSUPPORT)
// Some RAMPS and other boards don't detect when an SD card is inserted. You can work
// around this by connecting a push button or single throw switch to the pin defined
// as SD_DETECT_PIN in your board's pins definitions.
// This setting should be disabled unless you are using a push button, pulling the pin to ground.
// Note: This is always disabled for ULTIPANEL (except ELB_FULL_GRAPHIC_CONTROLLER).
#define SD_DETECT_INVERTED
#define SD_FINISHED_STEPPERRELEASE true //if sd support and the file is finished: disable steppers?
#define SD_FINISHED_RELEASECOMMAND "M84 X Y Z E" // You might want to keep the z enabled so your bed stays in place.
#define SDCARD_RATHERRECENTFIRST //reverse file order of sd card menu display. Its sorted practically after the file system block order.
// if a file is deleted, it frees a block. hence, the order is not purely chronological. To still have auto0.g accessible, there is again the option to do that.
// using:
//#define MENU_ADDAUTOSTART
// Show a progress bar on HD44780 LCDs for SD printing
//#define LCD_PROGRESS_BAR
#if ENABLED(LCD_PROGRESS_BAR)
// Amount of time (ms) to show the bar
#define PROGRESS_BAR_BAR_TIME 2000
// Amount of time (ms) to show the status message
#define PROGRESS_BAR_MSG_TIME 3000
// Amount of time (ms) to retain the status message (0=forever)
#define PROGRESS_MSG_EXPIRE 0
// Enable this to show messages for MSG_TIME then hide them
//#define PROGRESS_MSG_ONCE
#endif
// This allows hosts to request long names for files and folders with M33
//#define LONG_FILENAME_HOST_SUPPORT
// This option allows you to abort SD printing when any endstop is triggered.
// This feature must be enabled with "M540 S1" or from the LCD menu.
// To have any effect, endstops must be enabled during SD printing.
//#define ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED
#endif // SDSUPPORT
// for dogm lcd displays you can choose some additional fonts:
#if ENABLED(DOGLCD)
// save 3120 bytes of PROGMEM by commenting out #define USE_BIG_EDIT_FONT
// we don't have a big font for Cyrillic, Kana
//#define USE_BIG_EDIT_FONT
// If you have spare 2300Byte of progmem and want to use a
// smaller font on the Info-screen uncomment the next line.
//#define USE_SMALL_INFOFONT
#endif // DOGLCD
// @section safety
// The hardware watchdog should reset the microcontroller disabling all outputs,
// in case the firmware gets stuck and doesn't do temperature regulation.
#define USE_WATCHDOG
#if ENABLED(USE_WATCHDOG)
// If you have a watchdog reboot in an ArduinoMega2560 then the device will hang forever, as a watchdog reset will leave the watchdog on.
// The "WATCHDOG_RESET_MANUAL" goes around this by not using the hardware reset.
// However, THIS FEATURE IS UNSAFE!, as it will only work if interrupts are disabled. And the code could hang in an interrupt routine with interrupts disabled.
//#define WATCHDOG_RESET_MANUAL
#endif
// @section lcd
// Babystepping enables the user to control the axis in tiny amounts, independently from the normal printing process
// it can e.g. be used to change z-positions in the print startup phase in real-time
// does not respect endstops!
//#define BABYSTEPPING
#if ENABLED(BABYSTEPPING)
#define BABYSTEP_XY //not only z, but also XY in the menu. more clutter, more functions
//not implemented for deltabots!
#define BABYSTEP_INVERT_Z false //true for inverse movements in Z
#define BABYSTEP_MULTIPLICATOR 1 //faster movements
#endif
// @section extruder
// extruder advance constant (s2/mm3)
//
// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
//
// Hooke's law says: force = k * distance
// Bernoulli's principle says: v ^ 2 / 2 + g . h + pressure / density = constant
// so: v ^ 2 is proportional to number of steps we advance the extruder
//#define ADVANCE
#if ENABLED(ADVANCE)
#define EXTRUDER_ADVANCE_K .0
#define D_FILAMENT 1.75
#endif
// Implementation of a linear pressure control
// Assumption: advance = k * (delta velocity)
// K=0 means advance disabled. A good value for a gregs wade extruder will be around K=75
//#define LIN_ADVANCE
#if ENABLED(LIN_ADVANCE)
#define LIN_ADVANCE_K 75
#endif
// @section leveling
// Default mesh area is an area with an inset margin on the print area.
// Below are the macros that are used to define the borders for the mesh area,
// made available here for specialized needs, ie dual extruder setup.
#if ENABLED(MESH_BED_LEVELING)
#define MESH_MIN_X (X_MIN_POS + MESH_INSET)
#define MESH_MAX_X (X_MAX_POS - (MESH_INSET))
#define MESH_MIN_Y (Y_MIN_POS + MESH_INSET)
#define MESH_MAX_Y (Y_MAX_POS - (MESH_INSET))
#endif
// @section extras
// Arc interpretation settings:
#define ARC_SUPPORT // Disabling this saves ~2738 bytes
#define MM_PER_ARC_SEGMENT 1
#define N_ARC_CORRECTION 25
// Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
//#define BEZIER_CURVE_SUPPORT
const unsigned int dropsegments = 5; //everything with less than this number of steps will be ignored as move and joined with the next movement
// @section temperature
// Control heater 0 and heater 1 in parallel.
//#define HEATERS_PARALLEL
//===========================================================================
//================================= Buffers =================================
//===========================================================================
// @section hidden
// The number of linear motions that can be in the plan at any give time.
// THE BLOCK_BUFFER_SIZE NEEDS TO BE A POWER OF 2, i.g. 8,16,32 because shifts and ors are used to do the ring-buffering.
#if ENABLED(SDSUPPORT)
#define BLOCK_BUFFER_SIZE 16 // SD,LCD,Buttons take more memory, block buffer needs to be smaller
#else
#define BLOCK_BUFFER_SIZE 16 // maximize block buffer
#endif
// @section serial
// The ASCII buffer for serial input
#define MAX_CMD_SIZE 96
#define BUFSIZE 4
// Transfer Buffer Size
// To save 386 bytes of PROGMEM (and TX_BUFFER_SIZE+3 bytes of RAM) set to 0.
// To buffer a simple "ok" you need 4 bytes.
// For ADVANCED_OK (M105) you need 32 bytes.
// For debug-echo: 128 bytes for the optimal speed.
// Other output doesn't need to be that speedy.
// :[0,2,4,8,16,32,64,128,256]
#define TX_BUFFER_SIZE 0
// Enable an emergency-command parser to intercept certain commands as they
// enter the serial receive buffer, so they cannot be blocked.
// Currently handles M108, M112, M410
// Does not work on boards using AT90USB (USBCON) processors!
//#define EMERGENCY_PARSER
// Bad Serial-connections can miss a received command by sending an 'ok'
// Therefore some clients abort after 30 seconds in a timeout.
// Some other clients start sending commands while receiving a 'wait'.
// This "wait" is only sent when the buffer is empty. 1 second is a good value here.
//#define NO_TIMEOUTS 1000 // Milliseconds
// Some clients will have this feature soon. This could make the NO_TIMEOUTS unnecessary.
//#define ADVANCED_OK
// @section fwretract
// Firmware based and LCD controlled retract
// M207 and M208 can be used to define parameters for the retraction.
// The retraction can be called by the slicer using G10 and G11
// until then, intended retractions can be detected by moves that only extrude and the direction.
// the moves are than replaced by the firmware controlled ones.
//#define FWRETRACT //ONLY PARTIALLY TESTED
#if ENABLED(FWRETRACT)
#define MIN_RETRACT 0.1 //minimum extruded mm to accept a automatic gcode retraction attempt
#define RETRACT_LENGTH 3 //default retract length (positive mm)
#define RETRACT_LENGTH_SWAP 13 //default swap retract length (positive mm), for extruder change
#define RETRACT_FEEDRATE 80 //default feedrate for retracting (mm/s)
#define RETRACT_ZLIFT 0 //default retract Z-lift
#define RETRACT_RECOVER_LENGTH 0 //default additional recover length (mm, added to retract length when recovering)
//#define RETRACT_RECOVER_LENGTH_SWAP 0 //default additional swap recover length (mm, added to retract length when recovering from extruder change)
#define RETRACT_RECOVER_FEEDRATE 8 //default feedrate for recovering from retraction (mm/s)
#endif
// Add support for experimental filament exchange support M600; requires display
#if ENABLED(ULTIPANEL)
// #define FILAMENT_CHANGE_FEATURE // Enable filament exchange menu and M600 g-code (used for runout sensor too)
#if ENABLED(FILAMENT_CHANGE_FEATURE)
#define FILAMENT_CHANGE_X_POS 3 // X position of hotend
#define FILAMENT_CHANGE_Y_POS 3 // Y position of hotend
#define FILAMENT_CHANGE_Z_ADD 10 // Z addition of hotend (lift)
#define FILAMENT_CHANGE_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
#define FILAMENT_CHANGE_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
#define FILAMENT_CHANGE_RETRACT_LENGTH 2 // Initial retract in mm
// It is a short retract used immediately after print interrupt before move to filament exchange position
#define FILAMENT_CHANGE_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
#define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm
// Longer length for bowden printers to unload filament from whole bowden tube,
// shorter lenght for printers without bowden to unload filament from extruder only,
// 0 to disable unloading for manual unloading
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast
#define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm
// Longer length for bowden printers to fast load filament into whole bowden tube over the hotend,
// Short or zero length for printers without bowden where loading is not used
#define FILAMENT_CHANGE_LOAD_FEEDRATE 10 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast
#define FILAMENT_CHANGE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is load over the hotend,
// 0 to disable for manual extrusion
// Filament can be extruded repeatedly from the filament exchange menu to fill the hotend,
// or until outcoming filament color is not clear for filament color change
#define FILAMENT_CHANGE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
#endif
#endif
/******************************************************************************\
* enable this section if you have TMC26X motor drivers.
* you need to import the TMC26XStepper library into the Arduino IDE for this
******************************************************************************/
// @section tmc
//#define HAVE_TMCDRIVER
#if ENABLED(HAVE_TMCDRIVER)
//#define X_IS_TMC
#define X_MAX_CURRENT 1000 //in mA
#define X_SENSE_RESISTOR 91 //in mOhms
#define X_MICROSTEPS 16 //number of microsteps
//#define X2_IS_TMC
#define X2_MAX_CURRENT 1000 //in mA
#define X2_SENSE_RESISTOR 91 //in mOhms
#define X2_MICROSTEPS 16 //number of microsteps
//#define Y_IS_TMC
#define Y_MAX_CURRENT 1000 //in mA
#define Y_SENSE_RESISTOR 91 //in mOhms
#define Y_MICROSTEPS 16 //number of microsteps
//#define Y2_IS_TMC
#define Y2_MAX_CURRENT 1000 //in mA
#define Y2_SENSE_RESISTOR 91 //in mOhms
#define Y2_MICROSTEPS 16 //number of microsteps
//#define Z_IS_TMC
#define Z_MAX_CURRENT 1000 //in mA
#define Z_SENSE_RESISTOR 91 //in mOhms
#define Z_MICROSTEPS 16 //number of microsteps
//#define Z2_IS_TMC
#define Z2_MAX_CURRENT 1000 //in mA
#define Z2_SENSE_RESISTOR 91 //in mOhms
#define Z2_MICROSTEPS 16 //number of microsteps
//#define E0_IS_TMC
#define E0_MAX_CURRENT 1000 //in mA
#define E0_SENSE_RESISTOR 91 //in mOhms
#define E0_MICROSTEPS 16 //number of microsteps
//#define E1_IS_TMC
#define E1_MAX_CURRENT 1000 //in mA
#define E1_SENSE_RESISTOR 91 //in mOhms
#define E1_MICROSTEPS 16 //number of microsteps
//#define E2_IS_TMC
#define E2_MAX_CURRENT 1000 //in mA
#define E2_SENSE_RESISTOR 91 //in mOhms
#define E2_MICROSTEPS 16 //number of microsteps
//#define E3_IS_TMC
#define E3_MAX_CURRENT 1000 //in mA
#define E3_SENSE_RESISTOR 91 //in mOhms
#define E3_MICROSTEPS 16 //number of microsteps
#endif
/******************************************************************************\
* enable this section if you have L6470 motor drivers.
* you need to import the L6470 library into the Arduino IDE for this
******************************************************************************/
// @section l6470
//#define HAVE_L6470DRIVER
#if ENABLED(HAVE_L6470DRIVER)
//#define X_IS_L6470
#define X_MICROSTEPS 16 //number of microsteps
#define X_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define X_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define X_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define X2_IS_L6470
#define X2_MICROSTEPS 16 //number of microsteps
#define X2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define X2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define X2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define Y_IS_L6470
#define Y_MICROSTEPS 16 //number of microsteps
#define Y_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define Y_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define Y_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define Y2_IS_L6470
#define Y2_MICROSTEPS 16 //number of microsteps
#define Y2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define Y2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define Y2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define Z_IS_L6470
#define Z_MICROSTEPS 16 //number of microsteps
#define Z_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define Z_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define Z_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define Z2_IS_L6470
#define Z2_MICROSTEPS 16 //number of microsteps
#define Z2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define Z2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define Z2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define E0_IS_L6470
#define E0_MICROSTEPS 16 //number of microsteps
#define E0_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define E0_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define E0_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define E1_IS_L6470
#define E1_MICROSTEPS 16 //number of microsteps
#define E1_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define E1_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define E1_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define E2_IS_L6470
#define E2_MICROSTEPS 16 //number of microsteps
#define E2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define E2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define E2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define E3_IS_L6470
#define E3_MICROSTEPS 16 //number of microsteps
#define E3_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define E3_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define E3_STALLCURRENT 1500 //current in mA where the driver will detect a stall
#endif
/**
* TWI/I2C BUS
*
* This feature is an EXPERIMENTAL feature so it shall not be used on production
* machines. Enabling this will allow you to send and receive I2C data from slave
* devices on the bus.
*
* ; Example #1
* ; This macro send the string "Marlin" to the slave device with address 0x63 (99)
* ; It uses multiple M155 commands with one B<base 10> arg
* M155 A99 ; Target slave address
* M155 B77 ; M
* M155 B97 ; a
* M155 B114 ; r
* M155 B108 ; l
* M155 B105 ; i
* M155 B110 ; n
* M155 S1 ; Send the current buffer
*
* ; Example #2
* ; Request 6 bytes from slave device with address 0x63 (99)
* M156 A99 B5
*
* ; Example #3
* ; Example serial output of a M156 request
* echo:i2c-reply: from:99 bytes:5 data:hello
*/
// @section i2cbus
//#define EXPERIMENTAL_I2CBUS
#endif // CONFIGURATION_ADV_H
File diff suppressed because it is too large Load Diff
@@ -1,799 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
* Configuration_adv.h
*
* Advanced settings.
* Only change these if you know exactly what you're doing.
* Some of these settings can damage your printer if improperly set!
*
* Basic settings can be found in Configuration.h
*
*/
#ifndef CONFIGURATION_ADV_H
#define CONFIGURATION_ADV_H
/**
*
* ***********************************
* ** ATTENTION TO ALL DEVELOPERS **
* ***********************************
*
* You must increment this version number for every significant change such as,
* but not limited to: ADD, DELETE RENAME OR REPURPOSE any directive/option.
*
* Note: Update also Version.h !
*/
#define CONFIGURATION_ADV_H_VERSION 010100
// @section temperature
//===========================================================================
//=============================Thermal Settings ============================
//===========================================================================
#if DISABLED(PIDTEMPBED)
#define BED_CHECK_INTERVAL 5000 // ms between checks in bang-bang control
#if ENABLED(BED_LIMIT_SWITCHING)
#define BED_HYSTERESIS 2 // Only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
#endif
#endif
/**
* Thermal Protection protects your printer from damage and fire if a
* thermistor falls out or temperature sensors fail in any way.
*
* The issue: If a thermistor falls out or a temperature sensor fails,
* Marlin can no longer sense the actual temperature. Since a disconnected
* thermistor reads as a low temperature, the firmware will keep the heater on.
*
* The solution: Once the temperature reaches the target, start observing.
* If the temperature stays too far below the target (hysteresis) for too long (period),
* the firmware will halt the machine as a safety precaution.
*
* If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
*/
#if ENABLED(THERMAL_PROTECTION_HOTENDS)
#define THERMAL_PROTECTION_PERIOD 40 // Seconds
#define THERMAL_PROTECTION_HYSTERESIS 4 // Degrees Celsius
/**
* Whenever an M104 or M109 increases the target temperature the firmware will wait for the
* WATCH_TEMP_PERIOD to expire, and if the temperature hasn't increased by WATCH_TEMP_INCREASE
* degrees, the machine is halted, requiring a hard reset. This test restarts with any M104/M109,
* but only if the current temperature is far enough below the target for a reliable test.
*
* If you get false positives for "Heating failed" increase WATCH_TEMP_PERIOD and/or decrease WATCH_TEMP_INCREASE
* WATCH_TEMP_INCREASE should not be below 2.
*/
#define WATCH_TEMP_PERIOD 20 // Seconds
#define WATCH_TEMP_INCREASE 2 // Degrees Celsius
#endif
/**
* Thermal Protection parameters for the bed are just as above for hotends.
*/
#if ENABLED(THERMAL_PROTECTION_BED)
#define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds
#define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius
/**
* Whenever an M140 or M190 increases the target temperature the firmware will wait for the
* WATCH_BED_TEMP_PERIOD to expire, and if the temperature hasn't increased by WATCH_BED_TEMP_INCREASE
* degrees, the machine is halted, requiring a hard reset. This test restarts with any M140/M190,
* but only if the current temperature is far enough below the target for a reliable test.
*
* If you get too many "Heating failed" errors, increase WATCH_BED_TEMP_PERIOD and/or decrease
* WATCH_BED_TEMP_INCREASE. (WATCH_BED_TEMP_INCREASE should not be below 2.)
*/
#define WATCH_BED_TEMP_PERIOD 60 // Seconds
#define WATCH_BED_TEMP_INCREASE 2 // Degrees Celsius
#endif
#if ENABLED(PIDTEMP)
// this adds an experimental additional term to the heating power, proportional to the extrusion speed.
// if Kc is chosen well, the additional required power due to increased melting should be compensated.
//#define PID_EXTRUSION_SCALING
#if ENABLED(PID_EXTRUSION_SCALING)
#define DEFAULT_Kc (100) //heating power=Kc*(e_speed)
#define LPQ_MAX_LEN 50
#endif
#endif
/**
* Automatic Temperature:
* The hotend target temperature is calculated by all the buffered lines of gcode.
* The maximum buffered steps/sec of the extruder motor is called "se".
* Start autotemp mode with M109 S<mintemp> B<maxtemp> F<factor>
* The target temperature is set to mintemp+factor*se[steps/sec] and is limited by
* mintemp and maxtemp. Turn this off by executing M109 without F*
* Also, if the temperature is set to a value below mintemp, it will not be changed by autotemp.
* On an Ultimaker, some initial testing worked with M109 S215 B260 F1 in the start.gcode
*/
#define AUTOTEMP
#if ENABLED(AUTOTEMP)
#define AUTOTEMP_OLDWEIGHT 0.98
#endif
//Show Temperature ADC value
//The M105 command return, besides traditional information, the ADC value read from temperature sensors.
//#define SHOW_TEMP_ADC_VALUES
/**
* High Temperature Thermistor Support
*
* Thermistors able to support high temperature tend to have a hard time getting
* good readings at room and lower temperatures. This means HEATER_X_RAW_LO_TEMP
* will probably be caught when the heating element first turns on during the
* preheating process, which will trigger a min_temp_error as a safety measure
* and force stop everything.
* To circumvent this limitation, we allow for a preheat time (during which,
* min_temp_error won't be triggered) and add a min_temp buffer to handle
* aberrant readings.
*
* If you want to enable this feature for your hotend thermistor(s)
* uncomment and set values > 0 in the constants below
*/
// The number of consecutive low temperature errors that can occur
// before a min_temp_error is triggered. (Shouldn't be more than 10.)
//#define MAX_CONSECUTIVE_LOW_TEMPERATURE_ERROR_ALLOWED 0
// The number of milliseconds a hotend will preheat before starting to check
// the temperature. This value should NOT be set to the time it takes the
// hot end to reach the target temperature, but the time it takes to reach
// the minimum temperature your thermistor can read. The lower the better/safer.
// This shouldn't need to be more than 30 seconds (30000)
//#define MILLISECONDS_PREHEAT_TIME 0
// @section extruder
// extruder run-out prevention.
//if the machine is idle, and the temperature over MINTEMP, every couple of SECONDS some filament is extruded
//#define EXTRUDER_RUNOUT_PREVENT
#define EXTRUDER_RUNOUT_MINTEMP 190
#define EXTRUDER_RUNOUT_SECONDS 30
#define EXTRUDER_RUNOUT_ESTEPS 14 // mm filament
#define EXTRUDER_RUNOUT_SPEED 1500 // extrusion speed
#define EXTRUDER_RUNOUT_EXTRUDE 100
// @section temperature
//These defines help to calibrate the AD595 sensor in case you get wrong temperature measurements.
//The measured temperature is defined as "actualTemp = (measuredTemp * TEMP_SENSOR_AD595_GAIN) + TEMP_SENSOR_AD595_OFFSET"
#define TEMP_SENSOR_AD595_OFFSET 0.0
#define TEMP_SENSOR_AD595_GAIN 1.0
//This is for controlling a fan to cool down the stepper drivers
//it will turn on when any driver is enabled
//and turn off after the set amount of seconds from last driver being disabled again
#define CONTROLLERFAN_PIN -1 //Pin used for the fan to cool controller (-1 to disable)
#define CONTROLLERFAN_SECS 60 //How many seconds, after all motors were disabled, the fan should run
#define CONTROLLERFAN_SPEED 255 // == full speed
// When first starting the main fan, run it at full speed for the
// given number of milliseconds. This gets the fan spinning reliably
// before setting a PWM value. (Does not work with software PWM for fan on Sanguinololu)
//#define FAN_KICKSTART_TIME 100
// This defines the minimal speed for the main fan, run in PWM mode
// to enable uncomment and set minimal PWM speed for reliable running (1-255)
// if fan speed is [1 - (FAN_MIN_PWM-1)] it is set to FAN_MIN_PWM
//#define FAN_MIN_PWM 50
// @section extruder
// Extruder cooling fans
// Configure fan pin outputs to automatically turn on/off when the associated
// extruder temperature is above/below EXTRUDER_AUTO_FAN_TEMPERATURE.
// Multiple extruders can be assigned to the same pin in which case
// the fan will turn on when any selected extruder is above the threshold.
#define EXTRUDER_0_AUTO_FAN_PIN 11
#define EXTRUDER_1_AUTO_FAN_PIN 6
#define EXTRUDER_2_AUTO_FAN_PIN -1
#define EXTRUDER_3_AUTO_FAN_PIN -1
#define EXTRUDER_AUTO_FAN_TEMPERATURE 50
#define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed
//===========================================================================
//============================ Mechanical Settings ==========================
//===========================================================================
// @section homing
// If you want endstops to stay on (by default) even when not homing
// enable this option. Override at any time with M120, M121.
//#define ENDSTOPS_ALWAYS_ON_DEFAULT
// @section extras
//#define Z_LATE_ENABLE // Enable Z the last moment. Needed if your Z driver overheats.
// Dual X Steppers
// Uncomment this option to drive two X axis motors.
// The next unused E driver will be assigned to the second X stepper.
//#define X_DUAL_STEPPER_DRIVERS
#if ENABLED(X_DUAL_STEPPER_DRIVERS)
// Set true if the two X motors need to rotate in opposite directions
#define INVERT_X2_VS_X_DIR true
#endif
// Dual Y Steppers
// Uncomment this option to drive two Y axis motors.
// The next unused E driver will be assigned to the second Y stepper.
//#define Y_DUAL_STEPPER_DRIVERS
#if ENABLED(Y_DUAL_STEPPER_DRIVERS)
// Set true if the two Y motors need to rotate in opposite directions
#define INVERT_Y2_VS_Y_DIR true
#endif
// A single Z stepper driver is usually used to drive 2 stepper motors.
// Uncomment this option to use a separate stepper driver for each Z axis motor.
// The next unused E driver will be assigned to the second Z stepper.
//#define Z_DUAL_STEPPER_DRIVERS
#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
// Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
// That way the machine is capable to align the bed during home, since both Z steppers are homed.
// There is also an implementation of M666 (software endstops adjustment) to this feature.
// After Z homing, this adjustment is applied to just one of the steppers in order to align the bed.
// One just need to home the Z axis and measure the distance difference between both Z axis and apply the math: Z adjust = Z - Z2.
// If the Z stepper axis is closer to the bed, the measure Z > Z2 (yes, it is.. think about it) and the Z adjust would be positive.
// Play a little bit with small adjustments (0.5mm) and check the behaviour.
// The M119 (endstops report) will start reporting the Z2 Endstop as well.
//#define Z_DUAL_ENDSTOPS
#if ENABLED(Z_DUAL_ENDSTOPS)
#define Z2_USE_ENDSTOP _XMAX_
#endif
#endif // Z_DUAL_STEPPER_DRIVERS
// Enable this for dual x-carriage printers.
// A dual x-carriage design has the advantage that the inactive extruder can be parked which
// prevents hot-end ooze contaminating the print. It also reduces the weight of each x-carriage
// allowing faster printing speeds. Connect your X2 stepper to the first unused E plug.
//#define DUAL_X_CARRIAGE
#if ENABLED(DUAL_X_CARRIAGE)
// Configuration for second X-carriage
// Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
// the second x-carriage always homes to the maximum endstop.
#define X2_MIN_POS 80 // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
#define X2_MAX_POS 353 // set maximum to the distance between toolheads when both heads are homed
#define X2_HOME_DIR 1 // the second X-carriage always homes to the maximum endstop position
#define X2_HOME_POS X2_MAX_POS // default home position is the maximum carriage position
// However: In this mode the HOTEND_OFFSET_X value for the second extruder provides a software
// override for X2_HOME_POS. This also allow recalibration of the distance between the two endstops
// without modifying the firmware (through the "M218 T1 X???" command).
// Remember: you should set the second extruder x-offset to 0 in your slicer.
// There are a few selectable movement modes for dual x-carriages using M605 S<mode>
// Mode 0: Full control. The slicer has full control over both x-carriages and can achieve optimal travel results
// as long as it supports dual x-carriages. (M605 S0)
// Mode 1: Auto-park mode. The firmware will automatically park and unpark the x-carriages on tool changes so
// that additional slicer support is not required. (M605 S1)
// Mode 2: Duplication mode. The firmware will transparently make the second x-carriage and extruder copy all
// actions of the first x-carriage. This allows the printer to print 2 arbitrary items at
// once. (2nd extruder x offset and temp offset are set using: M605 S2 [Xnnn] [Rmmm])
// This is the default power-up mode which can be later using M605.
#define DEFAULT_DUAL_X_CARRIAGE_MODE 0
// Default settings in "Auto-park Mode"
#define TOOLCHANGE_PARK_ZLIFT 0.2 // the distance to raise Z axis when parking an extruder
#define TOOLCHANGE_UNPARK_ZLIFT 1 // the distance to raise Z axis when unparking an extruder
// Default x offset in duplication mode (typically set to half print bed width)
#define DEFAULT_DUPLICATION_X_OFFSET 100
#endif //DUAL_X_CARRIAGE
// @section homing
//homing hits the endstop, then retracts by this distance, before it tries to slowly bump again:
#define X_HOME_BUMP_MM 5
#define Y_HOME_BUMP_MM 5
#define Z_HOME_BUMP_MM 2
#define HOMING_BUMP_DIVISOR {2, 2, 4} // Re-Bump Speed Divisor (Divides the Homing Feedrate)
//#define QUICK_HOME //if this is defined, if both x and y are to be homed, a diagonal move will be performed initially.
// When G28 is called, this option will make Y home before X
#define HOME_Y_BEFORE_X
// @section machine
#define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder
//#define DUAL_NOZZLE_DUPLICATION_MODE
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false
#define INVERT_Y_STEP_PIN false
#define INVERT_Z_STEP_PIN false
#define INVERT_E_STEP_PIN false
// Default stepper release if idle. Set to 0 to deactivate.
// Steppers will shut down DEFAULT_STEPPER_DEACTIVE_TIME seconds after the last move when DISABLE_INACTIVE_? is true.
// Time can be set by M18 and M84.
#define DEFAULT_STEPPER_DEACTIVE_TIME 120
#define DISABLE_INACTIVE_X true
#define DISABLE_INACTIVE_Y true
#define DISABLE_INACTIVE_Z true // set to false if the nozzle will fall down on your printed part when print has finished.
#define DISABLE_INACTIVE_E true
#define DEFAULT_MINIMUMFEEDRATE 0.0 // minimum feedrate
#define DEFAULT_MINTRAVELFEEDRATE 0.0
// @section lcd
#if ENABLED(ULTIPANEL)
#define MANUAL_FEEDRATE {50*60, 50*60, 4*60, 60} // Feedrates for manual moves along X, Y, Z, E from panel
#define ULTIPANEL_FEEDMULTIPLY // Comment to disable setting feedrate multiplier via encoder
#endif
// @section extras
// minimum time in microseconds that a movement needs to take if the buffer is emptied.
#define DEFAULT_MINSEGMENTTIME 20000
// If defined the movements slow down when the look ahead buffer is only half full
#define SLOWDOWN
// Frequency limit
// See nophead's blog for more info
// Not working O
//#define XY_FREQUENCY_LIMIT 15
// Minimum planner junction speed. Sets the default minimum speed the planner plans for at the end
// of the buffer and all stops. This should not be much greater than zero and should only be changed
// if unwanted behavior is observed on a user's machine when running at very slow speeds.
#define MINIMUM_PLANNER_SPEED 0.05 // (mm/sec)
// Microstep setting (Only functional when stepper driver microstep pins are connected to MCU.
#define MICROSTEP_MODES {16,16,16,16,16} // [1,2,4,8,16]
// Motor Current setting (Only functional when motor driver current ref pins are connected to a digital trimpot on supported boards)
#define DIGIPOT_MOTOR_CURRENT {150, 170, 180, 190, 180} // Values 0-255 (bq ZUM Mega 3D (default): X = 150 [~1.17A]; Y = 170 [~1.33A]; Z = 180 [~1.41A]; E0 = 190 [~1.49A])
// Motor Current controlled via PWM (Overridable on supported boards with PWM-driven motor driver current)
//#define PWM_MOTOR_CURRENT {1300, 1300, 1250} // Values in milliamps
// uncomment to enable an I2C based DIGIPOT like on the Azteeg X3 Pro
//#define DIGIPOT_I2C
// Number of channels available for I2C digipot, For Azteeg X3 Pro we have 8
#define DIGIPOT_I2C_NUM_CHANNELS 8
// actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
#define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0}
//===========================================================================
//=============================Additional Features===========================
//===========================================================================
//#define ENCODER_RATE_MULTIPLIER // If defined, certain menu edit operations automatically multiply the steps when the encoder is moved quickly
//#define ENCODER_10X_STEPS_PER_SEC 75 // If the encoder steps per sec exceeds this value, multiply steps moved x10 to quickly advance the value
//#define ENCODER_100X_STEPS_PER_SEC 160 // If the encoder steps per sec exceeds this value, multiply steps moved x100 to really quickly advance the value
//#define CHDK 4 //Pin for triggering CHDK to take a picture see how to use it here http://captain-slow.dk/2014/03/09/3d-printing-timelapses/
//#define CHDK_DELAY 50 //How long in ms the pin should stay HIGH before going LOW again
// @section lcd
// Include a page of printer information in the LCD Main Menu
//#define LCD_INFO_MENU
#if ENABLED(SDSUPPORT)
// Some RAMPS and other boards don't detect when an SD card is inserted. You can work
// around this by connecting a push button or single throw switch to the pin defined
// as SD_DETECT_PIN in your board's pins definitions.
// This setting should be disabled unless you are using a push button, pulling the pin to ground.
// Note: This is always disabled for ULTIPANEL (except ELB_FULL_GRAPHIC_CONTROLLER).
#define SD_DETECT_INVERTED
#define SD_FINISHED_STEPPERRELEASE true //if sd support and the file is finished: disable steppers?
#define SD_FINISHED_RELEASECOMMAND "M104 S0\nM84 X Y Z E" // You might want to keep the z enabled so your bed stays in place.
#define SDCARD_RATHERRECENTFIRST //reverse file order of sd card menu display. Its sorted practically after the file system block order.
// if a file is deleted, it frees a block. hence, the order is not purely chronological. To still have auto0.g accessible, there is again the option to do that.
// using:
#define MENU_ADDAUTOSTART
// Show a progress bar on HD44780 LCDs for SD printing
//#define LCD_PROGRESS_BAR
#if ENABLED(LCD_PROGRESS_BAR)
// Amount of time (ms) to show the bar
#define PROGRESS_BAR_BAR_TIME 2000
// Amount of time (ms) to show the status message
#define PROGRESS_BAR_MSG_TIME 3000
// Amount of time (ms) to retain the status message (0=forever)
#define PROGRESS_MSG_EXPIRE 0
// Enable this to show messages for MSG_TIME then hide them
//#define PROGRESS_MSG_ONCE
#endif
// This allows hosts to request long names for files and folders with M33
#define LONG_FILENAME_HOST_SUPPORT
// This option allows you to abort SD printing when any endstop is triggered.
// This feature must be enabled with "M540 S1" or from the LCD menu.
// To have any effect, endstops must be enabled during SD printing.
//#define ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED
#endif // SDSUPPORT
// for dogm lcd displays you can choose some additional fonts:
#if ENABLED(DOGLCD)
// save 3120 bytes of PROGMEM by commenting out #define USE_BIG_EDIT_FONT
// we don't have a big font for Cyrillic, Kana
//#define USE_BIG_EDIT_FONT
// If you have spare 2300Byte of progmem and want to use a
// smaller font on the Info-screen uncomment the next line.
#define USE_SMALL_INFOFONT
#endif // DOGLCD
// @section safety
// The hardware watchdog should reset the microcontroller disabling all outputs,
// in case the firmware gets stuck and doesn't do temperature regulation.
#define USE_WATCHDOG
#if ENABLED(USE_WATCHDOG)
// If you have a watchdog reboot in an ArduinoMega2560 then the device will hang forever, as a watchdog reset will leave the watchdog on.
// The "WATCHDOG_RESET_MANUAL" goes around this by not using the hardware reset.
// However, THIS FEATURE IS UNSAFE!, as it will only work if interrupts are disabled. And the code could hang in an interrupt routine with interrupts disabled.
//#define WATCHDOG_RESET_MANUAL
#endif
// @section lcd
// Babystepping enables the user to control the axis in tiny amounts, independently from the normal printing process
// it can e.g. be used to change z-positions in the print startup phase in real-time
// does not respect endstops!
//#define BABYSTEPPING
#if ENABLED(BABYSTEPPING)
#define BABYSTEP_XY //not only z, but also XY in the menu. more clutter, more functions
//not implemented for deltabots!
#define BABYSTEP_INVERT_Z false //true for inverse movements in Z
#define BABYSTEP_MULTIPLICATOR 1 //faster movements
#endif
// @section extruder
// extruder advance constant (s2/mm3)
//
// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
//
// Hooke's law says: force = k * distance
// Bernoulli's principle says: v ^ 2 / 2 + g . h + pressure / density = constant
// so: v ^ 2 is proportional to number of steps we advance the extruder
//#define ADVANCE
#if ENABLED(ADVANCE)
#define EXTRUDER_ADVANCE_K .0
#define D_FILAMENT 2.85
#endif
// Implementation of a linear pressure control
// Assumption: advance = k * (delta velocity)
// K=0 means advance disabled. A good value for a gregs wade extruder will be around K=75
//#define LIN_ADVANCE
#if ENABLED(LIN_ADVANCE)
#define LIN_ADVANCE_K 75
#endif
// @section leveling
// Default mesh area is an area with an inset margin on the print area.
// Below are the macros that are used to define the borders for the mesh area,
// made available here for specialized needs, ie dual extruder setup.
#if ENABLED(MESH_BED_LEVELING)
#define MESH_MIN_X (X_MIN_POS + MESH_INSET)
#define MESH_MAX_X (X_MAX_POS - (MESH_INSET))
#define MESH_MIN_Y (Y_MIN_POS + MESH_INSET)
#define MESH_MAX_Y (Y_MAX_POS - (MESH_INSET))
#endif
// @section extras
// Arc interpretation settings:
#define ARC_SUPPORT // Disabling this saves ~2738 bytes
#define MM_PER_ARC_SEGMENT 1
#define N_ARC_CORRECTION 25
// Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
//#define BEZIER_CURVE_SUPPORT
const unsigned int dropsegments = 5; //everything with less than this number of steps will be ignored as move and joined with the next movement
// @section temperature
// Control heater 0 and heater 1 in parallel.
//#define HEATERS_PARALLEL
//===========================================================================
//================================= Buffers =================================
//===========================================================================
// @section hidden
// The number of linear motions that can be in the plan at any give time.
// THE BLOCK_BUFFER_SIZE NEEDS TO BE A POWER OF 2, i.g. 8,16,32 because shifts and ors are used to do the ring-buffering.
#if ENABLED(SDSUPPORT)
#define BLOCK_BUFFER_SIZE 16 // SD,LCD,Buttons take more memory, block buffer needs to be smaller
#else
#define BLOCK_BUFFER_SIZE 16 // maximize block buffer
#endif
// @section serial
// The ASCII buffer for serial input
#define MAX_CMD_SIZE 96
#define BUFSIZE 4
// Transfer Buffer Size
// To save 386 bytes of PROGMEM (and TX_BUFFER_SIZE+3 bytes of RAM) set to 0.
// To buffer a simple "ok" you need 4 bytes.
// For ADVANCED_OK (M105) you need 32 bytes.
// For debug-echo: 128 bytes for the optimal speed.
// Other output doesn't need to be that speedy.
// :[0,2,4,8,16,32,64,128,256]
#define TX_BUFFER_SIZE 0
// Enable an emergency-command parser to intercept certain commands as they
// enter the serial receive buffer, so they cannot be blocked.
// Currently handles M108, M112, M410
// Does not work on boards using AT90USB (USBCON) processors!
//#define EMERGENCY_PARSER
// Bad Serial-connections can miss a received command by sending an 'ok'
// Therefore some clients abort after 30 seconds in a timeout.
// Some other clients start sending commands while receiving a 'wait'.
// This "wait" is only sent when the buffer is empty. 1 second is a good value here.
//#define NO_TIMEOUTS 1000 // Milliseconds
// Some clients will have this feature soon. This could make the NO_TIMEOUTS unnecessary.
//#define ADVANCED_OK
// @section fwretract
// Firmware based and LCD controlled retract
// M207 and M208 can be used to define parameters for the retraction.
// The retraction can be called by the slicer using G10 and G11
// until then, intended retractions can be detected by moves that only extrude and the direction.
// the moves are than replaced by the firmware controlled ones.
//#define FWRETRACT //ONLY PARTIALLY TESTED
#if ENABLED(FWRETRACT)
#define MIN_RETRACT 0.1 //minimum extruded mm to accept a automatic gcode retraction attempt
#define RETRACT_LENGTH 3 //default retract length (positive mm)
#define RETRACT_LENGTH_SWAP 13 //default swap retract length (positive mm), for extruder change
#define RETRACT_FEEDRATE 45 //default feedrate for retracting (mm/s)
#define RETRACT_ZLIFT 0 //default retract Z-lift
#define RETRACT_RECOVER_LENGTH 0 //default additional recover length (mm, added to retract length when recovering)
#define RETRACT_RECOVER_LENGTH_SWAP 0 //default additional swap recover length (mm, added to retract length when recovering from extruder change)
#define RETRACT_RECOVER_FEEDRATE 8 //default feedrate for recovering from retraction (mm/s)
#endif
// Add support for experimental filament exchange support M600; requires display
#if ENABLED(ULTIPANEL)
// #define FILAMENT_CHANGE_FEATURE // Enable filament exchange menu and M600 g-code (used for runout sensor too)
#if ENABLED(FILAMENT_CHANGE_FEATURE)
#define FILAMENT_CHANGE_X_POS 3 // X position of hotend
#define FILAMENT_CHANGE_Y_POS 3 // Y position of hotend
#define FILAMENT_CHANGE_Z_ADD 10 // Z addition of hotend (lift)
#define FILAMENT_CHANGE_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
#define FILAMENT_CHANGE_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
#define FILAMENT_CHANGE_RETRACT_LENGTH 2 // Initial retract in mm
// It is a short retract used immediately after print interrupt before move to filament exchange position
#define FILAMENT_CHANGE_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
#define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm
// Longer length for bowden printers to unload filament from whole bowden tube,
// shorter lenght for printers without bowden to unload filament from extruder only,
// 0 to disable unloading for manual unloading
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast
#define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm
// Longer length for bowden printers to fast load filament into whole bowden tube over the hotend,
// Short or zero length for printers without bowden where loading is not used
#define FILAMENT_CHANGE_LOAD_FEEDRATE 10 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast
#define FILAMENT_CHANGE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is load over the hotend,
// 0 to disable for manual extrusion
// Filament can be extruded repeatedly from the filament exchange menu to fill the hotend,
// or until outcoming filament color is not clear for filament color change
#define FILAMENT_CHANGE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
#endif
#endif
/******************************************************************************\
* enable this section if you have TMC26X motor drivers.
* you need to import the TMC26XStepper library into the Arduino IDE for this
******************************************************************************/
// @section tmc
//#define HAVE_TMCDRIVER
#if ENABLED(HAVE_TMCDRIVER)
//#define X_IS_TMC
#define X_MAX_CURRENT 1000 //in mA
#define X_SENSE_RESISTOR 91 //in mOhms
#define X_MICROSTEPS 16 //number of microsteps
//#define X2_IS_TMC
#define X2_MAX_CURRENT 1000 //in mA
#define X2_SENSE_RESISTOR 91 //in mOhms
#define X2_MICROSTEPS 16 //number of microsteps
//#define Y_IS_TMC
#define Y_MAX_CURRENT 1000 //in mA
#define Y_SENSE_RESISTOR 91 //in mOhms
#define Y_MICROSTEPS 16 //number of microsteps
//#define Y2_IS_TMC
#define Y2_MAX_CURRENT 1000 //in mA
#define Y2_SENSE_RESISTOR 91 //in mOhms
#define Y2_MICROSTEPS 16 //number of microsteps
//#define Z_IS_TMC
#define Z_MAX_CURRENT 1000 //in mA
#define Z_SENSE_RESISTOR 91 //in mOhms
#define Z_MICROSTEPS 16 //number of microsteps
//#define Z2_IS_TMC
#define Z2_MAX_CURRENT 1000 //in mA
#define Z2_SENSE_RESISTOR 91 //in mOhms
#define Z2_MICROSTEPS 16 //number of microsteps
//#define E0_IS_TMC
#define E0_MAX_CURRENT 1000 //in mA
#define E0_SENSE_RESISTOR 91 //in mOhms
#define E0_MICROSTEPS 16 //number of microsteps
//#define E1_IS_TMC
#define E1_MAX_CURRENT 1000 //in mA
#define E1_SENSE_RESISTOR 91 //in mOhms
#define E1_MICROSTEPS 16 //number of microsteps
//#define E2_IS_TMC
#define E2_MAX_CURRENT 1000 //in mA
#define E2_SENSE_RESISTOR 91 //in mOhms
#define E2_MICROSTEPS 16 //number of microsteps
//#define E3_IS_TMC
#define E3_MAX_CURRENT 1000 //in mA
#define E3_SENSE_RESISTOR 91 //in mOhms
#define E3_MICROSTEPS 16 //number of microsteps
#endif
/******************************************************************************\
* enable this section if you have L6470 motor drivers.
* you need to import the L6470 library into the Arduino IDE for this
******************************************************************************/
// @section l6470
//#define HAVE_L6470DRIVER
#if ENABLED(HAVE_L6470DRIVER)
//#define X_IS_L6470
#define X_MICROSTEPS 16 //number of microsteps
#define X_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define X_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define X_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define X2_IS_L6470
#define X2_MICROSTEPS 16 //number of microsteps
#define X2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define X2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define X2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define Y_IS_L6470
#define Y_MICROSTEPS 16 //number of microsteps
#define Y_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define Y_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define Y_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define Y2_IS_L6470
#define Y2_MICROSTEPS 16 //number of microsteps
#define Y2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define Y2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define Y2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define Z_IS_L6470
#define Z_MICROSTEPS 16 //number of microsteps
#define Z_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define Z_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define Z_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define Z2_IS_L6470
#define Z2_MICROSTEPS 16 //number of microsteps
#define Z2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define Z2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define Z2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define E0_IS_L6470
#define E0_MICROSTEPS 16 //number of microsteps
#define E0_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define E0_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define E0_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define E1_IS_L6470
#define E1_MICROSTEPS 16 //number of microsteps
#define E1_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define E1_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define E1_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define E2_IS_L6470
#define E2_MICROSTEPS 16 //number of microsteps
#define E2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define E2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define E2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define E3_IS_L6470
#define E3_MICROSTEPS 16 //number of microsteps
#define E3_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define E3_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define E3_STALLCURRENT 1500 //current in mA where the driver will detect a stall
#endif
/**
* TWI/I2C BUS
*
* This feature is an EXPERIMENTAL feature so it shall not be used on production
* machines. Enabling this will allow you to send and receive I2C data from slave
* devices on the bus.
*
* ; Example #1
* ; This macro send the string "Marlin" to the slave device with address 0x63 (99)
* ; It uses multiple M155 commands with one B<base 10> arg
* M155 A99 ; Target slave address
* M155 B77 ; M
* M155 B97 ; a
* M155 B114 ; r
* M155 B108 ; l
* M155 B105 ; i
* M155 B110 ; n
* M155 S1 ; Send the current buffer
*
* ; Example #2
* ; Request 6 bytes from slave device with address 0x63 (99)
* M156 A99 B5
*
* ; Example #3
* ; Example serial output of a M156 request
* echo:i2c-reply: from:99 bytes:5 data:hello
*/
// @section i2cbus
//#define EXPERIMENTAL_I2CBUS
#endif // CONFIGURATION_ADV_H
@@ -1,14 +0,0 @@
# Example Configuration for BQ [Hephestos 2](http://www.bq.com/uk/hephestos-2)
This configuration file is based on the original configuration file shipped with the heavily modified Marlin fork by BQ. The original firmware and configuration file can be found at [BQ Github repository](https://github.com/bq/Marlin).
NOTE: The look and feel of the Hephestos 2 while navigating the LCD menu will change by using the original Marlin firmware.
## Changelog
* 2016/03/01 - Initial release
* 2016/03/21 - Activated 4-point auto leveling by default
Updated miscellaneous z-probe values
* 2016/06/21 - Disabled hot bed related options
Activated software endstops
SD printing now disables the heater when finished
* 2016/07/13 - Update the `DEFAULT_AXIS_STEPS_PER_UNIT` for the Z axis
Increased the `DEFAULT_XYJERK`
@@ -1,103 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
* Custom Bitmap for splashscreen
*
* You may use one of the following tools to generate the C++ bitmap array from
* a black and white image:
*
* - http://www.marlinfw.org/tools/u8glib/converter.html
* - http://www.digole.com/tools/PicturetoC_Hex_converter.php
*/
#include <avr/pgmspace.h>
#define CUSTOM_BOOTSCREEN_TIMEOUT 2500
#define CUSTOM_BOOTSCREEN_BMPWIDTH 62
#define CUSTOM_BOOTSCREEN_BMPHEIGHT 64
const unsigned char custom_start_bmp[512] PROGMEM = {
0x00, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x1f, 0xf8, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x1f, 0xf8, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x1f, 0xf8, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x1f, 0xf8, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x1f, 0xf8, 0x00, 0x00, 0x00,
0x00, 0x03, 0xc0, 0x0f, 0xf0, 0x07, 0x80, 0x00,
0x00, 0x07, 0xe0, 0x07, 0xe0, 0x0f, 0xc0, 0x00,
0x00, 0x0f, 0xf0, 0x03, 0xc0, 0x1f, 0xe0, 0x00,
0x00, 0x1f, 0xf8, 0x00, 0x00, 0x3f, 0xf0, 0x00,
0x00, 0x1f, 0xf8, 0x00, 0x00, 0x3f, 0xf0, 0x00,
0x00, 0x1f, 0xf8, 0x00, 0x00, 0x3f, 0xf0, 0x00,
0x00, 0x1f, 0xf8, 0x00, 0x00, 0x3f, 0xf0, 0x00,
0x00, 0x1f, 0xf8, 0x00, 0x00, 0x3f, 0xf0, 0x00,
0x00, 0x0f, 0xf0, 0x00, 0x00, 0x1f, 0xe0, 0x00,
0x00, 0x07, 0xe0, 0x00, 0x00, 0x0f, 0xc0, 0x00,
0x00, 0x03, 0xc0, 0x00, 0x00, 0x07, 0x80, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xf8,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xfc,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xfc,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xfc,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xfc,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xfc,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xfc,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xfc,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xf8,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x1e, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00,
0x3f, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00,
0x7f, 0x80, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00,
0xff, 0xc0, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00,
0xff, 0xc0, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00,
0xff, 0xc0, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00,
0xff, 0xc0, 0x00, 0x00, 0xf7, 0xc0, 0x1f, 0x80,
0xff, 0xc0, 0x00, 0x00, 0xff, 0xf0, 0x7f, 0xc0,
0x7f, 0x80, 0x00, 0x00, 0xff, 0xf8, 0xff, 0xe0,
0x3f, 0x00, 0x00, 0x00, 0xfc, 0xf8, 0xf0, 0xf8,
0x1e, 0x00, 0x00, 0x00, 0xf8, 0x7d, 0xe0, 0x78,
0x00, 0x00, 0x00, 0x00, 0xf0, 0x3d, 0xe0, 0x78,
0x00, 0x00, 0x00, 0x00, 0xf0, 0x3d, 0xe0, 0x78,
0x00, 0x00, 0x00, 0x00, 0xf0, 0x3d, 0xe0, 0x78,
0x00, 0x00, 0x00, 0x00, 0xf0, 0x3d, 0xe0, 0x78,
0x00, 0x00, 0x00, 0x00, 0xf0, 0x3d, 0xe0, 0x78,
0x00, 0x00, 0x00, 0x00, 0xf0, 0x3d, 0xe0, 0x78,
0x00, 0x00, 0x00, 0x00, 0xf8, 0x79, 0xf0, 0xf8,
0x00, 0x00, 0x00, 0x00, 0xff, 0xf8, 0xff, 0xf8,
0x00, 0x00, 0x00, 0x00, 0x3f, 0xf0, 0x7f, 0xf8,
0x00, 0x00, 0x00, 0x00, 0x0f, 0xe0, 0x3f, 0xf8,
0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x0e, 0x78,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78,
};
File diff suppressed because it is too large Load Diff
@@ -1,805 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
// Sample configuration file for Vellemann K8200
// tested on K8200 with VM8201 (Display)
// and Arduino 1.6.8 (Mac) by @CONSULitAS, 2016-02-21
// https://github.com/CONSULitAS/Marlin-K8200/archive/K8200_stable_2016-02-21.zip
/**
* Configuration_adv.h
*
* Advanced settings.
* Only change these if you know exactly what you're doing.
* Some of these settings can damage your printer if improperly set!
*
* Basic settings can be found in Configuration.h
*
*/
#ifndef CONFIGURATION_ADV_H
#define CONFIGURATION_ADV_H
/**
*
* ***********************************
* ** ATTENTION TO ALL DEVELOPERS **
* ***********************************
*
* You must increment this version number for every significant change such as,
* but not limited to: ADD, DELETE RENAME OR REPURPOSE any directive/option.
*
* Note: Update also Version.h !
*/
#define CONFIGURATION_ADV_H_VERSION 010100
// @section temperature
//===========================================================================
//=============================Thermal Settings ============================
//===========================================================================
#if DISABLED(PIDTEMPBED)
#define BED_CHECK_INTERVAL 5000 // ms between checks in bang-bang control
#if ENABLED(BED_LIMIT_SWITCHING)
#define BED_HYSTERESIS 2 // Only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
#endif
#endif
/**
* Thermal Protection protects your printer from damage and fire if a
* thermistor falls out or temperature sensors fail in any way.
*
* The issue: If a thermistor falls out or a temperature sensor fails,
* Marlin can no longer sense the actual temperature. Since a disconnected
* thermistor reads as a low temperature, the firmware will keep the heater on.
*
* The solution: Once the temperature reaches the target, start observing.
* If the temperature stays too far below the target (hysteresis) for too long (period),
* the firmware will halt the machine as a safety precaution.
*
* If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
*/
#if ENABLED(THERMAL_PROTECTION_HOTENDS)
#define THERMAL_PROTECTION_PERIOD 60 // Seconds
#define THERMAL_PROTECTION_HYSTERESIS 8 // Degrees Celsius
/**
* Whenever an M104 or M109 increases the target temperature the firmware will wait for the
* WATCH_TEMP_PERIOD to expire, and if the temperature hasn't increased by WATCH_TEMP_INCREASE
* degrees, the machine is halted, requiring a hard reset. This test restarts with any M104/M109,
* but only if the current temperature is far enough below the target for a reliable test.
*
* If you get false positives for "Heating failed" increase WATCH_TEMP_PERIOD and/or decrease WATCH_TEMP_INCREASE
* WATCH_TEMP_INCREASE should not be below 2.
*/
#define WATCH_TEMP_PERIOD 30 // Seconds
#define WATCH_TEMP_INCREASE 4 // Degrees Celsius
#endif
/**
* Thermal Protection parameters for the bed are just as above for hotends.
*/
#if ENABLED(THERMAL_PROTECTION_BED)
#define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds
#define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius
/**
* Whenever an M140 or M190 increases the target temperature the firmware will wait for the
* WATCH_BED_TEMP_PERIOD to expire, and if the temperature hasn't increased by WATCH_BED_TEMP_INCREASE
* degrees, the machine is halted, requiring a hard reset. This test restarts with any M140/M190,
* but only if the current temperature is far enough below the target for a reliable test.
*
* If you get too many "Heating failed" errors, increase WATCH_BED_TEMP_PERIOD and/or decrease
* WATCH_BED_TEMP_INCREASE. (WATCH_BED_TEMP_INCREASE should not be below 2.)
*/
#define WATCH_BED_TEMP_PERIOD 60 // Seconds
#define WATCH_BED_TEMP_INCREASE 2 // Degrees Celsius
#endif
#if ENABLED(PIDTEMP)
// this adds an experimental additional term to the heating power, proportional to the extrusion speed.
// if Kc is chosen well, the additional required power due to increased melting should be compensated.
//#define PID_EXTRUSION_SCALING
#if ENABLED(PID_EXTRUSION_SCALING)
#define DEFAULT_Kc (100) //heating power=Kc*(e_speed)
#define LPQ_MAX_LEN 50
#endif
#endif
/**
* Automatic Temperature:
* The hotend target temperature is calculated by all the buffered lines of gcode.
* The maximum buffered steps/sec of the extruder motor is called "se".
* Start autotemp mode with M109 S<mintemp> B<maxtemp> F<factor>
* The target temperature is set to mintemp+factor*se[steps/sec] and is limited by
* mintemp and maxtemp. Turn this off by executing M109 without F*
* Also, if the temperature is set to a value below mintemp, it will not be changed by autotemp.
* On an Ultimaker, some initial testing worked with M109 S215 B260 F1 in the start.gcode
*/
#define AUTOTEMP
#if ENABLED(AUTOTEMP)
#define AUTOTEMP_OLDWEIGHT 0.98
#endif
//Show Temperature ADC value
//The M105 command return, besides traditional information, the ADC value read from temperature sensors.
//#define SHOW_TEMP_ADC_VALUES
/**
* High Temperature Thermistor Support
*
* Thermistors able to support high temperature tend to have a hard time getting
* good readings at room and lower temperatures. This means HEATER_X_RAW_LO_TEMP
* will probably be caught when the heating element first turns on during the
* preheating process, which will trigger a min_temp_error as a safety measure
* and force stop everything.
* To circumvent this limitation, we allow for a preheat time (during which,
* min_temp_error won't be triggered) and add a min_temp buffer to handle
* aberrant readings.
*
* If you want to enable this feature for your hotend thermistor(s)
* uncomment and set values > 0 in the constants below
*/
// The number of consecutive low temperature errors that can occur
// before a min_temp_error is triggered. (Shouldn't be more than 10.)
//#define MAX_CONSECUTIVE_LOW_TEMPERATURE_ERROR_ALLOWED 0
// The number of milliseconds a hotend will preheat before starting to check
// the temperature. This value should NOT be set to the time it takes the
// hot end to reach the target temperature, but the time it takes to reach
// the minimum temperature your thermistor can read. The lower the better/safer.
// This shouldn't need to be more than 30 seconds (30000)
//#define MILLISECONDS_PREHEAT_TIME 0
// @section extruder
// extruder run-out prevention.
//if the machine is idle, and the temperature over MINTEMP, every couple of SECONDS some filament is extruded
//#define EXTRUDER_RUNOUT_PREVENT
#define EXTRUDER_RUNOUT_MINTEMP 190
#define EXTRUDER_RUNOUT_SECONDS 30
#define EXTRUDER_RUNOUT_ESTEPS 14 // mm filament
#define EXTRUDER_RUNOUT_SPEED 1500 // extrusion speed
#define EXTRUDER_RUNOUT_EXTRUDE 100
// @section temperature
//These defines help to calibrate the AD595 sensor in case you get wrong temperature measurements.
//The measured temperature is defined as "actualTemp = (measuredTemp * TEMP_SENSOR_AD595_GAIN) + TEMP_SENSOR_AD595_OFFSET"
#define TEMP_SENSOR_AD595_OFFSET 0.0
#define TEMP_SENSOR_AD595_GAIN 1.0
//This is for controlling a fan to cool down the stepper drivers
//it will turn on when any driver is enabled
//and turn off after the set amount of seconds from last driver being disabled again
#define CONTROLLERFAN_PIN -1 //Pin used for the fan to cool controller (-1 to disable)
#define CONTROLLERFAN_SECS 60 //How many seconds, after all motors were disabled, the fan should run
#define CONTROLLERFAN_SPEED 255 // == full speed
// When first starting the main fan, run it at full speed for the
// given number of milliseconds. This gets the fan spinning reliably
// before setting a PWM value. (Does not work with software PWM for fan on Sanguinololu)
#define FAN_KICKSTART_TIME 500
// This defines the minimal speed for the main fan, run in PWM mode
// to enable uncomment and set minimal PWM speed for reliable running (1-255)
// if fan speed is [1 - (FAN_MIN_PWM-1)] it is set to FAN_MIN_PWM
#define FAN_MIN_PWM 50
// @section extruder
// Extruder cooling fans
// Configure fan pin outputs to automatically turn on/off when the associated
// extruder temperature is above/below EXTRUDER_AUTO_FAN_TEMPERATURE.
// Multiple extruders can be assigned to the same pin in which case
// the fan will turn on when any selected extruder is above the threshold.
#define EXTRUDER_0_AUTO_FAN_PIN -1
#define EXTRUDER_1_AUTO_FAN_PIN -1
#define EXTRUDER_2_AUTO_FAN_PIN -1
#define EXTRUDER_3_AUTO_FAN_PIN -1
#define EXTRUDER_AUTO_FAN_TEMPERATURE 50
#define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed
//===========================================================================
//============================ Mechanical Settings ==========================
//===========================================================================
// @section homing
// If you want endstops to stay on (by default) even when not homing
// enable this option. Override at any time with M120, M121.
//#define ENDSTOPS_ALWAYS_ON_DEFAULT
// @section extras
//#define Z_LATE_ENABLE // Enable Z the last moment. Needed if your Z driver overheats.
// Dual X Steppers
// Uncomment this option to drive two X axis motors.
// The next unused E driver will be assigned to the second X stepper.
//#define X_DUAL_STEPPER_DRIVERS
#if ENABLED(X_DUAL_STEPPER_DRIVERS)
// Set true if the two X motors need to rotate in opposite directions
#define INVERT_X2_VS_X_DIR true
#endif
// Dual Y Steppers
// Uncomment this option to drive two Y axis motors.
// The next unused E driver will be assigned to the second Y stepper.
//#define Y_DUAL_STEPPER_DRIVERS
#if ENABLED(Y_DUAL_STEPPER_DRIVERS)
// Set true if the two Y motors need to rotate in opposite directions
#define INVERT_Y2_VS_Y_DIR true
#endif
// A single Z stepper driver is usually used to drive 2 stepper motors.
// Uncomment this option to use a separate stepper driver for each Z axis motor.
// The next unused E driver will be assigned to the second Z stepper.
//#define Z_DUAL_STEPPER_DRIVERS
#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
// Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
// That way the machine is capable to align the bed during home, since both Z steppers are homed.
// There is also an implementation of M666 (software endstops adjustment) to this feature.
// After Z homing, this adjustment is applied to just one of the steppers in order to align the bed.
// One just need to home the Z axis and measure the distance difference between both Z axis and apply the math: Z adjust = Z - Z2.
// If the Z stepper axis is closer to the bed, the measure Z > Z2 (yes, it is.. think about it) and the Z adjust would be positive.
// Play a little bit with small adjustments (0.5mm) and check the behaviour.
// The M119 (endstops report) will start reporting the Z2 Endstop as well.
//#define Z_DUAL_ENDSTOPS
#if ENABLED(Z_DUAL_ENDSTOPS)
#define Z2_USE_ENDSTOP _XMAX_
#endif
#endif // Z_DUAL_STEPPER_DRIVERS
// Enable this for dual x-carriage printers.
// A dual x-carriage design has the advantage that the inactive extruder can be parked which
// prevents hot-end ooze contaminating the print. It also reduces the weight of each x-carriage
// allowing faster printing speeds. Connect your X2 stepper to the first unused E plug.
//#define DUAL_X_CARRIAGE
#if ENABLED(DUAL_X_CARRIAGE)
// Configuration for second X-carriage
// Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
// the second x-carriage always homes to the maximum endstop.
#define X2_MIN_POS 80 // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
#define X2_MAX_POS 353 // set maximum to the distance between toolheads when both heads are homed
#define X2_HOME_DIR 1 // the second X-carriage always homes to the maximum endstop position
#define X2_HOME_POS X2_MAX_POS // default home position is the maximum carriage position
// However: In this mode the HOTEND_OFFSET_X value for the second extruder provides a software
// override for X2_HOME_POS. This also allow recalibration of the distance between the two endstops
// without modifying the firmware (through the "M218 T1 X???" command).
// Remember: you should set the second extruder x-offset to 0 in your slicer.
// There are a few selectable movement modes for dual x-carriages using M605 S<mode>
// Mode 0: Full control. The slicer has full control over both x-carriages and can achieve optimal travel results
// as long as it supports dual x-carriages. (M605 S0)
// Mode 1: Auto-park mode. The firmware will automatically park and unpark the x-carriages on tool changes so
// that additional slicer support is not required. (M605 S1)
// Mode 2: Duplication mode. The firmware will transparently make the second x-carriage and extruder copy all
// actions of the first x-carriage. This allows the printer to print 2 arbitrary items at
// once. (2nd extruder x offset and temp offset are set using: M605 S2 [Xnnn] [Rmmm])
// This is the default power-up mode which can be later using M605.
#define DEFAULT_DUAL_X_CARRIAGE_MODE 0
// Default settings in "Auto-park Mode"
#define TOOLCHANGE_PARK_ZLIFT 0.2 // the distance to raise Z axis when parking an extruder
#define TOOLCHANGE_UNPARK_ZLIFT 1 // the distance to raise Z axis when unparking an extruder
// Default x offset in duplication mode (typically set to half print bed width)
#define DEFAULT_DUPLICATION_X_OFFSET 100
#endif //DUAL_X_CARRIAGE
// @section homing
//homing hits the endstop, then retracts by this distance, before it tries to slowly bump again:
#define X_HOME_BUMP_MM 5
#define Y_HOME_BUMP_MM 5
#define Z_HOME_BUMP_MM 2
#define HOMING_BUMP_DIVISOR {4, 4, 8} // Re-Bump Speed Divisor (Divides the Homing Feedrate)
#define QUICK_HOME //if this is defined, if both x and y are to be homed, a diagonal move will be performed initially.
// When G28 is called, this option will make Y home before X
//#define HOME_Y_BEFORE_X
// @section machine
#define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder
//#define DUAL_NOZZLE_DUPLICATION_MODE
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false
#define INVERT_Y_STEP_PIN false
#define INVERT_Z_STEP_PIN false
#define INVERT_E_STEP_PIN false
// Default stepper release if idle. Set to 0 to deactivate.
// Steppers will shut down DEFAULT_STEPPER_DEACTIVE_TIME seconds after the last move when DISABLE_INACTIVE_? is true.
// Time can be set by M18 and M84.
#define DEFAULT_STEPPER_DEACTIVE_TIME 60
#define DISABLE_INACTIVE_X true
#define DISABLE_INACTIVE_Y true
#define DISABLE_INACTIVE_Z true // set to false if the nozzle will fall down on your printed part when print has finished.
#define DISABLE_INACTIVE_E true
#define DEFAULT_MINIMUMFEEDRATE 0.0 // minimum feedrate
#define DEFAULT_MINTRAVELFEEDRATE 0.0
// @section lcd
#if ENABLED(ULTIPANEL)
#define MANUAL_FEEDRATE {50*60, 50*60, 4*60, 60} // Feedrates for manual moves along X, Y, Z, E from panel
#define ULTIPANEL_FEEDMULTIPLY // Comment to disable setting feedrate multiplier via encoder
#endif
// @section extras
// minimum time in microseconds that a movement needs to take if the buffer is emptied.
#define DEFAULT_MINSEGMENTTIME 20000
// If defined the movements slow down when the look ahead buffer is only half full
#define SLOWDOWN
// Frequency limit
// See nophead's blog for more info
// Not working O
//#define XY_FREQUENCY_LIMIT 15
// Minimum planner junction speed. Sets the default minimum speed the planner plans for at the end
// of the buffer and all stops. This should not be much greater than zero and should only be changed
// if unwanted behavior is observed on a user's machine when running at very slow speeds.
#define MINIMUM_PLANNER_SPEED 0.05// (mm/sec)
// Microstep setting (Only functional when stepper driver microstep pins are connected to MCU.
#define MICROSTEP_MODES {16,16,16,16,16} // [1,2,4,8,16]
// Motor Current setting (Only functional when motor driver current ref pins are connected to a digital trimpot on supported boards)
#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
// Motor Current controlled via PWM (Overridable on supported boards with PWM-driven motor driver current)
//#define PWM_MOTOR_CURRENT {1300, 1300, 1250} // Values in milliamps
// uncomment to enable an I2C based DIGIPOT like on the Azteeg X3 Pro
//#define DIGIPOT_I2C
// Number of channels available for I2C digipot, For Azteeg X3 Pro we have 8
#define DIGIPOT_I2C_NUM_CHANNELS 8
// actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
#define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0}
//===========================================================================
//=============================Additional Features===========================
//===========================================================================
#define ENCODER_RATE_MULTIPLIER // If defined, certain menu edit operations automatically multiply the steps when the encoder is moved quickly
#define ENCODER_10X_STEPS_PER_SEC 75 // If the encoder steps per sec exceeds this value, multiply steps moved x10 to quickly advance the value
#define ENCODER_100X_STEPS_PER_SEC 160 // If the encoder steps per sec exceeds this value, multiply steps moved x100 to really quickly advance the value
//#define CHDK 4 //Pin for triggering CHDK to take a picture see how to use it here http://captain-slow.dk/2014/03/09/3d-printing-timelapses/
#define CHDK_DELAY 50 //How long in ms the pin should stay HIGH before going LOW again
// @section lcd
// Include a page of printer information in the LCD Main Menu
//#define LCD_INFO_MENU
#if ENABLED(SDSUPPORT)
// Some RAMPS and other boards don't detect when an SD card is inserted. You can work
// around this by connecting a push button or single throw switch to the pin defined
// as SD_DETECT_PIN in your board's pins definitions.
// This setting should be disabled unless you are using a push button, pulling the pin to ground.
// Note: This is always disabled for ULTIPANEL (except ELB_FULL_GRAPHIC_CONTROLLER).
#define SD_DETECT_INVERTED
#define SD_FINISHED_STEPPERRELEASE true //if sd support and the file is finished: disable steppers?
#define SD_FINISHED_RELEASECOMMAND "M84 X Y Z E" // You might want to keep the z enabled so your bed stays in place.
#define SDCARD_RATHERRECENTFIRST //reverse file order of sd card menu display. Its sorted practically after the file system block order.
// if a file is deleted, it frees a block. hence, the order is not purely chronological. To still have auto0.g accessible, there is again the option to do that.
// using:
#define MENU_ADDAUTOSTART
// Show a progress bar on HD44780 LCDs for SD printing
#define LCD_PROGRESS_BAR
#if ENABLED(LCD_PROGRESS_BAR)
// Amount of time (ms) to show the bar
#define PROGRESS_BAR_BAR_TIME 2000
// Amount of time (ms) to show the status message
#define PROGRESS_BAR_MSG_TIME 3000
// Amount of time (ms) to retain the status message (0=forever)
#define PROGRESS_MSG_EXPIRE 0
// Enable this to show messages for MSG_TIME then hide them
//#define PROGRESS_MSG_ONCE
#endif
// This allows hosts to request long names for files and folders with M33
#define LONG_FILENAME_HOST_SUPPORT
// This option allows you to abort SD printing when any endstop is triggered.
// This feature must be enabled with "M540 S1" or from the LCD menu.
// To have any effect, endstops must be enabled during SD printing.
//#define ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED
#endif // SDSUPPORT
// for dogm lcd displays you can choose some additional fonts:
#if ENABLED(DOGLCD)
// save 3120 bytes of PROGMEM by commenting out #define USE_BIG_EDIT_FONT
// we don't have a big font for Cyrillic, Kana
//#define USE_BIG_EDIT_FONT
// If you have spare 2300Byte of progmem and want to use a
// smaller font on the Info-screen uncomment the next line.
//#define USE_SMALL_INFOFONT
#endif // DOGLCD
// @section safety
// The hardware watchdog should reset the microcontroller disabling all outputs,
// in case the firmware gets stuck and doesn't do temperature regulation.
#define USE_WATCHDOG
#if ENABLED(USE_WATCHDOG)
// If you have a watchdog reboot in an ArduinoMega2560 then the device will hang forever, as a watchdog reset will leave the watchdog on.
// The "WATCHDOG_RESET_MANUAL" goes around this by not using the hardware reset.
// However, THIS FEATURE IS UNSAFE!, as it will only work if interrupts are disabled. And the code could hang in an interrupt routine with interrupts disabled.
//#define WATCHDOG_RESET_MANUAL
#endif
// @section lcd
// Babystepping enables the user to control the axis in tiny amounts, independently from the normal printing process
// it can e.g. be used to change z-positions in the print startup phase in real-time
// does not respect endstops!
#define BABYSTEPPING
#if ENABLED(BABYSTEPPING)
#define BABYSTEP_XY //not only z, but also XY in the menu. more clutter, more functions
//not implemented for deltabots!
#define BABYSTEP_INVERT_Z false //true for inverse movements in Z
#define BABYSTEP_MULTIPLICATOR 1 //faster movements
#endif
// @section extruder
// extruder advance constant (s2/mm3)
//
// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
//
// Hooke's law says: force = k * distance
// Bernoulli's principle says: v ^ 2 / 2 + g . h + pressure / density = constant
// so: v ^ 2 is proportional to number of steps we advance the extruder
//#define ADVANCE
#if ENABLED(ADVANCE)
#define EXTRUDER_ADVANCE_K .0
#define D_FILAMENT 2.85
#endif
// Implementation of a linear pressure control
// Assumption: advance = k * (delta velocity)
// K=0 means advance disabled. A good value for a gregs wade extruder will be around K=75
//#define LIN_ADVANCE
#if ENABLED(LIN_ADVANCE)
#define LIN_ADVANCE_K 75
#endif
// @section leveling
// Default mesh area is an area with an inset margin on the print area.
// Below are the macros that are used to define the borders for the mesh area,
// made available here for specialized needs, ie dual extruder setup.
#if ENABLED(MESH_BED_LEVELING)
#define MESH_MIN_X (X_MIN_POS + MESH_INSET)
#define MESH_MAX_X (X_MAX_POS - (MESH_INSET))
#define MESH_MIN_Y (Y_MIN_POS + MESH_INSET)
#define MESH_MAX_Y (Y_MAX_POS - (MESH_INSET))
#endif
// @section extras
// Arc interpretation settings:
#define ARC_SUPPORT // Disabling this saves ~2738 bytes
#define MM_PER_ARC_SEGMENT 1
#define N_ARC_CORRECTION 25
// Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
//#define BEZIER_CURVE_SUPPORT
const unsigned int dropsegments = 2; //everything with less than this number of steps will be ignored as move and joined with the next movement
// @section temperature
// Control heater 0 and heater 1 in parallel.
//#define HEATERS_PARALLEL
//===========================================================================
//================================= Buffers =================================
//===========================================================================
// @section hidden
// The number of linear motions that can be in the plan at any give time.
// THE BLOCK_BUFFER_SIZE NEEDS TO BE A POWER OF 2, i.g. 8,16,32 because shifts and ors are used to do the ring-buffering.
#if ENABLED(SDSUPPORT)
#define BLOCK_BUFFER_SIZE 16 // SD,LCD,Buttons take more memory, block buffer needs to be smaller
#else
#define BLOCK_BUFFER_SIZE 32 // maximize block buffer
#endif
// @section serial
// The ASCII buffer for serial input
#define MAX_CMD_SIZE 96
#define BUFSIZE 4
// Transfer Buffer Size
// To save 386 bytes of PROGMEM (and TX_BUFFER_SIZE+3 bytes of RAM) set to 0.
// To buffer a simple "ok" you need 4 bytes.
// For ADVANCED_OK (M105) you need 32 bytes.
// For debug-echo: 128 bytes for the optimal speed.
// Other output doesn't need to be that speedy.
// :[0,2,4,8,16,32,64,128,256]
#define TX_BUFFER_SIZE 0
// Enable an emergency-command parser to intercept certain commands as they
// enter the serial receive buffer, so they cannot be blocked.
// Currently handles M108, M112, M410
// Does not work on boards using AT90USB (USBCON) processors!
//#define EMERGENCY_PARSER
// Bad Serial-connections can miss a received command by sending an 'ok'
// Therefore some clients abort after 30 seconds in a timeout.
// Some other clients start sending commands while receiving a 'wait'.
// This "wait" is only sent when the buffer is empty. 1 second is a good value here.
//#define NO_TIMEOUTS 1000 // Milliseconds
// Some clients will have this feature soon. This could make the NO_TIMEOUTS unnecessary.
//#define ADVANCED_OK
// @section fwretract
// Firmware based and LCD controlled retract
// M207 and M208 can be used to define parameters for the retraction.
// The retraction can be called by the slicer using G10 and G11
// until then, intended retractions can be detected by moves that only extrude and the direction.
// the moves are than replaced by the firmware controlled ones.
//#define FWRETRACT //ONLY PARTIALLY TESTED
#if ENABLED(FWRETRACT)
#define MIN_RETRACT 0.1 //minimum extruded mm to accept a automatic gcode retraction attempt
#define RETRACT_LENGTH 3 //default retract length (positive mm)
#define RETRACT_LENGTH_SWAP 13 //default swap retract length (positive mm), for extruder change
#define RETRACT_FEEDRATE 45 //default feedrate for retracting (mm/s)
#define RETRACT_ZLIFT 0 //default retract Z-lift
#define RETRACT_RECOVER_LENGTH 0 //default additional recover length (mm, added to retract length when recovering)
#define RETRACT_RECOVER_LENGTH_SWAP 0 //default additional swap recover length (mm, added to retract length when recovering from extruder change)
#define RETRACT_RECOVER_FEEDRATE 8 //default feedrate for recovering from retraction (mm/s)
#endif
// Add support for experimental filament exchange support M600; requires display
#if ENABLED(ULTIPANEL)
// #define FILAMENT_CHANGE_FEATURE // Enable filament exchange menu and M600 g-code (used for runout sensor too)
#if ENABLED(FILAMENT_CHANGE_FEATURE)
#define FILAMENT_CHANGE_X_POS 3 // X position of hotend
#define FILAMENT_CHANGE_Y_POS 3 // Y position of hotend
#define FILAMENT_CHANGE_Z_ADD 10 // Z addition of hotend (lift)
#define FILAMENT_CHANGE_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
#define FILAMENT_CHANGE_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
#define FILAMENT_CHANGE_RETRACT_LENGTH 2 // Initial retract in mm
// It is a short retract used immediately after print interrupt before move to filament exchange position
#define FILAMENT_CHANGE_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
#define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm
// Longer length for bowden printers to unload filament from whole bowden tube,
// shorter lenght for printers without bowden to unload filament from extruder only,
// 0 to disable unloading for manual unloading
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast
#define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm
// Longer length for bowden printers to fast load filament into whole bowden tube over the hotend,
// Short or zero length for printers without bowden where loading is not used
#define FILAMENT_CHANGE_LOAD_FEEDRATE 10 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast
#define FILAMENT_CHANGE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is load over the hotend,
// 0 to disable for manual extrusion
// Filament can be extruded repeatedly from the filament exchange menu to fill the hotend,
// or until outcoming filament color is not clear for filament color change
#define FILAMENT_CHANGE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
#endif
#endif
/******************************************************************************\
* enable this section if you have TMC26X motor drivers.
* you need to import the TMC26XStepper library into the Arduino IDE for this
******************************************************************************/
// @section tmc
//#define HAVE_TMCDRIVER
#if ENABLED(HAVE_TMCDRIVER)
//#define X_IS_TMC
#define X_MAX_CURRENT 1000 //in mA
#define X_SENSE_RESISTOR 91 //in mOhms
#define X_MICROSTEPS 16 //number of microsteps
//#define X2_IS_TMC
#define X2_MAX_CURRENT 1000 //in mA
#define X2_SENSE_RESISTOR 91 //in mOhms
#define X2_MICROSTEPS 16 //number of microsteps
//#define Y_IS_TMC
#define Y_MAX_CURRENT 1000 //in mA
#define Y_SENSE_RESISTOR 91 //in mOhms
#define Y_MICROSTEPS 16 //number of microsteps
//#define Y2_IS_TMC
#define Y2_MAX_CURRENT 1000 //in mA
#define Y2_SENSE_RESISTOR 91 //in mOhms
#define Y2_MICROSTEPS 16 //number of microsteps
//#define Z_IS_TMC
#define Z_MAX_CURRENT 1000 //in mA
#define Z_SENSE_RESISTOR 91 //in mOhms
#define Z_MICROSTEPS 16 //number of microsteps
//#define Z2_IS_TMC
#define Z2_MAX_CURRENT 1000 //in mA
#define Z2_SENSE_RESISTOR 91 //in mOhms
#define Z2_MICROSTEPS 16 //number of microsteps
//#define E0_IS_TMC
#define E0_MAX_CURRENT 1000 //in mA
#define E0_SENSE_RESISTOR 91 //in mOhms
#define E0_MICROSTEPS 16 //number of microsteps
//#define E1_IS_TMC
#define E1_MAX_CURRENT 1000 //in mA
#define E1_SENSE_RESISTOR 91 //in mOhms
#define E1_MICROSTEPS 16 //number of microsteps
//#define E2_IS_TMC
#define E2_MAX_CURRENT 1000 //in mA
#define E2_SENSE_RESISTOR 91 //in mOhms
#define E2_MICROSTEPS 16 //number of microsteps
//#define E3_IS_TMC
#define E3_MAX_CURRENT 1000 //in mA
#define E3_SENSE_RESISTOR 91 //in mOhms
#define E3_MICROSTEPS 16 //number of microsteps
#endif
/******************************************************************************\
* enable this section if you have L6470 motor drivers.
* you need to import the L6470 library into the Arduino IDE for this
******************************************************************************/
// @section l6470
//#define HAVE_L6470DRIVER
#if ENABLED(HAVE_L6470DRIVER)
//#define X_IS_L6470
#define X_MICROSTEPS 16 //number of microsteps
#define X_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define X_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define X_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define X2_IS_L6470
#define X2_MICROSTEPS 16 //number of microsteps
#define X2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define X2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define X2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define Y_IS_L6470
#define Y_MICROSTEPS 16 //number of microsteps
#define Y_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define Y_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define Y_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define Y2_IS_L6470
#define Y2_MICROSTEPS 16 //number of microsteps
#define Y2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define Y2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define Y2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define Z_IS_L6470
#define Z_MICROSTEPS 16 //number of microsteps
#define Z_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define Z_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define Z_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define Z2_IS_L6470
#define Z2_MICROSTEPS 16 //number of microsteps
#define Z2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define Z2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define Z2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define E0_IS_L6470
#define E0_MICROSTEPS 16 //number of microsteps
#define E0_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define E0_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define E0_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define E1_IS_L6470
#define E1_MICROSTEPS 16 //number of microsteps
#define E1_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define E1_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define E1_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define E2_IS_L6470
#define E2_MICROSTEPS 16 //number of microsteps
#define E2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define E2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define E2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define E3_IS_L6470
#define E3_MICROSTEPS 16 //number of microsteps
#define E3_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define E3_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define E3_STALLCURRENT 1500 //current in mA where the driver will detect a stall
#endif
/**
* TWI/I2C BUS
*
* This feature is an EXPERIMENTAL feature so it shall not be used on production
* machines. Enabling this will allow you to send and receive I2C data from slave
* devices on the bus.
*
* ; Example #1
* ; This macro send the string "Marlin" to the slave device with address 0x63 (99)
* ; It uses multiple M155 commands with one B<base 10> arg
* M155 A99 ; Target slave address
* M155 B77 ; M
* M155 B97 ; a
* M155 B114 ; r
* M155 B108 ; l
* M155 B105 ; i
* M155 B110 ; n
* M155 S1 ; Send the current buffer
*
* ; Example #2
* ; Request 6 bytes from slave device with address 0x63 (99)
* M156 A99 B5
*
* ; Example #3
* ; Example serial output of a M156 request
* echo:i2c-reply: from:99 bytes:5 data:hello
*/
// @section i2cbus
//#define EXPERIMENTAL_I2CBUS
#endif // CONFIGURATION_ADV_H
File diff suppressed because it is too large Load Diff
@@ -1,799 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
* Configuration_adv.h
*
* Advanced settings.
* Only change these if you know exactly what you're doing.
* Some of these settings can damage your printer if improperly set!
*
* Basic settings can be found in Configuration.h
*
*/
#ifndef CONFIGURATION_ADV_H
#define CONFIGURATION_ADV_H
/**
*
* ***********************************
* ** ATTENTION TO ALL DEVELOPERS **
* ***********************************
*
* You must increment this version number for every significant change such as,
* but not limited to: ADD, DELETE RENAME OR REPURPOSE any directive/option.
*
* Note: Update also Version.h !
*/
#define CONFIGURATION_ADV_H_VERSION 010100
// @section temperature
//===========================================================================
//=============================Thermal Settings ============================
//===========================================================================
#if DISABLED(PIDTEMPBED)
#define BED_CHECK_INTERVAL 1000 // ms between checks in bang-bang control
#if ENABLED(BED_LIMIT_SWITCHING)
#define BED_HYSTERESIS 1 // Only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
#endif
#endif
/**
* Thermal Protection protects your printer from damage and fire if a
* thermistor falls out or temperature sensors fail in any way.
*
* The issue: If a thermistor falls out or a temperature sensor fails,
* Marlin can no longer sense the actual temperature. Since a disconnected
* thermistor reads as a low temperature, the firmware will keep the heater on.
*
* The solution: Once the temperature reaches the target, start observing.
* If the temperature stays too far below the target (hysteresis) for too long (period),
* the firmware will halt the machine as a safety precaution.
*
* If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
*/
#if ENABLED(THERMAL_PROTECTION_HOTENDS)
#define THERMAL_PROTECTION_PERIOD 40 // Seconds
#define THERMAL_PROTECTION_HYSTERESIS 4 // Degrees Celsius
/**
* Whenever an M104 or M109 increases the target temperature the firmware will wait for the
* WATCH_TEMP_PERIOD to expire, and if the temperature hasn't increased by WATCH_TEMP_INCREASE
* degrees, the machine is halted, requiring a hard reset. This test restarts with any M104/M109,
* but only if the current temperature is far enough below the target for a reliable test.
*
* If you get false positives for "Heating failed" increase WATCH_TEMP_PERIOD and/or decrease WATCH_TEMP_INCREASE
* WATCH_TEMP_INCREASE should not be below 2.
*/
#define WATCH_TEMP_PERIOD 20 // Seconds
#define WATCH_TEMP_INCREASE 2 // Degrees Celsius
#endif
/**
* Thermal Protection parameters for the bed are just as above for hotends.
*/
#if ENABLED(THERMAL_PROTECTION_BED)
#define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds
#define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius
/**
* Whenever an M140 or M190 increases the target temperature the firmware will wait for the
* WATCH_BED_TEMP_PERIOD to expire, and if the temperature hasn't increased by WATCH_BED_TEMP_INCREASE
* degrees, the machine is halted, requiring a hard reset. This test restarts with any M140/M190,
* but only if the current temperature is far enough below the target for a reliable test.
*
* If you get too many "Heating failed" errors, increase WATCH_BED_TEMP_PERIOD and/or decrease
* WATCH_BED_TEMP_INCREASE. (WATCH_BED_TEMP_INCREASE should not be below 2.)
*/
#define WATCH_BED_TEMP_PERIOD 60 // Seconds
#define WATCH_BED_TEMP_INCREASE 2 // Degrees Celsius
#endif
#if ENABLED(PIDTEMP)
// this adds an experimental additional term to the heating power, proportional to the extrusion speed.
// if Kc is chosen well, the additional required power due to increased melting should be compensated.
//#define PID_EXTRUSION_SCALING
#if ENABLED(PID_EXTRUSION_SCALING)
#define DEFAULT_Kc (100) //heating power=Kc*(e_speed)
#define LPQ_MAX_LEN 50
#endif
#endif
/**
* Automatic Temperature:
* The hotend target temperature is calculated by all the buffered lines of gcode.
* The maximum buffered steps/sec of the extruder motor is called "se".
* Start autotemp mode with M109 S<mintemp> B<maxtemp> F<factor>
* The target temperature is set to mintemp+factor*se[steps/sec] and is limited by
* mintemp and maxtemp. Turn this off by executing M109 without F*
* Also, if the temperature is set to a value below mintemp, it will not be changed by autotemp.
* On an Ultimaker, some initial testing worked with M109 S215 B260 F1 in the start.gcode
*/
#define AUTOTEMP
#if ENABLED(AUTOTEMP)
#define AUTOTEMP_OLDWEIGHT 0.98
#endif
//Show Temperature ADC value
//The M105 command return, besides traditional information, the ADC value read from temperature sensors.
//#define SHOW_TEMP_ADC_VALUES
/**
* High Temperature Thermistor Support
*
* Thermistors able to support high temperature tend to have a hard time getting
* good readings at room and lower temperatures. This means HEATER_X_RAW_LO_TEMP
* will probably be caught when the heating element first turns on during the
* preheating process, which will trigger a min_temp_error as a safety measure
* and force stop everything.
* To circumvent this limitation, we allow for a preheat time (during which,
* min_temp_error won't be triggered) and add a min_temp buffer to handle
* aberrant readings.
*
* If you want to enable this feature for your hotend thermistor(s)
* uncomment and set values > 0 in the constants below
*/
// The number of consecutive low temperature errors that can occur
// before a min_temp_error is triggered. (Shouldn't be more than 10.)
//#define MAX_CONSECUTIVE_LOW_TEMPERATURE_ERROR_ALLOWED 0
// The number of milliseconds a hotend will preheat before starting to check
// the temperature. This value should NOT be set to the time it takes the
// hot end to reach the target temperature, but the time it takes to reach
// the minimum temperature your thermistor can read. The lower the better/safer.
// This shouldn't need to be more than 30 seconds (30000)
//#define MILLISECONDS_PREHEAT_TIME 0
// @section extruder
// extruder run-out prevention.
//if the machine is idle, and the temperature over MINTEMP, every couple of SECONDS some filament is extruded
//#define EXTRUDER_RUNOUT_PREVENT
#define EXTRUDER_RUNOUT_MINTEMP 190
#define EXTRUDER_RUNOUT_SECONDS 30
#define EXTRUDER_RUNOUT_ESTEPS 14 // mm filament
#define EXTRUDER_RUNOUT_SPEED 1500 // extrusion speed
#define EXTRUDER_RUNOUT_EXTRUDE 100
// @section temperature
//These defines help to calibrate the AD595 sensor in case you get wrong temperature measurements.
//The measured temperature is defined as "actualTemp = (measuredTemp * TEMP_SENSOR_AD595_GAIN) + TEMP_SENSOR_AD595_OFFSET"
#define TEMP_SENSOR_AD595_OFFSET 0.0
#define TEMP_SENSOR_AD595_GAIN 1.0
//This is for controlling a fan to cool down the stepper drivers
//it will turn on when any driver is enabled
//and turn off after the set amount of seconds from last driver being disabled again
#define CONTROLLERFAN_PIN 2 //Pin used for the fan to cool controller (-1 to disable)
#define CONTROLLERFAN_SECS 60 //How many seconds, after all motors were disabled, the fan should run
#define CONTROLLERFAN_SPEED 255 // == full speed
// When first starting the main fan, run it at full speed for the
// given number of milliseconds. This gets the fan spinning reliably
// before setting a PWM value. (Does not work with software PWM for fan on Sanguinololu)
//#define FAN_KICKSTART_TIME 100
// This defines the minimal speed for the main fan, run in PWM mode
// to enable uncomment and set minimal PWM speed for reliable running (1-255)
// if fan speed is [1 - (FAN_MIN_PWM-1)] it is set to FAN_MIN_PWM
//#define FAN_MIN_PWM 50
// @section extruder
// Extruder cooling fans
// Configure fan pin outputs to automatically turn on/off when the associated
// extruder temperature is above/below EXTRUDER_AUTO_FAN_TEMPERATURE.
// Multiple extruders can be assigned to the same pin in which case
// the fan will turn on when any selected extruder is above the threshold.
#define EXTRUDER_0_AUTO_FAN_PIN -1
#define EXTRUDER_1_AUTO_FAN_PIN -1
#define EXTRUDER_2_AUTO_FAN_PIN -1
#define EXTRUDER_3_AUTO_FAN_PIN -1
#define EXTRUDER_AUTO_FAN_TEMPERATURE 50
#define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed
//===========================================================================
//============================ Mechanical Settings ==========================
//===========================================================================
// @section homing
// If you want endstops to stay on (by default) even when not homing
// enable this option. Override at any time with M120, M121.
//#define ENDSTOPS_ALWAYS_ON_DEFAULT
// @section extras
//#define Z_LATE_ENABLE // Enable Z the last moment. Needed if your Z driver overheats.
// Dual X Steppers
// Uncomment this option to drive two X axis motors.
// The next unused E driver will be assigned to the second X stepper.
//#define X_DUAL_STEPPER_DRIVERS
#if ENABLED(X_DUAL_STEPPER_DRIVERS)
// Set true if the two X motors need to rotate in opposite directions
#define INVERT_X2_VS_X_DIR true
#endif
// Dual Y Steppers
// Uncomment this option to drive two Y axis motors.
// The next unused E driver will be assigned to the second Y stepper.
//#define Y_DUAL_STEPPER_DRIVERS
#if ENABLED(Y_DUAL_STEPPER_DRIVERS)
// Set true if the two Y motors need to rotate in opposite directions
#define INVERT_Y2_VS_Y_DIR true
#endif
// A single Z stepper driver is usually used to drive 2 stepper motors.
// Uncomment this option to use a separate stepper driver for each Z axis motor.
// The next unused E driver will be assigned to the second Z stepper.
//#define Z_DUAL_STEPPER_DRIVERS
#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
// Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
// That way the machine is capable to align the bed during home, since both Z steppers are homed.
// There is also an implementation of M666 (software endstops adjustment) to this feature.
// After Z homing, this adjustment is applied to just one of the steppers in order to align the bed.
// One just need to home the Z axis and measure the distance difference between both Z axis and apply the math: Z adjust = Z - Z2.
// If the Z stepper axis is closer to the bed, the measure Z > Z2 (yes, it is.. think about it) and the Z adjust would be positive.
// Play a little bit with small adjustments (0.5mm) and check the behaviour.
// The M119 (endstops report) will start reporting the Z2 Endstop as well.
//#define Z_DUAL_ENDSTOPS
#if ENABLED(Z_DUAL_ENDSTOPS)
#define Z2_USE_ENDSTOP _XMAX_
#endif
#endif // Z_DUAL_STEPPER_DRIVERS
// Enable this for dual x-carriage printers.
// A dual x-carriage design has the advantage that the inactive extruder can be parked which
// prevents hot-end ooze contaminating the print. It also reduces the weight of each x-carriage
// allowing faster printing speeds. Connect your X2 stepper to the first unused E plug.
//#define DUAL_X_CARRIAGE
#if ENABLED(DUAL_X_CARRIAGE)
// Configuration for second X-carriage
// Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
// the second x-carriage always homes to the maximum endstop.
#define X2_MIN_POS 80 // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
#define X2_MAX_POS 353 // set maximum to the distance between toolheads when both heads are homed
#define X2_HOME_DIR 1 // the second X-carriage always homes to the maximum endstop position
#define X2_HOME_POS X2_MAX_POS // default home position is the maximum carriage position
// However: In this mode the HOTEND_OFFSET_X value for the second extruder provides a software
// override for X2_HOME_POS. This also allow recalibration of the distance between the two endstops
// without modifying the firmware (through the "M218 T1 X???" command).
// Remember: you should set the second extruder x-offset to 0 in your slicer.
// There are a few selectable movement modes for dual x-carriages using M605 S<mode>
// Mode 0: Full control. The slicer has full control over both x-carriages and can achieve optimal travel results
// as long as it supports dual x-carriages. (M605 S0)
// Mode 1: Auto-park mode. The firmware will automatically park and unpark the x-carriages on tool changes so
// that additional slicer support is not required. (M605 S1)
// Mode 2: Duplication mode. The firmware will transparently make the second x-carriage and extruder copy all
// actions of the first x-carriage. This allows the printer to print 2 arbitrary items at
// once. (2nd extruder x offset and temp offset are set using: M605 S2 [Xnnn] [Rmmm])
// This is the default power-up mode which can be later using M605.
#define DEFAULT_DUAL_X_CARRIAGE_MODE 0
// Default settings in "Auto-park Mode"
#define TOOLCHANGE_PARK_ZLIFT 0.2 // the distance to raise Z axis when parking an extruder
#define TOOLCHANGE_UNPARK_ZLIFT 1 // the distance to raise Z axis when unparking an extruder
// Default x offset in duplication mode (typically set to half print bed width)
#define DEFAULT_DUPLICATION_X_OFFSET 100
#endif //DUAL_X_CARRIAGE
// @section homing
//homing hits the endstop, then retracts by this distance, before it tries to slowly bump again:
#define X_HOME_BUMP_MM 10
#define Y_HOME_BUMP_MM 10
#define Z_HOME_BUMP_MM 3
#define HOMING_BUMP_DIVISOR {2, 2, 4} // Re-Bump Speed Divisor (Divides the Homing Feedrate)
#define QUICK_HOME //if this is defined, if both x and y are to be homed, a diagonal move will be performed initially.
// When G28 is called, this option will make Y home before X
//#define HOME_Y_BEFORE_X
// @section machine
#define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder
//#define DUAL_NOZZLE_DUPLICATION_MODE
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false
#define INVERT_Y_STEP_PIN false
#define INVERT_Z_STEP_PIN false
#define INVERT_E_STEP_PIN false
// Default stepper release if idle. Set to 0 to deactivate.
// Steppers will shut down DEFAULT_STEPPER_DEACTIVE_TIME seconds after the last move when DISABLE_INACTIVE_? is true.
// Time can be set by M18 and M84.
#define DEFAULT_STEPPER_DEACTIVE_TIME 120
#define DISABLE_INACTIVE_X true
#define DISABLE_INACTIVE_Y true
#define DISABLE_INACTIVE_Z true // set to false if the nozzle will fall down on your printed part when print has finished.
#define DISABLE_INACTIVE_E true
#define DEFAULT_MINIMUMFEEDRATE 0.0 // minimum feedrate
#define DEFAULT_MINTRAVELFEEDRATE 0.0
// @section lcd
#if ENABLED(ULTIPANEL)
#define MANUAL_FEEDRATE {50*60, 50*60, 4*60, 60} // Feedrates for manual moves along X, Y, Z, E from panel
#define ULTIPANEL_FEEDMULTIPLY // Comment to disable setting feedrate multiplier via encoder
#endif
// @section extras
// minimum time in microseconds that a movement needs to take if the buffer is emptied.
#define DEFAULT_MINSEGMENTTIME 20000
// If defined the movements slow down when the look ahead buffer is only half full
#define SLOWDOWN
// Frequency limit
// See nophead's blog for more info
// Not working O
//#define XY_FREQUENCY_LIMIT 15
// Minimum planner junction speed. Sets the default minimum speed the planner plans for at the end
// of the buffer and all stops. This should not be much greater than zero and should only be changed
// if unwanted behavior is observed on a user's machine when running at very slow speeds.
#define MINIMUM_PLANNER_SPEED 0.05// (mm/sec)
// Microstep setting (Only functional when stepper driver microstep pins are connected to MCU.
#define MICROSTEP_MODES {16,16,16,16,16} // [1,2,4,8,16]
// Motor Current setting (Only functional when motor driver current ref pins are connected to a digital trimpot on supported boards)
#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
// Motor Current controlled via PWM (Overridable on supported boards with PWM-driven motor driver current)
//#define PWM_MOTOR_CURRENT {1300, 1300, 1250} // Values in milliamps
// uncomment to enable an I2C based DIGIPOT like on the Azteeg X3 Pro
//#define DIGIPOT_I2C
// Number of channels available for I2C digipot, For Azteeg X3 Pro we have 8
#define DIGIPOT_I2C_NUM_CHANNELS 8
// actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
#define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0}
//===========================================================================
//=============================Additional Features===========================
//===========================================================================
#define ENCODER_RATE_MULTIPLIER // If defined, certain menu edit operations automatically multiply the steps when the encoder is moved quickly
#define ENCODER_10X_STEPS_PER_SEC 75 // If the encoder steps per sec exceeds this value, multiply steps moved x10 to quickly advance the value
#define ENCODER_100X_STEPS_PER_SEC 160 // If the encoder steps per sec exceeds this value, multiply steps moved x100 to really quickly advance the value
//#define CHDK 4 //Pin for triggering CHDK to take a picture see how to use it here http://captain-slow.dk/2014/03/09/3d-printing-timelapses/
#define CHDK_DELAY 50 //How long in ms the pin should stay HIGH before going LOW again
// @section lcd
// Include a page of printer information in the LCD Main Menu
//#define LCD_INFO_MENU
#if ENABLED(SDSUPPORT)
// Some RAMPS and other boards don't detect when an SD card is inserted. You can work
// around this by connecting a push button or single throw switch to the pin defined
// as SD_DETECT_PIN in your board's pins definitions.
// This setting should be disabled unless you are using a push button, pulling the pin to ground.
// Note: This is always disabled for ULTIPANEL (except ELB_FULL_GRAPHIC_CONTROLLER).
#define SD_DETECT_INVERTED
#define SD_FINISHED_STEPPERRELEASE true //if sd support and the file is finished: disable steppers?
#define SD_FINISHED_RELEASECOMMAND "M84 X Y Z E" // You might want to keep the z enabled so your bed stays in place.
#define SDCARD_RATHERRECENTFIRST //reverse file order of sd card menu display. Its sorted practically after the file system block order.
// if a file is deleted, it frees a block. hence, the order is not purely chronological. To still have auto0.g accessible, there is again the option to do that.
// using:
//#define MENU_ADDAUTOSTART
// Show a progress bar on HD44780 LCDs for SD printing
//#define LCD_PROGRESS_BAR
#if ENABLED(LCD_PROGRESS_BAR)
// Amount of time (ms) to show the bar
#define PROGRESS_BAR_BAR_TIME 2000
// Amount of time (ms) to show the status message
#define PROGRESS_BAR_MSG_TIME 3000
// Amount of time (ms) to retain the status message (0=forever)
#define PROGRESS_MSG_EXPIRE 0
// Enable this to show messages for MSG_TIME then hide them
//#define PROGRESS_MSG_ONCE
#endif
// This allows hosts to request long names for files and folders with M33
//#define LONG_FILENAME_HOST_SUPPORT
// This option allows you to abort SD printing when any endstop is triggered.
// This feature must be enabled with "M540 S1" or from the LCD menu.
// To have any effect, endstops must be enabled during SD printing.
//#define ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED
#endif // SDSUPPORT
// for dogm lcd displays you can choose some additional fonts:
#if ENABLED(DOGLCD)
// save 3120 bytes of PROGMEM by commenting out #define USE_BIG_EDIT_FONT
// we don't have a big font for Cyrillic, Kana
//#define USE_BIG_EDIT_FONT
// If you have spare 2300Byte of progmem and want to use a
// smaller font on the Info-screen uncomment the next line.
//#define USE_SMALL_INFOFONT
#endif // DOGLCD
// @section safety
// The hardware watchdog should reset the microcontroller disabling all outputs,
// in case the firmware gets stuck and doesn't do temperature regulation.
#define USE_WATCHDOG
#if ENABLED(USE_WATCHDOG)
// If you have a watchdog reboot in an ArduinoMega2560 then the device will hang forever, as a watchdog reset will leave the watchdog on.
// The "WATCHDOG_RESET_MANUAL" goes around this by not using the hardware reset.
// However, THIS FEATURE IS UNSAFE!, as it will only work if interrupts are disabled. And the code could hang in an interrupt routine with interrupts disabled.
//#define WATCHDOG_RESET_MANUAL
#endif
// @section lcd
// Babystepping enables the user to control the axis in tiny amounts, independently from the normal printing process
// it can e.g. be used to change z-positions in the print startup phase in real-time
// does not respect endstops!
//#define BABYSTEPPING
#if ENABLED(BABYSTEPPING)
#define BABYSTEP_XY //not only z, but also XY in the menu. more clutter, more functions
//not implemented for deltabots!
#define BABYSTEP_INVERT_Z false //true for inverse movements in Z
#define BABYSTEP_MULTIPLICATOR 1 //faster movements
#endif
// @section extruder
// extruder advance constant (s2/mm3)
//
// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
//
// Hooke's law says: force = k * distance
// Bernoulli's principle says: v ^ 2 / 2 + g . h + pressure / density = constant
// so: v ^ 2 is proportional to number of steps we advance the extruder
//#define ADVANCE
#if ENABLED(ADVANCE)
#define EXTRUDER_ADVANCE_K .0
#define D_FILAMENT 2.85
#endif
// Implementation of a linear pressure control
// Assumption: advance = k * (delta velocity)
// K=0 means advance disabled. A good value for a gregs wade extruder will be around K=75
//#define LIN_ADVANCE
#if ENABLED(LIN_ADVANCE)
#define LIN_ADVANCE_K 75
#endif
// @section leveling
// Default mesh area is an area with an inset margin on the print area.
// Below are the macros that are used to define the borders for the mesh area,
// made available here for specialized needs, ie dual extruder setup.
#if ENABLED(MESH_BED_LEVELING)
#define MESH_MIN_X (X_MIN_POS + MESH_INSET)
#define MESH_MAX_X (X_MAX_POS - (MESH_INSET))
#define MESH_MIN_Y (Y_MIN_POS + MESH_INSET)
#define MESH_MAX_Y (Y_MAX_POS - (MESH_INSET))
#endif
// @section extras
// Arc interpretation settings:
#define ARC_SUPPORT // Disabling this saves ~2738 bytes
#define MM_PER_ARC_SEGMENT 1
#define N_ARC_CORRECTION 25
// Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
//#define BEZIER_CURVE_SUPPORT
const unsigned int dropsegments = 5; //everything with less than this number of steps will be ignored as move and joined with the next movement
// @section temperature
// Control heater 0 and heater 1 in parallel.
//#define HEATERS_PARALLEL
//===========================================================================
//================================= Buffers =================================
//===========================================================================
// @section hidden
// The number of linear motions that can be in the plan at any give time.
// THE BLOCK_BUFFER_SIZE NEEDS TO BE A POWER OF 2, i.g. 8,16,32 because shifts and ors are used to do the ring-buffering.
#if ENABLED(SDSUPPORT)
#define BLOCK_BUFFER_SIZE 16 // SD,LCD,Buttons take more memory, block buffer needs to be smaller
#else
#define BLOCK_BUFFER_SIZE 16 // maximize block buffer
#endif
// @section serial
// The ASCII buffer for serial input
#define MAX_CMD_SIZE 96
#define BUFSIZE 26
// Transfer Buffer Size
// To save 386 bytes of PROGMEM (and TX_BUFFER_SIZE+3 bytes of RAM) set to 0.
// To buffer a simple "ok" you need 4 bytes.
// For ADVANCED_OK (M105) you need 32 bytes.
// For debug-echo: 128 bytes for the optimal speed.
// Other output doesn't need to be that speedy.
// :[0,2,4,8,16,32,64,128,256]
#define TX_BUFFER_SIZE 0
// Enable an emergency-command parser to intercept certain commands as they
// enter the serial receive buffer, so they cannot be blocked.
// Currently handles M108, M112, M410
// Does not work on boards using AT90USB (USBCON) processors!
//#define EMERGENCY_PARSER
// Bad Serial-connections can miss a received command by sending an 'ok'
// Therefore some clients abort after 30 seconds in a timeout.
// Some other clients start sending commands while receiving a 'wait'.
// This "wait" is only sent when the buffer is empty. 1 second is a good value here.
//#define NO_TIMEOUTS 1000 // Milliseconds
// Some clients will have this feature soon. This could make the NO_TIMEOUTS unnecessary.
//#define ADVANCED_OK
// @section fwretract
// Firmware based and LCD controlled retract
// M207 and M208 can be used to define parameters for the retraction.
// The retraction can be called by the slicer using G10 and G11
// until then, intended retractions can be detected by moves that only extrude and the direction.
// the moves are than replaced by the firmware controlled ones.
//#define FWRETRACT //ONLY PARTIALLY TESTED
#if ENABLED(FWRETRACT)
#define MIN_RETRACT 0.1 //minimum extruded mm to accept a automatic gcode retraction attempt
#define RETRACT_LENGTH 3 //default retract length (positive mm)
#define RETRACT_LENGTH_SWAP 13 //default swap retract length (positive mm), for extruder change
#define RETRACT_FEEDRATE 45 //default feedrate for retracting (mm/s)
#define RETRACT_ZLIFT 0 //default retract Z-lift
#define RETRACT_RECOVER_LENGTH 0 //default additional recover length (mm, added to retract length when recovering)
#define RETRACT_RECOVER_LENGTH_SWAP 0 //default additional swap recover length (mm, added to retract length when recovering from extruder change)
#define RETRACT_RECOVER_FEEDRATE 8 //default feedrate for recovering from retraction (mm/s)
#endif
// Add support for experimental filament exchange support M600; requires display
#if ENABLED(ULTIPANEL)
#define FILAMENT_CHANGE_FEATURE // Enable filament exchange menu and M600 g-code (used for runout sensor too)
#if ENABLED(FILAMENT_CHANGE_FEATURE)
#define FILAMENT_CHANGE_X_POS 100 // X position of hotend
#define FILAMENT_CHANGE_Y_POS 100 // Y position of hotend
#define FILAMENT_CHANGE_Z_ADD 20 // Z addition of hotend (lift)
#define FILAMENT_CHANGE_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
#define FILAMENT_CHANGE_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
#define FILAMENT_CHANGE_RETRACT_LENGTH 5 // Initial retract in mm
// It is a short retract used immediately after print interrupt before move to filament exchange position
#define FILAMENT_CHANGE_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
#define FILAMENT_CHANGE_UNLOAD_LENGTH 600 // Unload filament length from hotend in mm
// Longer length for bowden printers to unload filament from whole bowden tube,
// shorter lenght for printers without bowden to unload filament from extruder only,
// 0 to disable unloading for manual unloading
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast
#define FILAMENT_CHANGE_LOAD_LENGTH 600 // Load filament length over hotend in mm
// Longer length for bowden printers to fast load filament into whole bowden tube over the hotend,
// Short or zero length for printers without bowden where loading is not used
#define FILAMENT_CHANGE_LOAD_FEEDRATE 10 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast
#define FILAMENT_CHANGE_EXTRUDE_LENGTH 100 // Extrude filament length in mm after filament is load over the hotend,
// 0 to disable for manual extrusion
// Filament can be extruded repeatedly from the filament exchange menu to fill the hotend,
// or until outcoming filament color is not clear for filament color change
#define FILAMENT_CHANGE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
#endif
#endif
/******************************************************************************\
* enable this section if you have TMC26X motor drivers.
* you need to import the TMC26XStepper library into the Arduino IDE for this
******************************************************************************/
// @section tmc
//#define HAVE_TMCDRIVER
#if ENABLED(HAVE_TMCDRIVER)
//#define X_IS_TMC
#define X_MAX_CURRENT 1000 //in mA
#define X_SENSE_RESISTOR 91 //in mOhms
#define X_MICROSTEPS 16 //number of microsteps
//#define X2_IS_TMC
#define X2_MAX_CURRENT 1000 //in mA
#define X2_SENSE_RESISTOR 91 //in mOhms
#define X2_MICROSTEPS 16 //number of microsteps
//#define Y_IS_TMC
#define Y_MAX_CURRENT 1000 //in mA
#define Y_SENSE_RESISTOR 91 //in mOhms
#define Y_MICROSTEPS 16 //number of microsteps
//#define Y2_IS_TMC
#define Y2_MAX_CURRENT 1000 //in mA
#define Y2_SENSE_RESISTOR 91 //in mOhms
#define Y2_MICROSTEPS 16 //number of microsteps
//#define Z_IS_TMC
#define Z_MAX_CURRENT 1000 //in mA
#define Z_SENSE_RESISTOR 91 //in mOhms
#define Z_MICROSTEPS 16 //number of microsteps
//#define Z2_IS_TMC
#define Z2_MAX_CURRENT 1000 //in mA
#define Z2_SENSE_RESISTOR 91 //in mOhms
#define Z2_MICROSTEPS 16 //number of microsteps
//#define E0_IS_TMC
#define E0_MAX_CURRENT 1000 //in mA
#define E0_SENSE_RESISTOR 91 //in mOhms
#define E0_MICROSTEPS 16 //number of microsteps
//#define E1_IS_TMC
#define E1_MAX_CURRENT 1000 //in mA
#define E1_SENSE_RESISTOR 91 //in mOhms
#define E1_MICROSTEPS 16 //number of microsteps
//#define E2_IS_TMC
#define E2_MAX_CURRENT 1000 //in mA
#define E2_SENSE_RESISTOR 91 //in mOhms
#define E2_MICROSTEPS 16 //number of microsteps
//#define E3_IS_TMC
#define E3_MAX_CURRENT 1000 //in mA
#define E3_SENSE_RESISTOR 91 //in mOhms
#define E3_MICROSTEPS 16 //number of microsteps
#endif
/******************************************************************************\
* enable this section if you have L6470 motor drivers.
* you need to import the L6470 library into the Arduino IDE for this
******************************************************************************/
// @section l6470
//#define HAVE_L6470DRIVER
#if ENABLED(HAVE_L6470DRIVER)
//#define X_IS_L6470
#define X_MICROSTEPS 16 //number of microsteps
#define X_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define X_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define X_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define X2_IS_L6470
#define X2_MICROSTEPS 16 //number of microsteps
#define X2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define X2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define X2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define Y_IS_L6470
#define Y_MICROSTEPS 16 //number of microsteps
#define Y_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define Y_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define Y_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define Y2_IS_L6470
#define Y2_MICROSTEPS 16 //number of microsteps
#define Y2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define Y2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define Y2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define Z_IS_L6470
#define Z_MICROSTEPS 16 //number of microsteps
#define Z_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define Z_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define Z_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define Z2_IS_L6470
#define Z2_MICROSTEPS 16 //number of microsteps
#define Z2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define Z2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define Z2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define E0_IS_L6470
#define E0_MICROSTEPS 16 //number of microsteps
#define E0_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define E0_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define E0_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define E1_IS_L6470
#define E1_MICROSTEPS 16 //number of microsteps
#define E1_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define E1_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define E1_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define E2_IS_L6470
#define E2_MICROSTEPS 16 //number of microsteps
#define E2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define E2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define E2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define E3_IS_L6470
#define E3_MICROSTEPS 16 //number of microsteps
#define E3_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define E3_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define E3_STALLCURRENT 1500 //current in mA where the driver will detect a stall
#endif
/**
* TWI/I2C BUS
*
* This feature is an EXPERIMENTAL feature so it shall not be used on production
* machines. Enabling this will allow you to send and receive I2C data from slave
* devices on the bus.
*
* ; Example #1
* ; This macro send the string "Marlin" to the slave device with address 0x63 (99)
* ; It uses multiple M155 commands with one B<base 10> arg
* M155 A99 ; Target slave address
* M155 B77 ; M
* M155 B97 ; a
* M155 B114 ; r
* M155 B108 ; l
* M155 B105 ; i
* M155 B110 ; n
* M155 S1 ; Send the current buffer
*
* ; Example #2
* ; Request 6 bytes from slave device with address 0x63 (99)
* M156 A99 B5
*
* ; Example #3
* ; Example serial output of a M156 request
* echo:i2c-reply: from:99 bytes:5 data:hello
*/
// @section i2cbus
//#define EXPERIMENTAL_I2CBUS
#endif // CONFIGURATION_ADV_H
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -1,799 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
* Configuration_adv.h
*
* Advanced settings.
* Only change these if you know exactly what you're doing.
* Some of these settings can damage your printer if improperly set!
*
* Basic settings can be found in Configuration.h
*
*/
#ifndef CONFIGURATION_ADV_H
#define CONFIGURATION_ADV_H
/**
*
* ***********************************
* ** ATTENTION TO ALL DEVELOPERS **
* ***********************************
*
* You must increment this version number for every significant change such as,
* but not limited to: ADD, DELETE RENAME OR REPURPOSE any directive/option.
*
* Note: Update also Version.h !
*/
#define CONFIGURATION_ADV_H_VERSION 010100
// @section temperature
//===========================================================================
//=============================Thermal Settings ============================
//===========================================================================
#if DISABLED(PIDTEMPBED)
#define BED_CHECK_INTERVAL 5000 // ms between checks in bang-bang control
#if ENABLED(BED_LIMIT_SWITCHING)
#define BED_HYSTERESIS 2 // Only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
#endif
#endif
/**
* Thermal Protection protects your printer from damage and fire if a
* thermistor falls out or temperature sensors fail in any way.
*
* The issue: If a thermistor falls out or a temperature sensor fails,
* Marlin can no longer sense the actual temperature. Since a disconnected
* thermistor reads as a low temperature, the firmware will keep the heater on.
*
* The solution: Once the temperature reaches the target, start observing.
* If the temperature stays too far below the target (hysteresis) for too long (period),
* the firmware will halt the machine as a safety precaution.
*
* If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
*/
#if ENABLED(THERMAL_PROTECTION_HOTENDS)
#define THERMAL_PROTECTION_PERIOD 40 // Seconds
#define THERMAL_PROTECTION_HYSTERESIS 4 // Degrees Celsius
/**
* Whenever an M104 or M109 increases the target temperature the firmware will wait for the
* WATCH_TEMP_PERIOD to expire, and if the temperature hasn't increased by WATCH_TEMP_INCREASE
* degrees, the machine is halted, requiring a hard reset. This test restarts with any M104/M109,
* but only if the current temperature is far enough below the target for a reliable test.
*
* If you get false positives for "Heating failed" increase WATCH_TEMP_PERIOD and/or decrease WATCH_TEMP_INCREASE
* WATCH_TEMP_INCREASE should not be below 2.
*/
#define WATCH_TEMP_PERIOD 20 // Seconds
#define WATCH_TEMP_INCREASE 2 // Degrees Celsius
#endif
/**
* Thermal Protection parameters for the bed are just as above for hotends.
*/
#if ENABLED(THERMAL_PROTECTION_BED)
#define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds
#define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius
/**
* Whenever an M140 or M190 increases the target temperature the firmware will wait for the
* WATCH_BED_TEMP_PERIOD to expire, and if the temperature hasn't increased by WATCH_BED_TEMP_INCREASE
* degrees, the machine is halted, requiring a hard reset. This test restarts with any M140/M190,
* but only if the current temperature is far enough below the target for a reliable test.
*
* If you get too many "Heating failed" errors, increase WATCH_BED_TEMP_PERIOD and/or decrease
* WATCH_BED_TEMP_INCREASE. (WATCH_BED_TEMP_INCREASE should not be below 2.)
*/
#define WATCH_BED_TEMP_PERIOD 60 // Seconds
#define WATCH_BED_TEMP_INCREASE 2 // Degrees Celsius
#endif
#if ENABLED(PIDTEMP)
// this adds an experimental additional term to the heating power, proportional to the extrusion speed.
// if Kc is chosen well, the additional required power due to increased melting should be compensated.
//#define PID_EXTRUSION_SCALING
#if ENABLED(PID_EXTRUSION_SCALING)
#define DEFAULT_Kc (100) //heating power=Kc*(e_speed)
#define LPQ_MAX_LEN 50
#endif
#endif
/**
* Automatic Temperature:
* The hotend target temperature is calculated by all the buffered lines of gcode.
* The maximum buffered steps/sec of the extruder motor is called "se".
* Start autotemp mode with M109 S<mintemp> B<maxtemp> F<factor>
* The target temperature is set to mintemp+factor*se[steps/sec] and is limited by
* mintemp and maxtemp. Turn this off by executing M109 without F*
* Also, if the temperature is set to a value below mintemp, it will not be changed by autotemp.
* On an Ultimaker, some initial testing worked with M109 S215 B260 F1 in the start.gcode
*/
#define AUTOTEMP
#if ENABLED(AUTOTEMP)
#define AUTOTEMP_OLDWEIGHT 0.98
#endif
//Show Temperature ADC value
//The M105 command return, besides traditional information, the ADC value read from temperature sensors.
//#define SHOW_TEMP_ADC_VALUES
/**
* High Temperature Thermistor Support
*
* Thermistors able to support high temperature tend to have a hard time getting
* good readings at room and lower temperatures. This means HEATER_X_RAW_LO_TEMP
* will probably be caught when the heating element first turns on during the
* preheating process, which will trigger a min_temp_error as a safety measure
* and force stop everything.
* To circumvent this limitation, we allow for a preheat time (during which,
* min_temp_error won't be triggered) and add a min_temp buffer to handle
* aberrant readings.
*
* If you want to enable this feature for your hotend thermistor(s)
* uncomment and set values > 0 in the constants below
*/
// The number of consecutive low temperature errors that can occur
// before a min_temp_error is triggered. (Shouldn't be more than 10.)
//#define MAX_CONSECUTIVE_LOW_TEMPERATURE_ERROR_ALLOWED 0
// The number of milliseconds a hotend will preheat before starting to check
// the temperature. This value should NOT be set to the time it takes the
// hot end to reach the target temperature, but the time it takes to reach
// the minimum temperature your thermistor can read. The lower the better/safer.
// This shouldn't need to be more than 30 seconds (30000)
//#define MILLISECONDS_PREHEAT_TIME 0
// @section extruder
// extruder run-out prevention.
//if the machine is idle, and the temperature over MINTEMP, every couple of SECONDS some filament is extruded
//#define EXTRUDER_RUNOUT_PREVENT
#define EXTRUDER_RUNOUT_MINTEMP 190
#define EXTRUDER_RUNOUT_SECONDS 30
#define EXTRUDER_RUNOUT_ESTEPS 14 // mm filament
#define EXTRUDER_RUNOUT_SPEED 1500 // extrusion speed
#define EXTRUDER_RUNOUT_EXTRUDE 100
// @section temperature
//These defines help to calibrate the AD595 sensor in case you get wrong temperature measurements.
//The measured temperature is defined as "actualTemp = (measuredTemp * TEMP_SENSOR_AD595_GAIN) + TEMP_SENSOR_AD595_OFFSET"
#define TEMP_SENSOR_AD595_OFFSET 0.0
#define TEMP_SENSOR_AD595_GAIN 1.0
//This is for controlling a fan to cool down the stepper drivers
//it will turn on when any driver is enabled
//and turn off after the set amount of seconds from last driver being disabled again
#define CONTROLLERFAN_PIN 4 // RigidBot: Fans/Water Pump to cool the hotend cool side.
#define CONTROLLERFAN_SECS 60 //How many seconds, after all motors were disabled, the fan should run
#define CONTROLLERFAN_SPEED 255 // == full speed
// When first starting the main fan, run it at full speed for the
// given number of milliseconds. This gets the fan spinning reliably
// before setting a PWM value. (Does not work with software PWM for fan on Sanguinololu)
//#define FAN_KICKSTART_TIME 100
// This defines the minimal speed for the main fan, run in PWM mode
// to enable uncomment and set minimal PWM speed for reliable running (1-255)
// if fan speed is [1 - (FAN_MIN_PWM-1)] it is set to FAN_MIN_PWM
//#define FAN_MIN_PWM 50
// @section extruder
// Extruder cooling fans
// Configure fan pin outputs to automatically turn on/off when the associated
// extruder temperature is above/below EXTRUDER_AUTO_FAN_TEMPERATURE.
// Multiple extruders can be assigned to the same pin in which case
// the fan will turn on when any selected extruder is above the threshold.
#define EXTRUDER_0_AUTO_FAN_PIN -1
#define EXTRUDER_1_AUTO_FAN_PIN -1
#define EXTRUDER_2_AUTO_FAN_PIN -1
#define EXTRUDER_3_AUTO_FAN_PIN -1
#define EXTRUDER_AUTO_FAN_TEMPERATURE 50
#define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed
//===========================================================================
//============================ Mechanical Settings ==========================
//===========================================================================
// @section homing
// If you want endstops to stay on (by default) even when not homing
// enable this option. Override at any time with M120, M121.
//#define ENDSTOPS_ALWAYS_ON_DEFAULT
// @section extras
//#define Z_LATE_ENABLE // Enable Z the last moment. Needed if your Z driver overheats.
// Dual X Steppers
// Uncomment this option to drive two X axis motors.
// The next unused E driver will be assigned to the second X stepper.
//#define X_DUAL_STEPPER_DRIVERS
#if ENABLED(X_DUAL_STEPPER_DRIVERS)
// Set true if the two X motors need to rotate in opposite directions
#define INVERT_X2_VS_X_DIR true
#endif
// Dual Y Steppers
// Uncomment this option to drive two Y axis motors.
// The next unused E driver will be assigned to the second Y stepper.
//#define Y_DUAL_STEPPER_DRIVERS
#if ENABLED(Y_DUAL_STEPPER_DRIVERS)
// Set true if the two Y motors need to rotate in opposite directions
#define INVERT_Y2_VS_Y_DIR true
#endif
// A single Z stepper driver is usually used to drive 2 stepper motors.
// Uncomment this option to use a separate stepper driver for each Z axis motor.
// The next unused E driver will be assigned to the second Z stepper.
//#define Z_DUAL_STEPPER_DRIVERS
#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
// Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
// That way the machine is capable to align the bed during home, since both Z steppers are homed.
// There is also an implementation of M666 (software endstops adjustment) to this feature.
// After Z homing, this adjustment is applied to just one of the steppers in order to align the bed.
// One just need to home the Z axis and measure the distance difference between both Z axis and apply the math: Z adjust = Z - Z2.
// If the Z stepper axis is closer to the bed, the measure Z > Z2 (yes, it is.. think about it) and the Z adjust would be positive.
// Play a little bit with small adjustments (0.5mm) and check the behaviour.
// The M119 (endstops report) will start reporting the Z2 Endstop as well.
//#define Z_DUAL_ENDSTOPS
#if ENABLED(Z_DUAL_ENDSTOPS)
#define Z2_USE_ENDSTOP _XMAX_
#endif
#endif // Z_DUAL_STEPPER_DRIVERS
// Enable this for dual x-carriage printers.
// A dual x-carriage design has the advantage that the inactive extruder can be parked which
// prevents hot-end ooze contaminating the print. It also reduces the weight of each x-carriage
// allowing faster printing speeds. Connect your X2 stepper to the first unused E plug.
//#define DUAL_X_CARRIAGE
#if ENABLED(DUAL_X_CARRIAGE)
// Configuration for second X-carriage
// Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
// the second x-carriage always homes to the maximum endstop.
#define X2_MIN_POS 80 // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
#define X2_MAX_POS 353 // set maximum to the distance between toolheads when both heads are homed
#define X2_HOME_DIR 1 // the second X-carriage always homes to the maximum endstop position
#define X2_HOME_POS X2_MAX_POS // default home position is the maximum carriage position
// However: In this mode the HOTEND_OFFSET_X value for the second extruder provides a software
// override for X2_HOME_POS. This also allow recalibration of the distance between the two endstops
// without modifying the firmware (through the "M218 T1 X???" command).
// Remember: you should set the second extruder x-offset to 0 in your slicer.
// There are a few selectable movement modes for dual x-carriages using M605 S<mode>
// Mode 0: Full control. The slicer has full control over both x-carriages and can achieve optimal travel results
// as long as it supports dual x-carriages. (M605 S0)
// Mode 1: Auto-park mode. The firmware will automatically park and unpark the x-carriages on tool changes so
// that additional slicer support is not required. (M605 S1)
// Mode 2: Duplication mode. The firmware will transparently make the second x-carriage and extruder copy all
// actions of the first x-carriage. This allows the printer to print 2 arbitrary items at
// once. (2nd extruder x offset and temp offset are set using: M605 S2 [Xnnn] [Rmmm])
// This is the default power-up mode which can be later using M605.
#define DEFAULT_DUAL_X_CARRIAGE_MODE 0
// Default settings in "Auto-park Mode"
#define TOOLCHANGE_PARK_ZLIFT 0.2 // the distance to raise Z axis when parking an extruder
#define TOOLCHANGE_UNPARK_ZLIFT 1 // the distance to raise Z axis when unparking an extruder
// Default x offset in duplication mode (typically set to half print bed width)
#define DEFAULT_DUPLICATION_X_OFFSET 100
#endif //DUAL_X_CARRIAGE
// @section homing
//homing hits the endstop, then retracts by this distance, before it tries to slowly bump again:
#define X_HOME_BUMP_MM 5
#define Y_HOME_BUMP_MM 5
#define Z_HOME_BUMP_MM 2
#define HOMING_BUMP_DIVISOR {2, 2, 4} // Re-Bump Speed Divisor (Divides the Homing Feedrate)
//#define QUICK_HOME //if this is defined, if both x and y are to be homed, a diagonal move will be performed initially.
// When G28 is called, this option will make Y home before X
//#define HOME_Y_BEFORE_X
// @section machine
#define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder
//#define DUAL_NOZZLE_DUPLICATION_MODE
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false
#define INVERT_Y_STEP_PIN false
#define INVERT_Z_STEP_PIN false
#define INVERT_E_STEP_PIN false
// Default stepper release if idle. Set to 0 to deactivate.
// Steppers will shut down DEFAULT_STEPPER_DEACTIVE_TIME seconds after the last move when DISABLE_INACTIVE_? is true.
// Time can be set by M18 and M84.
#define DEFAULT_STEPPER_DEACTIVE_TIME 60
#define DISABLE_INACTIVE_X true
#define DISABLE_INACTIVE_Y true
#define DISABLE_INACTIVE_Z true // set to false if the nozzle will fall down on your printed part when print has finished.
#define DISABLE_INACTIVE_E true
#define DEFAULT_MINIMUMFEEDRATE 0.0 // minimum feedrate
#define DEFAULT_MINTRAVELFEEDRATE 0.0
// @section lcd
#if ENABLED(ULTIPANEL)
#define MANUAL_FEEDRATE {50*60, 50*60, 4*60, 60} // Feedrates for manual moves along X, Y, Z, E from panel
#define ULTIPANEL_FEEDMULTIPLY // Comment to disable setting feedrate multiplier via encoder
#endif
// @section extras
// minimum time in microseconds that a movement needs to take if the buffer is emptied.
#define DEFAULT_MINSEGMENTTIME 20000
// If defined the movements slow down when the look ahead buffer is only half full
#define SLOWDOWN
// Frequency limit
// See nophead's blog for more info
// Not working O
//#define XY_FREQUENCY_LIMIT 15
// Minimum planner junction speed. Sets the default minimum speed the planner plans for at the end
// of the buffer and all stops. This should not be much greater than zero and should only be changed
// if unwanted behavior is observed on a user's machine when running at very slow speeds.
#define MINIMUM_PLANNER_SPEED 0.05// (mm/sec)
// Microstep setting (Only functional when stepper driver microstep pins are connected to MCU.
#define MICROSTEP_MODES {16,16,16,16,16} // [1,2,4,8,16]
// Motor Current setting (Only functional when motor driver current ref pins are connected to a digital trimpot on supported boards)
#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
// Motor Current controlled via PWM (Overridable on supported boards with PWM-driven motor driver current)
//#define PWM_MOTOR_CURRENT {1300, 1300, 1250} // Values in milliamps
// uncomment to enable an I2C based DIGIPOT like on the Azteeg X3 Pro
//#define DIGIPOT_I2C
// Number of channels available for I2C digipot, For Azteeg X3 Pro we have 8
#define DIGIPOT_I2C_NUM_CHANNELS 8
// actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
#define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0}
//===========================================================================
//=============================Additional Features===========================
//===========================================================================
//#define ENCODER_RATE_MULTIPLIER // If defined, certain menu edit operations automatically multiply the steps when the encoder is moved quickly
//#define ENCODER_10X_STEPS_PER_SEC 75 // If the encoder steps per sec exceeds this value, multiply steps moved x10 to quickly advance the value
//#define ENCODER_100X_STEPS_PER_SEC 160 // If the encoder steps per sec exceeds this value, multiply steps moved x100 to really quickly advance the value
//#define CHDK 4 //Pin for triggering CHDK to take a picture see how to use it here http://captain-slow.dk/2014/03/09/3d-printing-timelapses/
#define CHDK_DELAY 50 //How long in ms the pin should stay HIGH before going LOW again
// @section lcd
// Include a page of printer information in the LCD Main Menu
//#define LCD_INFO_MENU
#if ENABLED(SDSUPPORT)
// Some RAMPS and other boards don't detect when an SD card is inserted. You can work
// around this by connecting a push button or single throw switch to the pin defined
// as SD_DETECT_PIN in your board's pins definitions.
// This setting should be disabled unless you are using a push button, pulling the pin to ground.
// Note: This is always disabled for ULTIPANEL (except ELB_FULL_GRAPHIC_CONTROLLER).
#define SD_DETECT_INVERTED
#define SD_FINISHED_STEPPERRELEASE true //if sd support and the file is finished: disable steppers?
#define SD_FINISHED_RELEASECOMMAND "M84 X Y Z E" // You might want to keep the z enabled so your bed stays in place.
#define SDCARD_RATHERRECENTFIRST //reverse file order of sd card menu display. Its sorted practically after the file system block order.
// if a file is deleted, it frees a block. hence, the order is not purely chronological. To still have auto0.g accessible, there is again the option to do that.
// using:
//#define MENU_ADDAUTOSTART
// Show a progress bar on HD44780 LCDs for SD printing
//#define LCD_PROGRESS_BAR
#if ENABLED(LCD_PROGRESS_BAR)
// Amount of time (ms) to show the bar
#define PROGRESS_BAR_BAR_TIME 2000
// Amount of time (ms) to show the status message
#define PROGRESS_BAR_MSG_TIME 3000
// Amount of time (ms) to retain the status message (0=forever)
#define PROGRESS_MSG_EXPIRE 0
// Enable this to show messages for MSG_TIME then hide them
//#define PROGRESS_MSG_ONCE
#endif
// This allows hosts to request long names for files and folders with M33
//#define LONG_FILENAME_HOST_SUPPORT
// This option allows you to abort SD printing when any endstop is triggered.
// This feature must be enabled with "M540 S1" or from the LCD menu.
// To have any effect, endstops must be enabled during SD printing.
//#define ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED
#endif // SDSUPPORT
// for dogm lcd displays you can choose some additional fonts:
#if ENABLED(DOGLCD)
// save 3120 bytes of PROGMEM by commenting out #define USE_BIG_EDIT_FONT
// we don't have a big font for Cyrillic, Kana
//#define USE_BIG_EDIT_FONT
// If you have spare 2300Byte of progmem and want to use a
// smaller font on the Info-screen uncomment the next line.
//#define USE_SMALL_INFOFONT
#endif // DOGLCD
// @section safety
// The hardware watchdog should reset the microcontroller disabling all outputs,
// in case the firmware gets stuck and doesn't do temperature regulation.
#define USE_WATCHDOG
#if ENABLED(USE_WATCHDOG)
// If you have a watchdog reboot in an ArduinoMega2560 then the device will hang forever, as a watchdog reset will leave the watchdog on.
// The "WATCHDOG_RESET_MANUAL" goes around this by not using the hardware reset.
// However, THIS FEATURE IS UNSAFE!, as it will only work if interrupts are disabled. And the code could hang in an interrupt routine with interrupts disabled.
//#define WATCHDOG_RESET_MANUAL
#endif
// @section lcd
// Babystepping enables the user to control the axis in tiny amounts, independently from the normal printing process
// it can e.g. be used to change z-positions in the print startup phase in real-time
// does not respect endstops!
//#define BABYSTEPPING
#if ENABLED(BABYSTEPPING)
#define BABYSTEP_XY //not only z, but also XY in the menu. more clutter, more functions
//not implemented for deltabots!
#define BABYSTEP_INVERT_Z false //true for inverse movements in Z
#define BABYSTEP_MULTIPLICATOR 1 //faster movements
#endif
// @section extruder
// extruder advance constant (s2/mm3)
//
// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
//
// Hooke's law says: force = k * distance
// Bernoulli's principle says: v ^ 2 / 2 + g . h + pressure / density = constant
// so: v ^ 2 is proportional to number of steps we advance the extruder
//#define ADVANCE
#if ENABLED(ADVANCE)
#define EXTRUDER_ADVANCE_K .0
#define D_FILAMENT 1.75
#endif
// Implementation of a linear pressure control
// Assumption: advance = k * (delta velocity)
// K=0 means advance disabled. A good value for a gregs wade extruder will be around K=75
//#define LIN_ADVANCE
#if ENABLED(LIN_ADVANCE)
#define LIN_ADVANCE_K 75
#endif
// @section leveling
// Default mesh area is an area with an inset margin on the print area.
// Below are the macros that are used to define the borders for the mesh area,
// made available here for specialized needs, ie dual extruder setup.
#if ENABLED(MESH_BED_LEVELING)
#define MESH_MIN_X (X_MIN_POS + MESH_INSET)
#define MESH_MAX_X (X_MAX_POS - (MESH_INSET))
#define MESH_MIN_Y (Y_MIN_POS + MESH_INSET)
#define MESH_MAX_Y (Y_MAX_POS - (MESH_INSET))
#endif
// @section extras
// Arc interpretation settings:
#define ARC_SUPPORT // Disabling this saves ~2738 bytes
#define MM_PER_ARC_SEGMENT 1
#define N_ARC_CORRECTION 25
// Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
//#define BEZIER_CURVE_SUPPORT
const unsigned int dropsegments = 5; //everything with less than this number of steps will be ignored as move and joined with the next movement
// @section temperature
// Control heater 0 and heater 1 in parallel.
//#define HEATERS_PARALLEL
//===========================================================================
//================================= Buffers =================================
//===========================================================================
// @section hidden
// The number of linear motions that can be in the plan at any give time.
// THE BLOCK_BUFFER_SIZE NEEDS TO BE A POWER OF 2, i.g. 8,16,32 because shifts and ors are used to do the ring-buffering.
#if ENABLED(SDSUPPORT)
#define BLOCK_BUFFER_SIZE 16 // SD,LCD,Buttons take more memory, block buffer needs to be smaller
#else
#define BLOCK_BUFFER_SIZE 16 // maximize block buffer
#endif
// @section serial
// The ASCII buffer for serial input
#define MAX_CMD_SIZE 96
#define BUFSIZE 8
// Transfer Buffer Size
// To save 386 bytes of PROGMEM (and TX_BUFFER_SIZE+3 bytes of RAM) set to 0.
// To buffer a simple "ok" you need 4 bytes.
// For ADVANCED_OK (M105) you need 32 bytes.
// For debug-echo: 128 bytes for the optimal speed.
// Other output doesn't need to be that speedy.
// :[0,2,4,8,16,32,64,128,256]
#define TX_BUFFER_SIZE 0
// Enable an emergency-command parser to intercept certain commands as they
// enter the serial receive buffer, so they cannot be blocked.
// Currently handles M108, M112, M410
// Does not work on boards using AT90USB (USBCON) processors!
//#define EMERGENCY_PARSER
// Bad Serial-connections can miss a received command by sending an 'ok'
// Therefore some clients abort after 30 seconds in a timeout.
// Some other clients start sending commands while receiving a 'wait'.
// This "wait" is only sent when the buffer is empty. 1 second is a good value here.
//#define NO_TIMEOUTS 1000 // Milliseconds
// Some clients will have this feature soon. This could make the NO_TIMEOUTS unnecessary.
//#define ADVANCED_OK
// @section fwretract
// Firmware based and LCD controlled retract
// M207 and M208 can be used to define parameters for the retraction.
// The retraction can be called by the slicer using G10 and G11
// until then, intended retractions can be detected by moves that only extrude and the direction.
// the moves are than replaced by the firmware controlled ones.
//#define FWRETRACT //ONLY PARTIALLY TESTED
#if ENABLED(FWRETRACT)
#define MIN_RETRACT 0.1 //minimum extruded mm to accept a automatic gcode retraction attempt
#define RETRACT_LENGTH 3 //default retract length (positive mm)
#define RETRACT_LENGTH_SWAP 13 //default swap retract length (positive mm), for extruder change
#define RETRACT_FEEDRATE 45 //default feedrate for retracting (mm/s)
#define RETRACT_ZLIFT 0 //default retract Z-lift
#define RETRACT_RECOVER_LENGTH 0 //default additional recover length (mm, added to retract length when recovering)
#define RETRACT_RECOVER_LENGTH_SWAP 0 //default additional swap recover length (mm, added to retract length when recovering from extruder change)
#define RETRACT_RECOVER_FEEDRATE 8 //default feedrate for recovering from retraction (mm/s)
#endif
// Add support for experimental filament exchange support M600; requires display
#if ENABLED(ULTIPANEL)
// #define FILAMENT_CHANGE_FEATURE // Enable filament exchange menu and M600 g-code (used for runout sensor too)
#if ENABLED(FILAMENT_CHANGE_FEATURE)
#define FILAMENT_CHANGE_X_POS 3 // X position of hotend
#define FILAMENT_CHANGE_Y_POS 3 // Y position of hotend
#define FILAMENT_CHANGE_Z_ADD 10 // Z addition of hotend (lift)
#define FILAMENT_CHANGE_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
#define FILAMENT_CHANGE_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
#define FILAMENT_CHANGE_RETRACT_LENGTH 2 // Initial retract in mm
// It is a short retract used immediately after print interrupt before move to filament exchange position
#define FILAMENT_CHANGE_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
#define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm
// Longer length for bowden printers to unload filament from whole bowden tube,
// shorter lenght for printers without bowden to unload filament from extruder only,
// 0 to disable unloading for manual unloading
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast
#define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm
// Longer length for bowden printers to fast load filament into whole bowden tube over the hotend,
// Short or zero length for printers without bowden where loading is not used
#define FILAMENT_CHANGE_LOAD_FEEDRATE 10 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast
#define FILAMENT_CHANGE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is load over the hotend,
// 0 to disable for manual extrusion
// Filament can be extruded repeatedly from the filament exchange menu to fill the hotend,
// or until outcoming filament color is not clear for filament color change
#define FILAMENT_CHANGE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
#endif
#endif
/******************************************************************************\
* enable this section if you have TMC26X motor drivers.
* you need to import the TMC26XStepper library into the Arduino IDE for this
******************************************************************************/
// @section tmc
//#define HAVE_TMCDRIVER
#if ENABLED(HAVE_TMCDRIVER)
//#define X_IS_TMC
#define X_MAX_CURRENT 1000 //in mA
#define X_SENSE_RESISTOR 91 //in mOhms
#define X_MICROSTEPS 16 //number of microsteps
//#define X2_IS_TMC
#define X2_MAX_CURRENT 1000 //in mA
#define X2_SENSE_RESISTOR 91 //in mOhms
#define X2_MICROSTEPS 16 //number of microsteps
//#define Y_IS_TMC
#define Y_MAX_CURRENT 1000 //in mA
#define Y_SENSE_RESISTOR 91 //in mOhms
#define Y_MICROSTEPS 16 //number of microsteps
//#define Y2_IS_TMC
#define Y2_MAX_CURRENT 1000 //in mA
#define Y2_SENSE_RESISTOR 91 //in mOhms
#define Y2_MICROSTEPS 16 //number of microsteps
//#define Z_IS_TMC
#define Z_MAX_CURRENT 1000 //in mA
#define Z_SENSE_RESISTOR 91 //in mOhms
#define Z_MICROSTEPS 16 //number of microsteps
//#define Z2_IS_TMC
#define Z2_MAX_CURRENT 1000 //in mA
#define Z2_SENSE_RESISTOR 91 //in mOhms
#define Z2_MICROSTEPS 16 //number of microsteps
//#define E0_IS_TMC
#define E0_MAX_CURRENT 1000 //in mA
#define E0_SENSE_RESISTOR 91 //in mOhms
#define E0_MICROSTEPS 16 //number of microsteps
//#define E1_IS_TMC
#define E1_MAX_CURRENT 1000 //in mA
#define E1_SENSE_RESISTOR 91 //in mOhms
#define E1_MICROSTEPS 16 //number of microsteps
//#define E2_IS_TMC
#define E2_MAX_CURRENT 1000 //in mA
#define E2_SENSE_RESISTOR 91 //in mOhms
#define E2_MICROSTEPS 16 //number of microsteps
//#define E3_IS_TMC
#define E3_MAX_CURRENT 1000 //in mA
#define E3_SENSE_RESISTOR 91 //in mOhms
#define E3_MICROSTEPS 16 //number of microsteps
#endif
/******************************************************************************\
* enable this section if you have L6470 motor drivers.
* you need to import the L6470 library into the Arduino IDE for this
******************************************************************************/
// @section l6470
//#define HAVE_L6470DRIVER
#if ENABLED(HAVE_L6470DRIVER)
//#define X_IS_L6470
#define X_MICROSTEPS 16 //number of microsteps
#define X_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define X_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define X_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define X2_IS_L6470
#define X2_MICROSTEPS 16 //number of microsteps
#define X2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define X2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define X2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define Y_IS_L6470
#define Y_MICROSTEPS 16 //number of microsteps
#define Y_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define Y_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define Y_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define Y2_IS_L6470
#define Y2_MICROSTEPS 16 //number of microsteps
#define Y2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define Y2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define Y2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define Z_IS_L6470
#define Z_MICROSTEPS 16 //number of microsteps
#define Z_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define Z_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define Z_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define Z2_IS_L6470
#define Z2_MICROSTEPS 16 //number of microsteps
#define Z2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define Z2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define Z2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define E0_IS_L6470
#define E0_MICROSTEPS 16 //number of microsteps
#define E0_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define E0_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define E0_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define E1_IS_L6470
#define E1_MICROSTEPS 16 //number of microsteps
#define E1_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define E1_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define E1_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define E2_IS_L6470
#define E2_MICROSTEPS 16 //number of microsteps
#define E2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define E2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define E2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define E3_IS_L6470
#define E3_MICROSTEPS 16 //number of microsteps
#define E3_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define E3_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define E3_STALLCURRENT 1500 //current in mA where the driver will detect a stall
#endif
/**
* TWI/I2C BUS
*
* This feature is an EXPERIMENTAL feature so it shall not be used on production
* machines. Enabling this will allow you to send and receive I2C data from slave
* devices on the bus.
*
* ; Example #1
* ; This macro send the string "Marlin" to the slave device with address 0x63 (99)
* ; It uses multiple M155 commands with one B<base 10> arg
* M155 A99 ; Target slave address
* M155 B77 ; M
* M155 B97 ; a
* M155 B114 ; r
* M155 B108 ; l
* M155 B105 ; i
* M155 B110 ; n
* M155 S1 ; Send the current buffer
*
* ; Example #2
* ; Request 6 bytes from slave device with address 0x63 (99)
* M156 A99 B5
*
* ; Example #3
* ; Example serial output of a M156 request
* echo:i2c-reply: from:99 bytes:5 data:hello
*/
// @section i2cbus
//#define EXPERIMENTAL_I2CBUS
#endif // CONFIGURATION_ADV_H
File diff suppressed because it is too large Load Diff
@@ -1,799 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
* Configuration_adv.h
*
* Advanced settings.
* Only change these if you know exactly what you're doing.
* Some of these settings can damage your printer if improperly set!
*
* Basic settings can be found in Configuration.h
*
*/
#ifndef CONFIGURATION_ADV_H
#define CONFIGURATION_ADV_H
/**
*
* ***********************************
* ** ATTENTION TO ALL DEVELOPERS **
* ***********************************
*
* You must increment this version number for every significant change such as,
* but not limited to: ADD, DELETE RENAME OR REPURPOSE any directive/option.
*
* Note: Update also Version.h !
*/
#define CONFIGURATION_ADV_H_VERSION 010100
// @section temperature
//===========================================================================
//=============================Thermal Settings ============================
//===========================================================================
#if DISABLED(PIDTEMPBED)
#define BED_CHECK_INTERVAL 3000 // ms between checks in bang-bang control
#if ENABLED(BED_LIMIT_SWITCHING)
#define BED_HYSTERESIS 2 // Only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
#endif
#endif
/**
* Thermal Protection protects your printer from damage and fire if a
* thermistor falls out or temperature sensors fail in any way.
*
* The issue: If a thermistor falls out or a temperature sensor fails,
* Marlin can no longer sense the actual temperature. Since a disconnected
* thermistor reads as a low temperature, the firmware will keep the heater on.
*
* The solution: Once the temperature reaches the target, start observing.
* If the temperature stays too far below the target (hysteresis) for too long (period),
* the firmware will halt the machine as a safety precaution.
*
* If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
*/
#if ENABLED(THERMAL_PROTECTION_HOTENDS)
#define THERMAL_PROTECTION_PERIOD 40 // Seconds
#define THERMAL_PROTECTION_HYSTERESIS 4 // Degrees Celsius
/**
* Whenever an M104 or M109 increases the target temperature the firmware will wait for the
* WATCH_TEMP_PERIOD to expire, and if the temperature hasn't increased by WATCH_TEMP_INCREASE
* degrees, the machine is halted, requiring a hard reset. This test restarts with any M104/M109,
* but only if the current temperature is far enough below the target for a reliable test.
*
* If you get false positives for "Heating failed" increase WATCH_TEMP_PERIOD and/or decrease WATCH_TEMP_INCREASE
* WATCH_TEMP_INCREASE should not be below 2.
*/
#define WATCH_TEMP_PERIOD 20 // Seconds
#define WATCH_TEMP_INCREASE 2 // Degrees Celsius
#endif
/**
* Thermal Protection parameters for the bed are just as above for hotends.
*/
#if ENABLED(THERMAL_PROTECTION_BED)
#define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds
#define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius
/**
* Whenever an M140 or M190 increases the target temperature the firmware will wait for the
* WATCH_BED_TEMP_PERIOD to expire, and if the temperature hasn't increased by WATCH_BED_TEMP_INCREASE
* degrees, the machine is halted, requiring a hard reset. This test restarts with any M140/M190,
* but only if the current temperature is far enough below the target for a reliable test.
*
* If you get too many "Heating failed" errors, increase WATCH_BED_TEMP_PERIOD and/or decrease
* WATCH_BED_TEMP_INCREASE. (WATCH_BED_TEMP_INCREASE should not be below 2.)
*/
#define WATCH_BED_TEMP_PERIOD 60 // Seconds
#define WATCH_BED_TEMP_INCREASE 2 // Degrees Celsius
#endif
#if ENABLED(PIDTEMP)
// this adds an experimental additional term to the heating power, proportional to the extrusion speed.
// if Kc is chosen well, the additional required power due to increased melting should be compensated.
//#define PID_EXTRUSION_SCALING
#if ENABLED(PID_EXTRUSION_SCALING)
#define DEFAULT_Kc (100) //heating power=Kc*(e_speed)
#define LPQ_MAX_LEN 50
#endif
#endif
/**
* Automatic Temperature:
* The hotend target temperature is calculated by all the buffered lines of gcode.
* The maximum buffered steps/sec of the extruder motor is called "se".
* Start autotemp mode with M109 S<mintemp> B<maxtemp> F<factor>
* The target temperature is set to mintemp+factor*se[steps/sec] and is limited by
* mintemp and maxtemp. Turn this off by executing M109 without F*
* Also, if the temperature is set to a value below mintemp, it will not be changed by autotemp.
* On an Ultimaker, some initial testing worked with M109 S215 B260 F1 in the start.gcode
*/
#define AUTOTEMP
#if ENABLED(AUTOTEMP)
#define AUTOTEMP_OLDWEIGHT 0.98
#endif
//Show Temperature ADC value
//The M105 command return, besides traditional information, the ADC value read from temperature sensors.
//#define SHOW_TEMP_ADC_VALUES
/**
* High Temperature Thermistor Support
*
* Thermistors able to support high temperature tend to have a hard time getting
* good readings at room and lower temperatures. This means HEATER_X_RAW_LO_TEMP
* will probably be caught when the heating element first turns on during the
* preheating process, which will trigger a min_temp_error as a safety measure
* and force stop everything.
* To circumvent this limitation, we allow for a preheat time (during which,
* min_temp_error won't be triggered) and add a min_temp buffer to handle
* aberrant readings.
*
* If you want to enable this feature for your hotend thermistor(s)
* uncomment and set values > 0 in the constants below
*/
// The number of consecutive low temperature errors that can occur
// before a min_temp_error is triggered. (Shouldn't be more than 10.)
//#define MAX_CONSECUTIVE_LOW_TEMPERATURE_ERROR_ALLOWED 0
// The number of milliseconds a hotend will preheat before starting to check
// the temperature. This value should NOT be set to the time it takes the
// hot end to reach the target temperature, but the time it takes to reach
// the minimum temperature your thermistor can read. The lower the better/safer.
// This shouldn't need to be more than 30 seconds (30000)
//#define MILLISECONDS_PREHEAT_TIME 0
// @section extruder
// extruder run-out prevention.
//if the machine is idle, and the temperature over MINTEMP, every couple of SECONDS some filament is extruded
//#define EXTRUDER_RUNOUT_PREVENT
#define EXTRUDER_RUNOUT_MINTEMP 180
#define EXTRUDER_RUNOUT_SECONDS 30
#define EXTRUDER_RUNOUT_ESTEPS 14 // mm filament
#define EXTRUDER_RUNOUT_SPEED 180 // extrusion speed
#define EXTRUDER_RUNOUT_EXTRUDE 100
// @section temperature
//These defines help to calibrate the AD595 sensor in case you get wrong temperature measurements.
//The measured temperature is defined as "actualTemp = (measuredTemp * TEMP_SENSOR_AD595_GAIN) + TEMP_SENSOR_AD595_OFFSET"
#define TEMP_SENSOR_AD595_OFFSET 0.0
#define TEMP_SENSOR_AD595_GAIN 1.0
//This is for controlling a fan to cool down the stepper drivers
//it will turn on when any driver is enabled
//and turn off after the set amount of seconds from last driver being disabled again
#define CONTROLLERFAN_PIN -1 //Pin used for the fan to cool controller (-1 to disable)
#define CONTROLLERFAN_SECS 60 //How many seconds, after all motors were disabled, the fan should run
#define CONTROLLERFAN_SPEED 255 // == full speed
// When first starting the main fan, run it at full speed for the
// given number of milliseconds. This gets the fan spinning reliably
// before setting a PWM value. (Does not work with software PWM for fan on Sanguinololu)
//#define FAN_KICKSTART_TIME 100
// This defines the minimal speed for the main fan, run in PWM mode
// to enable uncomment and set minimal PWM speed for reliable running (1-255)
// if fan speed is [1 - (FAN_MIN_PWM-1)] it is set to FAN_MIN_PWM
//#define FAN_MIN_PWM 50
// @section extruder
// Extruder cooling fans
// Configure fan pin outputs to automatically turn on/off when the associated
// extruder temperature is above/below EXTRUDER_AUTO_FAN_TEMPERATURE.
// Multiple extruders can be assigned to the same pin in which case
// the fan will turn on when any selected extruder is above the threshold.
#define EXTRUDER_0_AUTO_FAN_PIN -1
#define EXTRUDER_1_AUTO_FAN_PIN -1
#define EXTRUDER_2_AUTO_FAN_PIN -1
#define EXTRUDER_3_AUTO_FAN_PIN -1
#define EXTRUDER_AUTO_FAN_TEMPERATURE 50
#define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed
//===========================================================================
//============================ Mechanical Settings ==========================
//===========================================================================
// @section homing
// If you want endstops to stay on (by default) even when not homing
// enable this option. Override at any time with M120, M121.
//#define ENDSTOPS_ALWAYS_ON_DEFAULT
// @section extras
//#define Z_LATE_ENABLE // Enable Z the last moment. Needed if your Z driver overheats.
// Dual X Steppers
// Uncomment this option to drive two X axis motors.
// The next unused E driver will be assigned to the second X stepper.
//#define X_DUAL_STEPPER_DRIVERS
#if ENABLED(X_DUAL_STEPPER_DRIVERS)
// Set true if the two X motors need to rotate in opposite directions
#define INVERT_X2_VS_X_DIR true
#endif
// Dual Y Steppers
// Uncomment this option to drive two Y axis motors.
// The next unused E driver will be assigned to the second Y stepper.
//#define Y_DUAL_STEPPER_DRIVERS
#if ENABLED(Y_DUAL_STEPPER_DRIVERS)
// Set true if the two Y motors need to rotate in opposite directions
#define INVERT_Y2_VS_Y_DIR true
#endif
// A single Z stepper driver is usually used to drive 2 stepper motors.
// Uncomment this option to use a separate stepper driver for each Z axis motor.
// The next unused E driver will be assigned to the second Z stepper.
//#define Z_DUAL_STEPPER_DRIVERS
#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
// Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
// That way the machine is capable to align the bed during home, since both Z steppers are homed.
// There is also an implementation of M666 (software endstops adjustment) to this feature.
// After Z homing, this adjustment is applied to just one of the steppers in order to align the bed.
// One just need to home the Z axis and measure the distance difference between both Z axis and apply the math: Z adjust = Z - Z2.
// If the Z stepper axis is closer to the bed, the measure Z > Z2 (yes, it is.. think about it) and the Z adjust would be positive.
// Play a little bit with small adjustments (0.5mm) and check the behaviour.
// The M119 (endstops report) will start reporting the Z2 Endstop as well.
//#define Z_DUAL_ENDSTOPS
#if ENABLED(Z_DUAL_ENDSTOPS)
#define Z2_USE_ENDSTOP _XMAX_
#endif
#endif // Z_DUAL_STEPPER_DRIVERS
// Enable this for dual x-carriage printers.
// A dual x-carriage design has the advantage that the inactive extruder can be parked which
// prevents hot-end ooze contaminating the print. It also reduces the weight of each x-carriage
// allowing faster printing speeds. Connect your X2 stepper to the first unused E plug.
//#define DUAL_X_CARRIAGE
#if ENABLED(DUAL_X_CARRIAGE)
// Configuration for second X-carriage
// Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
// the second x-carriage always homes to the maximum endstop.
#define X2_MIN_POS 80 // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
#define X2_MAX_POS 353 // set maximum to the distance between toolheads when both heads are homed
#define X2_HOME_DIR 1 // the second X-carriage always homes to the maximum endstop position
#define X2_HOME_POS X2_MAX_POS // default home position is the maximum carriage position
// However: In this mode the HOTEND_OFFSET_X value for the second extruder provides a software
// override for X2_HOME_POS. This also allow recalibration of the distance between the two endstops
// without modifying the firmware (through the "M218 T1 X???" command).
// Remember: you should set the second extruder x-offset to 0 in your slicer.
// There are a few selectable movement modes for dual x-carriages using M605 S<mode>
// Mode 0: Full control. The slicer has full control over both x-carriages and can achieve optimal travel results
// as long as it supports dual x-carriages. (M605 S0)
// Mode 1: Auto-park mode. The firmware will automatically park and unpark the x-carriages on tool changes so
// that additional slicer support is not required. (M605 S1)
// Mode 2: Duplication mode. The firmware will transparently make the second x-carriage and extruder copy all
// actions of the first x-carriage. This allows the printer to print 2 arbitrary items at
// once. (2nd extruder x offset and temp offset are set using: M605 S2 [Xnnn] [Rmmm])
// This is the default power-up mode which can be later using M605.
#define DEFAULT_DUAL_X_CARRIAGE_MODE 0
// Default settings in "Auto-park Mode"
#define TOOLCHANGE_PARK_ZLIFT 0.2 // the distance to raise Z axis when parking an extruder
#define TOOLCHANGE_UNPARK_ZLIFT 1 // the distance to raise Z axis when unparking an extruder
// Default x offset in duplication mode (typically set to half print bed width)
#define DEFAULT_DUPLICATION_X_OFFSET 100
#endif //DUAL_X_CARRIAGE
// @section homing
//homing hits the endstop, then retracts by this distance, before it tries to slowly bump again:
#define X_HOME_BUMP_MM 3
#define Y_HOME_BUMP_MM 3
#define Z_HOME_BUMP_MM 3
#define HOMING_BUMP_DIVISOR {2, 2, 4} // Re-Bump Speed Divisor (Divides the Homing Feedrate)
//#define QUICK_HOME //if this is defined, if both x and y are to be homed, a diagonal move will be performed initially.
// When G28 is called, this option will make Y home before X
//#define HOME_Y_BEFORE_X
// @section machine
#define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder
//#define DUAL_NOZZLE_DUPLICATION_MODE
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false
#define INVERT_Y_STEP_PIN false
#define INVERT_Z_STEP_PIN false
#define INVERT_E_STEP_PIN false
// Default stepper release if idle. Set to 0 to deactivate.
// Steppers will shut down DEFAULT_STEPPER_DEACTIVE_TIME seconds after the last move when DISABLE_INACTIVE_? is true.
// Time can be set by M18 and M84.
#define DEFAULT_STEPPER_DEACTIVE_TIME 240
#define DISABLE_INACTIVE_X true
#define DISABLE_INACTIVE_Y true
#define DISABLE_INACTIVE_Z true // set to false if the nozzle will fall down on your printed part when print has finished.
#define DISABLE_INACTIVE_E true
#define DEFAULT_MINIMUMFEEDRATE 0.0 // minimum feedrate
#define DEFAULT_MINTRAVELFEEDRATE 0.0
// @section lcd
#if ENABLED(ULTIPANEL)
#define MANUAL_FEEDRATE {50*60, 50*60, 10*60, 60} // Feedrates for manual moves along X, Y, Z, E from panel
#define ULTIPANEL_FEEDMULTIPLY // Comment to disable setting feedrate multiplier via encoder
#endif
// @section extras
// minimum time in microseconds that a movement needs to take if the buffer is emptied.
#define DEFAULT_MINSEGMENTTIME 20000
// If defined the movements slow down when the look ahead buffer is only half full
//#define SLOWDOWN
// Frequency limit
// See nophead's blog for more info
// Not working O
//#define XY_FREQUENCY_LIMIT 15
// Minimum planner junction speed. Sets the default minimum speed the planner plans for at the end
// of the buffer and all stops. This should not be much greater than zero and should only be changed
// if unwanted behavior is observed on a user's machine when running at very slow speeds.
#define MINIMUM_PLANNER_SPEED 0.05// (mm/sec)
// Microstep setting (Only functional when stepper driver microstep pins are connected to MCU.
#define MICROSTEP_MODES {16,16,16,16,16} // [1,2,4,8,16]
// Motor Current setting (Only functional when motor driver current ref pins are connected to a digital trimpot on supported boards)
#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
// Motor Current controlled via PWM (Overridable on supported boards with PWM-driven motor driver current)
//#define PWM_MOTOR_CURRENT {1300, 1300, 1250} // Values in milliamps
// uncomment to enable an I2C based DIGIPOT like on the Azteeg X3 Pro
//#define DIGIPOT_I2C
// Number of channels available for I2C digipot, For Azteeg X3 Pro we have 8
#define DIGIPOT_I2C_NUM_CHANNELS 8
// actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
#define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0}
//===========================================================================
//=============================Additional Features===========================
//===========================================================================
#define ENCODER_RATE_MULTIPLIER // If defined, certain menu edit operations automatically multiply the steps when the encoder is moved quickly
#define ENCODER_10X_STEPS_PER_SEC 75 // If the encoder steps per sec exceeds this value, multiply steps moved x10 to quickly advance the value
#define ENCODER_100X_STEPS_PER_SEC 160 // If the encoder steps per sec exceeds this value, multiply steps moved x100 to really quickly advance the value
//#define CHDK 4 //Pin for triggering CHDK to take a picture see how to use it here http://captain-slow.dk/2014/03/09/3d-printing-timelapses/
#define CHDK_DELAY 50 //How long in ms the pin should stay HIGH before going LOW again
// @section lcd
// Include a page of printer information in the LCD Main Menu
//#define LCD_INFO_MENU
#if ENABLED(SDSUPPORT)
// Some RAMPS and other boards don't detect when an SD card is inserted. You can work
// around this by connecting a push button or single throw switch to the pin defined
// as SD_DETECT_PIN in your board's pins definitions.
// This setting should be disabled unless you are using a push button, pulling the pin to ground.
// Note: This is always disabled for ULTIPANEL (except ELB_FULL_GRAPHIC_CONTROLLER).
#define SD_DETECT_INVERTED
#define SD_FINISHED_STEPPERRELEASE true //if sd support and the file is finished: disable steppers?
#define SD_FINISHED_RELEASECOMMAND "M84 X Y Z E" // You might want to keep the z enabled so your bed stays in place.
#define SDCARD_RATHERRECENTFIRST //reverse file order of sd card menu display. Its sorted practically after the file system block order.
// if a file is deleted, it frees a block. hence, the order is not purely chronological. To still have auto0.g accessible, there is again the option to do that.
// using:
//#define MENU_ADDAUTOSTART
// Show a progress bar on HD44780 LCDs for SD printing
//#define LCD_PROGRESS_BAR
#if ENABLED(LCD_PROGRESS_BAR)
// Amount of time (ms) to show the bar
#define PROGRESS_BAR_BAR_TIME 2000
// Amount of time (ms) to show the status message
#define PROGRESS_BAR_MSG_TIME 3000
// Amount of time (ms) to retain the status message (0=forever)
#define PROGRESS_MSG_EXPIRE 0
// Enable this to show messages for MSG_TIME then hide them
//#define PROGRESS_MSG_ONCE
#endif
// This allows hosts to request long names for files and folders with M33
//#define LONG_FILENAME_HOST_SUPPORT
// This option allows you to abort SD printing when any endstop is triggered.
// This feature must be enabled with "M540 S1" or from the LCD menu.
// To have any effect, endstops must be enabled during SD printing.
//#define ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED
#endif // SDSUPPORT
// for dogm lcd displays you can choose some additional fonts:
#if ENABLED(DOGLCD)
// save 3120 bytes of PROGMEM by commenting out #define USE_BIG_EDIT_FONT
// we don't have a big font for Cyrillic, Kana
//#define USE_BIG_EDIT_FONT
// If you have spare 2300Byte of progmem and want to use a
// smaller font on the Info-screen uncomment the next line.
//#define USE_SMALL_INFOFONT
#endif // DOGLCD
// @section safety
// The hardware watchdog should reset the microcontroller disabling all outputs,
// in case the firmware gets stuck and doesn't do temperature regulation.
#define USE_WATCHDOG
#if ENABLED(USE_WATCHDOG)
// If you have a watchdog reboot in an ArduinoMega2560 then the device will hang forever, as a watchdog reset will leave the watchdog on.
// The "WATCHDOG_RESET_MANUAL" goes around this by not using the hardware reset.
// However, THIS FEATURE IS UNSAFE!, as it will only work if interrupts are disabled. And the code could hang in an interrupt routine with interrupts disabled.
//#define WATCHDOG_RESET_MANUAL
#endif
// @section lcd
// Babystepping enables the user to control the axis in tiny amounts, independently from the normal printing process
// it can e.g. be used to change z-positions in the print startup phase in real-time
// does not respect endstops!
//#define BABYSTEPPING
#if ENABLED(BABYSTEPPING)
#define BABYSTEP_XY //not only z, but also XY in the menu. more clutter, more functions
//not implemented for deltabots!
#define BABYSTEP_INVERT_Z false //true for inverse movements in Z
#define BABYSTEP_MULTIPLICATOR 1 //faster movements
#endif
// @section extruder
// extruder advance constant (s2/mm3)
//
// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
//
// Hooke's law says: force = k * distance
// Bernoulli's principle says: v ^ 2 / 2 + g . h + pressure / density = constant
// so: v ^ 2 is proportional to number of steps we advance the extruder
#define ADVANCE
#if ENABLED(ADVANCE)
#define EXTRUDER_ADVANCE_K .0
#define D_FILAMENT 1.75
#endif
// Implementation of a linear pressure control
// Assumption: advance = k * (delta velocity)
// K=0 means advance disabled. A good value for a gregs wade extruder will be around K=75
//#define LIN_ADVANCE
#if ENABLED(LIN_ADVANCE)
#define LIN_ADVANCE_K 75
#endif
// @section leveling
// Default mesh area is an area with an inset margin on the print area.
// Below are the macros that are used to define the borders for the mesh area,
// made available here for specialized needs, ie dual extruder setup.
#if ENABLED(MESH_BED_LEVELING)
#define MESH_MIN_X (X_MIN_POS + MESH_INSET)
#define MESH_MAX_X (X_MAX_POS - (MESH_INSET))
#define MESH_MIN_Y (Y_MIN_POS + MESH_INSET)
#define MESH_MAX_Y (Y_MAX_POS - (MESH_INSET))
#endif
// @section extras
// Arc interpretation settings:
#define ARC_SUPPORT // Disabling this saves ~2738 bytes
#define MM_PER_ARC_SEGMENT 1
#define N_ARC_CORRECTION 25
// Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
//#define BEZIER_CURVE_SUPPORT
const unsigned int dropsegments = 5; //everything with less than this number of steps will be ignored as move and joined with the next movement
// @section temperature
// Control heater 0 and heater 1 in parallel.
//#define HEATERS_PARALLEL
//===========================================================================
//================================= Buffers =================================
//===========================================================================
// @section hidden
// The number of linear motions that can be in the plan at any give time.
// THE BLOCK_BUFFER_SIZE NEEDS TO BE A POWER OF 2, i.g. 8,16,32 because shifts and ors are used to do the ring-buffering.
#if ENABLED(SDSUPPORT)
#define BLOCK_BUFFER_SIZE 16 // SD,LCD,Buttons take more memory, block buffer needs to be smaller
#else
#define BLOCK_BUFFER_SIZE 16 // maximize block buffer
#endif
// @section serial
// The ASCII buffer for serial input
#define MAX_CMD_SIZE 96
#define BUFSIZE 4
// Transfer Buffer Size
// To save 386 bytes of PROGMEM (and TX_BUFFER_SIZE+3 bytes of RAM) set to 0.
// To buffer a simple "ok" you need 4 bytes.
// For ADVANCED_OK (M105) you need 32 bytes.
// For debug-echo: 128 bytes for the optimal speed.
// Other output doesn't need to be that speedy.
// :[0,2,4,8,16,32,64,128,256]
#define TX_BUFFER_SIZE 0
// Enable an emergency-command parser to intercept certain commands as they
// enter the serial receive buffer, so they cannot be blocked.
// Currently handles M108, M112, M410
// Does not work on boards using AT90USB (USBCON) processors!
//#define EMERGENCY_PARSER
// Bad Serial-connections can miss a received command by sending an 'ok'
// Therefore some clients abort after 30 seconds in a timeout.
// Some other clients start sending commands while receiving a 'wait'.
// This "wait" is only sent when the buffer is empty. 1 second is a good value here.
//#define NO_TIMEOUTS 1000 // Milliseconds
// Some clients will have this feature soon. This could make the NO_TIMEOUTS unnecessary.
//#define ADVANCED_OK
// @section fwretract
// Firmware based and LCD controlled retract
// M207 and M208 can be used to define parameters for the retraction.
// The retraction can be called by the slicer using G10 and G11
// until then, intended retractions can be detected by moves that only extrude and the direction.
// the moves are than replaced by the firmware controlled ones.
//#define FWRETRACT //ONLY PARTIALLY TESTED
#if ENABLED(FWRETRACT)
#define MIN_RETRACT 0.1 //minimum extruded mm to accept a automatic gcode retraction attempt
#define RETRACT_LENGTH 3 //default retract length (positive mm)
#define RETRACT_LENGTH_SWAP 13 //default swap retract length (positive mm), for extruder change
#define RETRACT_FEEDRATE 35 //default feedrate for retracting (mm/s)
#define RETRACT_ZLIFT 0 //default retract Z-lift
#define RETRACT_RECOVER_LENGTH 0 //default additional recover length (mm, added to retract length when recovering)
#define RETRACT_RECOVER_LENGTH_SWAP 0 //default additional swap recover length (mm, added to retract length when recovering from extruder change)
#define RETRACT_RECOVER_FEEDRATE 8 //default feedrate for recovering from retraction (mm/s)
#endif
// Add support for experimental filament exchange support M600; requires display
#if ENABLED(ULTIPANEL)
// #define FILAMENT_CHANGE_FEATURE // Enable filament exchange menu and M600 g-code (used for runout sensor too)
#if ENABLED(FILAMENT_CHANGE_FEATURE)
#define FILAMENT_CHANGE_X_POS 3 // X position of hotend
#define FILAMENT_CHANGE_Y_POS 3 // Y position of hotend
#define FILAMENT_CHANGE_Z_ADD 10 // Z addition of hotend (lift)
#define FILAMENT_CHANGE_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
#define FILAMENT_CHANGE_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
#define FILAMENT_CHANGE_RETRACT_LENGTH 2 // Initial retract in mm
// It is a short retract used immediately after print interrupt before move to filament exchange position
#define FILAMENT_CHANGE_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
#define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm
// Longer length for bowden printers to unload filament from whole bowden tube,
// shorter lenght for printers without bowden to unload filament from extruder only,
// 0 to disable unloading for manual unloading
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast
#define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm
// Longer length for bowden printers to fast load filament into whole bowden tube over the hotend,
// Short or zero length for printers without bowden where loading is not used
#define FILAMENT_CHANGE_LOAD_FEEDRATE 10 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast
#define FILAMENT_CHANGE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is load over the hotend,
// 0 to disable for manual extrusion
// Filament can be extruded repeatedly from the filament exchange menu to fill the hotend,
// or until outcoming filament color is not clear for filament color change
#define FILAMENT_CHANGE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
#endif
#endif
/******************************************************************************\
* enable this section if you have TMC26X motor drivers.
* you need to import the TMC26XStepper library into the Arduino IDE for this
******************************************************************************/
// @section tmc
//#define HAVE_TMCDRIVER
#if ENABLED(HAVE_TMCDRIVER)
//#define X_IS_TMC
#define X_MAX_CURRENT 1000 //in mA
#define X_SENSE_RESISTOR 91 //in mOhms
#define X_MICROSTEPS 16 //number of microsteps
//#define X2_IS_TMC
#define X2_MAX_CURRENT 1000 //in mA
#define X2_SENSE_RESISTOR 91 //in mOhms
#define X2_MICROSTEPS 16 //number of microsteps
//#define Y_IS_TMC
#define Y_MAX_CURRENT 1000 //in mA
#define Y_SENSE_RESISTOR 91 //in mOhms
#define Y_MICROSTEPS 16 //number of microsteps
//#define Y2_IS_TMC
#define Y2_MAX_CURRENT 1000 //in mA
#define Y2_SENSE_RESISTOR 91 //in mOhms
#define Y2_MICROSTEPS 16 //number of microsteps
//#define Z_IS_TMC
#define Z_MAX_CURRENT 1000 //in mA
#define Z_SENSE_RESISTOR 91 //in mOhms
#define Z_MICROSTEPS 16 //number of microsteps
//#define Z2_IS_TMC
#define Z2_MAX_CURRENT 1000 //in mA
#define Z2_SENSE_RESISTOR 91 //in mOhms
#define Z2_MICROSTEPS 16 //number of microsteps
//#define E0_IS_TMC
#define E0_MAX_CURRENT 1000 //in mA
#define E0_SENSE_RESISTOR 91 //in mOhms
#define E0_MICROSTEPS 16 //number of microsteps
//#define E1_IS_TMC
#define E1_MAX_CURRENT 1000 //in mA
#define E1_SENSE_RESISTOR 91 //in mOhms
#define E1_MICROSTEPS 16 //number of microsteps
//#define E2_IS_TMC
#define E2_MAX_CURRENT 1000 //in mA
#define E2_SENSE_RESISTOR 91 //in mOhms
#define E2_MICROSTEPS 16 //number of microsteps
//#define E3_IS_TMC
#define E3_MAX_CURRENT 1000 //in mA
#define E3_SENSE_RESISTOR 91 //in mOhms
#define E3_MICROSTEPS 16 //number of microsteps
#endif
/******************************************************************************\
* enable this section if you have L6470 motor drivers.
* you need to import the L6470 library into the Arduino IDE for this
******************************************************************************/
// @section l6470
//#define HAVE_L6470DRIVER
#if ENABLED(HAVE_L6470DRIVER)
//#define X_IS_L6470
#define X_MICROSTEPS 16 //number of microsteps
#define X_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define X_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define X_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define X2_IS_L6470
#define X2_MICROSTEPS 16 //number of microsteps
#define X2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define X2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define X2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define Y_IS_L6470
#define Y_MICROSTEPS 16 //number of microsteps
#define Y_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define Y_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define Y_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define Y2_IS_L6470
#define Y2_MICROSTEPS 16 //number of microsteps
#define Y2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define Y2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define Y2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define Z_IS_L6470
#define Z_MICROSTEPS 16 //number of microsteps
#define Z_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define Z_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define Z_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define Z2_IS_L6470
#define Z2_MICROSTEPS 16 //number of microsteps
#define Z2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define Z2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define Z2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define E0_IS_L6470
#define E0_MICROSTEPS 16 //number of microsteps
#define E0_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define E0_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define E0_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define E1_IS_L6470
#define E1_MICROSTEPS 16 //number of microsteps
#define E1_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define E1_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define E1_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define E2_IS_L6470
#define E2_MICROSTEPS 16 //number of microsteps
#define E2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define E2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define E2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define E3_IS_L6470
#define E3_MICROSTEPS 16 //number of microsteps
#define E3_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define E3_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define E3_STALLCURRENT 1500 //current in mA where the driver will detect a stall
#endif
/**
* TWI/I2C BUS
*
* This feature is an EXPERIMENTAL feature so it shall not be used on production
* machines. Enabling this will allow you to send and receive I2C data from slave
* devices on the bus.
*
* ; Example #1
* ; This macro send the string "Marlin" to the slave device with address 0x63 (99)
* ; It uses multiple M155 commands with one B<base 10> arg
* M155 A99 ; Target slave address
* M155 B77 ; M
* M155 B97 ; a
* M155 B114 ; r
* M155 B108 ; l
* M155 B105 ; i
* M155 B110 ; n
* M155 S1 ; Send the current buffer
*
* ; Example #2
* ; Request 6 bytes from slave device with address 0x63 (99)
* M156 A99 B5
*
* ; Example #3
* ; Example serial output of a M156 request
* echo:i2c-reply: from:99 bytes:5 data:hello
*/
// @section i2cbus
//#define EXPERIMENTAL_I2CBUS
#endif // CONFIGURATION_ADV_H
File diff suppressed because it is too large Load Diff
@@ -1,807 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
* Configuration_adv.h
*
* Advanced settings.
* Only change these if you know exactly what you're doing.
* Some of these settings can damage your printer if improperly set!
*
* Basic settings can be found in Configuration.h
*
*/
#ifndef CONFIGURATION_ADV_H
#define CONFIGURATION_ADV_H
/**
*
* ***********************************
* ** ATTENTION TO ALL DEVELOPERS **
* ***********************************
*
* You must increment this version number for every significant change such as,
* but not limited to: ADD, DELETE RENAME OR REPURPOSE any directive/option.
*
* Note: Update also Version.h !
*/
#define CONFIGURATION_ADV_H_VERSION 010100
// @section temperature
//===========================================================================
//=============================Thermal Settings ============================
//===========================================================================
#if DISABLED(PIDTEMPBED)
#define BED_CHECK_INTERVAL 5000 // ms between checks in bang-bang control
#if ENABLED(BED_LIMIT_SWITCHING)
#define BED_HYSTERESIS 2 // Only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
#endif
#endif
/**
* Thermal Protection protects your printer from damage and fire if a
* thermistor falls out or temperature sensors fail in any way.
*
* The issue: If a thermistor falls out or a temperature sensor fails,
* Marlin can no longer sense the actual temperature. Since a disconnected
* thermistor reads as a low temperature, the firmware will keep the heater on.
*
* The solution: Once the temperature reaches the target, start observing.
* If the temperature stays too far below the target (hysteresis) for too long (period),
* the firmware will halt the machine as a safety precaution.
*
* If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
*/
#if ENABLED(THERMAL_PROTECTION_HOTENDS)
#define THERMAL_PROTECTION_PERIOD 40 // Seconds
#define THERMAL_PROTECTION_HYSTERESIS 4 // Degrees Celsius
/**
* Whenever an M104 or M109 increases the target temperature the firmware will wait for the
* WATCH_TEMP_PERIOD to expire, and if the temperature hasn't increased by WATCH_TEMP_INCREASE
* degrees, the machine is halted, requiring a hard reset. This test restarts with any M104/M109,
* but only if the current temperature is far enough below the target for a reliable test.
*
* If you get false positives for "Heating failed" increase WATCH_TEMP_PERIOD and/or decrease WATCH_TEMP_INCREASE
* WATCH_TEMP_INCREASE should not be below 2.
*/
#define WATCH_TEMP_PERIOD 20 // Seconds
#define WATCH_TEMP_INCREASE 2 // Degrees Celsius
#endif
/**
* Thermal Protection parameters for the bed are just as above for hotends.
*/
#if ENABLED(THERMAL_PROTECTION_BED)
#define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds
#define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius
/**
* Whenever an M140 or M190 increases the target temperature the firmware will wait for the
* WATCH_BED_TEMP_PERIOD to expire, and if the temperature hasn't increased by WATCH_BED_TEMP_INCREASE
* degrees, the machine is halted, requiring a hard reset. This test restarts with any M140/M190,
* but only if the current temperature is far enough below the target for a reliable test.
*
* If you get too many "Heating failed" errors, increase WATCH_BED_TEMP_PERIOD and/or decrease
* WATCH_BED_TEMP_INCREASE. (WATCH_BED_TEMP_INCREASE should not be below 2.)
*/
#define WATCH_BED_TEMP_PERIOD 60 // Seconds
#define WATCH_BED_TEMP_INCREASE 2 // Degrees Celsius
#endif
#if ENABLED(PIDTEMP)
// this adds an experimental additional term to the heating power, proportional to the extrusion speed.
// if Kc is chosen well, the additional required power due to increased melting should be compensated.
//#define PID_EXTRUSION_SCALING
#if ENABLED(PID_EXTRUSION_SCALING)
#define DEFAULT_Kc (100) //heating power=Kc*(e_speed)
#define LPQ_MAX_LEN 50
#endif
#endif
/**
* Automatic Temperature:
* The hotend target temperature is calculated by all the buffered lines of gcode.
* The maximum buffered steps/sec of the extruder motor is called "se".
* Start autotemp mode with M109 S<mintemp> B<maxtemp> F<factor>
* The target temperature is set to mintemp+factor*se[steps/sec] and is limited by
* mintemp and maxtemp. Turn this off by executing M109 without F*
* Also, if the temperature is set to a value below mintemp, it will not be changed by autotemp.
* On an Ultimaker, some initial testing worked with M109 S215 B260 F1 in the start.gcode
*/
#define AUTOTEMP
#if ENABLED(AUTOTEMP)
#define AUTOTEMP_OLDWEIGHT 0.98
#endif
//Show Temperature ADC value
//The M105 command return, besides traditional information, the ADC value read from temperature sensors.
//#define SHOW_TEMP_ADC_VALUES
/**
* High Temperature Thermistor Support
*
* Thermistors able to support high temperature tend to have a hard time getting
* good readings at room and lower temperatures. This means HEATER_X_RAW_LO_TEMP
* will probably be caught when the heating element first turns on during the
* preheating process, which will trigger a min_temp_error as a safety measure
* and force stop everything.
* To circumvent this limitation, we allow for a preheat time (during which,
* min_temp_error won't be triggered) and add a min_temp buffer to handle
* aberrant readings.
*
* If you want to enable this feature for your hotend thermistor(s)
* uncomment and set values > 0 in the constants below
*/
// The number of consecutive low temperature errors that can occur
// before a min_temp_error is triggered. (Shouldn't be more than 10.)
//#define MAX_CONSECUTIVE_LOW_TEMPERATURE_ERROR_ALLOWED 0
// The number of milliseconds a hotend will preheat before starting to check
// the temperature. This value should NOT be set to the time it takes the
// hot end to reach the target temperature, but the time it takes to reach
// the minimum temperature your thermistor can read. The lower the better/safer.
// This shouldn't need to be more than 30 seconds (30000)
//#define MILLISECONDS_PREHEAT_TIME 0
// @section extruder
// extruder run-out prevention.
//if the machine is idle, and the temperature over MINTEMP, every couple of SECONDS some filament is extruded
//#define EXTRUDER_RUNOUT_PREVENT
#define EXTRUDER_RUNOUT_MINTEMP 190
#define EXTRUDER_RUNOUT_SECONDS 30
#define EXTRUDER_RUNOUT_ESTEPS 14 // mm filament
#define EXTRUDER_RUNOUT_SPEED 1500 // extrusion speed
#define EXTRUDER_RUNOUT_EXTRUDE 100
// @section temperature
//These defines help to calibrate the AD595 sensor in case you get wrong temperature measurements.
//The measured temperature is defined as "actualTemp = (measuredTemp * TEMP_SENSOR_AD595_GAIN) + TEMP_SENSOR_AD595_OFFSET"
#define TEMP_SENSOR_AD595_OFFSET 0.0
#define TEMP_SENSOR_AD595_GAIN 1.0
//This is for controlling a fan to cool down the stepper drivers
//it will turn on when any driver is enabled
//and turn off after the set amount of seconds from last driver being disabled again
/**********************************************************
Fan Pins
Fan_0 8 - Extruder 0 fan
Fan_1 6 - Extruder 1 fan
Fan_2 2 - Case fan
***********************************************************/
#define CONTROLLERFAN_PIN 2 //Pin used for the fan to cool controller (-1 to disable)
#define CONTROLLERFAN_SECS 60 //How many seconds, after all motors were disabled, the fan should run
#define CONTROLLERFAN_SPEED 130 // 255 == full speed
// When first starting the main fan, run it at full speed for the
// given number of milliseconds. This gets the fan spinning reliably
// before setting a PWM value. (Does not work with software PWM for fan on Sanguinololu)
//#define FAN_KICKSTART_TIME 100
// This defines the minimal speed for the main fan, run in PWM mode
// to enable uncomment and set minimal PWM speed for reliable running (1-255)
// if fan speed is [1 - (FAN_MIN_PWM-1)] it is set to FAN_MIN_PWM
//#define FAN_MIN_PWM 50
// @section extruder
// Extruder cooling fans
// Configure fan pin outputs to automatically turn on/off when the associated
// extruder temperature is above/below EXTRUDER_AUTO_FAN_TEMPERATURE.
// Multiple extruders can be assigned to the same pin in which case
// the fan will turn on when any selected extruder is above the threshold.
#define EXTRUDER_0_AUTO_FAN_PIN -1
#define EXTRUDER_1_AUTO_FAN_PIN -1
#define EXTRUDER_2_AUTO_FAN_PIN -1
#define EXTRUDER_3_AUTO_FAN_PIN -1
#define EXTRUDER_AUTO_FAN_TEMPERATURE 50
#define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed
//===========================================================================
//============================ Mechanical Settings ==========================
//===========================================================================
// @section homing
// If you want endstops to stay on (by default) even when not homing
// enable this option. Override at any time with M120, M121.
//#define ENDSTOPS_ALWAYS_ON_DEFAULT
// @section extras
//#define Z_LATE_ENABLE // Enable Z the last moment. Needed if your Z driver overheats.
// Dual X Steppers
// Uncomment this option to drive two X axis motors.
// The next unused E driver will be assigned to the second X stepper.
//#define X_DUAL_STEPPER_DRIVERS
#if ENABLED(X_DUAL_STEPPER_DRIVERS)
// Set true if the two X motors need to rotate in opposite directions
#define INVERT_X2_VS_X_DIR true
#endif
// Dual Y Steppers
// Uncomment this option to drive two Y axis motors.
// The next unused E driver will be assigned to the second Y stepper.
//#define Y_DUAL_STEPPER_DRIVERS
#if ENABLED(Y_DUAL_STEPPER_DRIVERS)
// Set true if the two Y motors need to rotate in opposite directions
#define INVERT_Y2_VS_Y_DIR true
#endif
// A single Z stepper driver is usually used to drive 2 stepper motors.
// Uncomment this option to use a separate stepper driver for each Z axis motor.
// The next unused E driver will be assigned to the second Z stepper.
//#define Z_DUAL_STEPPER_DRIVERS
#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
// Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
// That way the machine is capable to align the bed during home, since both Z steppers are homed.
// There is also an implementation of M666 (software endstops adjustment) to this feature.
// After Z homing, this adjustment is applied to just one of the steppers in order to align the bed.
// One just need to home the Z axis and measure the distance difference between both Z axis and apply the math: Z adjust = Z - Z2.
// If the Z stepper axis is closer to the bed, the measure Z > Z2 (yes, it is.. think about it) and the Z adjust would be positive.
// Play a little bit with small adjustments (0.5mm) and check the behaviour.
// The M119 (endstops report) will start reporting the Z2 Endstop as well.
//#define Z_DUAL_ENDSTOPS
#if ENABLED(Z_DUAL_ENDSTOPS)
#define Z2_USE_ENDSTOP _XMAX_
#endif
#endif // Z_DUAL_STEPPER_DRIVERS
// Enable this for dual x-carriage printers.
// A dual x-carriage design has the advantage that the inactive extruder can be parked which
// prevents hot-end ooze contaminating the print. It also reduces the weight of each x-carriage
// allowing faster printing speeds. Connect your X2 stepper to the first unused E plug.
//#define DUAL_X_CARRIAGE
#if ENABLED(DUAL_X_CARRIAGE)
// Configuration for second X-carriage
// Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
// the second x-carriage always homes to the maximum endstop.
#define X2_MIN_POS 80 // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
#define X2_MAX_POS 353 // set maximum to the distance between toolheads when both heads are homed
#define X2_HOME_DIR 1 // the second X-carriage always homes to the maximum endstop position
#define X2_HOME_POS X2_MAX_POS // default home position is the maximum carriage position
// However: In this mode the HOTEND_OFFSET_X value for the second extruder provides a software
// override for X2_HOME_POS. This also allow recalibration of the distance between the two endstops
// without modifying the firmware (through the "M218 T1 X???" command).
// Remember: you should set the second extruder x-offset to 0 in your slicer.
// There are a few selectable movement modes for dual x-carriages using M605 S<mode>
// Mode 0: Full control. The slicer has full control over both x-carriages and can achieve optimal travel results
// as long as it supports dual x-carriages. (M605 S0)
// Mode 1: Auto-park mode. The firmware will automatically park and unpark the x-carriages on tool changes so
// that additional slicer support is not required. (M605 S1)
// Mode 2: Duplication mode. The firmware will transparently make the second x-carriage and extruder copy all
// actions of the first x-carriage. This allows the printer to print 2 arbitrary items at
// once. (2nd extruder x offset and temp offset are set using: M605 S2 [Xnnn] [Rmmm])
// This is the default power-up mode which can be later using M605.
#define DEFAULT_DUAL_X_CARRIAGE_MODE 0
// Default settings in "Auto-park Mode"
#define TOOLCHANGE_PARK_ZLIFT 0.2 // the distance to raise Z axis when parking an extruder
#define TOOLCHANGE_UNPARK_ZLIFT 1 // the distance to raise Z axis when unparking an extruder
// Default x offset in duplication mode (typically set to half print bed width)
#define DEFAULT_DUPLICATION_X_OFFSET 100
#endif //DUAL_X_CARRIAGE
// @section homing
//homing hits the endstop, then retracts by this distance, before it tries to slowly bump again:
#define X_HOME_BUMP_MM 5
#define Y_HOME_BUMP_MM 5
#define Z_HOME_BUMP_MM 4
#define HOMING_BUMP_DIVISOR {2, 2, 4} // Re-Bump Speed Divisor (Divides the Homing Feedrate)
#define QUICK_HOME //if this is defined, if both x and y are to be homed, a diagonal move will be performed initially.
// When G28 is called, this option will make Y home before X
//#define HOME_Y_BEFORE_X
// @section machine
#define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder
//#define DUAL_NOZZLE_DUPLICATION_MODE
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false
#define INVERT_Y_STEP_PIN false
#define INVERT_Z_STEP_PIN false
#define INVERT_E_STEP_PIN false
// Default stepper release if idle. Set to 0 to deactivate.
// Steppers will shut down DEFAULT_STEPPER_DEACTIVE_TIME seconds after the last move when DISABLE_INACTIVE_? is true.
// Time can be set by M18 and M84.
#define DEFAULT_STEPPER_DEACTIVE_TIME 60
#define DISABLE_INACTIVE_X true
#define DISABLE_INACTIVE_Y true
#define DISABLE_INACTIVE_Z true // set to false if the nozzle will fall down on your printed part when print has finished.
#define DISABLE_INACTIVE_E true
#define DEFAULT_MINIMUMFEEDRATE 0.0 // minimum feedrate
#define DEFAULT_MINTRAVELFEEDRATE 0.0
// @section lcd
#if ENABLED(ULTIPANEL)
#define MANUAL_FEEDRATE {50*60, 50*60, 4*60, 60} // Feedrates for manual moves along X, Y, Z, E from panel
#define ULTIPANEL_FEEDMULTIPLY // Comment to disable setting feedrate multiplier via encoder
#endif
// @section extras
// minimum time in microseconds that a movement needs to take if the buffer is emptied.
#define DEFAULT_MINSEGMENTTIME 20000
// If defined the movements slow down when the look ahead buffer is only half full
#define SLOWDOWN
// Frequency limit
// See nophead's blog for more info
// Not working O
//#define XY_FREQUENCY_LIMIT 15
// Minimum planner junction speed. Sets the default minimum speed the planner plans for at the end
// of the buffer and all stops. This should not be much greater than zero and should only be changed
// if unwanted behavior is observed on a user's machine when running at very slow speeds.
#define MINIMUM_PLANNER_SPEED 0.05// (mm/sec)
// Microstep setting (Only functional when stepper driver microstep pins are connected to MCU.
#define MICROSTEP_MODES {16,16,4,16,16} // [1,2,4,8,16]
// Motor Current setting (Only functional when motor driver current ref pins are connected to a digital trimpot on supported boards)
#define DIGIPOT_MOTOR_CURRENT {175,175,240,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
// Motor Current controlled via PWM (Overridable on supported boards with PWM-driven motor driver current)
//#define PWM_MOTOR_CURRENT {1300, 1300, 1250} // Values in milliamps
// uncomment to enable an I2C based DIGIPOT like on the Azteeg X3 Pro
//#define DIGIPOT_I2C
// Number of channels available for I2C digipot, For Azteeg X3 Pro we have 8
#define DIGIPOT_I2C_NUM_CHANNELS 8
// actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
#define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0}
//===========================================================================
//=============================Additional Features===========================
//===========================================================================
#define ENCODER_RATE_MULTIPLIER // If defined, certain menu edit operations automatically multiply the steps when the encoder is moved quickly
#define ENCODER_10X_STEPS_PER_SEC 75 // If the encoder steps per sec exceeds this value, multiply steps moved x10 to quickly advance the value
#define ENCODER_100X_STEPS_PER_SEC 160 // If the encoder steps per sec exceeds this value, multiply steps moved x100 to really quickly advance the value
//#define CHDK 4 //Pin for triggering CHDK to take a picture see how to use it here http://captain-slow.dk/2014/03/09/3d-printing-timelapses/
#define CHDK_DELAY 50 //How long in ms the pin should stay HIGH before going LOW again
// @section lcd
// Include a page of printer information in the LCD Main Menu
//#define LCD_INFO_MENU
#if ENABLED(SDSUPPORT)
// Some RAMPS and other boards don't detect when an SD card is inserted. You can work
// around this by connecting a push button or single throw switch to the pin defined
// as SD_DETECT_PIN in your board's pins definitions.
// This setting should be disabled unless you are using a push button, pulling the pin to ground.
// Note: This is always disabled for ULTIPANEL (except ELB_FULL_GRAPHIC_CONTROLLER).
#define SD_DETECT_INVERTED
#define SD_FINISHED_STEPPERRELEASE true //if sd support and the file is finished: disable steppers?
#define SD_FINISHED_RELEASECOMMAND "M84 X Y Z E" // You might want to keep the z enabled so your bed stays in place.
#define SDCARD_RATHERRECENTFIRST //reverse file order of sd card menu display. Its sorted practically after the file system block order.
// if a file is deleted, it frees a block. hence, the order is not purely chronological. To still have auto0.g accessible, there is again the option to do that.
// using:
//#define MENU_ADDAUTOSTART
// Show a progress bar on HD44780 LCDs for SD printing
//#define LCD_PROGRESS_BAR
#if ENABLED(LCD_PROGRESS_BAR)
// Amount of time (ms) to show the bar
#define PROGRESS_BAR_BAR_TIME 2000
// Amount of time (ms) to show the status message
#define PROGRESS_BAR_MSG_TIME 3000
// Amount of time (ms) to retain the status message (0=forever)
#define PROGRESS_MSG_EXPIRE 0
// Enable this to show messages for MSG_TIME then hide them
//#define PROGRESS_MSG_ONCE
#endif
// This allows hosts to request long names for files and folders with M33
//#define LONG_FILENAME_HOST_SUPPORT
// This option allows you to abort SD printing when any endstop is triggered.
// This feature must be enabled with "M540 S1" or from the LCD menu.
// To have any effect, endstops must be enabled during SD printing.
//#define ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED
#endif // SDSUPPORT
// for dogm lcd displays you can choose some additional fonts:
#if ENABLED(DOGLCD)
// save 3120 bytes of PROGMEM by commenting out #define USE_BIG_EDIT_FONT
// we don't have a big font for Cyrillic, Kana
//#define USE_BIG_EDIT_FONT
// If you have spare 2300Byte of progmem and want to use a
// smaller font on the Info-screen uncomment the next line.
//#define USE_SMALL_INFOFONT
#endif // DOGLCD
// @section safety
// The hardware watchdog should reset the microcontroller disabling all outputs,
// in case the firmware gets stuck and doesn't do temperature regulation.
#define USE_WATCHDOG
#if ENABLED(USE_WATCHDOG)
// If you have a watchdog reboot in an ArduinoMega2560 then the device will hang forever, as a watchdog reset will leave the watchdog on.
// The "WATCHDOG_RESET_MANUAL" goes around this by not using the hardware reset.
// However, THIS FEATURE IS UNSAFE!, as it will only work if interrupts are disabled. And the code could hang in an interrupt routine with interrupts disabled.
//#define WATCHDOG_RESET_MANUAL
#endif
// @section lcd
// Babystepping enables the user to control the axis in tiny amounts, independently from the normal printing process
// it can e.g. be used to change z-positions in the print startup phase in real-time
// does not respect endstops!
//#define BABYSTEPPING
#if ENABLED(BABYSTEPPING)
#define BABYSTEP_XY //not only z, but also XY in the menu. more clutter, more functions
//not implemented for deltabots!
#define BABYSTEP_INVERT_Z false //true for inverse movements in Z
#define BABYSTEP_MULTIPLICATOR 1 //faster movements
#endif
// @section extruder
// extruder advance constant (s2/mm3)
//
// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
//
// Hooke's law says: force = k * distance
// Bernoulli's principle says: v ^ 2 / 2 + g . h + pressure / density = constant
// so: v ^ 2 is proportional to number of steps we advance the extruder
//#define ADVANCE
#if ENABLED(ADVANCE)
#define EXTRUDER_ADVANCE_K .0
#define D_FILAMENT 2.85
#endif
// Implementation of a linear pressure control
// Assumption: advance = k * (delta velocity)
// K=0 means advance disabled. A good value for a gregs wade extruder will be around K=75
//#define LIN_ADVANCE
#if ENABLED(LIN_ADVANCE)
#define LIN_ADVANCE_K 75
#endif
// @section leveling
// Default mesh area is an area with an inset margin on the print area.
// Below are the macros that are used to define the borders for the mesh area,
// made available here for specialized needs, ie dual extruder setup.
#if ENABLED(MESH_BED_LEVELING)
#define MESH_MIN_X (X_MIN_POS + MESH_INSET)
#define MESH_MAX_X (X_MAX_POS - (MESH_INSET))
#define MESH_MIN_Y (Y_MIN_POS + MESH_INSET)
#define MESH_MAX_Y (Y_MAX_POS - (MESH_INSET))
#endif
// @section extras
// Arc interpretation settings:
#define ARC_SUPPORT // Disabling this saves ~2738 bytes
#define MM_PER_ARC_SEGMENT 1
#define N_ARC_CORRECTION 25
// Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
//#define BEZIER_CURVE_SUPPORT
const unsigned int dropsegments = 5; //everything with less than this number of steps will be ignored as move and joined with the next movement
// @section temperature
// Control heater 0 and heater 1 in parallel.
//#define HEATERS_PARALLEL
//===========================================================================
//================================= Buffers =================================
//===========================================================================
// @section hidden
// The number of linear motions that can be in the plan at any give time.
// THE BLOCK_BUFFER_SIZE NEEDS TO BE A POWER OF 2, i.g. 8,16,32 because shifts and ors are used to do the ring-buffering.
#if ENABLED(SDSUPPORT)
#define BLOCK_BUFFER_SIZE 16 // SD,LCD,Buttons take more memory, block buffer needs to be smaller
#else
#define BLOCK_BUFFER_SIZE 16 // maximize block buffer
#endif
// @section serial
// The ASCII buffer for serial input
#define MAX_CMD_SIZE 96
#define BUFSIZE 4
// Transfer Buffer Size
// To save 386 bytes of PROGMEM (and TX_BUFFER_SIZE+3 bytes of RAM) set to 0.
// To buffer a simple "ok" you need 4 bytes.
// For ADVANCED_OK (M105) you need 32 bytes.
// For debug-echo: 128 bytes for the optimal speed.
// Other output doesn't need to be that speedy.
// :[0,2,4,8,16,32,64,128,256]
#define TX_BUFFER_SIZE 0
// Enable an emergency-command parser to intercept certain commands as they
// enter the serial receive buffer, so they cannot be blocked.
// Currently handles M108, M112, M410
// Does not work on boards using AT90USB (USBCON) processors!
//#define EMERGENCY_PARSER
// Bad Serial-connections can miss a received command by sending an 'ok'
// Therefore some clients abort after 30 seconds in a timeout.
// Some other clients start sending commands while receiving a 'wait'.
// This "wait" is only sent when the buffer is empty. 1 second is a good value here.
//#define NO_TIMEOUTS 1000 // Milliseconds
// Some clients will have this feature soon. This could make the NO_TIMEOUTS unnecessary.
//#define ADVANCED_OK
// @section fwretract
// Firmware based and LCD controlled retract
// M207 and M208 can be used to define parameters for the retraction.
// The retraction can be called by the slicer using G10 and G11
// until then, intended retractions can be detected by moves that only extrude and the direction.
// the moves are than replaced by the firmware controlled ones.
//#define FWRETRACT //ONLY PARTIALLY TESTED
#if ENABLED(FWRETRACT)
#define MIN_RETRACT 0.1 //minimum extruded mm to accept a automatic gcode retraction attempt
#define RETRACT_LENGTH 3 //default retract length (positive mm)
#define RETRACT_LENGTH_SWAP 13 //default swap retract length (positive mm), for extruder change
#define RETRACT_FEEDRATE 45 //default feedrate for retracting (mm/s)
#define RETRACT_ZLIFT 0 //default retract Z-lift
#define RETRACT_RECOVER_LENGTH 0 //default additional recover length (mm, added to retract length when recovering)
#define RETRACT_RECOVER_LENGTH_SWAP 0 //default additional swap recover length (mm, added to retract length when recovering from extruder change)
#define RETRACT_RECOVER_FEEDRATE 8 //default feedrate for recovering from retraction (mm/s)
#endif
// Add support for experimental filament exchange support M600; requires display
#if ENABLED(ULTIPANEL)
#define FILAMENT_CHANGE_FEATURE // Enable filament exchange menu and M600 g-code (used for runout sensor too)
#if ENABLED(FILAMENT_CHANGE_FEATURE)
#define FILAMENT_CHANGE_X_POS 3 // X position of hotend
#define FILAMENT_CHANGE_Y_POS 3 // Y position of hotend
#define FILAMENT_CHANGE_Z_ADD 10 // Z addition of hotend (lift)
#define FILAMENT_CHANGE_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
#define FILAMENT_CHANGE_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
#define FILAMENT_CHANGE_RETRACT_LENGTH 2 // Initial retract in mm
// It is a short retract used immediately after print interrupt before move to filament exchange position
#define FILAMENT_CHANGE_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
#define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm
// Longer length for bowden printers to unload filament from whole bowden tube,
// shorter lenght for printers without bowden to unload filament from extruder only,
// 0 to disable unloading for manual unloading
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast
#define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm
// Longer length for bowden printers to fast load filament into whole bowden tube over the hotend,
// Short or zero length for printers without bowden where loading is not used
#define FILAMENT_CHANGE_LOAD_FEEDRATE 10 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast
#define FILAMENT_CHANGE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is load over the hotend,
// 0 to disable for manual extrusion
// Filament can be extruded repeatedly from the filament exchange menu to fill the hotend,
// or until outcoming filament color is not clear for filament color change
#define FILAMENT_CHANGE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
#endif
#endif
/******************************************************************************\
* enable this section if you have TMC26X motor drivers.
* you need to import the TMC26XStepper library into the Arduino IDE for this
******************************************************************************/
// @section tmc
//#define HAVE_TMCDRIVER
#if ENABLED(HAVE_TMCDRIVER)
//#define X_IS_TMC
#define X_MAX_CURRENT 1000 //in mA
#define X_SENSE_RESISTOR 91 //in mOhms
#define X_MICROSTEPS 16 //number of microsteps
//#define X2_IS_TMC
#define X2_MAX_CURRENT 1000 //in mA
#define X2_SENSE_RESISTOR 91 //in mOhms
#define X2_MICROSTEPS 16 //number of microsteps
//#define Y_IS_TMC
#define Y_MAX_CURRENT 1000 //in mA
#define Y_SENSE_RESISTOR 91 //in mOhms
#define Y_MICROSTEPS 16 //number of microsteps
//#define Y2_IS_TMC
#define Y2_MAX_CURRENT 1000 //in mA
#define Y2_SENSE_RESISTOR 91 //in mOhms
#define Y2_MICROSTEPS 16 //number of microsteps
//#define Z_IS_TMC
#define Z_MAX_CURRENT 1000 //in mA
#define Z_SENSE_RESISTOR 91 //in mOhms
#define Z_MICROSTEPS 16 //number of microsteps
//#define Z2_IS_TMC
#define Z2_MAX_CURRENT 1000 //in mA
#define Z2_SENSE_RESISTOR 91 //in mOhms
#define Z2_MICROSTEPS 16 //number of microsteps
//#define E0_IS_TMC
#define E0_MAX_CURRENT 1000 //in mA
#define E0_SENSE_RESISTOR 91 //in mOhms
#define E0_MICROSTEPS 16 //number of microsteps
//#define E1_IS_TMC
#define E1_MAX_CURRENT 1000 //in mA
#define E1_SENSE_RESISTOR 91 //in mOhms
#define E1_MICROSTEPS 16 //number of microsteps
//#define E2_IS_TMC
#define E2_MAX_CURRENT 1000 //in mA
#define E2_SENSE_RESISTOR 91 //in mOhms
#define E2_MICROSTEPS 16 //number of microsteps
//#define E3_IS_TMC
#define E3_MAX_CURRENT 1000 //in mA
#define E3_SENSE_RESISTOR 91 //in mOhms
#define E3_MICROSTEPS 16 //number of microsteps
#endif
/******************************************************************************\
* enable this section if you have L6470 motor drivers.
* you need to import the L6470 library into the Arduino IDE for this
******************************************************************************/
// @section l6470
//#define HAVE_L6470DRIVER
#if ENABLED(HAVE_L6470DRIVER)
//#define X_IS_L6470
#define X_MICROSTEPS 16 //number of microsteps
#define X_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define X_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define X_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define X2_IS_L6470
#define X2_MICROSTEPS 16 //number of microsteps
#define X2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define X2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define X2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define Y_IS_L6470
#define Y_MICROSTEPS 16 //number of microsteps
#define Y_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define Y_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define Y_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define Y2_IS_L6470
#define Y2_MICROSTEPS 16 //number of microsteps
#define Y2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define Y2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define Y2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define Z_IS_L6470
#define Z_MICROSTEPS 16 //number of microsteps
#define Z_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define Z_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define Z_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define Z2_IS_L6470
#define Z2_MICROSTEPS 16 //number of microsteps
#define Z2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define Z2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define Z2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define E0_IS_L6470
#define E0_MICROSTEPS 16 //number of microsteps
#define E0_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define E0_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define E0_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define E1_IS_L6470
#define E1_MICROSTEPS 16 //number of microsteps
#define E1_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define E1_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define E1_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define E2_IS_L6470
#define E2_MICROSTEPS 16 //number of microsteps
#define E2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define E2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define E2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define E3_IS_L6470
#define E3_MICROSTEPS 16 //number of microsteps
#define E3_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define E3_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define E3_STALLCURRENT 1500 //current in mA where the driver will detect a stall
#endif
/**
* TWI/I2C BUS
*
* This feature is an EXPERIMENTAL feature so it shall not be used on production
* machines. Enabling this will allow you to send and receive I2C data from slave
* devices on the bus.
*
* ; Example #1
* ; This macro send the string "Marlin" to the slave device with address 0x63 (99)
* ; It uses multiple M155 commands with one B<base 10> arg
* M155 A99 ; Target slave address
* M155 B77 ; M
* M155 B97 ; a
* M155 B114 ; r
* M155 B108 ; l
* M155 B105 ; i
* M155 B110 ; n
* M155 S1 ; Send the current buffer
*
* ; Example #2
* ; Request 6 bytes from slave device with address 0x63 (99)
* M156 A99 B5
*
* ; Example #3
* ; Example serial output of a M156 request
* echo:i2c-reply: from:99 bytes:5 data:hello
*/
// @section i2cbus
//#define EXPERIMENTAL_I2CBUS
#endif // CONFIGURATION_ADV_H
File diff suppressed because it is too large Load Diff
@@ -1,799 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
* Configuration_adv.h
*
* Advanced settings.
* Only change these if you know exactly what you're doing.
* Some of these settings can damage your printer if improperly set!
*
* Basic settings can be found in Configuration.h
*
*/
#ifndef CONFIGURATION_ADV_H
#define CONFIGURATION_ADV_H
/**
*
* ***********************************
* ** ATTENTION TO ALL DEVELOPERS **
* ***********************************
*
* You must increment this version number for every significant change such as,
* but not limited to: ADD, DELETE RENAME OR REPURPOSE any directive/option.
*
* Note: Update also Version.h !
*/
#define CONFIGURATION_ADV_H_VERSION 010100
// @section temperature
//===========================================================================
//=============================Thermal Settings ============================
//===========================================================================
#if DISABLED(PIDTEMPBED)
#define BED_CHECK_INTERVAL 5000 // ms between checks in bang-bang control
#if ENABLED(BED_LIMIT_SWITCHING)
#define BED_HYSTERESIS 2 // Only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
#endif
#endif
/**
* Thermal Protection protects your printer from damage and fire if a
* thermistor falls out or temperature sensors fail in any way.
*
* The issue: If a thermistor falls out or a temperature sensor fails,
* Marlin can no longer sense the actual temperature. Since a disconnected
* thermistor reads as a low temperature, the firmware will keep the heater on.
*
* The solution: Once the temperature reaches the target, start observing.
* If the temperature stays too far below the target (hysteresis) for too long (period),
* the firmware will halt the machine as a safety precaution.
*
* If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
*/
#if ENABLED(THERMAL_PROTECTION_HOTENDS)
#define THERMAL_PROTECTION_PERIOD 40 // Seconds
#define THERMAL_PROTECTION_HYSTERESIS 4 // Degrees Celsius
/**
* Whenever an M104 or M109 increases the target temperature the firmware will wait for the
* WATCH_TEMP_PERIOD to expire, and if the temperature hasn't increased by WATCH_TEMP_INCREASE
* degrees, the machine is halted, requiring a hard reset. This test restarts with any M104/M109,
* but only if the current temperature is far enough below the target for a reliable test.
*
* If you get false positives for "Heating failed" increase WATCH_TEMP_PERIOD and/or decrease WATCH_TEMP_INCREASE
* WATCH_TEMP_INCREASE should not be below 2.
*/
#define WATCH_TEMP_PERIOD 20 // Seconds
#define WATCH_TEMP_INCREASE 2 // Degrees Celsius
#endif
/**
* Thermal Protection parameters for the bed are just as above for hotends.
*/
#if ENABLED(THERMAL_PROTECTION_BED)
#define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds
#define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius
/**
* Whenever an M140 or M190 increases the target temperature the firmware will wait for the
* WATCH_BED_TEMP_PERIOD to expire, and if the temperature hasn't increased by WATCH_BED_TEMP_INCREASE
* degrees, the machine is halted, requiring a hard reset. This test restarts with any M140/M190,
* but only if the current temperature is far enough below the target for a reliable test.
*
* If you get too many "Heating failed" errors, increase WATCH_BED_TEMP_PERIOD and/or decrease
* WATCH_BED_TEMP_INCREASE. (WATCH_BED_TEMP_INCREASE should not be below 2.)
*/
#define WATCH_BED_TEMP_PERIOD 60 // Seconds
#define WATCH_BED_TEMP_INCREASE 2 // Degrees Celsius
#endif
#if ENABLED(PIDTEMP)
// this adds an experimental additional term to the heating power, proportional to the extrusion speed.
// if Kc is chosen well, the additional required power due to increased melting should be compensated.
//#define PID_EXTRUSION_SCALING
#if ENABLED(PID_EXTRUSION_SCALING)
#define DEFAULT_Kc (100) //heating power=Kc*(e_speed)
#define LPQ_MAX_LEN 50
#endif
#endif
/**
* Automatic Temperature:
* The hotend target temperature is calculated by all the buffered lines of gcode.
* The maximum buffered steps/sec of the extruder motor is called "se".
* Start autotemp mode with M109 S<mintemp> B<maxtemp> F<factor>
* The target temperature is set to mintemp+factor*se[steps/sec] and is limited by
* mintemp and maxtemp. Turn this off by executing M109 without F*
* Also, if the temperature is set to a value below mintemp, it will not be changed by autotemp.
* On an Ultimaker, some initial testing worked with M109 S215 B260 F1 in the start.gcode
*/
#define AUTOTEMP
#if ENABLED(AUTOTEMP)
#define AUTOTEMP_OLDWEIGHT 0.98
#endif
//Show Temperature ADC value
//The M105 command return, besides traditional information, the ADC value read from temperature sensors.
//#define SHOW_TEMP_ADC_VALUES
/**
* High Temperature Thermistor Support
*
* Thermistors able to support high temperature tend to have a hard time getting
* good readings at room and lower temperatures. This means HEATER_X_RAW_LO_TEMP
* will probably be caught when the heating element first turns on during the
* preheating process, which will trigger a min_temp_error as a safety measure
* and force stop everything.
* To circumvent this limitation, we allow for a preheat time (during which,
* min_temp_error won't be triggered) and add a min_temp buffer to handle
* aberrant readings.
*
* If you want to enable this feature for your hotend thermistor(s)
* uncomment and set values > 0 in the constants below
*/
// The number of consecutive low temperature errors that can occur
// before a min_temp_error is triggered. (Shouldn't be more than 10.)
//#define MAX_CONSECUTIVE_LOW_TEMPERATURE_ERROR_ALLOWED 0
// The number of milliseconds a hotend will preheat before starting to check
// the temperature. This value should NOT be set to the time it takes the
// hot end to reach the target temperature, but the time it takes to reach
// the minimum temperature your thermistor can read. The lower the better/safer.
// This shouldn't need to be more than 30 seconds (30000)
//#define MILLISECONDS_PREHEAT_TIME 0
// @section extruder
// extruder run-out prevention.
//if the machine is idle, and the temperature over MINTEMP, every couple of SECONDS some filament is extruded
//#define EXTRUDER_RUNOUT_PREVENT
#define EXTRUDER_RUNOUT_MINTEMP 190
#define EXTRUDER_RUNOUT_SECONDS 30
#define EXTRUDER_RUNOUT_ESTEPS 14 // mm filament
#define EXTRUDER_RUNOUT_SPEED 1500 // extrusion speed
#define EXTRUDER_RUNOUT_EXTRUDE 100
// @section temperature
//These defines help to calibrate the AD595 sensor in case you get wrong temperature measurements.
//The measured temperature is defined as "actualTemp = (measuredTemp * TEMP_SENSOR_AD595_GAIN) + TEMP_SENSOR_AD595_OFFSET"
#define TEMP_SENSOR_AD595_OFFSET 0.0
#define TEMP_SENSOR_AD595_GAIN 1.0
//This is for controlling a fan to cool down the stepper drivers
//it will turn on when any driver is enabled
//and turn off after the set amount of seconds from last driver being disabled again
#define CONTROLLERFAN_PIN -1 //Pin used for the fan to cool controller (-1 to disable)
#define CONTROLLERFAN_SECS 60 //How many seconds, after all motors were disabled, the fan should run
#define CONTROLLERFAN_SPEED 255 // == full speed
// When first starting the main fan, run it at full speed for the
// given number of milliseconds. This gets the fan spinning reliably
// before setting a PWM value. (Does not work with software PWM for fan on Sanguinololu)
//#define FAN_KICKSTART_TIME 100
// This defines the minimal speed for the main fan, run in PWM mode
// to enable uncomment and set minimal PWM speed for reliable running (1-255)
// if fan speed is [1 - (FAN_MIN_PWM-1)] it is set to FAN_MIN_PWM
//#define FAN_MIN_PWM 50
// @section extruder
// Extruder cooling fans
// Configure fan pin outputs to automatically turn on/off when the associated
// extruder temperature is above/below EXTRUDER_AUTO_FAN_TEMPERATURE.
// Multiple extruders can be assigned to the same pin in which case
// the fan will turn on when any selected extruder is above the threshold.
#define EXTRUDER_0_AUTO_FAN_PIN -1
#define EXTRUDER_1_AUTO_FAN_PIN -1
#define EXTRUDER_2_AUTO_FAN_PIN -1
#define EXTRUDER_3_AUTO_FAN_PIN -1
#define EXTRUDER_AUTO_FAN_TEMPERATURE 50
#define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed
//===========================================================================
//============================ Mechanical Settings ==========================
//===========================================================================
// @section homing
// If you want endstops to stay on (by default) even when not homing
// enable this option. Override at any time with M120, M121.
#define ENDSTOPS_ALWAYS_ON_DEFAULT
// @section extras
//#define Z_LATE_ENABLE // Enable Z the last moment. Needed if your Z driver overheats.
// Dual X Steppers
// Uncomment this option to drive two X axis motors.
// The next unused E driver will be assigned to the second X stepper.
//#define X_DUAL_STEPPER_DRIVERS
#if ENABLED(X_DUAL_STEPPER_DRIVERS)
// Set true if the two X motors need to rotate in opposite directions
#define INVERT_X2_VS_X_DIR true
#endif
// Dual Y Steppers
// Uncomment this option to drive two Y axis motors.
// The next unused E driver will be assigned to the second Y stepper.
//#define Y_DUAL_STEPPER_DRIVERS
#if ENABLED(Y_DUAL_STEPPER_DRIVERS)
// Set true if the two Y motors need to rotate in opposite directions
#define INVERT_Y2_VS_Y_DIR true
#endif
// A single Z stepper driver is usually used to drive 2 stepper motors.
// Uncomment this option to use a separate stepper driver for each Z axis motor.
// The next unused E driver will be assigned to the second Z stepper.
//#define Z_DUAL_STEPPER_DRIVERS
#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
// Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
// That way the machine is capable to align the bed during home, since both Z steppers are homed.
// There is also an implementation of M666 (software endstops adjustment) to this feature.
// After Z homing, this adjustment is applied to just one of the steppers in order to align the bed.
// One just need to home the Z axis and measure the distance difference between both Z axis and apply the math: Z adjust = Z - Z2.
// If the Z stepper axis is closer to the bed, the measure Z > Z2 (yes, it is.. think about it) and the Z adjust would be positive.
// Play a little bit with small adjustments (0.5mm) and check the behaviour.
// The M119 (endstops report) will start reporting the Z2 Endstop as well.
//#define Z_DUAL_ENDSTOPS
#if ENABLED(Z_DUAL_ENDSTOPS)
#define Z2_USE_ENDSTOP _XMAX_
#endif
#endif // Z_DUAL_STEPPER_DRIVERS
// Enable this for dual x-carriage printers.
// A dual x-carriage design has the advantage that the inactive extruder can be parked which
// prevents hot-end ooze contaminating the print. It also reduces the weight of each x-carriage
// allowing faster printing speeds. Connect your X2 stepper to the first unused E plug.
//#define DUAL_X_CARRIAGE
#if ENABLED(DUAL_X_CARRIAGE)
// Configuration for second X-carriage
// Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
// the second x-carriage always homes to the maximum endstop.
#define X2_MIN_POS 80 // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
#define X2_MAX_POS 353 // set maximum to the distance between toolheads when both heads are homed
#define X2_HOME_DIR 1 // the second X-carriage always homes to the maximum endstop position
#define X2_HOME_POS X2_MAX_POS // default home position is the maximum carriage position
// However: In this mode the HOTEND_OFFSET_X value for the second extruder provides a software
// override for X2_HOME_POS. This also allow recalibration of the distance between the two endstops
// without modifying the firmware (through the "M218 T1 X???" command).
// Remember: you should set the second extruder x-offset to 0 in your slicer.
// There are a few selectable movement modes for dual x-carriages using M605 S<mode>
// Mode 0: Full control. The slicer has full control over both x-carriages and can achieve optimal travel results
// as long as it supports dual x-carriages. (M605 S0)
// Mode 1: Auto-park mode. The firmware will automatically park and unpark the x-carriages on tool changes so
// that additional slicer support is not required. (M605 S1)
// Mode 2: Duplication mode. The firmware will transparently make the second x-carriage and extruder copy all
// actions of the first x-carriage. This allows the printer to print 2 arbitrary items at
// once. (2nd extruder x offset and temp offset are set using: M605 S2 [Xnnn] [Rmmm])
// This is the default power-up mode which can be later using M605.
#define DEFAULT_DUAL_X_CARRIAGE_MODE 0
// Default settings in "Auto-park Mode"
#define TOOLCHANGE_PARK_ZLIFT 0.2 // the distance to raise Z axis when parking an extruder
#define TOOLCHANGE_UNPARK_ZLIFT 1 // the distance to raise Z axis when unparking an extruder
// Default x offset in duplication mode (typically set to half print bed width)
#define DEFAULT_DUPLICATION_X_OFFSET 100
#endif //DUAL_X_CARRIAGE
// @section homing
//homing hits the endstop, then retracts by this distance, before it tries to slowly bump again:
#define X_HOME_BUMP_MM 5
#define Y_HOME_BUMP_MM 5
#define Z_HOME_BUMP_MM 2
#define HOMING_BUMP_DIVISOR {2, 2, 4} // Re-Bump Speed Divisor (Divides the Homing Feedrate)
//#define QUICK_HOME //if this is defined, if both x and y are to be homed, a diagonal move will be performed initially.
// When G28 is called, this option will make Y home before X
//#define HOME_Y_BEFORE_X
// @section machine
#define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder
//#define DUAL_NOZZLE_DUPLICATION_MODE
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false
#define INVERT_Y_STEP_PIN false
#define INVERT_Z_STEP_PIN false
#define INVERT_E_STEP_PIN false
// Default stepper release if idle. Set to 0 to deactivate.
// Steppers will shut down DEFAULT_STEPPER_DEACTIVE_TIME seconds after the last move when DISABLE_INACTIVE_? is true.
// Time can be set by M18 and M84.
#define DEFAULT_STEPPER_DEACTIVE_TIME 60
#define DISABLE_INACTIVE_X true
#define DISABLE_INACTIVE_Y true
#define DISABLE_INACTIVE_Z true // set to false if the nozzle will fall down on your printed part when print has finished.
#define DISABLE_INACTIVE_E true
#define DEFAULT_MINIMUMFEEDRATE 0.0 // minimum feedrate
#define DEFAULT_MINTRAVELFEEDRATE 0.0
// @section lcd
#if ENABLED(ULTIPANEL)
#define MANUAL_FEEDRATE {120*60, 120*60, 18*60, 60} // Feedrates for manual moves along X, Y, Z, E from panel
#define ULTIPANEL_FEEDMULTIPLY // Comment to disable setting feedrate multiplier via encoder
#endif
// @section extras
// minimum time in microseconds that a movement needs to take if the buffer is emptied.
#define DEFAULT_MINSEGMENTTIME 20000
// If defined the movements slow down when the look ahead buffer is only half full
#define SLOWDOWN
// Frequency limit
// See nophead's blog for more info
// Not working O
//#define XY_FREQUENCY_LIMIT 15
// Minimum planner junction speed. Sets the default minimum speed the planner plans for at the end
// of the buffer and all stops. This should not be much greater than zero and should only be changed
// if unwanted behavior is observed on a user's machine when running at very slow speeds.
#define MINIMUM_PLANNER_SPEED 0.05// (mm/sec)
// Microstep setting (Only functional when stepper driver microstep pins are connected to MCU.
#define MICROSTEP_MODES {16,16,16,16,16} // [1,2,4,8,16]
// Motor Current setting (Only functional when motor driver current ref pins are connected to a digital trimpot on supported boards)
#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
// Motor Current controlled via PWM (Overridable on supported boards with PWM-driven motor driver current)
//#define PWM_MOTOR_CURRENT {1300, 1300, 1250} // Values in milliamps
// uncomment to enable an I2C based DIGIPOT like on the Azteeg X3 Pro
//#define DIGIPOT_I2C
// Number of channels available for I2C digipot, For Azteeg X3 Pro we have 8
#define DIGIPOT_I2C_NUM_CHANNELS 8
// actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
#define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0}
//===========================================================================
//=============================Additional Features===========================
//===========================================================================
#define ENCODER_RATE_MULTIPLIER // If defined, certain menu edit operations automatically multiply the steps when the encoder is moved quickly
#define ENCODER_10X_STEPS_PER_SEC 75 // If the encoder steps per sec exceeds this value, multiply steps moved x10 to quickly advance the value
#define ENCODER_100X_STEPS_PER_SEC 160 // If the encoder steps per sec exceeds this value, multiply steps moved x100 to really quickly advance the value
//#define CHDK 4 //Pin for triggering CHDK to take a picture see how to use it here http://captain-slow.dk/2014/03/09/3d-printing-timelapses/
#define CHDK_DELAY 50 //How long in ms the pin should stay HIGH before going LOW again
// @section lcd
// Include a page of printer information in the LCD Main Menu
//#define LCD_INFO_MENU
#if ENABLED(SDSUPPORT)
// Some RAMPS and other boards don't detect when an SD card is inserted. You can work
// around this by connecting a push button or single throw switch to the pin defined
// as SD_DETECT_PIN in your board's pins definitions.
// This setting should be disabled unless you are using a push button, pulling the pin to ground.
// Note: This is always disabled for ULTIPANEL (except ELB_FULL_GRAPHIC_CONTROLLER).
#define SD_DETECT_INVERTED
#define SD_FINISHED_STEPPERRELEASE true //if sd support and the file is finished: disable steppers?
#define SD_FINISHED_RELEASECOMMAND "M84 X Y Z E" // You might want to keep the z enabled so your bed stays in place.
#define SDCARD_RATHERRECENTFIRST //reverse file order of sd card menu display. Its sorted practically after the file system block order.
// if a file is deleted, it frees a block. hence, the order is not purely chronological. To still have auto0.g accessible, there is again the option to do that.
// using:
//#define MENU_ADDAUTOSTART
// Show a progress bar on HD44780 LCDs for SD printing
//#define LCD_PROGRESS_BAR
#if ENABLED(LCD_PROGRESS_BAR)
// Amount of time (ms) to show the bar
#define PROGRESS_BAR_BAR_TIME 2000
// Amount of time (ms) to show the status message
#define PROGRESS_BAR_MSG_TIME 3000
// Amount of time (ms) to retain the status message (0=forever)
#define PROGRESS_MSG_EXPIRE 0
// Enable this to show messages for MSG_TIME then hide them
//#define PROGRESS_MSG_ONCE
#endif
// This allows hosts to request long names for files and folders with M33
//#define LONG_FILENAME_HOST_SUPPORT
// This option allows you to abort SD printing when any endstop is triggered.
// This feature must be enabled with "M540 S1" or from the LCD menu.
// To have any effect, endstops must be enabled during SD printing.
//#define ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED
#endif // SDSUPPORT
// for dogm lcd displays you can choose some additional fonts:
#if ENABLED(DOGLCD)
// save 3120 bytes of PROGMEM by commenting out #define USE_BIG_EDIT_FONT
// we don't have a big font for Cyrillic, Kana
//#define USE_BIG_EDIT_FONT
// If you have spare 2300Byte of progmem and want to use a
// smaller font on the Info-screen uncomment the next line.
//#define USE_SMALL_INFOFONT
#endif // DOGLCD
// @section safety
// The hardware watchdog should reset the microcontroller disabling all outputs,
// in case the firmware gets stuck and doesn't do temperature regulation.
#define USE_WATCHDOG
#if ENABLED(USE_WATCHDOG)
// If you have a watchdog reboot in an ArduinoMega2560 then the device will hang forever, as a watchdog reset will leave the watchdog on.
// The "WATCHDOG_RESET_MANUAL" goes around this by not using the hardware reset.
// However, THIS FEATURE IS UNSAFE!, as it will only work if interrupts are disabled. And the code could hang in an interrupt routine with interrupts disabled.
//#define WATCHDOG_RESET_MANUAL
#endif
// @section lcd
// Babystepping enables the user to control the axis in tiny amounts, independently from the normal printing process
// it can e.g. be used to change z-positions in the print startup phase in real-time
// does not respect endstops!
//#define BABYSTEPPING
#if ENABLED(BABYSTEPPING)
#define BABYSTEP_XY //not only z, but also XY in the menu. more clutter, more functions
//not implemented for deltabots!
#define BABYSTEP_INVERT_Z false //true for inverse movements in Z
#define BABYSTEP_MULTIPLICATOR 1 //faster movements
#endif
// @section extruder
// extruder advance constant (s2/mm3)
//
// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
//
// Hooke's law says: force = k * distance
// Bernoulli's principle says: v ^ 2 / 2 + g . h + pressure / density = constant
// so: v ^ 2 is proportional to number of steps we advance the extruder
//#define ADVANCE
#if ENABLED(ADVANCE)
#define EXTRUDER_ADVANCE_K .0
#define D_FILAMENT 1.75
#endif
// Implementation of a linear pressure control
// Assumption: advance = k * (delta velocity)
// K=0 means advance disabled. A good value for a gregs wade extruder will be around K=75
//#define LIN_ADVANCE
#if ENABLED(LIN_ADVANCE)
#define LIN_ADVANCE_K 75
#endif
// @section leveling
// Default mesh area is an area with an inset margin on the print area.
// Below are the macros that are used to define the borders for the mesh area,
// made available here for specialized needs, ie dual extruder setup.
#if ENABLED(MESH_BED_LEVELING)
#define MESH_MIN_X (X_MIN_POS + MESH_INSET)
#define MESH_MAX_X (X_MAX_POS - (MESH_INSET))
#define MESH_MIN_Y (Y_MIN_POS + MESH_INSET)
#define MESH_MAX_Y (Y_MAX_POS - (MESH_INSET))
#endif
// @section extras
// Arc interpretation settings:
#define ARC_SUPPORT // Disabling this saves ~2738 bytes
#define MM_PER_ARC_SEGMENT 1
#define N_ARC_CORRECTION 25
// Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
//#define BEZIER_CURVE_SUPPORT
const unsigned int dropsegments = 5; //everything with less than this number of steps will be ignored as move and joined with the next movement
// @section temperature
// Control heater 0 and heater 1 in parallel.
//#define HEATERS_PARALLEL
//===========================================================================
//================================= Buffers =================================
//===========================================================================
// @section hidden
// The number of linear motions that can be in the plan at any give time.
// THE BLOCK_BUFFER_SIZE NEEDS TO BE A POWER OF 2, i.g. 8,16,32 because shifts and ors are used to do the ring-buffering.
#if ENABLED(SDSUPPORT)
#define BLOCK_BUFFER_SIZE 16 // SD,LCD,Buttons take more memory, block buffer needs to be smaller
#else
#define BLOCK_BUFFER_SIZE 16 // maximize block buffer
#endif
// @section serial
// The ASCII buffer for serial input
#define MAX_CMD_SIZE 96
#define BUFSIZE 4
// Transfer Buffer Size
// To save 386 bytes of PROGMEM (and TX_BUFFER_SIZE+3 bytes of RAM) set to 0.
// To buffer a simple "ok" you need 4 bytes.
// For ADVANCED_OK (M105) you need 32 bytes.
// For debug-echo: 128 bytes for the optimal speed.
// Other output doesn't need to be that speedy.
// :[0,2,4,8,16,32,64,128,256]
#define TX_BUFFER_SIZE 0
// Enable an emergency-command parser to intercept certain commands as they
// enter the serial receive buffer, so they cannot be blocked.
// Currently handles M108, M112, M410
// Does not work on boards using AT90USB (USBCON) processors!
//#define EMERGENCY_PARSER
// Bad Serial-connections can miss a received command by sending an 'ok'
// Therefore some clients abort after 30 seconds in a timeout.
// Some other clients start sending commands while receiving a 'wait'.
// This "wait" is only sent when the buffer is empty. 1 second is a good value here.
//#define NO_TIMEOUTS 1000 // Milliseconds
// Some clients will have this feature soon. This could make the NO_TIMEOUTS unnecessary.
//#define ADVANCED_OK
// @section fwretract
// Firmware based and LCD controlled retract
// M207 and M208 can be used to define parameters for the retraction.
// The retraction can be called by the slicer using G10 and G11
// until then, intended retractions can be detected by moves that only extrude and the direction.
// the moves are than replaced by the firmware controlled ones.
//#define FWRETRACT //ONLY PARTIALLY TESTED
#if ENABLED(FWRETRACT)
#define MIN_RETRACT 0.1 //minimum extruded mm to accept a automatic gcode retraction attempt
#define RETRACT_LENGTH 3 //default retract length (positive mm)
#define RETRACT_LENGTH_SWAP 13 //default swap retract length (positive mm), for extruder change
#define RETRACT_FEEDRATE 80 //default feedrate for retracting (mm/s)
#define RETRACT_ZLIFT 0 //default retract Z-lift
#define RETRACT_RECOVER_LENGTH 0 //default additional recover length (mm, added to retract length when recovering)
//#define RETRACT_RECOVER_LENGTH_SWAP 0 //default additional swap recover length (mm, added to retract length when recovering from extruder change)
#define RETRACT_RECOVER_FEEDRATE 8 //default feedrate for recovering from retraction (mm/s)
#endif
// Add support for experimental filament exchange support M600; requires display
#if ENABLED(ULTIPANEL)
// #define FILAMENT_CHANGE_FEATURE // Enable filament exchange menu and M600 g-code (used for runout sensor too)
#if ENABLED(FILAMENT_CHANGE_FEATURE)
#define FILAMENT_CHANGE_X_POS 3 // X position of hotend
#define FILAMENT_CHANGE_Y_POS 3 // Y position of hotend
#define FILAMENT_CHANGE_Z_ADD 10 // Z addition of hotend (lift)
#define FILAMENT_CHANGE_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
#define FILAMENT_CHANGE_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
#define FILAMENT_CHANGE_RETRACT_LENGTH 2 // Initial retract in mm
// It is a short retract used immediately after print interrupt before move to filament exchange position
#define FILAMENT_CHANGE_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
#define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm
// Longer length for bowden printers to unload filament from whole bowden tube,
// shorter lenght for printers without bowden to unload filament from extruder only,
// 0 to disable unloading for manual unloading
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast
#define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm
// Longer length for bowden printers to fast load filament into whole bowden tube over the hotend,
// Short or zero length for printers without bowden where loading is not used
#define FILAMENT_CHANGE_LOAD_FEEDRATE 10 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast
#define FILAMENT_CHANGE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is load over the hotend,
// 0 to disable for manual extrusion
// Filament can be extruded repeatedly from the filament exchange menu to fill the hotend,
// or until outcoming filament color is not clear for filament color change
#define FILAMENT_CHANGE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
#endif
#endif
/******************************************************************************\
* enable this section if you have TMC26X motor drivers.
* you need to import the TMC26XStepper library into the Arduino IDE for this
******************************************************************************/
// @section tmc
//#define HAVE_TMCDRIVER
#if ENABLED(HAVE_TMCDRIVER)
//#define X_IS_TMC
#define X_MAX_CURRENT 1000 //in mA
#define X_SENSE_RESISTOR 91 //in mOhms
#define X_MICROSTEPS 16 //number of microsteps
//#define X2_IS_TMC
#define X2_MAX_CURRENT 1000 //in mA
#define X2_SENSE_RESISTOR 91 //in mOhms
#define X2_MICROSTEPS 16 //number of microsteps
//#define Y_IS_TMC
#define Y_MAX_CURRENT 1000 //in mA
#define Y_SENSE_RESISTOR 91 //in mOhms
#define Y_MICROSTEPS 16 //number of microsteps
//#define Y2_IS_TMC
#define Y2_MAX_CURRENT 1000 //in mA
#define Y2_SENSE_RESISTOR 91 //in mOhms
#define Y2_MICROSTEPS 16 //number of microsteps
//#define Z_IS_TMC
#define Z_MAX_CURRENT 1000 //in mA
#define Z_SENSE_RESISTOR 91 //in mOhms
#define Z_MICROSTEPS 16 //number of microsteps
//#define Z2_IS_TMC
#define Z2_MAX_CURRENT 1000 //in mA
#define Z2_SENSE_RESISTOR 91 //in mOhms
#define Z2_MICROSTEPS 16 //number of microsteps
//#define E0_IS_TMC
#define E0_MAX_CURRENT 1000 //in mA
#define E0_SENSE_RESISTOR 91 //in mOhms
#define E0_MICROSTEPS 16 //number of microsteps
//#define E1_IS_TMC
#define E1_MAX_CURRENT 1000 //in mA
#define E1_SENSE_RESISTOR 91 //in mOhms
#define E1_MICROSTEPS 16 //number of microsteps
//#define E2_IS_TMC
#define E2_MAX_CURRENT 1000 //in mA
#define E2_SENSE_RESISTOR 91 //in mOhms
#define E2_MICROSTEPS 16 //number of microsteps
//#define E3_IS_TMC
#define E3_MAX_CURRENT 1000 //in mA
#define E3_SENSE_RESISTOR 91 //in mOhms
#define E3_MICROSTEPS 16 //number of microsteps
#endif
/******************************************************************************\
* enable this section if you have L6470 motor drivers.
* you need to import the L6470 library into the Arduino IDE for this
******************************************************************************/
// @section l6470
//#define HAVE_L6470DRIVER
#if ENABLED(HAVE_L6470DRIVER)
//#define X_IS_L6470
#define X_MICROSTEPS 16 //number of microsteps
#define X_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define X_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define X_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define X2_IS_L6470
#define X2_MICROSTEPS 16 //number of microsteps
#define X2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define X2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define X2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define Y_IS_L6470
#define Y_MICROSTEPS 16 //number of microsteps
#define Y_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define Y_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define Y_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define Y2_IS_L6470
#define Y2_MICROSTEPS 16 //number of microsteps
#define Y2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define Y2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define Y2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define Z_IS_L6470
#define Z_MICROSTEPS 16 //number of microsteps
#define Z_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define Z_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define Z_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define Z2_IS_L6470
#define Z2_MICROSTEPS 16 //number of microsteps
#define Z2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define Z2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define Z2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define E0_IS_L6470
#define E0_MICROSTEPS 16 //number of microsteps
#define E0_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define E0_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define E0_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define E1_IS_L6470
#define E1_MICROSTEPS 16 //number of microsteps
#define E1_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define E1_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define E1_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define E2_IS_L6470
#define E2_MICROSTEPS 16 //number of microsteps
#define E2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define E2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define E2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define E3_IS_L6470
#define E3_MICROSTEPS 16 //number of microsteps
#define E3_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define E3_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define E3_STALLCURRENT 1500 //current in mA where the driver will detect a stall
#endif
/**
* TWI/I2C BUS
*
* This feature is an EXPERIMENTAL feature so it shall not be used on production
* machines. Enabling this will allow you to send and receive I2C data from slave
* devices on the bus.
*
* ; Example #1
* ; This macro send the string "Marlin" to the slave device with address 0x63 (99)
* ; It uses multiple M155 commands with one B<base 10> arg
* M155 A99 ; Target slave address
* M155 B77 ; M
* M155 B97 ; a
* M155 B114 ; r
* M155 B108 ; l
* M155 B105 ; i
* M155 B110 ; n
* M155 S1 ; Send the current buffer
*
* ; Example #2
* ; Request 6 bytes from slave device with address 0x63 (99)
* M156 A99 B5
*
* ; Example #3
* ; Example serial output of a M156 request
* echo:i2c-reply: from:99 bytes:5 data:hello
*/
// @section i2cbus
//#define EXPERIMENTAL_I2CBUS
#endif // CONFIGURATION_ADV_H
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -1,801 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
* Configuration_adv.h
*
* Advanced settings.
* Only change these if you know exactly what you're doing.
* Some of these settings can damage your printer if improperly set!
*
* Basic settings can be found in Configuration.h
*
*/
#ifndef CONFIGURATION_ADV_H
#define CONFIGURATION_ADV_H
/**
*
* ***********************************
* ** ATTENTION TO ALL DEVELOPERS **
* ***********************************
*
* You must increment this version number for every significant change such as,
* but not limited to: ADD, DELETE RENAME OR REPURPOSE any directive/option.
*
* Note: Update also Version.h !
*/
#define CONFIGURATION_ADV_H_VERSION 010100
// @section temperature
//===========================================================================
//=============================Thermal Settings ============================
//===========================================================================
#if DISABLED(PIDTEMPBED)
#define BED_CHECK_INTERVAL 5000 // ms between checks in bang-bang control
#if ENABLED(BED_LIMIT_SWITCHING)
#define BED_HYSTERESIS 2 // Only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
#endif
#endif
/**
* Thermal Protection protects your printer from damage and fire if a
* thermistor falls out or temperature sensors fail in any way.
*
* The issue: If a thermistor falls out or a temperature sensor fails,
* Marlin can no longer sense the actual temperature. Since a disconnected
* thermistor reads as a low temperature, the firmware will keep the heater on.
*
* The solution: Once the temperature reaches the target, start observing.
* If the temperature stays too far below the target (hysteresis) for too long (period),
* the firmware will halt the machine as a safety precaution.
*
* If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
*/
#if ENABLED(THERMAL_PROTECTION_HOTENDS)
#define THERMAL_PROTECTION_PERIOD 40 // Seconds
#define THERMAL_PROTECTION_HYSTERESIS 4 // Degrees Celsius
/**
* Whenever an M104 or M109 increases the target temperature the firmware will wait for the
* WATCH_TEMP_PERIOD to expire, and if the temperature hasn't increased by WATCH_TEMP_INCREASE
* degrees, the machine is halted, requiring a hard reset. This test restarts with any M104/M109,
* but only if the current temperature is far enough below the target for a reliable test.
*
* If you get false positives for "Heating failed" increase WATCH_TEMP_PERIOD and/or decrease WATCH_TEMP_INCREASE
* WATCH_TEMP_INCREASE should not be below 2.
*/
#define WATCH_TEMP_PERIOD 20 // Seconds
#define WATCH_TEMP_INCREASE 2 // Degrees Celsius
#endif
/**
* Thermal Protection parameters for the bed are just as above for hotends.
*/
#if ENABLED(THERMAL_PROTECTION_BED)
#define THERMAL_PROTECTION_BED_PERIOD 120 // Seconds
#define THERMAL_PROTECTION_BED_HYSTERESIS 4 // Degrees Celsius
/**
* Whenever an M140 or M190 increases the target temperature the firmware will wait for the
* WATCH_BED_TEMP_PERIOD to expire, and if the temperature hasn't increased by WATCH_BED_TEMP_INCREASE
* degrees, the machine is halted, requiring a hard reset. This test restarts with any M140/M190,
* but only if the current temperature is far enough below the target for a reliable test.
*
* If you get too many "Heating failed" errors, increase WATCH_BED_TEMP_PERIOD and/or decrease
* WATCH_BED_TEMP_INCREASE. (WATCH_BED_TEMP_INCREASE should not be below 2.)
*/
#define WATCH_BED_TEMP_PERIOD 60 // Seconds
#define WATCH_BED_TEMP_INCREASE 2 // Degrees Celsius
#endif
#if ENABLED(PIDTEMP)
// this adds an experimental additional term to the heating power, proportional to the extrusion speed.
// if Kc is chosen well, the additional required power due to increased melting should be compensated.
//#define PID_EXTRUSION_SCALING
#if ENABLED(PID_EXTRUSION_SCALING)
#define DEFAULT_Kc (100) //heating power=Kc*(e_speed)
#define LPQ_MAX_LEN 50
#endif
#endif
/**
* Automatic Temperature:
* The hotend target temperature is calculated by all the buffered lines of gcode.
* The maximum buffered steps/sec of the extruder motor is called "se".
* Start autotemp mode with M109 S<mintemp> B<maxtemp> F<factor>
* The target temperature is set to mintemp+factor*se[steps/sec] and is limited by
* mintemp and maxtemp. Turn this off by executing M109 without F*
* Also, if the temperature is set to a value below mintemp, it will not be changed by autotemp.
* On an Ultimaker, some initial testing worked with M109 S215 B260 F1 in the start.gcode
*/
#define AUTOTEMP
#if ENABLED(AUTOTEMP)
#define AUTOTEMP_OLDWEIGHT 0.98
#endif
//Show Temperature ADC value
//The M105 command return, besides traditional information, the ADC value read from temperature sensors.
//#define SHOW_TEMP_ADC_VALUES
/**
* High Temperature Thermistor Support
*
* Thermistors able to support high temperature tend to have a hard time getting
* good readings at room and lower temperatures. This means HEATER_X_RAW_LO_TEMP
* will probably be caught when the heating element first turns on during the
* preheating process, which will trigger a min_temp_error as a safety measure
* and force stop everything.
* To circumvent this limitation, we allow for a preheat time (during which,
* min_temp_error won't be triggered) and add a min_temp buffer to handle
* aberrant readings.
*
* If you want to enable this feature for your hotend thermistor(s)
* uncomment and set values > 0 in the constants below
*/
// The number of consecutive low temperature errors that can occur
// before a min_temp_error is triggered. (Shouldn't be more than 10.)
//#define MAX_CONSECUTIVE_LOW_TEMPERATURE_ERROR_ALLOWED 0
// The number of milliseconds a hotend will preheat before starting to check
// the temperature. This value should NOT be set to the time it takes the
// hot end to reach the target temperature, but the time it takes to reach
// the minimum temperature your thermistor can read. The lower the better/safer.
// This shouldn't need to be more than 30 seconds (30000)
//#define MILLISECONDS_PREHEAT_TIME 0
// @section extruder
// extruder run-out prevention.
//if the machine is idle, and the temperature over MINTEMP, every couple of SECONDS some filament is extruded
//#define EXTRUDER_RUNOUT_PREVENT
#define EXTRUDER_RUNOUT_MINTEMP 190
#define EXTRUDER_RUNOUT_SECONDS 30
#define EXTRUDER_RUNOUT_ESTEPS 14 // mm filament
#define EXTRUDER_RUNOUT_SPEED 1500 // extrusion speed
#define EXTRUDER_RUNOUT_EXTRUDE 100
// @section temperature
//These defines help to calibrate the AD595 sensor in case you get wrong temperature measurements.
//The measured temperature is defined as "actualTemp = (measuredTemp * TEMP_SENSOR_AD595_GAIN) + TEMP_SENSOR_AD595_OFFSET"
#define TEMP_SENSOR_AD595_OFFSET 0.0
#define TEMP_SENSOR_AD595_GAIN 1.0
//This is for controlling a fan to cool down the stepper drivers
//it will turn on when any driver is enabled
//and turn off after the set amount of seconds from last driver being disabled again
#define CONTROLLERFAN_PIN -1 //Pin used for the fan to cool controller (-1 to disable)
#define CONTROLLERFAN_SECS 60 //How many seconds, after all motors were disabled, the fan should run
#define CONTROLLERFAN_SPEED 255 // == full speed
// When first starting the main fan, run it at full speed for the
// given number of milliseconds. This gets the fan spinning reliably
// before setting a PWM value. (Does not work with software PWM for fan on Sanguinololu)
//#define FAN_KICKSTART_TIME 100
// This defines the minimal speed for the main fan, run in PWM mode
// to enable uncomment and set minimal PWM speed for reliable running (1-255)
// if fan speed is [1 - (FAN_MIN_PWM-1)] it is set to FAN_MIN_PWM
//#define FAN_MIN_PWM 50
// @section extruder
// Extruder cooling fans
// Configure fan pin outputs to automatically turn on/off when the associated
// extruder temperature is above/below EXTRUDER_AUTO_FAN_TEMPERATURE.
// Multiple extruders can be assigned to the same pin in which case
// the fan will turn on when any selected extruder is above the threshold.
#define EXTRUDER_0_AUTO_FAN_PIN -1
#define EXTRUDER_1_AUTO_FAN_PIN -1
#define EXTRUDER_2_AUTO_FAN_PIN -1
#define EXTRUDER_3_AUTO_FAN_PIN -1
#define EXTRUDER_AUTO_FAN_TEMPERATURE 50
#define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed
//===========================================================================
//============================ Mechanical Settings ==========================
//===========================================================================
// @section homing
// If you want endstops to stay on (by default) even when not homing
// enable this option. Override at any time with M120, M121.
//#define ENDSTOPS_ALWAYS_ON_DEFAULT
// @section extras
//#define Z_LATE_ENABLE // Enable Z the last moment. Needed if your Z driver overheats.
// Dual X Steppers
// Uncomment this option to drive two X axis motors.
// The next unused E driver will be assigned to the second X stepper.
//#define X_DUAL_STEPPER_DRIVERS
#if ENABLED(X_DUAL_STEPPER_DRIVERS)
// Set true if the two X motors need to rotate in opposite directions
#define INVERT_X2_VS_X_DIR true
#endif
// Dual Y Steppers
// Uncomment this option to drive two Y axis motors.
// The next unused E driver will be assigned to the second Y stepper.
//#define Y_DUAL_STEPPER_DRIVERS
#if ENABLED(Y_DUAL_STEPPER_DRIVERS)
// Set true if the two Y motors need to rotate in opposite directions
#define INVERT_Y2_VS_Y_DIR true
#endif
// A single Z stepper driver is usually used to drive 2 stepper motors.
// Uncomment this option to use a separate stepper driver for each Z axis motor.
// The next unused E driver will be assigned to the second Z stepper.
//#define Z_DUAL_STEPPER_DRIVERS
#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
// Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
// That way the machine is capable to align the bed during home, since both Z steppers are homed.
// There is also an implementation of M666 (software endstops adjustment) to this feature.
// After Z homing, this adjustment is applied to just one of the steppers in order to align the bed.
// One just need to home the Z axis and measure the distance difference between both Z axis and apply the math: Z adjust = Z - Z2.
// If the Z stepper axis is closer to the bed, the measure Z > Z2 (yes, it is.. think about it) and the Z adjust would be positive.
// Play a little bit with small adjustments (0.5mm) and check the behaviour.
// The M119 (endstops report) will start reporting the Z2 Endstop as well.
//#define Z_DUAL_ENDSTOPS
#if ENABLED(Z_DUAL_ENDSTOPS)
#define Z2_USE_ENDSTOP _XMAX_
#endif
#endif // Z_DUAL_STEPPER_DRIVERS
// Enable this for dual x-carriage printers.
// A dual x-carriage design has the advantage that the inactive extruder can be parked which
// prevents hot-end ooze contaminating the print. It also reduces the weight of each x-carriage
// allowing faster printing speeds. Connect your X2 stepper to the first unused E plug.
//#define DUAL_X_CARRIAGE
#if ENABLED(DUAL_X_CARRIAGE)
// Configuration for second X-carriage
// Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
// the second x-carriage always homes to the maximum endstop.
#define X2_MIN_POS 80 // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
#define X2_MAX_POS 353 // set maximum to the distance between toolheads when both heads are homed
#define X2_HOME_DIR 1 // the second X-carriage always homes to the maximum endstop position
#define X2_HOME_POS X2_MAX_POS // default home position is the maximum carriage position
// However: In this mode the HOTEND_OFFSET_X value for the second extruder provides a software
// override for X2_HOME_POS. This also allow recalibration of the distance between the two endstops
// without modifying the firmware (through the "M218 T1 X???" command).
// Remember: you should set the second extruder x-offset to 0 in your slicer.
// There are a few selectable movement modes for dual x-carriages using M605 S<mode>
// Mode 0: Full control. The slicer has full control over both x-carriages and can achieve optimal travel results
// as long as it supports dual x-carriages. (M605 S0)
// Mode 1: Auto-park mode. The firmware will automatically park and unpark the x-carriages on tool changes so
// that additional slicer support is not required. (M605 S1)
// Mode 2: Duplication mode. The firmware will transparently make the second x-carriage and extruder copy all
// actions of the first x-carriage. This allows the printer to print 2 arbitrary items at
// once. (2nd extruder x offset and temp offset are set using: M605 S2 [Xnnn] [Rmmm])
// This is the default power-up mode which can be later using M605.
#define DEFAULT_DUAL_X_CARRIAGE_MODE 0
// Default settings in "Auto-park Mode"
#define TOOLCHANGE_PARK_ZLIFT 0.2 // the distance to raise Z axis when parking an extruder
#define TOOLCHANGE_UNPARK_ZLIFT 1 // the distance to raise Z axis when unparking an extruder
// Default x offset in duplication mode (typically set to half print bed width)
#define DEFAULT_DUPLICATION_X_OFFSET 100
#endif //DUAL_X_CARRIAGE
// @section homing
//homing hits the endstop, then retracts by this distance, before it tries to slowly bump again:
#define X_HOME_BUMP_MM 5
#define Y_HOME_BUMP_MM 5
#define Z_HOME_BUMP_MM 5 // deltas need the same for all three axis
#define HOMING_BUMP_DIVISOR {10, 10, 10} // Re-Bump Speed Divisor (Divides the Homing Feedrate)
//#define QUICK_HOME //if this is defined, if both x and y are to be homed, a diagonal move will be performed initially.
// When G28 is called, this option will make Y home before X
//#define HOME_Y_BEFORE_X
// @section machine
#define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder
//#define DUAL_NOZZLE_DUPLICATION_MODE
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false
#define INVERT_Y_STEP_PIN false
#define INVERT_Z_STEP_PIN false
#define INVERT_E_STEP_PIN false
// Default stepper release if idle. Set to 0 to deactivate.
// Steppers will shut down DEFAULT_STEPPER_DEACTIVE_TIME seconds after the last move when DISABLE_INACTIVE_? is true.
// Time can be set by M18 and M84.
#define DEFAULT_STEPPER_DEACTIVE_TIME 0
#define DISABLE_INACTIVE_X true
#define DISABLE_INACTIVE_Y true
#define DISABLE_INACTIVE_Z true // set to false if the nozzle will fall down on your printed part when print has finished.
#define DISABLE_INACTIVE_E true
#define DEFAULT_MINIMUMFEEDRATE 0.0 // minimum feedrate
#define DEFAULT_MINTRAVELFEEDRATE 0.0
// @section lcd
#if ENABLED(ULTIPANEL)
#define MANUAL_FEEDRATE_XYZ 50*60
#define MANUAL_FEEDRATE { MANUAL_FEEDRATE_XYZ, MANUAL_FEEDRATE_XYZ, MANUAL_FEEDRATE_XYZ, 60 } // Feedrates for manual moves along X, Y, Z, E from panel
#define ULTIPANEL_FEEDMULTIPLY // Comment to disable setting feedrate multiplier via encoder
#endif
// @section extras
// minimum time in microseconds that a movement needs to take if the buffer is emptied.
#define DEFAULT_MINSEGMENTTIME 20000
// If defined the movements slow down when the look ahead buffer is only half full
// (don't use SLOWDOWN with DELTA because DELTA generates hundreds of segments per second)
//#define SLOWDOWN
// Frequency limit
// See nophead's blog for more info
// Not working O
//#define XY_FREQUENCY_LIMIT 15
// Minimum planner junction speed. Sets the default minimum speed the planner plans for at the end
// of the buffer and all stops. This should not be much greater than zero and should only be changed
// if unwanted behavior is observed on a user's machine when running at very slow speeds.
#define MINIMUM_PLANNER_SPEED 0.05// (mm/sec)
// Microstep setting (Only functional when stepper driver microstep pins are connected to MCU.
#define MICROSTEP_MODES {16,16,16,16,16} // [1,2,4,8,16]
// Motor Current setting (Only functional when motor driver current ref pins are connected to a digital trimpot on supported boards)
#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
// Motor Current controlled via PWM (Overridable on supported boards with PWM-driven motor driver current)
//#define PWM_MOTOR_CURRENT {1300, 1300, 1250} // Values in milliamps
// uncomment to enable an I2C based DIGIPOT like on the Azteeg X3 Pro
//#define DIGIPOT_I2C
// Number of channels available for I2C digipot, For Azteeg X3 Pro we have 8
#define DIGIPOT_I2C_NUM_CHANNELS 8
// actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
#define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0}
//===========================================================================
//=============================Additional Features===========================
//===========================================================================
#define ENCODER_RATE_MULTIPLIER // If defined, certain menu edit operations automatically multiply the steps when the encoder is moved quickly
#define ENCODER_10X_STEPS_PER_SEC 75 // If the encoder steps per sec exceeds this value, multiply steps moved x10 to quickly advance the value
#define ENCODER_100X_STEPS_PER_SEC 160 // If the encoder steps per sec exceeds this value, multiply steps moved x100 to really quickly advance the value
//#define CHDK 4 //Pin for triggering CHDK to take a picture see how to use it here http://captain-slow.dk/2014/03/09/3d-printing-timelapses/
#define CHDK_DELAY 50 //How long in ms the pin should stay HIGH before going LOW again
// @section lcd
// Include a page of printer information in the LCD Main Menu
//#define LCD_INFO_MENU
#if ENABLED(SDSUPPORT)
// Some RAMPS and other boards don't detect when an SD card is inserted. You can work
// around this by connecting a push button or single throw switch to the pin defined
// as SD_DETECT_PIN in your board's pins definitions.
// This setting should be disabled unless you are using a push button, pulling the pin to ground.
// Note: This is always disabled for ULTIPANEL (except ELB_FULL_GRAPHIC_CONTROLLER).
#define SD_DETECT_INVERTED
#define SD_FINISHED_STEPPERRELEASE true //if sd support and the file is finished: disable steppers?
#define SD_FINISHED_RELEASECOMMAND "M84 X Y Z E" // You might want to keep the z enabled so your bed stays in place.
#define SDCARD_RATHERRECENTFIRST //reverse file order of sd card menu display. Its sorted practically after the file system block order.
// if a file is deleted, it frees a block. hence, the order is not purely chronological. To still have auto0.g accessible, there is again the option to do that.
// using:
//#define MENU_ADDAUTOSTART
// Show a progress bar on HD44780 LCDs for SD printing
//#define LCD_PROGRESS_BAR
#if ENABLED(LCD_PROGRESS_BAR)
// Amount of time (ms) to show the bar
#define PROGRESS_BAR_BAR_TIME 2000
// Amount of time (ms) to show the status message
#define PROGRESS_BAR_MSG_TIME 3000
// Amount of time (ms) to retain the status message (0=forever)
#define PROGRESS_MSG_EXPIRE 0
// Enable this to show messages for MSG_TIME then hide them
//#define PROGRESS_MSG_ONCE
#endif
// This allows hosts to request long names for files and folders with M33
//#define LONG_FILENAME_HOST_SUPPORT
// This option allows you to abort SD printing when any endstop is triggered.
// This feature must be enabled with "M540 S1" or from the LCD menu.
// To have any effect, endstops must be enabled during SD printing.
//#define ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED
#endif // SDSUPPORT
// for dogm lcd displays you can choose some additional fonts:
#if ENABLED(DOGLCD)
// save 3120 bytes of PROGMEM by commenting out #define USE_BIG_EDIT_FONT
// we don't have a big font for Cyrillic, Kana
//#define USE_BIG_EDIT_FONT
// If you have spare 2300Byte of progmem and want to use a
// smaller font on the Info-screen uncomment the next line.
//#define USE_SMALL_INFOFONT
#endif // DOGLCD
// @section safety
// The hardware watchdog should reset the microcontroller disabling all outputs,
// in case the firmware gets stuck and doesn't do temperature regulation.
#define USE_WATCHDOG
#if ENABLED(USE_WATCHDOG)
// If you have a watchdog reboot in an ArduinoMega2560 then the device will hang forever, as a watchdog reset will leave the watchdog on.
// The "WATCHDOG_RESET_MANUAL" goes around this by not using the hardware reset.
// However, THIS FEATURE IS UNSAFE!, as it will only work if interrupts are disabled. And the code could hang in an interrupt routine with interrupts disabled.
//#define WATCHDOG_RESET_MANUAL
#endif
// @section lcd
// Babystepping enables the user to control the axis in tiny amounts, independently from the normal printing process
// it can e.g. be used to change z-positions in the print startup phase in real-time
// does not respect endstops!
//#define BABYSTEPPING
#if ENABLED(BABYSTEPPING)
#define BABYSTEP_XY //not only z, but also XY in the menu. more clutter, more functions
//not implemented for deltabots!
#define BABYSTEP_INVERT_Z false //true for inverse movements in Z
#define BABYSTEP_MULTIPLICATOR 1 //faster movements
#endif
// @section extruder
// extruder advance constant (s2/mm3)
//
// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
//
// Hooke's law says: force = k * distance
// Bernoulli's principle says: v ^ 2 / 2 + g . h + pressure / density = constant
// so: v ^ 2 is proportional to number of steps we advance the extruder
//#define ADVANCE
#if ENABLED(ADVANCE)
#define EXTRUDER_ADVANCE_K .0
#define D_FILAMENT 2.85
#endif
// Implementation of a linear pressure control
// Assumption: advance = k * (delta velocity)
// K=0 means advance disabled. A good value for a gregs wade extruder will be around K=75
//#define LIN_ADVANCE
#if ENABLED(LIN_ADVANCE)
#define LIN_ADVANCE_K 75
#endif
// @section leveling
// Default mesh area is an area with an inset margin on the print area.
// Below are the macros that are used to define the borders for the mesh area,
// made available here for specialized needs, ie dual extruder setup.
#if ENABLED(MESH_BED_LEVELING)
#define MESH_MIN_X (X_MIN_POS + MESH_INSET)
#define MESH_MAX_X (X_MAX_POS - (MESH_INSET))
#define MESH_MIN_Y (Y_MIN_POS + MESH_INSET)
#define MESH_MAX_Y (Y_MAX_POS - (MESH_INSET))
#endif
// @section extras
// Arc interpretation settings:
#define ARC_SUPPORT // Disabling this saves ~2738 bytes
#define MM_PER_ARC_SEGMENT 1
#define N_ARC_CORRECTION 25
// Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
//#define BEZIER_CURVE_SUPPORT
const unsigned int dropsegments = 5; //everything with less than this number of steps will be ignored as move and joined with the next movement
// @section temperature
// Control heater 0 and heater 1 in parallel.
//#define HEATERS_PARALLEL
//===========================================================================
//================================= Buffers =================================
//===========================================================================
// @section hidden
// The number of linear motions that can be in the plan at any give time.
// THE BLOCK_BUFFER_SIZE NEEDS TO BE A POWER OF 2, i.g. 8,16,32 because shifts and ors are used to do the ring-buffering.
#if ENABLED(SDSUPPORT)
#define BLOCK_BUFFER_SIZE 16 // SD,LCD,Buttons take more memory, block buffer needs to be smaller
#else
#define BLOCK_BUFFER_SIZE 16 // maximize block buffer
#endif
// @section serial
// The ASCII buffer for serial input
#define MAX_CMD_SIZE 96
#define BUFSIZE 4
// Transfer Buffer Size
// To save 386 bytes of PROGMEM (and TX_BUFFER_SIZE+3 bytes of RAM) set to 0.
// To buffer a simple "ok" you need 4 bytes.
// For ADVANCED_OK (M105) you need 32 bytes.
// For debug-echo: 128 bytes for the optimal speed.
// Other output doesn't need to be that speedy.
// :[0,2,4,8,16,32,64,128,256]
#define TX_BUFFER_SIZE 0
// Enable an emergency-command parser to intercept certain commands as they
// enter the serial receive buffer, so they cannot be blocked.
// Currently handles M108, M112, M410
// Does not work on boards using AT90USB (USBCON) processors!
//#define EMERGENCY_PARSER
// Bad Serial-connections can miss a received command by sending an 'ok'
// Therefore some clients abort after 30 seconds in a timeout.
// Some other clients start sending commands while receiving a 'wait'.
// This "wait" is only sent when the buffer is empty. 1 second is a good value here.
//#define NO_TIMEOUTS 1000 // Milliseconds
// Some clients will have this feature soon. This could make the NO_TIMEOUTS unnecessary.
//#define ADVANCED_OK
// @section fwretract
// Firmware based and LCD controlled retract
// M207 and M208 can be used to define parameters for the retraction.
// The retraction can be called by the slicer using G10 and G11
// until then, intended retractions can be detected by moves that only extrude and the direction.
// the moves are than replaced by the firmware controlled ones.
#define FWRETRACT //ONLY PARTIALLY TESTED
#if ENABLED(FWRETRACT)
#define MIN_RETRACT 0.1 //minimum extruded mm to accept a automatic gcode retraction attempt
#define RETRACT_LENGTH 5 //default retract length (positive mm)
#define RETRACT_LENGTH_SWAP 13 //default swap retract length (positive mm), for extruder change
#define RETRACT_FEEDRATE 100 //default feedrate for retracting (mm/s)
#define RETRACT_ZLIFT 0 //default retract Z-lift
#define RETRACT_RECOVER_LENGTH 0 //default additional recover length (mm, added to retract length when recovering)
#define RETRACT_RECOVER_LENGTH_SWAP 0 //default additional swap recover length (mm, added to retract length when recovering from extruder change)
#define RETRACT_RECOVER_FEEDRATE 100 //default feedrate for recovering from retraction (mm/s)
#endif
// Add support for experimental filament exchange support M600; requires display
#if ENABLED(ULTIPANEL)
// #define FILAMENT_CHANGE_FEATURE // Enable filament exchange menu and M600 g-code (used for runout sensor too)
#if ENABLED(FILAMENT_CHANGE_FEATURE)
#define FILAMENT_CHANGE_X_POS 3 // X position of hotend
#define FILAMENT_CHANGE_Y_POS 3 // Y position of hotend
#define FILAMENT_CHANGE_Z_ADD 10 // Z addition of hotend (lift)
#define FILAMENT_CHANGE_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
#define FILAMENT_CHANGE_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
#define FILAMENT_CHANGE_RETRACT_LENGTH 2 // Initial retract in mm
// It is a short retract used immediately after print interrupt before move to filament exchange position
#define FILAMENT_CHANGE_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
#define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm
// Longer length for bowden printers to unload filament from whole bowden tube,
// shorter lenght for printers without bowden to unload filament from extruder only,
// 0 to disable unloading for manual unloading
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast
#define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm
// Longer length for bowden printers to fast load filament into whole bowden tube over the hotend,
// Short or zero length for printers without bowden where loading is not used
#define FILAMENT_CHANGE_LOAD_FEEDRATE 10 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast
#define FILAMENT_CHANGE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is load over the hotend,
// 0 to disable for manual extrusion
// Filament can be extruded repeatedly from the filament exchange menu to fill the hotend,
// or until outcoming filament color is not clear for filament color change
#define FILAMENT_CHANGE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
#endif
#endif
/******************************************************************************\
* enable this section if you have TMC26X motor drivers.
* you need to import the TMC26XStepper library into the Arduino IDE for this
******************************************************************************/
// @section tmc
//#define HAVE_TMCDRIVER
#if ENABLED(HAVE_TMCDRIVER)
//#define X_IS_TMC
#define X_MAX_CURRENT 1000 //in mA
#define X_SENSE_RESISTOR 91 //in mOhms
#define X_MICROSTEPS 16 //number of microsteps
//#define X2_IS_TMC
#define X2_MAX_CURRENT 1000 //in mA
#define X2_SENSE_RESISTOR 91 //in mOhms
#define X2_MICROSTEPS 16 //number of microsteps
//#define Y_IS_TMC
#define Y_MAX_CURRENT 1000 //in mA
#define Y_SENSE_RESISTOR 91 //in mOhms
#define Y_MICROSTEPS 16 //number of microsteps
//#define Y2_IS_TMC
#define Y2_MAX_CURRENT 1000 //in mA
#define Y2_SENSE_RESISTOR 91 //in mOhms
#define Y2_MICROSTEPS 16 //number of microsteps
//#define Z_IS_TMC
#define Z_MAX_CURRENT 1000 //in mA
#define Z_SENSE_RESISTOR 91 //in mOhms
#define Z_MICROSTEPS 16 //number of microsteps
//#define Z2_IS_TMC
#define Z2_MAX_CURRENT 1000 //in mA
#define Z2_SENSE_RESISTOR 91 //in mOhms
#define Z2_MICROSTEPS 16 //number of microsteps
//#define E0_IS_TMC
#define E0_MAX_CURRENT 1000 //in mA
#define E0_SENSE_RESISTOR 91 //in mOhms
#define E0_MICROSTEPS 16 //number of microsteps
//#define E1_IS_TMC
#define E1_MAX_CURRENT 1000 //in mA
#define E1_SENSE_RESISTOR 91 //in mOhms
#define E1_MICROSTEPS 16 //number of microsteps
//#define E2_IS_TMC
#define E2_MAX_CURRENT 1000 //in mA
#define E2_SENSE_RESISTOR 91 //in mOhms
#define E2_MICROSTEPS 16 //number of microsteps
//#define E3_IS_TMC
#define E3_MAX_CURRENT 1000 //in mA
#define E3_SENSE_RESISTOR 91 //in mOhms
#define E3_MICROSTEPS 16 //number of microsteps
#endif
/******************************************************************************\
* enable this section if you have L6470 motor drivers.
* you need to import the L6470 library into the Arduino IDE for this
******************************************************************************/
// @section l6470
//#define HAVE_L6470DRIVER
#if ENABLED(HAVE_L6470DRIVER)
//#define X_IS_L6470
#define X_MICROSTEPS 16 //number of microsteps
#define X_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define X_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define X_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define X2_IS_L6470
#define X2_MICROSTEPS 16 //number of microsteps
#define X2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define X2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define X2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define Y_IS_L6470
#define Y_MICROSTEPS 16 //number of microsteps
#define Y_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define Y_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define Y_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define Y2_IS_L6470
#define Y2_MICROSTEPS 16 //number of microsteps
#define Y2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define Y2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define Y2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define Z_IS_L6470
#define Z_MICROSTEPS 16 //number of microsteps
#define Z_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define Z_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define Z_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define Z2_IS_L6470
#define Z2_MICROSTEPS 16 //number of microsteps
#define Z2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define Z2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define Z2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define E0_IS_L6470
#define E0_MICROSTEPS 16 //number of microsteps
#define E0_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define E0_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define E0_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define E1_IS_L6470
#define E1_MICROSTEPS 16 //number of microsteps
#define E1_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define E1_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define E1_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define E2_IS_L6470
#define E2_MICROSTEPS 16 //number of microsteps
#define E2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define E2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define E2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define E3_IS_L6470
#define E3_MICROSTEPS 16 //number of microsteps
#define E3_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define E3_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define E3_STALLCURRENT 1500 //current in mA where the driver will detect a stall
#endif
/**
* TWI/I2C BUS
*
* This feature is an EXPERIMENTAL feature so it shall not be used on production
* machines. Enabling this will allow you to send and receive I2C data from slave
* devices on the bus.
*
* ; Example #1
* ; This macro send the string "Marlin" to the slave device with address 0x63 (99)
* ; It uses multiple M155 commands with one B<base 10> arg
* M155 A99 ; Target slave address
* M155 B77 ; M
* M155 B97 ; a
* M155 B114 ; r
* M155 B108 ; l
* M155 B105 ; i
* M155 B110 ; n
* M155 S1 ; Send the current buffer
*
* ; Example #2
* ; Request 6 bytes from slave device with address 0x63 (99)
* M156 A99 B5
*
* ; Example #3
* ; Example serial output of a M156 request
* echo:i2c-reply: from:99 bytes:5 data:hello
*/
// @section i2cbus
//#define EXPERIMENTAL_I2CBUS
#endif // CONFIGURATION_ADV_H
File diff suppressed because it is too large Load Diff
@@ -1,801 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
* Configuration_adv.h
*
* Advanced settings.
* Only change these if you know exactly what you're doing.
* Some of these settings can damage your printer if improperly set!
*
* Basic settings can be found in Configuration.h
*
*/
#ifndef CONFIGURATION_ADV_H
#define CONFIGURATION_ADV_H
/**
*
* ***********************************
* ** ATTENTION TO ALL DEVELOPERS **
* ***********************************
*
* You must increment this version number for every significant change such as,
* but not limited to: ADD, DELETE RENAME OR REPURPOSE any directive/option.
*
* Note: Update also Version.h !
*/
#define CONFIGURATION_ADV_H_VERSION 010100
// @section temperature
//===========================================================================
//=============================Thermal Settings ============================
//===========================================================================
#if DISABLED(PIDTEMPBED)
#define BED_CHECK_INTERVAL 5000 // ms between checks in bang-bang control
#if ENABLED(BED_LIMIT_SWITCHING)
#define BED_HYSTERESIS 2 // Only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
#endif
#endif
/**
* Thermal Protection protects your printer from damage and fire if a
* thermistor falls out or temperature sensors fail in any way.
*
* The issue: If a thermistor falls out or a temperature sensor fails,
* Marlin can no longer sense the actual temperature. Since a disconnected
* thermistor reads as a low temperature, the firmware will keep the heater on.
*
* The solution: Once the temperature reaches the target, start observing.
* If the temperature stays too far below the target (hysteresis) for too long (period),
* the firmware will halt the machine as a safety precaution.
*
* If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
*/
#if ENABLED(THERMAL_PROTECTION_HOTENDS)
#define THERMAL_PROTECTION_PERIOD 40 // Seconds
#define THERMAL_PROTECTION_HYSTERESIS 4 // Degrees Celsius
/**
* Whenever an M104 or M109 increases the target temperature the firmware will wait for the
* WATCH_TEMP_PERIOD to expire, and if the temperature hasn't increased by WATCH_TEMP_INCREASE
* degrees, the machine is halted, requiring a hard reset. This test restarts with any M104/M109,
* but only if the current temperature is far enough below the target for a reliable test.
*
* If you get false positives for "Heating failed" increase WATCH_TEMP_PERIOD and/or decrease WATCH_TEMP_INCREASE
* WATCH_TEMP_INCREASE should not be below 2.
*/
#define WATCH_TEMP_PERIOD 20 // Seconds
#define WATCH_TEMP_INCREASE 2 // Degrees Celsius
#endif
/**
* Thermal Protection parameters for the bed are just as above for hotends.
*/
#if ENABLED(THERMAL_PROTECTION_BED)
#define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds
#define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius
/**
* Whenever an M140 or M190 increases the target temperature the firmware will wait for the
* WATCH_BED_TEMP_PERIOD to expire, and if the temperature hasn't increased by WATCH_BED_TEMP_INCREASE
* degrees, the machine is halted, requiring a hard reset. This test restarts with any M140/M190,
* but only if the current temperature is far enough below the target for a reliable test.
*
* If you get too many "Heating failed" errors, increase WATCH_BED_TEMP_PERIOD and/or decrease
* WATCH_BED_TEMP_INCREASE. (WATCH_BED_TEMP_INCREASE should not be below 2.)
*/
#define WATCH_BED_TEMP_PERIOD 60 // Seconds
#define WATCH_BED_TEMP_INCREASE 2 // Degrees Celsius
#endif
#if ENABLED(PIDTEMP)
// this adds an experimental additional term to the heating power, proportional to the extrusion speed.
// if Kc is chosen well, the additional required power due to increased melting should be compensated.
//#define PID_EXTRUSION_SCALING
#if ENABLED(PID_EXTRUSION_SCALING)
#define DEFAULT_Kc (100) //heating power=Kc*(e_speed)
#define LPQ_MAX_LEN 50
#endif
#endif
/**
* Automatic Temperature:
* The hotend target temperature is calculated by all the buffered lines of gcode.
* The maximum buffered steps/sec of the extruder motor is called "se".
* Start autotemp mode with M109 S<mintemp> B<maxtemp> F<factor>
* The target temperature is set to mintemp+factor*se[steps/sec] and is limited by
* mintemp and maxtemp. Turn this off by executing M109 without F*
* Also, if the temperature is set to a value below mintemp, it will not be changed by autotemp.
* On an Ultimaker, some initial testing worked with M109 S215 B260 F1 in the start.gcode
*/
#define AUTOTEMP
#if ENABLED(AUTOTEMP)
#define AUTOTEMP_OLDWEIGHT 0.98
#endif
//Show Temperature ADC value
//The M105 command return, besides traditional information, the ADC value read from temperature sensors.
//#define SHOW_TEMP_ADC_VALUES
/**
* High Temperature Thermistor Support
*
* Thermistors able to support high temperature tend to have a hard time getting
* good readings at room and lower temperatures. This means HEATER_X_RAW_LO_TEMP
* will probably be caught when the heating element first turns on during the
* preheating process, which will trigger a min_temp_error as a safety measure
* and force stop everything.
* To circumvent this limitation, we allow for a preheat time (during which,
* min_temp_error won't be triggered) and add a min_temp buffer to handle
* aberrant readings.
*
* If you want to enable this feature for your hotend thermistor(s)
* uncomment and set values > 0 in the constants below
*/
// The number of consecutive low temperature errors that can occur
// before a min_temp_error is triggered. (Shouldn't be more than 10.)
//#define MAX_CONSECUTIVE_LOW_TEMPERATURE_ERROR_ALLOWED 0
// The number of milliseconds a hotend will preheat before starting to check
// the temperature. This value should NOT be set to the time it takes the
// hot end to reach the target temperature, but the time it takes to reach
// the minimum temperature your thermistor can read. The lower the better/safer.
// This shouldn't need to be more than 30 seconds (30000)
//#define MILLISECONDS_PREHEAT_TIME 0
// @section extruder
// extruder run-out prevention.
//if the machine is idle, and the temperature over MINTEMP, every couple of SECONDS some filament is extruded
//#define EXTRUDER_RUNOUT_PREVENT
#define EXTRUDER_RUNOUT_MINTEMP 190
#define EXTRUDER_RUNOUT_SECONDS 30
#define EXTRUDER_RUNOUT_ESTEPS 14 // mm filament
#define EXTRUDER_RUNOUT_SPEED 1500 // extrusion speed
#define EXTRUDER_RUNOUT_EXTRUDE 100
// @section temperature
//These defines help to calibrate the AD595 sensor in case you get wrong temperature measurements.
//The measured temperature is defined as "actualTemp = (measuredTemp * TEMP_SENSOR_AD595_GAIN) + TEMP_SENSOR_AD595_OFFSET"
#define TEMP_SENSOR_AD595_OFFSET 0.0
#define TEMP_SENSOR_AD595_GAIN 1.0
//This is for controlling a fan to cool down the stepper drivers
//it will turn on when any driver is enabled
//and turn off after the set amount of seconds from last driver being disabled again
#define CONTROLLERFAN_PIN -1 //Pin used for the fan to cool controller (-1 to disable)
#define CONTROLLERFAN_SECS 60 //How many seconds, after all motors were disabled, the fan should run
#define CONTROLLERFAN_SPEED 255 // == full speed
// When first starting the main fan, run it at full speed for the
// given number of milliseconds. This gets the fan spinning reliably
// before setting a PWM value. (Does not work with software PWM for fan on Sanguinololu)
//#define FAN_KICKSTART_TIME 100
// This defines the minimal speed for the main fan, run in PWM mode
// to enable uncomment and set minimal PWM speed for reliable running (1-255)
// if fan speed is [1 - (FAN_MIN_PWM-1)] it is set to FAN_MIN_PWM
//#define FAN_MIN_PWM 50
// @section extruder
// Extruder cooling fans
// Configure fan pin outputs to automatically turn on/off when the associated
// extruder temperature is above/below EXTRUDER_AUTO_FAN_TEMPERATURE.
// Multiple extruders can be assigned to the same pin in which case
// the fan will turn on when any selected extruder is above the threshold.
#define EXTRUDER_0_AUTO_FAN_PIN -1
#define EXTRUDER_1_AUTO_FAN_PIN -1
#define EXTRUDER_2_AUTO_FAN_PIN -1
#define EXTRUDER_3_AUTO_FAN_PIN -1
#define EXTRUDER_AUTO_FAN_TEMPERATURE 50
#define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed
//===========================================================================
//============================ Mechanical Settings ==========================
//===========================================================================
// @section homing
// If you want endstops to stay on (by default) even when not homing
// enable this option. Override at any time with M120, M121.
//#define ENDSTOPS_ALWAYS_ON_DEFAULT
// @section extras
//#define Z_LATE_ENABLE // Enable Z the last moment. Needed if your Z driver overheats.
// Dual X Steppers
// Uncomment this option to drive two X axis motors.
// The next unused E driver will be assigned to the second X stepper.
//#define X_DUAL_STEPPER_DRIVERS
#if ENABLED(X_DUAL_STEPPER_DRIVERS)
// Set true if the two X motors need to rotate in opposite directions
#define INVERT_X2_VS_X_DIR true
#endif
// Dual Y Steppers
// Uncomment this option to drive two Y axis motors.
// The next unused E driver will be assigned to the second Y stepper.
//#define Y_DUAL_STEPPER_DRIVERS
#if ENABLED(Y_DUAL_STEPPER_DRIVERS)
// Set true if the two Y motors need to rotate in opposite directions
#define INVERT_Y2_VS_Y_DIR true
#endif
// A single Z stepper driver is usually used to drive 2 stepper motors.
// Uncomment this option to use a separate stepper driver for each Z axis motor.
// The next unused E driver will be assigned to the second Z stepper.
//#define Z_DUAL_STEPPER_DRIVERS
#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
// Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
// That way the machine is capable to align the bed during home, since both Z steppers are homed.
// There is also an implementation of M666 (software endstops adjustment) to this feature.
// After Z homing, this adjustment is applied to just one of the steppers in order to align the bed.
// One just need to home the Z axis and measure the distance difference between both Z axis and apply the math: Z adjust = Z - Z2.
// If the Z stepper axis is closer to the bed, the measure Z > Z2 (yes, it is.. think about it) and the Z adjust would be positive.
// Play a little bit with small adjustments (0.5mm) and check the behaviour.
// The M119 (endstops report) will start reporting the Z2 Endstop as well.
//#define Z_DUAL_ENDSTOPS
#if ENABLED(Z_DUAL_ENDSTOPS)
#define Z2_USE_ENDSTOP _XMAX_
#endif
#endif // Z_DUAL_STEPPER_DRIVERS
// Enable this for dual x-carriage printers.
// A dual x-carriage design has the advantage that the inactive extruder can be parked which
// prevents hot-end ooze contaminating the print. It also reduces the weight of each x-carriage
// allowing faster printing speeds. Connect your X2 stepper to the first unused E plug.
//#define DUAL_X_CARRIAGE
#if ENABLED(DUAL_X_CARRIAGE)
// Configuration for second X-carriage
// Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
// the second x-carriage always homes to the maximum endstop.
#define X2_MIN_POS 80 // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
#define X2_MAX_POS 353 // set maximum to the distance between toolheads when both heads are homed
#define X2_HOME_DIR 1 // the second X-carriage always homes to the maximum endstop position
#define X2_HOME_POS X2_MAX_POS // default home position is the maximum carriage position
// However: In this mode the HOTEND_OFFSET_X value for the second extruder provides a software
// override for X2_HOME_POS. This also allow recalibration of the distance between the two endstops
// without modifying the firmware (through the "M218 T1 X???" command).
// Remember: you should set the second extruder x-offset to 0 in your slicer.
// There are a few selectable movement modes for dual x-carriages using M605 S<mode>
// Mode 0: Full control. The slicer has full control over both x-carriages and can achieve optimal travel results
// as long as it supports dual x-carriages. (M605 S0)
// Mode 1: Auto-park mode. The firmware will automatically park and unpark the x-carriages on tool changes so
// that additional slicer support is not required. (M605 S1)
// Mode 2: Duplication mode. The firmware will transparently make the second x-carriage and extruder copy all
// actions of the first x-carriage. This allows the printer to print 2 arbitrary items at
// once. (2nd extruder x offset and temp offset are set using: M605 S2 [Xnnn] [Rmmm])
// This is the default power-up mode which can be later using M605.
#define DEFAULT_DUAL_X_CARRIAGE_MODE 0
// Default settings in "Auto-park Mode"
#define TOOLCHANGE_PARK_ZLIFT 0.2 // the distance to raise Z axis when parking an extruder
#define TOOLCHANGE_UNPARK_ZLIFT 1 // the distance to raise Z axis when unparking an extruder
// Default x offset in duplication mode (typically set to half print bed width)
#define DEFAULT_DUPLICATION_X_OFFSET 100
#endif //DUAL_X_CARRIAGE
// @section homing
//homing hits the endstop, then retracts by this distance, before it tries to slowly bump again:
#define X_HOME_BUMP_MM 5
#define Y_HOME_BUMP_MM 5
#define Z_HOME_BUMP_MM 5 // deltas need the same for all three axis
#define HOMING_BUMP_DIVISOR {10, 10, 10} // Re-Bump Speed Divisor (Divides the Homing Feedrate)
//#define QUICK_HOME //if this is defined, if both x and y are to be homed, a diagonal move will be performed initially.
// When G28 is called, this option will make Y home before X
//#define HOME_Y_BEFORE_X
// @section machine
#define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder
//#define DUAL_NOZZLE_DUPLICATION_MODE
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false
#define INVERT_Y_STEP_PIN false
#define INVERT_Z_STEP_PIN false
#define INVERT_E_STEP_PIN false
// Default stepper release if idle. Set to 0 to deactivate.
// Steppers will shut down DEFAULT_STEPPER_DEACTIVE_TIME seconds after the last move when DISABLE_INACTIVE_? is true.
// Time can be set by M18 and M84.
#define DEFAULT_STEPPER_DEACTIVE_TIME 60
#define DISABLE_INACTIVE_X true
#define DISABLE_INACTIVE_Y true
#define DISABLE_INACTIVE_Z true // set to false if the nozzle will fall down on your printed part when print has finished.
#define DISABLE_INACTIVE_E true
#define DEFAULT_MINIMUMFEEDRATE 0.0 // minimum feedrate
#define DEFAULT_MINTRAVELFEEDRATE 0.0
// @section lcd
#if ENABLED(ULTIPANEL)
#define MANUAL_FEEDRATE_XYZ 50*60
#define MANUAL_FEEDRATE { MANUAL_FEEDRATE_XYZ, MANUAL_FEEDRATE_XYZ, MANUAL_FEEDRATE_XYZ, 60 } // Feedrates for manual moves along X, Y, Z, E from panel
#define ULTIPANEL_FEEDMULTIPLY // Comment to disable setting feedrate multiplier via encoder
#endif
// @section extras
// minimum time in microseconds that a movement needs to take if the buffer is emptied.
#define DEFAULT_MINSEGMENTTIME 20000
// If defined the movements slow down when the look ahead buffer is only half full
// (don't use SLOWDOWN with DELTA because DELTA generates hundreds of segments per second)
//#define SLOWDOWN
// Frequency limit
// See nophead's blog for more info
// Not working O
//#define XY_FREQUENCY_LIMIT 15
// Minimum planner junction speed. Sets the default minimum speed the planner plans for at the end
// of the buffer and all stops. This should not be much greater than zero and should only be changed
// if unwanted behavior is observed on a user's machine when running at very slow speeds.
#define MINIMUM_PLANNER_SPEED 0.05// (mm/sec)
// Microstep setting (Only functional when stepper driver microstep pins are connected to MCU.
#define MICROSTEP_MODES {16,16,16,16,16} // [1,2,4,8,16]
// Motor Current setting (Only functional when motor driver current ref pins are connected to a digital trimpot on supported boards)
#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
// Motor Current controlled via PWM (Overridable on supported boards with PWM-driven motor driver current)
//#define PWM_MOTOR_CURRENT {1300, 1300, 1250} // Values in milliamps
// uncomment to enable an I2C based DIGIPOT like on the Azteeg X3 Pro
//#define DIGIPOT_I2C
// Number of channels available for I2C digipot, For Azteeg X3 Pro we have 8
#define DIGIPOT_I2C_NUM_CHANNELS 8
// actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
#define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0}
//===========================================================================
//=============================Additional Features===========================
//===========================================================================
#define ENCODER_RATE_MULTIPLIER // If defined, certain menu edit operations automatically multiply the steps when the encoder is moved quickly
#define ENCODER_10X_STEPS_PER_SEC 75 // If the encoder steps per sec exceeds this value, multiply steps moved x10 to quickly advance the value
#define ENCODER_100X_STEPS_PER_SEC 160 // If the encoder steps per sec exceeds this value, multiply steps moved x100 to really quickly advance the value
//#define CHDK 4 //Pin for triggering CHDK to take a picture see how to use it here http://captain-slow.dk/2014/03/09/3d-printing-timelapses/
#define CHDK_DELAY 50 //How long in ms the pin should stay HIGH before going LOW again
// @section lcd
// Include a page of printer information in the LCD Main Menu
//#define LCD_INFO_MENU
#if ENABLED(SDSUPPORT)
// Some RAMPS and other boards don't detect when an SD card is inserted. You can work
// around this by connecting a push button or single throw switch to the pin defined
// as SD_DETECT_PIN in your board's pins definitions.
// This setting should be disabled unless you are using a push button, pulling the pin to ground.
// Note: This is always disabled for ULTIPANEL (except ELB_FULL_GRAPHIC_CONTROLLER).
#define SD_DETECT_INVERTED
#define SD_FINISHED_STEPPERRELEASE true //if sd support and the file is finished: disable steppers?
#define SD_FINISHED_RELEASECOMMAND "M84 X Y Z E" // You might want to keep the z enabled so your bed stays in place.
#define SDCARD_RATHERRECENTFIRST //reverse file order of sd card menu display. Its sorted practically after the file system block order.
// if a file is deleted, it frees a block. hence, the order is not purely chronological. To still have auto0.g accessible, there is again the option to do that.
// using:
//#define MENU_ADDAUTOSTART
// Show a progress bar on HD44780 LCDs for SD printing
//#define LCD_PROGRESS_BAR
#if ENABLED(LCD_PROGRESS_BAR)
// Amount of time (ms) to show the bar
#define PROGRESS_BAR_BAR_TIME 2000
// Amount of time (ms) to show the status message
#define PROGRESS_BAR_MSG_TIME 3000
// Amount of time (ms) to retain the status message (0=forever)
#define PROGRESS_MSG_EXPIRE 0
// Enable this to show messages for MSG_TIME then hide them
//#define PROGRESS_MSG_ONCE
#endif
// This allows hosts to request long names for files and folders with M33
//#define LONG_FILENAME_HOST_SUPPORT
// This option allows you to abort SD printing when any endstop is triggered.
// This feature must be enabled with "M540 S1" or from the LCD menu.
// To have any effect, endstops must be enabled during SD printing.
//#define ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED
#endif // SDSUPPORT
// for dogm lcd displays you can choose some additional fonts:
#if ENABLED(DOGLCD)
// save 3120 bytes of PROGMEM by commenting out #define USE_BIG_EDIT_FONT
// we don't have a big font for Cyrillic, Kana
//#define USE_BIG_EDIT_FONT
// If you have spare 2300Byte of progmem and want to use a
// smaller font on the Info-screen uncomment the next line.
//#define USE_SMALL_INFOFONT
#endif // DOGLCD
// @section safety
// The hardware watchdog should reset the microcontroller disabling all outputs,
// in case the firmware gets stuck and doesn't do temperature regulation.
#define USE_WATCHDOG
#if ENABLED(USE_WATCHDOG)
// If you have a watchdog reboot in an ArduinoMega2560 then the device will hang forever, as a watchdog reset will leave the watchdog on.
// The "WATCHDOG_RESET_MANUAL" goes around this by not using the hardware reset.
// However, THIS FEATURE IS UNSAFE!, as it will only work if interrupts are disabled. And the code could hang in an interrupt routine with interrupts disabled.
//#define WATCHDOG_RESET_MANUAL
#endif
// @section lcd
// Babystepping enables the user to control the axis in tiny amounts, independently from the normal printing process
// it can e.g. be used to change z-positions in the print startup phase in real-time
// does not respect endstops!
//#define BABYSTEPPING
#if ENABLED(BABYSTEPPING)
#define BABYSTEP_XY //not only z, but also XY in the menu. more clutter, more functions
//not implemented for deltabots!
#define BABYSTEP_INVERT_Z false //true for inverse movements in Z
#define BABYSTEP_MULTIPLICATOR 1 //faster movements
#endif
// @section extruder
// extruder advance constant (s2/mm3)
//
// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
//
// Hooke's law says: force = k * distance
// Bernoulli's principle says: v ^ 2 / 2 + g . h + pressure / density = constant
// so: v ^ 2 is proportional to number of steps we advance the extruder
//#define ADVANCE
#if ENABLED(ADVANCE)
#define EXTRUDER_ADVANCE_K .0
#define D_FILAMENT 2.85
#endif
// Implementation of a linear pressure control
// Assumption: advance = k * (delta velocity)
// K=0 means advance disabled. A good value for a gregs wade extruder will be around K=75
//#define LIN_ADVANCE
#if ENABLED(LIN_ADVANCE)
#define LIN_ADVANCE_K 75
#endif
// @section leveling
// Default mesh area is an area with an inset margin on the print area.
// Below are the macros that are used to define the borders for the mesh area,
// made available here for specialized needs, ie dual extruder setup.
#if ENABLED(MESH_BED_LEVELING)
#define MESH_MIN_X (X_MIN_POS + MESH_INSET)
#define MESH_MAX_X (X_MAX_POS - (MESH_INSET))
#define MESH_MIN_Y (Y_MIN_POS + MESH_INSET)
#define MESH_MAX_Y (Y_MAX_POS - (MESH_INSET))
#endif
// @section extras
// Arc interpretation settings:
#define ARC_SUPPORT // Disabling this saves ~2738 bytes
#define MM_PER_ARC_SEGMENT 1
#define N_ARC_CORRECTION 25
// Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
//#define BEZIER_CURVE_SUPPORT
const unsigned int dropsegments = 5; //everything with less than this number of steps will be ignored as move and joined with the next movement
// @section temperature
// Control heater 0 and heater 1 in parallel.
//#define HEATERS_PARALLEL
//===========================================================================
//================================= Buffers =================================
//===========================================================================
// @section hidden
// The number of linear motions that can be in the plan at any give time.
// THE BLOCK_BUFFER_SIZE NEEDS TO BE A POWER OF 2, i.g. 8,16,32 because shifts and ors are used to do the ring-buffering.
#if ENABLED(SDSUPPORT)
#define BLOCK_BUFFER_SIZE 16 // SD,LCD,Buttons take more memory, block buffer needs to be smaller
#else
#define BLOCK_BUFFER_SIZE 16 // maximize block buffer
#endif
// @section serial
// The ASCII buffer for serial input
#define MAX_CMD_SIZE 96
#define BUFSIZE 4
// Transfer Buffer Size
// To save 386 bytes of PROGMEM (and TX_BUFFER_SIZE+3 bytes of RAM) set to 0.
// To buffer a simple "ok" you need 4 bytes.
// For ADVANCED_OK (M105) you need 32 bytes.
// For debug-echo: 128 bytes for the optimal speed.
// Other output doesn't need to be that speedy.
// :[0,2,4,8,16,32,64,128,256]
#define TX_BUFFER_SIZE 0
// Enable an emergency-command parser to intercept certain commands as they
// enter the serial receive buffer, so they cannot be blocked.
// Currently handles M108, M112, M410
// Does not work on boards using AT90USB (USBCON) processors!
//#define EMERGENCY_PARSER
// Bad Serial-connections can miss a received command by sending an 'ok'
// Therefore some clients abort after 30 seconds in a timeout.
// Some other clients start sending commands while receiving a 'wait'.
// This "wait" is only sent when the buffer is empty. 1 second is a good value here.
//#define NO_TIMEOUTS 1000 // Milliseconds
// Some clients will have this feature soon. This could make the NO_TIMEOUTS unnecessary.
//#define ADVANCED_OK
// @section fwretract
// Firmware based and LCD controlled retract
// M207 and M208 can be used to define parameters for the retraction.
// The retraction can be called by the slicer using G10 and G11
// until then, intended retractions can be detected by moves that only extrude and the direction.
// the moves are than replaced by the firmware controlled ones.
//#define FWRETRACT //ONLY PARTIALLY TESTED
#if ENABLED(FWRETRACT)
#define MIN_RETRACT 0.1 //minimum extruded mm to accept a automatic gcode retraction attempt
#define RETRACT_LENGTH 3 //default retract length (positive mm)
#define RETRACT_LENGTH_SWAP 13 //default swap retract length (positive mm), for extruder change
#define RETRACT_FEEDRATE 45 //default feedrate for retracting (mm/s)
#define RETRACT_ZLIFT 0 //default retract Z-lift
#define RETRACT_RECOVER_LENGTH 0 //default additional recover length (mm, added to retract length when recovering)
#define RETRACT_RECOVER_LENGTH_SWAP 0 //default additional swap recover length (mm, added to retract length when recovering from extruder change)
#define RETRACT_RECOVER_FEEDRATE 8 //default feedrate for recovering from retraction (mm/s)
#endif
// Add support for experimental filament exchange support M600; requires display
#if ENABLED(ULTIPANEL)
// #define FILAMENT_CHANGE_FEATURE // Enable filament exchange menu and M600 g-code (used for runout sensor too)
#if ENABLED(FILAMENT_CHANGE_FEATURE)
#define FILAMENT_CHANGE_X_POS 3 // X position of hotend
#define FILAMENT_CHANGE_Y_POS 3 // Y position of hotend
#define FILAMENT_CHANGE_Z_ADD 10 // Z addition of hotend (lift)
#define FILAMENT_CHANGE_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
#define FILAMENT_CHANGE_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
#define FILAMENT_CHANGE_RETRACT_LENGTH 2 // Initial retract in mm
// It is a short retract used immediately after print interrupt before move to filament exchange position
#define FILAMENT_CHANGE_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
#define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm
// Longer length for bowden printers to unload filament from whole bowden tube,
// shorter lenght for printers without bowden to unload filament from extruder only,
// 0 to disable unloading for manual unloading
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast
#define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm
// Longer length for bowden printers to fast load filament into whole bowden tube over the hotend,
// Short or zero length for printers without bowden where loading is not used
#define FILAMENT_CHANGE_LOAD_FEEDRATE 10 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast
#define FILAMENT_CHANGE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is load over the hotend,
// 0 to disable for manual extrusion
// Filament can be extruded repeatedly from the filament exchange menu to fill the hotend,
// or until outcoming filament color is not clear for filament color change
#define FILAMENT_CHANGE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
#endif
#endif
/******************************************************************************\
* enable this section if you have TMC26X motor drivers.
* you need to import the TMC26XStepper library into the Arduino IDE for this
******************************************************************************/
// @section tmc
//#define HAVE_TMCDRIVER
#if ENABLED(HAVE_TMCDRIVER)
//#define X_IS_TMC
#define X_MAX_CURRENT 1000 //in mA
#define X_SENSE_RESISTOR 91 //in mOhms
#define X_MICROSTEPS 16 //number of microsteps
//#define X2_IS_TMC
#define X2_MAX_CURRENT 1000 //in mA
#define X2_SENSE_RESISTOR 91 //in mOhms
#define X2_MICROSTEPS 16 //number of microsteps
//#define Y_IS_TMC
#define Y_MAX_CURRENT 1000 //in mA
#define Y_SENSE_RESISTOR 91 //in mOhms
#define Y_MICROSTEPS 16 //number of microsteps
//#define Y2_IS_TMC
#define Y2_MAX_CURRENT 1000 //in mA
#define Y2_SENSE_RESISTOR 91 //in mOhms
#define Y2_MICROSTEPS 16 //number of microsteps
//#define Z_IS_TMC
#define Z_MAX_CURRENT 1000 //in mA
#define Z_SENSE_RESISTOR 91 //in mOhms
#define Z_MICROSTEPS 16 //number of microsteps
//#define Z2_IS_TMC
#define Z2_MAX_CURRENT 1000 //in mA
#define Z2_SENSE_RESISTOR 91 //in mOhms
#define Z2_MICROSTEPS 16 //number of microsteps
//#define E0_IS_TMC
#define E0_MAX_CURRENT 1000 //in mA
#define E0_SENSE_RESISTOR 91 //in mOhms
#define E0_MICROSTEPS 16 //number of microsteps
//#define E1_IS_TMC
#define E1_MAX_CURRENT 1000 //in mA
#define E1_SENSE_RESISTOR 91 //in mOhms
#define E1_MICROSTEPS 16 //number of microsteps
//#define E2_IS_TMC
#define E2_MAX_CURRENT 1000 //in mA
#define E2_SENSE_RESISTOR 91 //in mOhms
#define E2_MICROSTEPS 16 //number of microsteps
//#define E3_IS_TMC
#define E3_MAX_CURRENT 1000 //in mA
#define E3_SENSE_RESISTOR 91 //in mOhms
#define E3_MICROSTEPS 16 //number of microsteps
#endif
/******************************************************************************\
* enable this section if you have L6470 motor drivers.
* you need to import the L6470 library into the Arduino IDE for this
******************************************************************************/
// @section l6470
//#define HAVE_L6470DRIVER
#if ENABLED(HAVE_L6470DRIVER)
//#define X_IS_L6470
#define X_MICROSTEPS 16 //number of microsteps
#define X_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define X_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define X_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define X2_IS_L6470
#define X2_MICROSTEPS 16 //number of microsteps
#define X2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define X2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define X2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define Y_IS_L6470
#define Y_MICROSTEPS 16 //number of microsteps
#define Y_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define Y_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define Y_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define Y2_IS_L6470
#define Y2_MICROSTEPS 16 //number of microsteps
#define Y2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define Y2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define Y2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define Z_IS_L6470
#define Z_MICROSTEPS 16 //number of microsteps
#define Z_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define Z_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define Z_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define Z2_IS_L6470
#define Z2_MICROSTEPS 16 //number of microsteps
#define Z2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define Z2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define Z2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define E0_IS_L6470
#define E0_MICROSTEPS 16 //number of microsteps
#define E0_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define E0_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define E0_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define E1_IS_L6470
#define E1_MICROSTEPS 16 //number of microsteps
#define E1_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define E1_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define E1_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define E2_IS_L6470
#define E2_MICROSTEPS 16 //number of microsteps
#define E2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define E2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define E2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define E3_IS_L6470
#define E3_MICROSTEPS 16 //number of microsteps
#define E3_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define E3_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define E3_STALLCURRENT 1500 //current in mA where the driver will detect a stall
#endif
/**
* TWI/I2C BUS
*
* This feature is an EXPERIMENTAL feature so it shall not be used on production
* machines. Enabling this will allow you to send and receive I2C data from slave
* devices on the bus.
*
* ; Example #1
* ; This macro send the string "Marlin" to the slave device with address 0x63 (99)
* ; It uses multiple M155 commands with one B<base 10> arg
* M155 A99 ; Target slave address
* M155 B77 ; M
* M155 B97 ; a
* M155 B114 ; r
* M155 B108 ; l
* M155 B105 ; i
* M155 B110 ; n
* M155 S1 ; Send the current buffer
*
* ; Example #2
* ; Request 6 bytes from slave device with address 0x63 (99)
* M156 A99 B5
*
* ; Example #3
* ; Example serial output of a M156 request
* echo:i2c-reply: from:99 bytes:5 data:hello
*/
// @section i2cbus
//#define EXPERIMENTAL_I2CBUS
#endif // CONFIGURATION_ADV_H
File diff suppressed because it is too large Load Diff
@@ -1,800 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
* Configuration_adv.h
*
* Advanced settings.
* Only change these if you know exactly what you're doing.
* Some of these settings can damage your printer if improperly set!
*
* Basic settings can be found in Configuration.h
*
*/
#ifndef CONFIGURATION_ADV_H
#define CONFIGURATION_ADV_H
/**
*
* ***********************************
* ** ATTENTION TO ALL DEVELOPERS **
* ***********************************
*
* You must increment this version number for every significant change such as,
* but not limited to: ADD, DELETE RENAME OR REPURPOSE any directive/option.
*
* Note: Update also Version.h !
*/
#define CONFIGURATION_ADV_H_VERSION 010100
// @section temperature
//===========================================================================
//=============================Thermal Settings ============================
//===========================================================================
#if DISABLED(PIDTEMPBED)
#define BED_CHECK_INTERVAL 5000 // ms between checks in bang-bang control
#if ENABLED(BED_LIMIT_SWITCHING)
#define BED_HYSTERESIS 2 // Only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
#endif
#endif
/**
* Thermal Protection protects your printer from damage and fire if a
* thermistor falls out or temperature sensors fail in any way.
*
* The issue: If a thermistor falls out or a temperature sensor fails,
* Marlin can no longer sense the actual temperature. Since a disconnected
* thermistor reads as a low temperature, the firmware will keep the heater on.
*
* The solution: Once the temperature reaches the target, start observing.
* If the temperature stays too far below the target (hysteresis) for too long (period),
* the firmware will halt the machine as a safety precaution.
*
* If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
*/
#if ENABLED(THERMAL_PROTECTION_HOTENDS)
#define THERMAL_PROTECTION_PERIOD 40 // Seconds
#define THERMAL_PROTECTION_HYSTERESIS 4 // Degrees Celsius
/**
* Whenever an M104 or M109 increases the target temperature the firmware will wait for the
* WATCH_TEMP_PERIOD to expire, and if the temperature hasn't increased by WATCH_TEMP_INCREASE
* degrees, the machine is halted, requiring a hard reset. This test restarts with any M104/M109,
* but only if the current temperature is far enough below the target for a reliable test.
*
* If you get false positives for "Heating failed" increase WATCH_TEMP_PERIOD and/or decrease WATCH_TEMP_INCREASE
* WATCH_TEMP_INCREASE should not be below 2.
*/
#define WATCH_TEMP_PERIOD 20 // Seconds
#define WATCH_TEMP_INCREASE 2 // Degrees Celsius
#endif
/**
* Thermal Protection parameters for the bed are just as above for hotends.
*/
#if ENABLED(THERMAL_PROTECTION_BED)
#define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds
#define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius
/**
* Whenever an M140 or M190 increases the target temperature the firmware will wait for the
* WATCH_BED_TEMP_PERIOD to expire, and if the temperature hasn't increased by WATCH_BED_TEMP_INCREASE
* degrees, the machine is halted, requiring a hard reset. This test restarts with any M140/M190,
* but only if the current temperature is far enough below the target for a reliable test.
*
* If you get too many "Heating failed" errors, increase WATCH_BED_TEMP_PERIOD and/or decrease
* WATCH_BED_TEMP_INCREASE. (WATCH_BED_TEMP_INCREASE should not be below 2.)
*/
#define WATCH_BED_TEMP_PERIOD 60 // Seconds
#define WATCH_BED_TEMP_INCREASE 2 // Degrees Celsius
#endif
#if ENABLED(PIDTEMP)
// this adds an experimental additional term to the heating power, proportional to the extrusion speed.
// if Kc is chosen well, the additional required power due to increased melting should be compensated.
//#define PID_EXTRUSION_SCALING
#if ENABLED(PID_EXTRUSION_SCALING)
#define DEFAULT_Kc (100) //heating power=Kc*(e_speed)
#define LPQ_MAX_LEN 50
#endif
#endif
/**
* Automatic Temperature:
* The hotend target temperature is calculated by all the buffered lines of gcode.
* The maximum buffered steps/sec of the extruder motor is called "se".
* Start autotemp mode with M109 S<mintemp> B<maxtemp> F<factor>
* The target temperature is set to mintemp+factor*se[steps/sec] and is limited by
* mintemp and maxtemp. Turn this off by executing M109 without F*
* Also, if the temperature is set to a value below mintemp, it will not be changed by autotemp.
* On an Ultimaker, some initial testing worked with M109 S215 B260 F1 in the start.gcode
*/
#define AUTOTEMP
#if ENABLED(AUTOTEMP)
#define AUTOTEMP_OLDWEIGHT 0.98
#endif
//Show Temperature ADC value
//The M105 command return, besides traditional information, the ADC value read from temperature sensors.
//#define SHOW_TEMP_ADC_VALUES
/**
* High Temperature Thermistor Support
*
* Thermistors able to support high temperature tend to have a hard time getting
* good readings at room and lower temperatures. This means HEATER_X_RAW_LO_TEMP
* will probably be caught when the heating element first turns on during the
* preheating process, which will trigger a min_temp_error as a safety measure
* and force stop everything.
* To circumvent this limitation, we allow for a preheat time (during which,
* min_temp_error won't be triggered) and add a min_temp buffer to handle
* aberrant readings.
*
* If you want to enable this feature for your hotend thermistor(s)
* uncomment and set values > 0 in the constants below
*/
// The number of consecutive low temperature errors that can occur
// before a min_temp_error is triggered. (Shouldn't be more than 10.)
//#define MAX_CONSECUTIVE_LOW_TEMPERATURE_ERROR_ALLOWED 0
// The number of milliseconds a hotend will preheat before starting to check
// the temperature. This value should NOT be set to the time it takes the
// hot end to reach the target temperature, but the time it takes to reach
// the minimum temperature your thermistor can read. The lower the better/safer.
// This shouldn't need to be more than 30 seconds (30000)
//#define MILLISECONDS_PREHEAT_TIME 0
// @section extruder
// extruder run-out prevention.
//if the machine is idle, and the temperature over MINTEMP, every couple of SECONDS some filament is extruded
//#define EXTRUDER_RUNOUT_PREVENT
#define EXTRUDER_RUNOUT_MINTEMP 190
#define EXTRUDER_RUNOUT_SECONDS 30
#define EXTRUDER_RUNOUT_ESTEPS 14 // mm filament
#define EXTRUDER_RUNOUT_SPEED 1500 // extrusion speed
#define EXTRUDER_RUNOUT_EXTRUDE 100
// @section temperature
//These defines help to calibrate the AD595 sensor in case you get wrong temperature measurements.
//The measured temperature is defined as "actualTemp = (measuredTemp * TEMP_SENSOR_AD595_GAIN) + TEMP_SENSOR_AD595_OFFSET"
#define TEMP_SENSOR_AD595_OFFSET 0.0
#define TEMP_SENSOR_AD595_GAIN 1.0
//This is for controlling a fan to cool down the stepper drivers
//it will turn on when any driver is enabled
//and turn off after the set amount of seconds from last driver being disabled again
#define CONTROLLERFAN_PIN -1 //Pin used for the fan to cool controller (-1 to disable)
#define CONTROLLERFAN_SECS 60 //How many seconds, after all motors were disabled, the fan should run
#define CONTROLLERFAN_SPEED 255 // == full speed
// When first starting the main fan, run it at full speed for the
// given number of milliseconds. This gets the fan spinning reliably
// before setting a PWM value. (Does not work with software PWM for fan on Sanguinololu)
//#define FAN_KICKSTART_TIME 100
// This defines the minimal speed for the main fan, run in PWM mode
// to enable uncomment and set minimal PWM speed for reliable running (1-255)
// if fan speed is [1 - (FAN_MIN_PWM-1)] it is set to FAN_MIN_PWM
//#define FAN_MIN_PWM 50
// @section extruder
// Extruder cooling fans
// Configure fan pin outputs to automatically turn on/off when the associated
// extruder temperature is above/below EXTRUDER_AUTO_FAN_TEMPERATURE.
// Multiple extruders can be assigned to the same pin in which case
// the fan will turn on when any selected extruder is above the threshold.
#define EXTRUDER_0_AUTO_FAN_PIN -1
#define EXTRUDER_1_AUTO_FAN_PIN -1
#define EXTRUDER_2_AUTO_FAN_PIN -1
#define EXTRUDER_3_AUTO_FAN_PIN -1
#define EXTRUDER_AUTO_FAN_TEMPERATURE 50
#define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed
//===========================================================================
//============================ Mechanical Settings ==========================
//===========================================================================
// @section homing
// If you want endstops to stay on (by default) even when not homing
// enable this option. Override at any time with M120, M121.
//#define ENDSTOPS_ALWAYS_ON_DEFAULT
// @section extras
//#define Z_LATE_ENABLE // Enable Z the last moment. Needed if your Z driver overheats.
// Dual X Steppers
// Uncomment this option to drive two X axis motors.
// The next unused E driver will be assigned to the second X stepper.
//#define X_DUAL_STEPPER_DRIVERS
#if ENABLED(X_DUAL_STEPPER_DRIVERS)
// Set true if the two X motors need to rotate in opposite directions
#define INVERT_X2_VS_X_DIR true
#endif
// Dual Y Steppers
// Uncomment this option to drive two Y axis motors.
// The next unused E driver will be assigned to the second Y stepper.
//#define Y_DUAL_STEPPER_DRIVERS
#if ENABLED(Y_DUAL_STEPPER_DRIVERS)
// Set true if the two Y motors need to rotate in opposite directions
#define INVERT_Y2_VS_Y_DIR true
#endif
// A single Z stepper driver is usually used to drive 2 stepper motors.
// Uncomment this option to use a separate stepper driver for each Z axis motor.
// The next unused E driver will be assigned to the second Z stepper.
//#define Z_DUAL_STEPPER_DRIVERS
#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
// Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
// That way the machine is capable to align the bed during home, since both Z steppers are homed.
// There is also an implementation of M666 (software endstops adjustment) to this feature.
// After Z homing, this adjustment is applied to just one of the steppers in order to align the bed.
// One just need to home the Z axis and measure the distance difference between both Z axis and apply the math: Z adjust = Z - Z2.
// If the Z stepper axis is closer to the bed, the measure Z > Z2 (yes, it is.. think about it) and the Z adjust would be positive.
// Play a little bit with small adjustments (0.5mm) and check the behaviour.
// The M119 (endstops report) will start reporting the Z2 Endstop as well.
//#define Z_DUAL_ENDSTOPS
#if ENABLED(Z_DUAL_ENDSTOPS)
#define Z2_USE_ENDSTOP _XMAX_
#endif
#endif // Z_DUAL_STEPPER_DRIVERS
// Enable this for dual x-carriage printers.
// A dual x-carriage design has the advantage that the inactive extruder can be parked which
// prevents hot-end ooze contaminating the print. It also reduces the weight of each x-carriage
// allowing faster printing speeds. Connect your X2 stepper to the first unused E plug.
//#define DUAL_X_CARRIAGE
#if ENABLED(DUAL_X_CARRIAGE)
// Configuration for second X-carriage
// Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
// the second x-carriage always homes to the maximum endstop.
#define X2_MIN_POS 80 // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
#define X2_MAX_POS 353 // set maximum to the distance between toolheads when both heads are homed
#define X2_HOME_DIR 1 // the second X-carriage always homes to the maximum endstop position
#define X2_HOME_POS X2_MAX_POS // default home position is the maximum carriage position
// However: In this mode the HOTEND_OFFSET_X value for the second extruder provides a software
// override for X2_HOME_POS. This also allow recalibration of the distance between the two endstops
// without modifying the firmware (through the "M218 T1 X???" command).
// Remember: you should set the second extruder x-offset to 0 in your slicer.
// There are a few selectable movement modes for dual x-carriages using M605 S<mode>
// Mode 0: Full control. The slicer has full control over both x-carriages and can achieve optimal travel results
// as long as it supports dual x-carriages. (M605 S0)
// Mode 1: Auto-park mode. The firmware will automatically park and unpark the x-carriages on tool changes so
// that additional slicer support is not required. (M605 S1)
// Mode 2: Duplication mode. The firmware will transparently make the second x-carriage and extruder copy all
// actions of the first x-carriage. This allows the printer to print 2 arbitrary items at
// once. (2nd extruder x offset and temp offset are set using: M605 S2 [Xnnn] [Rmmm])
// This is the default power-up mode which can be later using M605.
#define DEFAULT_DUAL_X_CARRIAGE_MODE 0
// Default settings in "Auto-park Mode"
#define TOOLCHANGE_PARK_ZLIFT 0.2 // the distance to raise Z axis when parking an extruder
#define TOOLCHANGE_UNPARK_ZLIFT 1 // the distance to raise Z axis when unparking an extruder
// Default x offset in duplication mode (typically set to half print bed width)
#define DEFAULT_DUPLICATION_X_OFFSET 100
#endif //DUAL_X_CARRIAGE
// @section homing
//homing hits the endstop, then retracts by this distance, before it tries to slowly bump again:
#define X_HOME_BUMP_MM 5
#define Y_HOME_BUMP_MM 5
#define Z_HOME_BUMP_MM 5 // deltas need the same for all three axis
#define HOMING_BUMP_DIVISOR {10, 10, 10} // Re-Bump Speed Divisor (Divides the Homing Feedrate)
//#define QUICK_HOME //if this is defined, if both x and y are to be homed, a diagonal move will be performed initially.
// When G28 is called, this option will make Y home before X
//#define HOME_Y_BEFORE_X
// @section machine
#define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder
//#define DUAL_NOZZLE_DUPLICATION_MODE
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false
#define INVERT_Y_STEP_PIN false
#define INVERT_Z_STEP_PIN false
#define INVERT_E_STEP_PIN false
// Default stepper release if idle. Set to 0 to deactivate.
// Steppers will shut down DEFAULT_STEPPER_DEACTIVE_TIME seconds after the last move when DISABLE_INACTIVE_? is true.
// Time can be set by M18 and M84.
#define DEFAULT_STEPPER_DEACTIVE_TIME 60
#define DISABLE_INACTIVE_X true
#define DISABLE_INACTIVE_Y true
#define DISABLE_INACTIVE_Z true // set to false if the nozzle will fall down on your printed part when print has finished.
#define DISABLE_INACTIVE_E true
#define DEFAULT_MINIMUMFEEDRATE 0.0 // minimum feedrate
#define DEFAULT_MINTRAVELFEEDRATE 0.0
// @section lcd
#if ENABLED(ULTIPANEL)
#define MANUAL_FEEDRATE_XYZ 50*60
#define MANUAL_FEEDRATE { MANUAL_FEEDRATE_XYZ, MANUAL_FEEDRATE_XYZ, MANUAL_FEEDRATE_XYZ, 60 } // Feedrates for manual moves along X, Y, Z, E from panel
#define ULTIPANEL_FEEDMULTIPLY // Comment to disable setting feedrate multiplier via encoder
#endif
// @section extras
// minimum time in microseconds that a movement needs to take if the buffer is emptied.
#define DEFAULT_MINSEGMENTTIME 20000
// If defined the movements slow down when the look ahead buffer is only half full
//#define SLOWDOWN
// Frequency limit
// See nophead's blog for more info
// Not working O
//#define XY_FREQUENCY_LIMIT 15
// Minimum planner junction speed. Sets the default minimum speed the planner plans for at the end
// of the buffer and all stops. This should not be much greater than zero and should only be changed
// if unwanted behavior is observed on a user's machine when running at very slow speeds.
#define MINIMUM_PLANNER_SPEED 0.05// (mm/sec)
// Microstep setting (Only functional when stepper driver microstep pins are connected to MCU.
#define MICROSTEP_MODES {16,16,16,16,16} // [1,2,4,8,16]
// Motor Current setting (Only functional when motor driver current ref pins are connected to a digital trimpot on supported boards)
#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
// Motor Current controlled via PWM (Overridable on supported boards with PWM-driven motor driver current)
//#define PWM_MOTOR_CURRENT {1300, 1300, 1250} // Values in milliamps
// uncomment to enable an I2C based DIGIPOT like on the Azteeg X3 Pro
//#define DIGIPOT_I2C
// Number of channels available for I2C digipot, For Azteeg X3 Pro we have 8
#define DIGIPOT_I2C_NUM_CHANNELS 8
// actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
#define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0}
//===========================================================================
//=============================Additional Features===========================
//===========================================================================
#define ENCODER_RATE_MULTIPLIER // If defined, certain menu edit operations automatically multiply the steps when the encoder is moved quickly
#define ENCODER_10X_STEPS_PER_SEC 75 // If the encoder steps per sec exceeds this value, multiply steps moved x10 to quickly advance the value
#define ENCODER_100X_STEPS_PER_SEC 160 // If the encoder steps per sec exceeds this value, multiply steps moved x100 to really quickly advance the value
//#define CHDK 4 //Pin for triggering CHDK to take a picture see how to use it here http://captain-slow.dk/2014/03/09/3d-printing-timelapses/
#define CHDK_DELAY 50 //How long in ms the pin should stay HIGH before going LOW again
// @section lcd
// Include a page of printer information in the LCD Main Menu
//#define LCD_INFO_MENU
#if ENABLED(SDSUPPORT)
// Some RAMPS and other boards don't detect when an SD card is inserted. You can work
// around this by connecting a push button or single throw switch to the pin defined
// as SD_DETECT_PIN in your board's pins definitions.
// This setting should be disabled unless you are using a push button, pulling the pin to ground.
// Note: This is always disabled for ULTIPANEL (except ELB_FULL_GRAPHIC_CONTROLLER).
#define SD_DETECT_INVERTED
#define SD_FINISHED_STEPPERRELEASE true //if sd support and the file is finished: disable steppers?
#define SD_FINISHED_RELEASECOMMAND "M84 X Y Z E" // You might want to keep the z enabled so your bed stays in place.
#define SDCARD_RATHERRECENTFIRST //reverse file order of sd card menu display. Its sorted practically after the file system block order.
// if a file is deleted, it frees a block. hence, the order is not purely chronological. To still have auto0.g accessible, there is again the option to do that.
// using:
//#define MENU_ADDAUTOSTART
// Show a progress bar on HD44780 LCDs for SD printing
//#define LCD_PROGRESS_BAR
#if ENABLED(LCD_PROGRESS_BAR)
// Amount of time (ms) to show the bar
#define PROGRESS_BAR_BAR_TIME 2000
// Amount of time (ms) to show the status message
#define PROGRESS_BAR_MSG_TIME 3000
// Amount of time (ms) to retain the status message (0=forever)
#define PROGRESS_MSG_EXPIRE 0
// Enable this to show messages for MSG_TIME then hide them
//#define PROGRESS_MSG_ONCE
#endif
// This allows hosts to request long names for files and folders with M33
//#define LONG_FILENAME_HOST_SUPPORT
// This option allows you to abort SD printing when any endstop is triggered.
// This feature must be enabled with "M540 S1" or from the LCD menu.
// To have any effect, endstops must be enabled during SD printing.
//#define ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED
#endif // SDSUPPORT
// for dogm lcd displays you can choose some additional fonts:
#if ENABLED(DOGLCD)
// save 3120 bytes of PROGMEM by commenting out #define USE_BIG_EDIT_FONT
// we don't have a big font for Cyrillic, Kana
//#define USE_BIG_EDIT_FONT
// If you have spare 2300Byte of progmem and want to use a
// smaller font on the Info-screen uncomment the next line.
//#define USE_SMALL_INFOFONT
#endif // DOGLCD
// @section safety
// The hardware watchdog should reset the microcontroller disabling all outputs,
// in case the firmware gets stuck and doesn't do temperature regulation.
#define USE_WATCHDOG
#if ENABLED(USE_WATCHDOG)
// If you have a watchdog reboot in an ArduinoMega2560 then the device will hang forever, as a watchdog reset will leave the watchdog on.
// The "WATCHDOG_RESET_MANUAL" goes around this by not using the hardware reset.
// However, THIS FEATURE IS UNSAFE!, as it will only work if interrupts are disabled. And the code could hang in an interrupt routine with interrupts disabled.
//#define WATCHDOG_RESET_MANUAL
#endif
// @section lcd
// Babystepping enables the user to control the axis in tiny amounts, independently from the normal printing process
// it can e.g. be used to change z-positions in the print startup phase in real-time
// does not respect endstops!
//#define BABYSTEPPING
#if ENABLED(BABYSTEPPING)
#define BABYSTEP_XY //not only z, but also XY in the menu. more clutter, more functions
//not implemented for deltabots!
#define BABYSTEP_INVERT_Z false //true for inverse movements in Z
#define BABYSTEP_MULTIPLICATOR 1 //faster movements
#endif
// @section extruder
// extruder advance constant (s2/mm3)
//
// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
//
// Hooke's law says: force = k * distance
// Bernoulli's principle says: v ^ 2 / 2 + g . h + pressure / density = constant
// so: v ^ 2 is proportional to number of steps we advance the extruder
//#define ADVANCE
#if ENABLED(ADVANCE)
#define EXTRUDER_ADVANCE_K .0
#define D_FILAMENT 2.85
#endif
// Implementation of a linear pressure control
// Assumption: advance = k * (delta velocity)
// K=0 means advance disabled. A good value for a gregs wade extruder will be around K=75
//#define LIN_ADVANCE
#if ENABLED(LIN_ADVANCE)
#define LIN_ADVANCE_K 75
#endif
// @section leveling
// Default mesh area is an area with an inset margin on the print area.
// Below are the macros that are used to define the borders for the mesh area,
// made available here for specialized needs, ie dual extruder setup.
#if ENABLED(MESH_BED_LEVELING)
#define MESH_MIN_X (X_MIN_POS + MESH_INSET)
#define MESH_MAX_X (X_MAX_POS - (MESH_INSET))
#define MESH_MIN_Y (Y_MIN_POS + MESH_INSET)
#define MESH_MAX_Y (Y_MAX_POS - (MESH_INSET))
#endif
// @section extras
// Arc interpretation settings:
#define ARC_SUPPORT // Disabling this saves ~2738 bytes
#define MM_PER_ARC_SEGMENT 1
#define N_ARC_CORRECTION 25
// Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
//#define BEZIER_CURVE_SUPPORT
const unsigned int dropsegments = 5; //everything with less than this number of steps will be ignored as move and joined with the next movement
// @section temperature
// Control heater 0 and heater 1 in parallel.
//#define HEATERS_PARALLEL
//===========================================================================
//================================= Buffers =================================
//===========================================================================
// @section hidden
// The number of linear motions that can be in the plan at any give time.
// THE BLOCK_BUFFER_SIZE NEEDS TO BE A POWER OF 2, i.g. 8,16,32 because shifts and ors are used to do the ring-buffering.
#if ENABLED(SDSUPPORT)
#define BLOCK_BUFFER_SIZE 16 // SD,LCD,Buttons take more memory, block buffer needs to be smaller
#else
#define BLOCK_BUFFER_SIZE 16 // maximize block buffer
#endif
// @section serial
// The ASCII buffer for serial input
#define MAX_CMD_SIZE 96
#define BUFSIZE 4
// Transfer Buffer Size
// To save 386 bytes of PROGMEM (and TX_BUFFER_SIZE+3 bytes of RAM) set to 0.
// To buffer a simple "ok" you need 4 bytes.
// For ADVANCED_OK (M105) you need 32 bytes.
// For debug-echo: 128 bytes for the optimal speed.
// Other output doesn't need to be that speedy.
// :[0,2,4,8,16,32,64,128,256]
#define TX_BUFFER_SIZE 0
// Enable an emergency-command parser to intercept certain commands as they
// enter the serial receive buffer, so they cannot be blocked.
// Currently handles M108, M112, M410
// Does not work on boards using AT90USB (USBCON) processors!
//#define EMERGENCY_PARSER
// Bad Serial-connections can miss a received command by sending an 'ok'
// Therefore some clients abort after 30 seconds in a timeout.
// Some other clients start sending commands while receiving a 'wait'.
// This "wait" is only sent when the buffer is empty. 1 second is a good value here.
//#define NO_TIMEOUTS 1000 // Milliseconds
// Some clients will have this feature soon. This could make the NO_TIMEOUTS unnecessary.
//#define ADVANCED_OK
// @section fwretract
// Firmware based and LCD controlled retract
// M207 and M208 can be used to define parameters for the retraction.
// The retraction can be called by the slicer using G10 and G11
// until then, intended retractions can be detected by moves that only extrude and the direction.
// the moves are than replaced by the firmware controlled ones.
//#define FWRETRACT //ONLY PARTIALLY TESTED
#if ENABLED(FWRETRACT)
#define MIN_RETRACT 0.1 //minimum extruded mm to accept a automatic gcode retraction attempt
#define RETRACT_LENGTH 3 //default retract length (positive mm)
#define RETRACT_LENGTH_SWAP 13 //default swap retract length (positive mm), for extruder change
#define RETRACT_FEEDRATE 45 //default feedrate for retracting (mm/s)
#define RETRACT_ZLIFT 0 //default retract Z-lift
#define RETRACT_RECOVER_LENGTH 0 //default additional recover length (mm, added to retract length when recovering)
#define RETRACT_RECOVER_LENGTH_SWAP 0 //default additional swap recover length (mm, added to retract length when recovering from extruder change)
#define RETRACT_RECOVER_FEEDRATE 8 //default feedrate for recovering from retraction (mm/s)
#endif
// Add support for experimental filament exchange support M600; requires display
#if ENABLED(ULTIPANEL)
// #define FILAMENT_CHANGE_FEATURE // Enable filament exchange menu and M600 g-code (used for runout sensor too)
#if ENABLED(FILAMENT_CHANGE_FEATURE)
#define FILAMENT_CHANGE_X_POS 3 // X position of hotend
#define FILAMENT_CHANGE_Y_POS 3 // Y position of hotend
#define FILAMENT_CHANGE_Z_ADD 10 // Z addition of hotend (lift)
#define FILAMENT_CHANGE_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
#define FILAMENT_CHANGE_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
#define FILAMENT_CHANGE_RETRACT_LENGTH 2 // Initial retract in mm
// It is a short retract used immediately after print interrupt before move to filament exchange position
#define FILAMENT_CHANGE_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
#define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm
// Longer length for bowden printers to unload filament from whole bowden tube,
// shorter lenght for printers without bowden to unload filament from extruder only,
// 0 to disable unloading for manual unloading
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast
#define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm
// Longer length for bowden printers to fast load filament into whole bowden tube over the hotend,
// Short or zero length for printers without bowden where loading is not used
#define FILAMENT_CHANGE_LOAD_FEEDRATE 10 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast
#define FILAMENT_CHANGE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is load over the hotend,
// 0 to disable for manual extrusion
// Filament can be extruded repeatedly from the filament exchange menu to fill the hotend,
// or until outcoming filament color is not clear for filament color change
#define FILAMENT_CHANGE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
#endif
#endif
/******************************************************************************\
* enable this section if you have TMC26X motor drivers.
* you need to import the TMC26XStepper library into the Arduino IDE for this
******************************************************************************/
// @section tmc
//#define HAVE_TMCDRIVER
#if ENABLED(HAVE_TMCDRIVER)
//#define X_IS_TMC
#define X_MAX_CURRENT 1000 //in mA
#define X_SENSE_RESISTOR 91 //in mOhms
#define X_MICROSTEPS 16 //number of microsteps
//#define X2_IS_TMC
#define X2_MAX_CURRENT 1000 //in mA
#define X2_SENSE_RESISTOR 91 //in mOhms
#define X2_MICROSTEPS 16 //number of microsteps
//#define Y_IS_TMC
#define Y_MAX_CURRENT 1000 //in mA
#define Y_SENSE_RESISTOR 91 //in mOhms
#define Y_MICROSTEPS 16 //number of microsteps
//#define Y2_IS_TMC
#define Y2_MAX_CURRENT 1000 //in mA
#define Y2_SENSE_RESISTOR 91 //in mOhms
#define Y2_MICROSTEPS 16 //number of microsteps
//#define Z_IS_TMC
#define Z_MAX_CURRENT 1000 //in mA
#define Z_SENSE_RESISTOR 91 //in mOhms
#define Z_MICROSTEPS 16 //number of microsteps
//#define Z2_IS_TMC
#define Z2_MAX_CURRENT 1000 //in mA
#define Z2_SENSE_RESISTOR 91 //in mOhms
#define Z2_MICROSTEPS 16 //number of microsteps
//#define E0_IS_TMC
#define E0_MAX_CURRENT 1000 //in mA
#define E0_SENSE_RESISTOR 91 //in mOhms
#define E0_MICROSTEPS 16 //number of microsteps
//#define E1_IS_TMC
#define E1_MAX_CURRENT 1000 //in mA
#define E1_SENSE_RESISTOR 91 //in mOhms
#define E1_MICROSTEPS 16 //number of microsteps
//#define E2_IS_TMC
#define E2_MAX_CURRENT 1000 //in mA
#define E2_SENSE_RESISTOR 91 //in mOhms
#define E2_MICROSTEPS 16 //number of microsteps
//#define E3_IS_TMC
#define E3_MAX_CURRENT 1000 //in mA
#define E3_SENSE_RESISTOR 91 //in mOhms
#define E3_MICROSTEPS 16 //number of microsteps
#endif
/******************************************************************************\
* enable this section if you have L6470 motor drivers.
* you need to import the L6470 library into the Arduino IDE for this
******************************************************************************/
// @section l6470
//#define HAVE_L6470DRIVER
#if ENABLED(HAVE_L6470DRIVER)
//#define X_IS_L6470
#define X_MICROSTEPS 16 //number of microsteps
#define X_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define X_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define X_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define X2_IS_L6470
#define X2_MICROSTEPS 16 //number of microsteps
#define X2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define X2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define X2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define Y_IS_L6470
#define Y_MICROSTEPS 16 //number of microsteps
#define Y_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define Y_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define Y_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define Y2_IS_L6470
#define Y2_MICROSTEPS 16 //number of microsteps
#define Y2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define Y2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define Y2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define Z_IS_L6470
#define Z_MICROSTEPS 16 //number of microsteps
#define Z_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define Z_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define Z_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define Z2_IS_L6470
#define Z2_MICROSTEPS 16 //number of microsteps
#define Z2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define Z2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define Z2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define E0_IS_L6470
#define E0_MICROSTEPS 16 //number of microsteps
#define E0_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define E0_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define E0_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define E1_IS_L6470
#define E1_MICROSTEPS 16 //number of microsteps
#define E1_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define E1_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define E1_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define E2_IS_L6470
#define E2_MICROSTEPS 16 //number of microsteps
#define E2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define E2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define E2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define E3_IS_L6470
#define E3_MICROSTEPS 16 //number of microsteps
#define E3_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define E3_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define E3_STALLCURRENT 1500 //current in mA where the driver will detect a stall
#endif
/**
* TWI/I2C BUS
*
* This feature is an EXPERIMENTAL feature so it shall not be used on production
* machines. Enabling this will allow you to send and receive I2C data from slave
* devices on the bus.
*
* ; Example #1
* ; This macro send the string "Marlin" to the slave device with address 0x63 (99)
* ; It uses multiple M155 commands with one B<base 10> arg
* M155 A99 ; Target slave address
* M155 B77 ; M
* M155 B97 ; a
* M155 B114 ; r
* M155 B108 ; l
* M155 B105 ; i
* M155 B110 ; n
* M155 S1 ; Send the current buffer
*
* ; Example #2
* ; Request 6 bytes from slave device with address 0x63 (99)
* M156 A99 B5
*
* ; Example #3
* ; Example serial output of a M156 request
* echo:i2c-reply: from:99 bytes:5 data:hello
*/
// @section i2cbus
//#define EXPERIMENTAL_I2CBUS
#endif // CONFIGURATION_ADV_H
File diff suppressed because it is too large Load Diff
@@ -1,805 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
// Example configuration file for OpenBeam Kossel Pro
// tested on 2015-05-19 by @Wackerbarth
// using Arduino 1.6.5 (Mac)
/**
* Configuration_adv.h
*
* Advanced settings.
* Only change these if you know exactly what you're doing.
* Some of these settings can damage your printer if improperly set!
*
* Basic settings can be found in Configuration.h
*
*/
#ifndef CONFIGURATION_ADV_H
#define CONFIGURATION_ADV_H
/**
*
* ***********************************
* ** ATTENTION TO ALL DEVELOPERS **
* ***********************************
*
* You must increment this version number for every significant change such as,
* but not limited to: ADD, DELETE RENAME OR REPURPOSE any directive/option.
*
* Note: Update also Version.h !
*/
#define CONFIGURATION_ADV_H_VERSION 010100
// @section temperature
//===========================================================================
//=============================Thermal Settings ============================
//===========================================================================
#if DISABLED(PIDTEMPBED)
#define BED_CHECK_INTERVAL 5000 // ms between checks in bang-bang control
#if ENABLED(BED_LIMIT_SWITCHING)
#define BED_HYSTERESIS 2 // Only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
#endif
#endif
/**
* Thermal Protection protects your printer from damage and fire if a
* thermistor falls out or temperature sensors fail in any way.
*
* The issue: If a thermistor falls out or a temperature sensor fails,
* Marlin can no longer sense the actual temperature. Since a disconnected
* thermistor reads as a low temperature, the firmware will keep the heater on.
*
* The solution: Once the temperature reaches the target, start observing.
* If the temperature stays too far below the target (hysteresis) for too long (period),
* the firmware will halt the machine as a safety precaution.
*
* If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
*/
#if ENABLED(THERMAL_PROTECTION_HOTENDS)
#define THERMAL_PROTECTION_PERIOD 40 // Seconds
#define THERMAL_PROTECTION_HYSTERESIS 4 // Degrees Celsius
/**
* Whenever an M104 or M109 increases the target temperature the firmware will wait for the
* WATCH_TEMP_PERIOD to expire, and if the temperature hasn't increased by WATCH_TEMP_INCREASE
* degrees, the machine is halted, requiring a hard reset. This test restarts with any M104/M109,
* but only if the current temperature is far enough below the target for a reliable test.
*
* If you get false positives for "Heating failed" increase WATCH_TEMP_PERIOD and/or decrease WATCH_TEMP_INCREASE
* WATCH_TEMP_INCREASE should not be below 2.
*/
#define WATCH_TEMP_PERIOD 20 // Seconds
#define WATCH_TEMP_INCREASE 2 // Degrees Celsius
#endif
/**
* Thermal Protection parameters for the bed are just as above for hotends.
*/
#if ENABLED(THERMAL_PROTECTION_BED)
#define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds
#define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius
/**
* Whenever an M140 or M190 increases the target temperature the firmware will wait for the
* WATCH_BED_TEMP_PERIOD to expire, and if the temperature hasn't increased by WATCH_BED_TEMP_INCREASE
* degrees, the machine is halted, requiring a hard reset. This test restarts with any M140/M190,
* but only if the current temperature is far enough below the target for a reliable test.
*
* If you get too many "Heating failed" errors, increase WATCH_BED_TEMP_PERIOD and/or decrease
* WATCH_BED_TEMP_INCREASE. (WATCH_BED_TEMP_INCREASE should not be below 2.)
*/
#define WATCH_BED_TEMP_PERIOD 60 // Seconds
#define WATCH_BED_TEMP_INCREASE 2 // Degrees Celsius
#endif
#if ENABLED(PIDTEMP)
// this adds an experimental additional term to the heating power, proportional to the extrusion speed.
// if Kc is chosen well, the additional required power due to increased melting should be compensated.
//#define PID_EXTRUSION_SCALING
#if ENABLED(PID_EXTRUSION_SCALING)
#define DEFAULT_Kc (100) //heating power=Kc*(e_speed)
#define LPQ_MAX_LEN 50
#endif
#endif
/**
* Automatic Temperature:
* The hotend target temperature is calculated by all the buffered lines of gcode.
* The maximum buffered steps/sec of the extruder motor is called "se".
* Start autotemp mode with M109 S<mintemp> B<maxtemp> F<factor>
* The target temperature is set to mintemp+factor*se[steps/sec] and is limited by
* mintemp and maxtemp. Turn this off by executing M109 without F*
* Also, if the temperature is set to a value below mintemp, it will not be changed by autotemp.
* On an Ultimaker, some initial testing worked with M109 S215 B260 F1 in the start.gcode
*/
#define AUTOTEMP
#if ENABLED(AUTOTEMP)
#define AUTOTEMP_OLDWEIGHT 0.98
#endif
//Show Temperature ADC value
//The M105 command return, besides traditional information, the ADC value read from temperature sensors.
//#define SHOW_TEMP_ADC_VALUES
/**
* High Temperature Thermistor Support
*
* Thermistors able to support high temperature tend to have a hard time getting
* good readings at room and lower temperatures. This means HEATER_X_RAW_LO_TEMP
* will probably be caught when the heating element first turns on during the
* preheating process, which will trigger a min_temp_error as a safety measure
* and force stop everything.
* To circumvent this limitation, we allow for a preheat time (during which,
* min_temp_error won't be triggered) and add a min_temp buffer to handle
* aberrant readings.
*
* If you want to enable this feature for your hotend thermistor(s)
* uncomment and set values > 0 in the constants below
*/
// The number of consecutive low temperature errors that can occur
// before a min_temp_error is triggered. (Shouldn't be more than 10.)
//#define MAX_CONSECUTIVE_LOW_TEMPERATURE_ERROR_ALLOWED 0
// The number of milliseconds a hotend will preheat before starting to check
// the temperature. This value should NOT be set to the time it takes the
// hot end to reach the target temperature, but the time it takes to reach
// the minimum temperature your thermistor can read. The lower the better/safer.
// This shouldn't need to be more than 30 seconds (30000)
//#define MILLISECONDS_PREHEAT_TIME 0
// @section extruder
// extruder run-out prevention.
//if the machine is idle, and the temperature over MINTEMP, every couple of SECONDS some filament is extruded
//#define EXTRUDER_RUNOUT_PREVENT
#define EXTRUDER_RUNOUT_MINTEMP 190
#define EXTRUDER_RUNOUT_SECONDS 30
#define EXTRUDER_RUNOUT_ESTEPS 14 // mm filament
#define EXTRUDER_RUNOUT_SPEED 1500 // extrusion speed
#define EXTRUDER_RUNOUT_EXTRUDE 100
// @section temperature
//These defines help to calibrate the AD595 sensor in case you get wrong temperature measurements.
//The measured temperature is defined as "actualTemp = (measuredTemp * TEMP_SENSOR_AD595_GAIN) + TEMP_SENSOR_AD595_OFFSET"
#define TEMP_SENSOR_AD595_OFFSET 0.0
#define TEMP_SENSOR_AD595_GAIN 1.0
//This is for controlling a fan to cool down the stepper drivers
//it will turn on when any driver is enabled
//and turn off after the set amount of seconds from last driver being disabled again
#define CONTROLLERFAN_PIN -1 //Pin used for the fan to cool controller (-1 to disable)
#define CONTROLLERFAN_SECS 60 //How many seconds, after all motors were disabled, the fan should run
#define CONTROLLERFAN_SPEED 255 // == full speed
// When first starting the main fan, run it at full speed for the
// given number of milliseconds. This gets the fan spinning reliably
// before setting a PWM value. (Does not work with software PWM for fan on Sanguinololu)
//#define FAN_KICKSTART_TIME 100
// This defines the minimal speed for the main fan, run in PWM mode
// to enable uncomment and set minimal PWM speed for reliable running (1-255)
// if fan speed is [1 - (FAN_MIN_PWM-1)] it is set to FAN_MIN_PWM
//#define FAN_MIN_PWM 50
// @section extruder
// Extruder cooling fans
// Configure fan pin outputs to automatically turn on/off when the associated
// extruder temperature is above/below EXTRUDER_AUTO_FAN_TEMPERATURE.
// Multiple extruders can be assigned to the same pin in which case
// the fan will turn on when any selected extruder is above the threshold.
#define EXTRUDER_0_AUTO_FAN_PIN -1
#define EXTRUDER_1_AUTO_FAN_PIN -1
#define EXTRUDER_2_AUTO_FAN_PIN -1
#define EXTRUDER_3_AUTO_FAN_PIN -1
#define EXTRUDER_AUTO_FAN_TEMPERATURE 50
#define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed
//===========================================================================
//============================ Mechanical Settings ==========================
//===========================================================================
// @section homing
// If you want endstops to stay on (by default) even when not homing
// enable this option. Override at any time with M120, M121.
//#define ENDSTOPS_ALWAYS_ON_DEFAULT
// @section extras
//#define Z_LATE_ENABLE // Enable Z the last moment. Needed if your Z driver overheats.
// Dual X Steppers
// Uncomment this option to drive two X axis motors.
// The next unused E driver will be assigned to the second X stepper.
//#define X_DUAL_STEPPER_DRIVERS
#if ENABLED(X_DUAL_STEPPER_DRIVERS)
// Set true if the two X motors need to rotate in opposite directions
#define INVERT_X2_VS_X_DIR true
#endif
// Dual Y Steppers
// Uncomment this option to drive two Y axis motors.
// The next unused E driver will be assigned to the second Y stepper.
//#define Y_DUAL_STEPPER_DRIVERS
#if ENABLED(Y_DUAL_STEPPER_DRIVERS)
// Set true if the two Y motors need to rotate in opposite directions
#define INVERT_Y2_VS_Y_DIR true
#endif
// A single Z stepper driver is usually used to drive 2 stepper motors.
// Uncomment this option to use a separate stepper driver for each Z axis motor.
// The next unused E driver will be assigned to the second Z stepper.
//#define Z_DUAL_STEPPER_DRIVERS
#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
// Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
// That way the machine is capable to align the bed during home, since both Z steppers are homed.
// There is also an implementation of M666 (software endstops adjustment) to this feature.
// After Z homing, this adjustment is applied to just one of the steppers in order to align the bed.
// One just need to home the Z axis and measure the distance difference between both Z axis and apply the math: Z adjust = Z - Z2.
// If the Z stepper axis is closer to the bed, the measure Z > Z2 (yes, it is.. think about it) and the Z adjust would be positive.
// Play a little bit with small adjustments (0.5mm) and check the behaviour.
// The M119 (endstops report) will start reporting the Z2 Endstop as well.
//#define Z_DUAL_ENDSTOPS
#if ENABLED(Z_DUAL_ENDSTOPS)
#define Z2_USE_ENDSTOP _XMAX_
#endif
#endif // Z_DUAL_STEPPER_DRIVERS
// Enable this for dual x-carriage printers.
// A dual x-carriage design has the advantage that the inactive extruder can be parked which
// prevents hot-end ooze contaminating the print. It also reduces the weight of each x-carriage
// allowing faster printing speeds. Connect your X2 stepper to the first unused E plug.
//#define DUAL_X_CARRIAGE
#if ENABLED(DUAL_X_CARRIAGE)
// Configuration for second X-carriage
// Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
// the second x-carriage always homes to the maximum endstop.
#define X2_MIN_POS 80 // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
#define X2_MAX_POS 353 // set maximum to the distance between toolheads when both heads are homed
#define X2_HOME_DIR 1 // the second X-carriage always homes to the maximum endstop position
#define X2_HOME_POS X2_MAX_POS // default home position is the maximum carriage position
// However: In this mode the HOTEND_OFFSET_X value for the second extruder provides a software
// override for X2_HOME_POS. This also allow recalibration of the distance between the two endstops
// without modifying the firmware (through the "M218 T1 X???" command).
// Remember: you should set the second extruder x-offset to 0 in your slicer.
// There are a few selectable movement modes for dual x-carriages using M605 S<mode>
// Mode 0: Full control. The slicer has full control over both x-carriages and can achieve optimal travel results
// as long as it supports dual x-carriages. (M605 S0)
// Mode 1: Auto-park mode. The firmware will automatically park and unpark the x-carriages on tool changes so
// that additional slicer support is not required. (M605 S1)
// Mode 2: Duplication mode. The firmware will transparently make the second x-carriage and extruder copy all
// actions of the first x-carriage. This allows the printer to print 2 arbitrary items at
// once. (2nd extruder x offset and temp offset are set using: M605 S2 [Xnnn] [Rmmm])
// This is the default power-up mode which can be later using M605.
#define DEFAULT_DUAL_X_CARRIAGE_MODE 0
// Default settings in "Auto-park Mode"
#define TOOLCHANGE_PARK_ZLIFT 0.2 // the distance to raise Z axis when parking an extruder
#define TOOLCHANGE_UNPARK_ZLIFT 1 // the distance to raise Z axis when unparking an extruder
// Default x offset in duplication mode (typically set to half print bed width)
#define DEFAULT_DUPLICATION_X_OFFSET 100
#endif //DUAL_X_CARRIAGE
// @section homing
//homing hits the endstop, then retracts by this distance, before it tries to slowly bump again:
#define X_HOME_BUMP_MM 5
#define Y_HOME_BUMP_MM 5
#define Z_HOME_BUMP_MM 5 // deltas need the same for all three axis
#define HOMING_BUMP_DIVISOR {10, 10, 10} // Re-Bump Speed Divisor (Divides the Homing Feedrate)
//#define QUICK_HOME //if this is defined, if both x and y are to be homed, a diagonal move will be performed initially.
// When G28 is called, this option will make Y home before X
//#define HOME_Y_BEFORE_X
// @section machine
#define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder
//#define DUAL_NOZZLE_DUPLICATION_MODE
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false
#define INVERT_Y_STEP_PIN false
#define INVERT_Z_STEP_PIN false
#define INVERT_E_STEP_PIN false
// Default stepper release if idle. Set to 0 to deactivate.
// Steppers will shut down DEFAULT_STEPPER_DEACTIVE_TIME seconds after the last move when DISABLE_INACTIVE_? is true.
// Time can be set by M18 and M84.
#define DEFAULT_STEPPER_DEACTIVE_TIME 60
#define DISABLE_INACTIVE_X true
#define DISABLE_INACTIVE_Y true
#define DISABLE_INACTIVE_Z true // set to false if the nozzle will fall down on your printed part when print has finished.
#define DISABLE_INACTIVE_E true
#define DEFAULT_MINIMUMFEEDRATE 0.0 // minimum feedrate
#define DEFAULT_MINTRAVELFEEDRATE 0.0
// @section lcd
#if ENABLED(ULTIPANEL)
#define MANUAL_FEEDRATE_XYZ 50*60
#define MANUAL_FEEDRATE { MANUAL_FEEDRATE_XYZ, MANUAL_FEEDRATE_XYZ, MANUAL_FEEDRATE_XYZ, 60 } // Feedrates for manual moves along X, Y, Z, E from panel
#define ULTIPANEL_FEEDMULTIPLY // Comment to disable setting feedrate multiplier via encoder
#endif
// @section extras
// minimum time in microseconds that a movement needs to take if the buffer is emptied.
#define DEFAULT_MINSEGMENTTIME 20000
// If defined the movements slow down when the look ahead buffer is only half full
//#define SLOWDOWN
// Frequency limit
// See nophead's blog for more info
// Not working O
//#define XY_FREQUENCY_LIMIT 15
// Minimum planner junction speed. Sets the default minimum speed the planner plans for at the end
// of the buffer and all stops. This should not be much greater than zero and should only be changed
// if unwanted behavior is observed on a user's machine when running at very slow speeds.
#define MINIMUM_PLANNER_SPEED 0.05// (mm/sec)
// Microstep setting (Only functional when stepper driver microstep pins are connected to MCU.
#define MICROSTEP_MODES {16,16,16,16,16} // [1,2,4,8,16]
// Motor Current setting (Only functional when motor driver current ref pins are connected to a digital trimpot on supported boards)
#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
// Motor Current controlled via PWM (Overridable on supported boards with PWM-driven motor driver current)
//#define PWM_MOTOR_CURRENT {1300, 1300, 1250} // Values in milliamps
// uncomment to enable an I2C based DIGIPOT like on the Azteeg X3 Pro
//#define DIGIPOT_I2C
// Number of channels available for I2C digipot, For Azteeg X3 Pro we have 8
#define DIGIPOT_I2C_NUM_CHANNELS 8
// actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
#define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0}
//===========================================================================
//=============================Additional Features===========================
//===========================================================================
#define ENCODER_RATE_MULTIPLIER // If defined, certain menu edit operations automatically multiply the steps when the encoder is moved quickly
#define ENCODER_10X_STEPS_PER_SEC 75 // If the encoder steps per sec exceeds this value, multiply steps moved x10 to quickly advance the value
#define ENCODER_100X_STEPS_PER_SEC 160 // If the encoder steps per sec exceeds this value, multiply steps moved x100 to really quickly advance the value
//#define CHDK 4 //Pin for triggering CHDK to take a picture see how to use it here http://captain-slow.dk/2014/03/09/3d-printing-timelapses/
#define CHDK_DELAY 50 //How long in ms the pin should stay HIGH before going LOW again
// @section lcd
// Include a page of printer information in the LCD Main Menu
//#define LCD_INFO_MENU
#if ENABLED(SDSUPPORT)
// Some RAMPS and other boards don't detect when an SD card is inserted. You can work
// around this by connecting a push button or single throw switch to the pin defined
// as SD_DETECT_PIN in your board's pins definitions.
// This setting should be disabled unless you are using a push button, pulling the pin to ground.
// Note: This is always disabled for ULTIPANEL (except ELB_FULL_GRAPHIC_CONTROLLER).
#define SD_DETECT_INVERTED
#define SD_FINISHED_STEPPERRELEASE true //if sd support and the file is finished: disable steppers?
#define SD_FINISHED_RELEASECOMMAND "M84 X Y Z E" // You might want to keep the z enabled so your bed stays in place.
#define SDCARD_RATHERRECENTFIRST //reverse file order of sd card menu display. Its sorted practically after the file system block order.
// if a file is deleted, it frees a block. hence, the order is not purely chronological. To still have auto0.g accessible, there is again the option to do that.
// using:
//#define MENU_ADDAUTOSTART
// Show a progress bar on HD44780 LCDs for SD printing
//#define LCD_PROGRESS_BAR
#if ENABLED(LCD_PROGRESS_BAR)
// Amount of time (ms) to show the bar
#define PROGRESS_BAR_BAR_TIME 2000
// Amount of time (ms) to show the status message
#define PROGRESS_BAR_MSG_TIME 3000
// Amount of time (ms) to retain the status message (0=forever)
#define PROGRESS_MSG_EXPIRE 0
// Enable this to show messages for MSG_TIME then hide them
//#define PROGRESS_MSG_ONCE
#endif
// This allows hosts to request long names for files and folders with M33
//#define LONG_FILENAME_HOST_SUPPORT
// This option allows you to abort SD printing when any endstop is triggered.
// This feature must be enabled with "M540 S1" or from the LCD menu.
// To have any effect, endstops must be enabled during SD printing.
//#define ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED
#endif // SDSUPPORT
// for dogm lcd displays you can choose some additional fonts:
#if ENABLED(DOGLCD)
// save 3120 bytes of PROGMEM by commenting out #define USE_BIG_EDIT_FONT
// we don't have a big font for Cyrillic, Kana
//#define USE_BIG_EDIT_FONT
// If you have spare 2300Byte of progmem and want to use a
// smaller font on the Info-screen uncomment the next line.
//#define USE_SMALL_INFOFONT
#endif // DOGLCD
// @section safety
// The hardware watchdog should reset the microcontroller disabling all outputs,
// in case the firmware gets stuck and doesn't do temperature regulation.
#define USE_WATCHDOG
#if ENABLED(USE_WATCHDOG)
// If you have a watchdog reboot in an ArduinoMega2560 then the device will hang forever, as a watchdog reset will leave the watchdog on.
// The "WATCHDOG_RESET_MANUAL" goes around this by not using the hardware reset.
// However, THIS FEATURE IS UNSAFE!, as it will only work if interrupts are disabled. And the code could hang in an interrupt routine with interrupts disabled.
//#define WATCHDOG_RESET_MANUAL
#endif
// @section lcd
// Babystepping enables the user to control the axis in tiny amounts, independently from the normal printing process
// it can e.g. be used to change z-positions in the print startup phase in real-time
// does not respect endstops!
//#define BABYSTEPPING
#if ENABLED(BABYSTEPPING)
#define BABYSTEP_XY //not only z, but also XY in the menu. more clutter, more functions
//not implemented for deltabots!
#define BABYSTEP_INVERT_Z false //true for inverse movements in Z
#define BABYSTEP_MULTIPLICATOR 1 //faster movements
#endif
// @section extruder
// extruder advance constant (s2/mm3)
//
// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
//
// Hooke's law says: force = k * distance
// Bernoulli's principle says: v ^ 2 / 2 + g . h + pressure / density = constant
// so: v ^ 2 is proportional to number of steps we advance the extruder
//#define ADVANCE
#if ENABLED(ADVANCE)
#define EXTRUDER_ADVANCE_K .0
#define D_FILAMENT 2.85
#endif
// Implementation of a linear pressure control
// Assumption: advance = k * (delta velocity)
// K=0 means advance disabled. A good value for a gregs wade extruder will be around K=75
//#define LIN_ADVANCE
#if ENABLED(LIN_ADVANCE)
#define LIN_ADVANCE_K 75
#endif
// @section leveling
// Default mesh area is an area with an inset margin on the print area.
// Below are the macros that are used to define the borders for the mesh area,
// made available here for specialized needs, ie dual extruder setup.
#if ENABLED(MESH_BED_LEVELING)
#define MESH_MIN_X (X_MIN_POS + MESH_INSET)
#define MESH_MAX_X (X_MAX_POS - (MESH_INSET))
#define MESH_MIN_Y (Y_MIN_POS + MESH_INSET)
#define MESH_MAX_Y (Y_MAX_POS - (MESH_INSET))
#endif
// @section extras
// Arc interpretation settings:
#define ARC_SUPPORT // Disabling this saves ~2738 bytes
#define MM_PER_ARC_SEGMENT 1
#define N_ARC_CORRECTION 25
// Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
//#define BEZIER_CURVE_SUPPORT
const unsigned int dropsegments = 5; //everything with less than this number of steps will be ignored as move and joined with the next movement
// @section temperature
// Control heater 0 and heater 1 in parallel.
//#define HEATERS_PARALLEL
//===========================================================================
//================================= Buffers =================================
//===========================================================================
// @section hidden
// The number of linear motions that can be in the plan at any give time.
// THE BLOCK_BUFFER_SIZE NEEDS TO BE A POWER OF 2, i.g. 8,16,32 because shifts and ors are used to do the ring-buffering.
#if ENABLED(SDSUPPORT)
#define BLOCK_BUFFER_SIZE 16 // SD,LCD,Buttons take more memory, block buffer needs to be smaller
#else
#define BLOCK_BUFFER_SIZE 16 // maximize block buffer
#endif
// @section serial
// The ASCII buffer for serial input
#define MAX_CMD_SIZE 96
#define BUFSIZE 4
// Transfer Buffer Size
// To save 386 bytes of PROGMEM (and TX_BUFFER_SIZE+3 bytes of RAM) set to 0.
// To buffer a simple "ok" you need 4 bytes.
// For ADVANCED_OK (M105) you need 32 bytes.
// For debug-echo: 128 bytes for the optimal speed.
// Other output doesn't need to be that speedy.
// :[0,2,4,8,16,32,64,128,256]
#define TX_BUFFER_SIZE 0
// Enable an emergency-command parser to intercept certain commands as they
// enter the serial receive buffer, so they cannot be blocked.
// Currently handles M108, M112, M410
// Does not work on boards using AT90USB (USBCON) processors!
//#define EMERGENCY_PARSER
// Bad Serial-connections can miss a received command by sending an 'ok'
// Therefore some clients abort after 30 seconds in a timeout.
// Some other clients start sending commands while receiving a 'wait'.
// This "wait" is only sent when the buffer is empty. 1 second is a good value here.
//#define NO_TIMEOUTS 1000 // Milliseconds
// Some clients will have this feature soon. This could make the NO_TIMEOUTS unnecessary.
//#define ADVANCED_OK
// @section fwretract
// Firmware based and LCD controlled retract
// M207 and M208 can be used to define parameters for the retraction.
// The retraction can be called by the slicer using G10 and G11
// until then, intended retractions can be detected by moves that only extrude and the direction.
// the moves are than replaced by the firmware controlled ones.
//#define FWRETRACT //ONLY PARTIALLY TESTED
#if ENABLED(FWRETRACT)
#define MIN_RETRACT 0.1 //minimum extruded mm to accept a automatic gcode retraction attempt
#define RETRACT_LENGTH 3 //default retract length (positive mm)
#define RETRACT_LENGTH_SWAP 13 //default swap retract length (positive mm), for extruder change
#define RETRACT_FEEDRATE 45 //default feedrate for retracting (mm/s)
#define RETRACT_ZLIFT 0 //default retract Z-lift
#define RETRACT_RECOVER_LENGTH 0 //default additional recover length (mm, added to retract length when recovering)
#define RETRACT_RECOVER_LENGTH_SWAP 0 //default additional swap recover length (mm, added to retract length when recovering from extruder change)
#define RETRACT_RECOVER_FEEDRATE 8 //default feedrate for recovering from retraction (mm/s)
#endif
// Add support for experimental filament exchange support M600; requires display
#if ENABLED(ULTIPANEL)
// #define FILAMENT_CHANGE_FEATURE // Enable filament exchange menu and M600 g-code (used for runout sensor too)
#if ENABLED(FILAMENT_CHANGE_FEATURE)
#define FILAMENT_CHANGE_X_POS 3 // X position of hotend
#define FILAMENT_CHANGE_Y_POS 3 // Y position of hotend
#define FILAMENT_CHANGE_Z_ADD 10 // Z addition of hotend (lift)
#define FILAMENT_CHANGE_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
#define FILAMENT_CHANGE_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
#define FILAMENT_CHANGE_RETRACT_LENGTH 2 // Initial retract in mm
// It is a short retract used immediately after print interrupt before move to filament exchange position
#define FILAMENT_CHANGE_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
#define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm
// Longer length for bowden printers to unload filament from whole bowden tube,
// shorter lenght for printers without bowden to unload filament from extruder only,
// 0 to disable unloading for manual unloading
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast
#define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm
// Longer length for bowden printers to fast load filament into whole bowden tube over the hotend,
// Short or zero length for printers without bowden where loading is not used
#define FILAMENT_CHANGE_LOAD_FEEDRATE 10 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast
#define FILAMENT_CHANGE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is load over the hotend,
// 0 to disable for manual extrusion
// Filament can be extruded repeatedly from the filament exchange menu to fill the hotend,
// or until outcoming filament color is not clear for filament color change
#define FILAMENT_CHANGE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
#endif
#endif
/******************************************************************************\
* enable this section if you have TMC26X motor drivers.
* you need to import the TMC26XStepper library into the Arduino IDE for this
******************************************************************************/
// @section tmc
//#define HAVE_TMCDRIVER
#if ENABLED(HAVE_TMCDRIVER)
//#define X_IS_TMC
#define X_MAX_CURRENT 1000 //in mA
#define X_SENSE_RESISTOR 91 //in mOhms
#define X_MICROSTEPS 16 //number of microsteps
//#define X2_IS_TMC
#define X2_MAX_CURRENT 1000 //in mA
#define X2_SENSE_RESISTOR 91 //in mOhms
#define X2_MICROSTEPS 16 //number of microsteps
//#define Y_IS_TMC
#define Y_MAX_CURRENT 1000 //in mA
#define Y_SENSE_RESISTOR 91 //in mOhms
#define Y_MICROSTEPS 16 //number of microsteps
//#define Y2_IS_TMC
#define Y2_MAX_CURRENT 1000 //in mA
#define Y2_SENSE_RESISTOR 91 //in mOhms
#define Y2_MICROSTEPS 16 //number of microsteps
//#define Z_IS_TMC
#define Z_MAX_CURRENT 1000 //in mA
#define Z_SENSE_RESISTOR 91 //in mOhms
#define Z_MICROSTEPS 16 //number of microsteps
//#define Z2_IS_TMC
#define Z2_MAX_CURRENT 1000 //in mA
#define Z2_SENSE_RESISTOR 91 //in mOhms
#define Z2_MICROSTEPS 16 //number of microsteps
//#define E0_IS_TMC
#define E0_MAX_CURRENT 1000 //in mA
#define E0_SENSE_RESISTOR 91 //in mOhms
#define E0_MICROSTEPS 16 //number of microsteps
//#define E1_IS_TMC
#define E1_MAX_CURRENT 1000 //in mA
#define E1_SENSE_RESISTOR 91 //in mOhms
#define E1_MICROSTEPS 16 //number of microsteps
//#define E2_IS_TMC
#define E2_MAX_CURRENT 1000 //in mA
#define E2_SENSE_RESISTOR 91 //in mOhms
#define E2_MICROSTEPS 16 //number of microsteps
//#define E3_IS_TMC
#define E3_MAX_CURRENT 1000 //in mA
#define E3_SENSE_RESISTOR 91 //in mOhms
#define E3_MICROSTEPS 16 //number of microsteps
#endif
/******************************************************************************\
* enable this section if you have L6470 motor drivers.
* you need to import the L6470 library into the Arduino IDE for this
******************************************************************************/
// @section l6470
//#define HAVE_L6470DRIVER
#if ENABLED(HAVE_L6470DRIVER)
//#define X_IS_L6470
#define X_MICROSTEPS 16 //number of microsteps
#define X_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define X_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define X_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define X2_IS_L6470
#define X2_MICROSTEPS 16 //number of microsteps
#define X2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define X2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define X2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define Y_IS_L6470
#define Y_MICROSTEPS 16 //number of microsteps
#define Y_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define Y_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define Y_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define Y2_IS_L6470
#define Y2_MICROSTEPS 16 //number of microsteps
#define Y2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define Y2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define Y2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define Z_IS_L6470
#define Z_MICROSTEPS 16 //number of microsteps
#define Z_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define Z_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define Z_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define Z2_IS_L6470
#define Z2_MICROSTEPS 16 //number of microsteps
#define Z2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define Z2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define Z2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define E0_IS_L6470
#define E0_MICROSTEPS 16 //number of microsteps
#define E0_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define E0_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define E0_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define E1_IS_L6470
#define E1_MICROSTEPS 16 //number of microsteps
#define E1_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define E1_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define E1_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define E2_IS_L6470
#define E2_MICROSTEPS 16 //number of microsteps
#define E2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define E2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define E2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define E3_IS_L6470
#define E3_MICROSTEPS 16 //number of microsteps
#define E3_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define E3_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define E3_STALLCURRENT 1500 //current in mA where the driver will detect a stall
#endif
/**
* TWI/I2C BUS
*
* This feature is an EXPERIMENTAL feature so it shall not be used on production
* machines. Enabling this will allow you to send and receive I2C data from slave
* devices on the bus.
*
* ; Example #1
* ; This macro send the string "Marlin" to the slave device with address 0x63 (99)
* ; It uses multiple M155 commands with one B<base 10> arg
* M155 A99 ; Target slave address
* M155 B77 ; M
* M155 B97 ; a
* M155 B114 ; r
* M155 B108 ; l
* M155 B105 ; i
* M155 B110 ; n
* M155 S1 ; Send the current buffer
*
* ; Example #2
* ; Request 6 bytes from slave device with address 0x63 (99)
* M156 A99 B5
*
* ; Example #3
* ; Example serial output of a M156 request
* echo:i2c-reply: from:99 bytes:5 data:hello
*/
// @section i2cbus
//#define EXPERIMENTAL_I2CBUS
#endif // CONFIGURATION_ADV_H
File diff suppressed because it is too large Load Diff
@@ -1,801 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
* Configuration_adv.h
*
* Advanced settings.
* Only change these if you know exactly what you're doing.
* Some of these settings can damage your printer if improperly set!
*
* Basic settings can be found in Configuration.h
*
*/
#ifndef CONFIGURATION_ADV_H
#define CONFIGURATION_ADV_H
/**
*
* ***********************************
* ** ATTENTION TO ALL DEVELOPERS **
* ***********************************
*
* You must increment this version number for every significant change such as,
* but not limited to: ADD, DELETE RENAME OR REPURPOSE any directive/option.
*
* Note: Update also Version.h !
*/
#define CONFIGURATION_ADV_H_VERSION 010100
// @section temperature
//===========================================================================
//=============================Thermal Settings ============================
//===========================================================================
#if DISABLED(PIDTEMPBED)
#define BED_CHECK_INTERVAL 5000 // ms between checks in bang-bang control
#if ENABLED(BED_LIMIT_SWITCHING)
#define BED_HYSTERESIS 2 // Only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
#endif
#endif
/**
* Thermal Protection protects your printer from damage and fire if a
* thermistor falls out or temperature sensors fail in any way.
*
* The issue: If a thermistor falls out or a temperature sensor fails,
* Marlin can no longer sense the actual temperature. Since a disconnected
* thermistor reads as a low temperature, the firmware will keep the heater on.
*
* The solution: Once the temperature reaches the target, start observing.
* If the temperature stays too far below the target (hysteresis) for too long (period),
* the firmware will halt the machine as a safety precaution.
*
* If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
*/
#if ENABLED(THERMAL_PROTECTION_HOTENDS)
#define THERMAL_PROTECTION_PERIOD 40 // Seconds
#define THERMAL_PROTECTION_HYSTERESIS 4 // Degrees Celsius
/**
* Whenever an M104 or M109 increases the target temperature the firmware will wait for the
* WATCH_TEMP_PERIOD to expire, and if the temperature hasn't increased by WATCH_TEMP_INCREASE
* degrees, the machine is halted, requiring a hard reset. This test restarts with any M104/M109,
* but only if the current temperature is far enough below the target for a reliable test.
*
* If you get false positives for "Heating failed" increase WATCH_TEMP_PERIOD and/or decrease WATCH_TEMP_INCREASE
* WATCH_TEMP_INCREASE should not be below 2.
*/
#define WATCH_TEMP_PERIOD 20 // Seconds
#define WATCH_TEMP_INCREASE 2 // Degrees Celsius
#endif
/**
* Thermal Protection parameters for the bed are just as above for hotends.
*/
#if ENABLED(THERMAL_PROTECTION_BED)
#define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds
#define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius
/**
* Whenever an M140 or M190 increases the target temperature the firmware will wait for the
* WATCH_BED_TEMP_PERIOD to expire, and if the temperature hasn't increased by WATCH_BED_TEMP_INCREASE
* degrees, the machine is halted, requiring a hard reset. This test restarts with any M140/M190,
* but only if the current temperature is far enough below the target for a reliable test.
*
* If you get too many "Heating failed" errors, increase WATCH_BED_TEMP_PERIOD and/or decrease
* WATCH_BED_TEMP_INCREASE. (WATCH_BED_TEMP_INCREASE should not be below 2.)
*/
#define WATCH_BED_TEMP_PERIOD 60 // Seconds
#define WATCH_BED_TEMP_INCREASE 2 // Degrees Celsius
#endif
#if ENABLED(PIDTEMP)
// this adds an experimental additional term to the heating power, proportional to the extrusion speed.
// if Kc is chosen well, the additional required power due to increased melting should be compensated.
//#define PID_EXTRUSION_SCALING
#if ENABLED(PID_EXTRUSION_SCALING)
#define DEFAULT_Kc (100) //heating power=Kc*(e_speed)
#define LPQ_MAX_LEN 50
#endif
#endif
/**
* Automatic Temperature:
* The hotend target temperature is calculated by all the buffered lines of gcode.
* The maximum buffered steps/sec of the extruder motor is called "se".
* Start autotemp mode with M109 S<mintemp> B<maxtemp> F<factor>
* The target temperature is set to mintemp+factor*se[steps/sec] and is limited by
* mintemp and maxtemp. Turn this off by executing M109 without F*
* Also, if the temperature is set to a value below mintemp, it will not be changed by autotemp.
* On an Ultimaker, some initial testing worked with M109 S215 B260 F1 in the start.gcode
*/
#define AUTOTEMP
#if ENABLED(AUTOTEMP)
#define AUTOTEMP_OLDWEIGHT 0.98
#endif
//Show Temperature ADC value
//The M105 command return, besides traditional information, the ADC value read from temperature sensors.
//#define SHOW_TEMP_ADC_VALUES
/**
* High Temperature Thermistor Support
*
* Thermistors able to support high temperature tend to have a hard time getting
* good readings at room and lower temperatures. This means HEATER_X_RAW_LO_TEMP
* will probably be caught when the heating element first turns on during the
* preheating process, which will trigger a min_temp_error as a safety measure
* and force stop everything.
* To circumvent this limitation, we allow for a preheat time (during which,
* min_temp_error won't be triggered) and add a min_temp buffer to handle
* aberrant readings.
*
* If you want to enable this feature for your hotend thermistor(s)
* uncomment and set values > 0 in the constants below
*/
// The number of consecutive low temperature errors that can occur
// before a min_temp_error is triggered. (Shouldn't be more than 10.)
//#define MAX_CONSECUTIVE_LOW_TEMPERATURE_ERROR_ALLOWED 0
// The number of milliseconds a hotend will preheat before starting to check
// the temperature. This value should NOT be set to the time it takes the
// hot end to reach the target temperature, but the time it takes to reach
// the minimum temperature your thermistor can read. The lower the better/safer.
// This shouldn't need to be more than 30 seconds (30000)
//#define MILLISECONDS_PREHEAT_TIME 0
// @section extruder
// extruder run-out prevention.
//if the machine is idle, and the temperature over MINTEMP, every couple of SECONDS some filament is extruded
//#define EXTRUDER_RUNOUT_PREVENT
#define EXTRUDER_RUNOUT_MINTEMP 190
#define EXTRUDER_RUNOUT_SECONDS 30
#define EXTRUDER_RUNOUT_ESTEPS 14 // mm filament
#define EXTRUDER_RUNOUT_SPEED 1500 // extrusion speed
#define EXTRUDER_RUNOUT_EXTRUDE 100
// @section temperature
//These defines help to calibrate the AD595 sensor in case you get wrong temperature measurements.
//The measured temperature is defined as "actualTemp = (measuredTemp * TEMP_SENSOR_AD595_GAIN) + TEMP_SENSOR_AD595_OFFSET"
#define TEMP_SENSOR_AD595_OFFSET 0.0
#define TEMP_SENSOR_AD595_GAIN 1.0
//This is for controlling a fan to cool down the stepper drivers
//it will turn on when any driver is enabled
//and turn off after the set amount of seconds from last driver being disabled again
#define CONTROLLERFAN_PIN -1 //Pin used for the fan to cool controller (-1 to disable)
#define CONTROLLERFAN_SECS 60 //How many seconds, after all motors were disabled, the fan should run
#define CONTROLLERFAN_SPEED 255 // == full speed
// When first starting the main fan, run it at full speed for the
// given number of milliseconds. This gets the fan spinning reliably
// before setting a PWM value. (Does not work with software PWM for fan on Sanguinololu)
//#define FAN_KICKSTART_TIME 100
// This defines the minimal speed for the main fan, run in PWM mode
// to enable uncomment and set minimal PWM speed for reliable running (1-255)
// if fan speed is [1 - (FAN_MIN_PWM-1)] it is set to FAN_MIN_PWM
//#define FAN_MIN_PWM 50
// @section extruder
// Extruder cooling fans
// Configure fan pin outputs to automatically turn on/off when the associated
// extruder temperature is above/below EXTRUDER_AUTO_FAN_TEMPERATURE.
// Multiple extruders can be assigned to the same pin in which case
// the fan will turn on when any selected extruder is above the threshold.
#define EXTRUDER_0_AUTO_FAN_PIN -1
#define EXTRUDER_1_AUTO_FAN_PIN -1
#define EXTRUDER_2_AUTO_FAN_PIN -1
#define EXTRUDER_3_AUTO_FAN_PIN -1
#define EXTRUDER_AUTO_FAN_TEMPERATURE 50
#define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed
//===========================================================================
//============================ Mechanical Settings ==========================
//===========================================================================
// @section homing
// If you want endstops to stay on (by default) even when not homing
// enable this option. Override at any time with M120, M121.
//#define ENDSTOPS_ALWAYS_ON_DEFAULT
// @section extras
//#define Z_LATE_ENABLE // Enable Z the last moment. Needed if your Z driver overheats.
// Dual X Steppers
// Uncomment this option to drive two X axis motors.
// The next unused E driver will be assigned to the second X stepper.
//#define X_DUAL_STEPPER_DRIVERS
#if ENABLED(X_DUAL_STEPPER_DRIVERS)
// Set true if the two X motors need to rotate in opposite directions
#define INVERT_X2_VS_X_DIR true
#endif
// Dual Y Steppers
// Uncomment this option to drive two Y axis motors.
// The next unused E driver will be assigned to the second Y stepper.
//#define Y_DUAL_STEPPER_DRIVERS
#if ENABLED(Y_DUAL_STEPPER_DRIVERS)
// Set true if the two Y motors need to rotate in opposite directions
#define INVERT_Y2_VS_Y_DIR true
#endif
// A single Z stepper driver is usually used to drive 2 stepper motors.
// Uncomment this option to use a separate stepper driver for each Z axis motor.
// The next unused E driver will be assigned to the second Z stepper.
//#define Z_DUAL_STEPPER_DRIVERS
#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
// Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
// That way the machine is capable to align the bed during home, since both Z steppers are homed.
// There is also an implementation of M666 (software endstops adjustment) to this feature.
// After Z homing, this adjustment is applied to just one of the steppers in order to align the bed.
// One just need to home the Z axis and measure the distance difference between both Z axis and apply the math: Z adjust = Z - Z2.
// If the Z stepper axis is closer to the bed, the measure Z > Z2 (yes, it is.. think about it) and the Z adjust would be positive.
// Play a little bit with small adjustments (0.5mm) and check the behaviour.
// The M119 (endstops report) will start reporting the Z2 Endstop as well.
//#define Z_DUAL_ENDSTOPS
#if ENABLED(Z_DUAL_ENDSTOPS)
#define Z2_USE_ENDSTOP _XMAX_
#endif
#endif // Z_DUAL_STEPPER_DRIVERS
// Enable this for dual x-carriage printers.
// A dual x-carriage design has the advantage that the inactive extruder can be parked which
// prevents hot-end ooze contaminating the print. It also reduces the weight of each x-carriage
// allowing faster printing speeds. Connect your X2 stepper to the first unused E plug.
//#define DUAL_X_CARRIAGE
#if ENABLED(DUAL_X_CARRIAGE)
// Configuration for second X-carriage
// Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
// the second x-carriage always homes to the maximum endstop.
#define X2_MIN_POS 80 // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
#define X2_MAX_POS 353 // set maximum to the distance between toolheads when both heads are homed
#define X2_HOME_DIR 1 // the second X-carriage always homes to the maximum endstop position
#define X2_HOME_POS X2_MAX_POS // default home position is the maximum carriage position
// However: In this mode the HOTEND_OFFSET_X value for the second extruder provides a software
// override for X2_HOME_POS. This also allow recalibration of the distance between the two endstops
// without modifying the firmware (through the "M218 T1 X???" command).
// Remember: you should set the second extruder x-offset to 0 in your slicer.
// There are a few selectable movement modes for dual x-carriages using M605 S<mode>
// Mode 0: Full control. The slicer has full control over both x-carriages and can achieve optimal travel results
// as long as it supports dual x-carriages. (M605 S0)
// Mode 1: Auto-park mode. The firmware will automatically park and unpark the x-carriages on tool changes so
// that additional slicer support is not required. (M605 S1)
// Mode 2: Duplication mode. The firmware will transparently make the second x-carriage and extruder copy all
// actions of the first x-carriage. This allows the printer to print 2 arbitrary items at
// once. (2nd extruder x offset and temp offset are set using: M605 S2 [Xnnn] [Rmmm])
// This is the default power-up mode which can be later using M605.
#define DEFAULT_DUAL_X_CARRIAGE_MODE 0
// Default settings in "Auto-park Mode"
#define TOOLCHANGE_PARK_ZLIFT 0.2 // the distance to raise Z axis when parking an extruder
#define TOOLCHANGE_UNPARK_ZLIFT 1 // the distance to raise Z axis when unparking an extruder
// Default x offset in duplication mode (typically set to half print bed width)
#define DEFAULT_DUPLICATION_X_OFFSET 100
#endif //DUAL_X_CARRIAGE
// @section homing
//homing hits the endstop, then retracts by this distance, before it tries to slowly bump again:
#define X_HOME_BUMP_MM 2
#define Y_HOME_BUMP_MM 2
#define Z_HOME_BUMP_MM 2 // deltas need the same for all three axis
#define HOMING_BUMP_DIVISOR {2, 2, 4} // Re-Bump Speed Divisor (Divides the Homing Feedrate)
//#define QUICK_HOME //if this is defined, if both x and y are to be homed, a diagonal move will be performed initially.
// When G28 is called, this option will make Y home before X
//#define HOME_Y_BEFORE_X
// @section machine
#define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder
//#define DUAL_NOZZLE_DUPLICATION_MODE
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false
#define INVERT_Y_STEP_PIN false
#define INVERT_Z_STEP_PIN false
#define INVERT_E_STEP_PIN false
// Default stepper release if idle. Set to 0 to deactivate.
// Steppers will shut down DEFAULT_STEPPER_DEACTIVE_TIME seconds after the last move when DISABLE_INACTIVE_? is true.
// Time can be set by M18 and M84.
#define DEFAULT_STEPPER_DEACTIVE_TIME 120
#define DISABLE_INACTIVE_X true
#define DISABLE_INACTIVE_Y true
#define DISABLE_INACTIVE_Z true // set to false if the nozzle will fall down on your printed part when print has finished.
#define DISABLE_INACTIVE_E true
#define DEFAULT_MINIMUMFEEDRATE 0.0 // minimum feedrate
#define DEFAULT_MINTRAVELFEEDRATE 0.0
// @section lcd
#if ENABLED(ULTIPANEL)
#define MANUAL_FEEDRATE_XYZ 50*60
#define MANUAL_FEEDRATE { MANUAL_FEEDRATE_XYZ, MANUAL_FEEDRATE_XYZ, MANUAL_FEEDRATE_XYZ, 60 } // Feedrates for manual moves along X, Y, Z, E from panel
#define ULTIPANEL_FEEDMULTIPLY // Comment to disable setting feedrate multiplier via encoder
#endif
// @section extras
// minimum time in microseconds that a movement needs to take if the buffer is emptied.
#define DEFAULT_MINSEGMENTTIME 20000
// If defined the movements slow down when the look ahead buffer is only half full
// (don't use SLOWDOWN with DELTA because DELTA generates hundreds of segments per second)
//#define SLOWDOWN
// Frequency limit
// See nophead's blog for more info
// Not working O
//#define XY_FREQUENCY_LIMIT 15
// Minimum planner junction speed. Sets the default minimum speed the planner plans for at the end
// of the buffer and all stops. This should not be much greater than zero and should only be changed
// if unwanted behavior is observed on a user's machine when running at very slow speeds.
#define MINIMUM_PLANNER_SPEED 0.05// (mm/sec)
// Microstep setting (Only functional when stepper driver microstep pins are connected to MCU.
#define MICROSTEP_MODES {16,16,16,16,16} // [1,2,4,8,16]
// Motor Current setting (Only functional when motor driver current ref pins are connected to a digital trimpot on supported boards)
#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
// Motor Current controlled via PWM (Overridable on supported boards with PWM-driven motor driver current)
//#define PWM_MOTOR_CURRENT {1300, 1300, 1250} // Values in milliamps
// uncomment to enable an I2C based DIGIPOT like on the Azteeg X3 Pro
//#define DIGIPOT_I2C
// Number of channels available for I2C digipot, For Azteeg X3 Pro we have 8
#define DIGIPOT_I2C_NUM_CHANNELS 8
// actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
#define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0}
//===========================================================================
//=============================Additional Features===========================
//===========================================================================
#define ENCODER_RATE_MULTIPLIER // If defined, certain menu edit operations automatically multiply the steps when the encoder is moved quickly
#define ENCODER_10X_STEPS_PER_SEC 75 // If the encoder steps per sec exceeds this value, multiply steps moved x10 to quickly advance the value
#define ENCODER_100X_STEPS_PER_SEC 160 // If the encoder steps per sec exceeds this value, multiply steps moved x100 to really quickly advance the value
//#define CHDK 4 //Pin for triggering CHDK to take a picture see how to use it here http://captain-slow.dk/2014/03/09/3d-printing-timelapses/
#define CHDK_DELAY 50 //How long in ms the pin should stay HIGH before going LOW again
// @section lcd
// Include a page of printer information in the LCD Main Menu
//#define LCD_INFO_MENU
#if ENABLED(SDSUPPORT)
// Some RAMPS and other boards don't detect when an SD card is inserted. You can work
// around this by connecting a push button or single throw switch to the pin defined
// as SD_DETECT_PIN in your board's pins definitions.
// This setting should be disabled unless you are using a push button, pulling the pin to ground.
// Note: This is always disabled for ULTIPANEL (except ELB_FULL_GRAPHIC_CONTROLLER).
#define SD_DETECT_INVERTED
#define SD_FINISHED_STEPPERRELEASE true //if sd support and the file is finished: disable steppers?
#define SD_FINISHED_RELEASECOMMAND "M84 X Y Z E" // You might want to keep the z enabled so your bed stays in place.
#define SDCARD_RATHERRECENTFIRST //reverse file order of sd card menu display. Its sorted practically after the file system block order.
// if a file is deleted, it frees a block. hence, the order is not purely chronological. To still have auto0.g accessible, there is again the option to do that.
// using:
//#define MENU_ADDAUTOSTART
// Show a progress bar on HD44780 LCDs for SD printing
//#define LCD_PROGRESS_BAR
#if ENABLED(LCD_PROGRESS_BAR)
// Amount of time (ms) to show the bar
#define PROGRESS_BAR_BAR_TIME 2000
// Amount of time (ms) to show the status message
#define PROGRESS_BAR_MSG_TIME 3000
// Amount of time (ms) to retain the status message (0=forever)
#define PROGRESS_MSG_EXPIRE 0
// Enable this to show messages for MSG_TIME then hide them
//#define PROGRESS_MSG_ONCE
#endif
// This allows hosts to request long names for files and folders with M33
//#define LONG_FILENAME_HOST_SUPPORT
// This option allows you to abort SD printing when any endstop is triggered.
// This feature must be enabled with "M540 S1" or from the LCD menu.
// To have any effect, endstops must be enabled during SD printing.
//#define ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED
#endif // SDSUPPORT
// for dogm lcd displays you can choose some additional fonts:
#if ENABLED(DOGLCD)
// save 3120 bytes of PROGMEM by commenting out #define USE_BIG_EDIT_FONT
// we don't have a big font for Cyrillic, Kana
//#define USE_BIG_EDIT_FONT
// If you have spare 2300Byte of progmem and want to use a
// smaller font on the Info-screen uncomment the next line.
//#define USE_SMALL_INFOFONT
#endif // DOGLCD
// @section safety
// The hardware watchdog should reset the microcontroller disabling all outputs,
// in case the firmware gets stuck and doesn't do temperature regulation.
#define USE_WATCHDOG
#if ENABLED(USE_WATCHDOG)
// If you have a watchdog reboot in an ArduinoMega2560 then the device will hang forever, as a watchdog reset will leave the watchdog on.
// The "WATCHDOG_RESET_MANUAL" goes around this by not using the hardware reset.
// However, THIS FEATURE IS UNSAFE!, as it will only work if interrupts are disabled. And the code could hang in an interrupt routine with interrupts disabled.
//#define WATCHDOG_RESET_MANUAL
#endif
// @section lcd
// Babystepping enables the user to control the axis in tiny amounts, independently from the normal printing process
// it can e.g. be used to change z-positions in the print startup phase in real-time
// does not respect endstops!
//#define BABYSTEPPING
#if ENABLED(BABYSTEPPING)
#define BABYSTEP_XY //not only z, but also XY in the menu. more clutter, more functions
//not implemented for deltabots!
#define BABYSTEP_INVERT_Z false //true for inverse movements in Z
#define BABYSTEP_MULTIPLICATOR 1 //faster movements
#endif
// @section extruder
// extruder advance constant (s2/mm3)
//
// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
//
// Hooke's law says: force = k * distance
// Bernoulli's principle says: v ^ 2 / 2 + g . h + pressure / density = constant
// so: v ^ 2 is proportional to number of steps we advance the extruder
//#define ADVANCE
#if ENABLED(ADVANCE)
#define EXTRUDER_ADVANCE_K .0
#define D_FILAMENT 2.85
#endif
// Implementation of a linear pressure control
// Assumption: advance = k * (delta velocity)
// K=0 means advance disabled. A good value for a gregs wade extruder will be around K=75
//#define LIN_ADVANCE
#if ENABLED(LIN_ADVANCE)
#define LIN_ADVANCE_K 75
#endif
// @section leveling
// Default mesh area is an area with an inset margin on the print area.
// Below are the macros that are used to define the borders for the mesh area,
// made available here for specialized needs, ie dual extruder setup.
#if ENABLED(MESH_BED_LEVELING)
#define MESH_MIN_X (X_MIN_POS + MESH_INSET)
#define MESH_MAX_X (X_MAX_POS - (MESH_INSET))
#define MESH_MIN_Y (Y_MIN_POS + MESH_INSET)
#define MESH_MAX_Y (Y_MAX_POS - (MESH_INSET))
#endif
// @section extras
// Arc interpretation settings:
#define ARC_SUPPORT // Disabling this saves ~2738 bytes
#define MM_PER_ARC_SEGMENT 1
#define N_ARC_CORRECTION 25
// Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
//#define BEZIER_CURVE_SUPPORT
const unsigned int dropsegments = 5; //everything with less than this number of steps will be ignored as move and joined with the next movement
// @section temperature
// Control heater 0 and heater 1 in parallel.
//#define HEATERS_PARALLEL
//===========================================================================
//================================= Buffers =================================
//===========================================================================
// @section hidden
// The number of linear motions that can be in the plan at any give time.
// THE BLOCK_BUFFER_SIZE NEEDS TO BE A POWER OF 2, i.g. 8,16,32 because shifts and ors are used to do the ring-buffering.
#if ENABLED(SDSUPPORT)
#define BLOCK_BUFFER_SIZE 16 // SD,LCD,Buttons take more memory, block buffer needs to be smaller
#else
#define BLOCK_BUFFER_SIZE 16 // maximize block buffer
#endif
// @section serial
// The ASCII buffer for serial input
#define MAX_CMD_SIZE 96
#define BUFSIZE 4
// Transfer Buffer Size
// To save 386 bytes of PROGMEM (and TX_BUFFER_SIZE+3 bytes of RAM) set to 0.
// To buffer a simple "ok" you need 4 bytes.
// For ADVANCED_OK (M105) you need 32 bytes.
// For debug-echo: 128 bytes for the optimal speed.
// Other output doesn't need to be that speedy.
// :[0,2,4,8,16,32,64,128,256]
#define TX_BUFFER_SIZE 0
// Enable an emergency-command parser to intercept certain commands as they
// enter the serial receive buffer, so they cannot be blocked.
// Currently handles M108, M112, M410
// Does not work on boards using AT90USB (USBCON) processors!
//#define EMERGENCY_PARSER
// Bad Serial-connections can miss a received command by sending an 'ok'
// Therefore some clients abort after 30 seconds in a timeout.
// Some other clients start sending commands while receiving a 'wait'.
// This "wait" is only sent when the buffer is empty. 1 second is a good value here.
//#define NO_TIMEOUTS 1000 // Milliseconds
// Some clients will have this feature soon. This could make the NO_TIMEOUTS unnecessary.
//#define ADVANCED_OK
// @section fwretract
// Firmware based and LCD controlled retract
// M207 and M208 can be used to define parameters for the retraction.
// The retraction can be called by the slicer using G10 and G11
// until then, intended retractions can be detected by moves that only extrude and the direction.
// the moves are than replaced by the firmware controlled ones.
//#define FWRETRACT //ONLY PARTIALLY TESTED
#if ENABLED(FWRETRACT)
#define MIN_RETRACT 0.1 //minimum extruded mm to accept a automatic gcode retraction attempt
#define RETRACT_LENGTH 3 //default retract length (positive mm)
#define RETRACT_LENGTH_SWAP 13 //default swap retract length (positive mm), for extruder change
#define RETRACT_FEEDRATE 45 //default feedrate for retracting (mm/s)
#define RETRACT_ZLIFT 0 //default retract Z-lift
#define RETRACT_RECOVER_LENGTH 0 //default additional recover length (mm, added to retract length when recovering)
#define RETRACT_RECOVER_LENGTH_SWAP 0 //default additional swap recover length (mm, added to retract length when recovering from extruder change)
#define RETRACT_RECOVER_FEEDRATE 8 //default feedrate for recovering from retraction (mm/s)
#endif
// Add support for experimental filament exchange support M600; requires display
#if ENABLED(ULTIPANEL)
// #define FILAMENT_CHANGE_FEATURE // Enable filament exchange menu and M600 g-code (used for runout sensor too)
#if ENABLED(FILAMENT_CHANGE_FEATURE)
#define FILAMENT_CHANGE_X_POS 3 // X position of hotend
#define FILAMENT_CHANGE_Y_POS 3 // Y position of hotend
#define FILAMENT_CHANGE_Z_ADD 10 // Z addition of hotend (lift)
#define FILAMENT_CHANGE_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
#define FILAMENT_CHANGE_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
#define FILAMENT_CHANGE_RETRACT_LENGTH 2 // Initial retract in mm
// It is a short retract used immediately after print interrupt before move to filament exchange position
#define FILAMENT_CHANGE_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
#define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm
// Longer length for bowden printers to unload filament from whole bowden tube,
// shorter lenght for printers without bowden to unload filament from extruder only,
// 0 to disable unloading for manual unloading
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast
#define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm
// Longer length for bowden printers to fast load filament into whole bowden tube over the hotend,
// Short or zero length for printers without bowden where loading is not used
#define FILAMENT_CHANGE_LOAD_FEEDRATE 10 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast
#define FILAMENT_CHANGE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is load over the hotend,
// 0 to disable for manual extrusion
// Filament can be extruded repeatedly from the filament exchange menu to fill the hotend,
// or until outcoming filament color is not clear for filament color change
#define FILAMENT_CHANGE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
#endif
#endif
/******************************************************************************\
* enable this section if you have TMC26X motor drivers.
* you need to import the TMC26XStepper library into the Arduino IDE for this
******************************************************************************/
// @section tmc
//#define HAVE_TMCDRIVER
#if ENABLED(HAVE_TMCDRIVER)
//#define X_IS_TMC
#define X_MAX_CURRENT 1000 //in mA
#define X_SENSE_RESISTOR 91 //in mOhms
#define X_MICROSTEPS 16 //number of microsteps
//#define X2_IS_TMC
#define X2_MAX_CURRENT 1000 //in mA
#define X2_SENSE_RESISTOR 91 //in mOhms
#define X2_MICROSTEPS 16 //number of microsteps
//#define Y_IS_TMC
#define Y_MAX_CURRENT 1000 //in mA
#define Y_SENSE_RESISTOR 91 //in mOhms
#define Y_MICROSTEPS 16 //number of microsteps
//#define Y2_IS_TMC
#define Y2_MAX_CURRENT 1000 //in mA
#define Y2_SENSE_RESISTOR 91 //in mOhms
#define Y2_MICROSTEPS 16 //number of microsteps
//#define Z_IS_TMC
#define Z_MAX_CURRENT 1000 //in mA
#define Z_SENSE_RESISTOR 91 //in mOhms
#define Z_MICROSTEPS 16 //number of microsteps
//#define Z2_IS_TMC
#define Z2_MAX_CURRENT 1000 //in mA
#define Z2_SENSE_RESISTOR 91 //in mOhms
#define Z2_MICROSTEPS 16 //number of microsteps
//#define E0_IS_TMC
#define E0_MAX_CURRENT 1000 //in mA
#define E0_SENSE_RESISTOR 91 //in mOhms
#define E0_MICROSTEPS 16 //number of microsteps
//#define E1_IS_TMC
#define E1_MAX_CURRENT 1000 //in mA
#define E1_SENSE_RESISTOR 91 //in mOhms
#define E1_MICROSTEPS 16 //number of microsteps
//#define E2_IS_TMC
#define E2_MAX_CURRENT 1000 //in mA
#define E2_SENSE_RESISTOR 91 //in mOhms
#define E2_MICROSTEPS 16 //number of microsteps
//#define E3_IS_TMC
#define E3_MAX_CURRENT 1000 //in mA
#define E3_SENSE_RESISTOR 91 //in mOhms
#define E3_MICROSTEPS 16 //number of microsteps
#endif
/******************************************************************************\
* enable this section if you have L6470 motor drivers.
* you need to import the L6470 library into the Arduino IDE for this
******************************************************************************/
// @section l6470
//#define HAVE_L6470DRIVER
#if ENABLED(HAVE_L6470DRIVER)
//#define X_IS_L6470
#define X_MICROSTEPS 16 //number of microsteps
#define X_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define X_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define X_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define X2_IS_L6470
#define X2_MICROSTEPS 16 //number of microsteps
#define X2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define X2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define X2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define Y_IS_L6470
#define Y_MICROSTEPS 16 //number of microsteps
#define Y_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define Y_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define Y_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define Y2_IS_L6470
#define Y2_MICROSTEPS 16 //number of microsteps
#define Y2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define Y2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define Y2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define Z_IS_L6470
#define Z_MICROSTEPS 16 //number of microsteps
#define Z_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define Z_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define Z_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define Z2_IS_L6470
#define Z2_MICROSTEPS 16 //number of microsteps
#define Z2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define Z2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define Z2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define E0_IS_L6470
#define E0_MICROSTEPS 16 //number of microsteps
#define E0_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define E0_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define E0_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define E1_IS_L6470
#define E1_MICROSTEPS 16 //number of microsteps
#define E1_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define E1_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define E1_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define E2_IS_L6470
#define E2_MICROSTEPS 16 //number of microsteps
#define E2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define E2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define E2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define E3_IS_L6470
#define E3_MICROSTEPS 16 //number of microsteps
#define E3_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define E3_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define E3_STALLCURRENT 1500 //current in mA where the driver will detect a stall
#endif
/**
* TWI/I2C BUS
*
* This feature is an EXPERIMENTAL feature so it shall not be used on production
* machines. Enabling this will allow you to send and receive I2C data from slave
* devices on the bus.
*
* ; Example #1
* ; This macro send the string "Marlin" to the slave device with address 0x63 (99)
* ; It uses multiple M155 commands with one B<base 10> arg
* M155 A99 ; Target slave address
* M155 B77 ; M
* M155 B97 ; a
* M155 B114 ; r
* M155 B108 ; l
* M155 B105 ; i
* M155 B110 ; n
* M155 S1 ; Send the current buffer
*
* ; Example #2
* ; Request 6 bytes from slave device with address 0x63 (99)
* M156 A99 B5
*
* ; Example #3
* ; Example serial output of a M156 request
* echo:i2c-reply: from:99 bytes:5 data:hello
*/
// @section i2cbus
//#define EXPERIMENTAL_I2CBUS
#endif // CONFIGURATION_ADV_H
File diff suppressed because it is too large Load Diff
@@ -1,799 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
* Configuration_adv.h
*
* Advanced settings.
* Only change these if you know exactly what you're doing.
* Some of these settings can damage your printer if improperly set!
*
* Basic settings can be found in Configuration.h
*
*/
#ifndef CONFIGURATION_ADV_H
#define CONFIGURATION_ADV_H
/**
*
* ***********************************
* ** ATTENTION TO ALL DEVELOPERS **
* ***********************************
*
* You must increment this version number for every significant change such as,
* but not limited to: ADD, DELETE RENAME OR REPURPOSE any directive/option.
*
* Note: Update also Version.h !
*/
#define CONFIGURATION_ADV_H_VERSION 010100
// @section temperature
//===========================================================================
//=============================Thermal Settings ============================
//===========================================================================
#if DISABLED(PIDTEMPBED)
#define BED_CHECK_INTERVAL 5000 // ms between checks in bang-bang control
#if ENABLED(BED_LIMIT_SWITCHING)
#define BED_HYSTERESIS 2 // Only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
#endif
#endif
/**
* Thermal Protection protects your printer from damage and fire if a
* thermistor falls out or temperature sensors fail in any way.
*
* The issue: If a thermistor falls out or a temperature sensor fails,
* Marlin can no longer sense the actual temperature. Since a disconnected
* thermistor reads as a low temperature, the firmware will keep the heater on.
*
* The solution: Once the temperature reaches the target, start observing.
* If the temperature stays too far below the target (hysteresis) for too long (period),
* the firmware will halt the machine as a safety precaution.
*
* If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
*/
#if ENABLED(THERMAL_PROTECTION_HOTENDS)
#define THERMAL_PROTECTION_PERIOD 40 // Seconds
#define THERMAL_PROTECTION_HYSTERESIS 4 // Degrees Celsius
/**
* Whenever an M104 or M109 increases the target temperature the firmware will wait for the
* WATCH_TEMP_PERIOD to expire, and if the temperature hasn't increased by WATCH_TEMP_INCREASE
* degrees, the machine is halted, requiring a hard reset. This test restarts with any M104/M109,
* but only if the current temperature is far enough below the target for a reliable test.
*
* If you get false positives for "Heating failed" increase WATCH_TEMP_PERIOD and/or decrease WATCH_TEMP_INCREASE
* WATCH_TEMP_INCREASE should not be below 2.
*/
#define WATCH_TEMP_PERIOD 20 // Seconds
#define WATCH_TEMP_INCREASE 2 // Degrees Celsius
#endif
/**
* Thermal Protection parameters for the bed are just as above for hotends.
*/
#if ENABLED(THERMAL_PROTECTION_BED)
#define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds
#define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius
/**
* Whenever an M140 or M190 increases the target temperature the firmware will wait for the
* WATCH_BED_TEMP_PERIOD to expire, and if the temperature hasn't increased by WATCH_BED_TEMP_INCREASE
* degrees, the machine is halted, requiring a hard reset. This test restarts with any M140/M190,
* but only if the current temperature is far enough below the target for a reliable test.
*
* If you get too many "Heating failed" errors, increase WATCH_BED_TEMP_PERIOD and/or decrease
* WATCH_BED_TEMP_INCREASE. (WATCH_BED_TEMP_INCREASE should not be below 2.)
*/
#define WATCH_BED_TEMP_PERIOD 60 // Seconds
#define WATCH_BED_TEMP_INCREASE 2 // Degrees Celsius
#endif
#if ENABLED(PIDTEMP)
// this adds an experimental additional term to the heating power, proportional to the extrusion speed.
// if Kc is chosen well, the additional required power due to increased melting should be compensated.
//#define PID_EXTRUSION_SCALING
#if ENABLED(PID_EXTRUSION_SCALING)
#define DEFAULT_Kc (100) //heating power=Kc*(e_speed)
#define LPQ_MAX_LEN 50
#endif
#endif
/**
* Automatic Temperature:
* The hotend target temperature is calculated by all the buffered lines of gcode.
* The maximum buffered steps/sec of the extruder motor is called "se".
* Start autotemp mode with M109 S<mintemp> B<maxtemp> F<factor>
* The target temperature is set to mintemp+factor*se[steps/sec] and is limited by
* mintemp and maxtemp. Turn this off by executing M109 without F*
* Also, if the temperature is set to a value below mintemp, it will not be changed by autotemp.
* On an Ultimaker, some initial testing worked with M109 S215 B260 F1 in the start.gcode
*/
#define AUTOTEMP
#if ENABLED(AUTOTEMP)
#define AUTOTEMP_OLDWEIGHT 0.98
#endif
//Show Temperature ADC value
//The M105 command return, besides traditional information, the ADC value read from temperature sensors.
//#define SHOW_TEMP_ADC_VALUES
/**
* High Temperature Thermistor Support
*
* Thermistors able to support high temperature tend to have a hard time getting
* good readings at room and lower temperatures. This means HEATER_X_RAW_LO_TEMP
* will probably be caught when the heating element first turns on during the
* preheating process, which will trigger a min_temp_error as a safety measure
* and force stop everything.
* To circumvent this limitation, we allow for a preheat time (during which,
* min_temp_error won't be triggered) and add a min_temp buffer to handle
* aberrant readings.
*
* If you want to enable this feature for your hotend thermistor(s)
* uncomment and set values > 0 in the constants below
*/
// The number of consecutive low temperature errors that can occur
// before a min_temp_error is triggered. (Shouldn't be more than 10.)
//#define MAX_CONSECUTIVE_LOW_TEMPERATURE_ERROR_ALLOWED 0
// The number of milliseconds a hotend will preheat before starting to check
// the temperature. This value should NOT be set to the time it takes the
// hot end to reach the target temperature, but the time it takes to reach
// the minimum temperature your thermistor can read. The lower the better/safer.
// This shouldn't need to be more than 30 seconds (30000)
//#define MILLISECONDS_PREHEAT_TIME 0
// @section extruder
// extruder run-out prevention.
//if the machine is idle, and the temperature over MINTEMP, every couple of SECONDS some filament is extruded
//#define EXTRUDER_RUNOUT_PREVENT
#define EXTRUDER_RUNOUT_MINTEMP 190
#define EXTRUDER_RUNOUT_SECONDS 30
#define EXTRUDER_RUNOUT_ESTEPS 14 // mm filament
#define EXTRUDER_RUNOUT_SPEED 1500 // extrusion speed
#define EXTRUDER_RUNOUT_EXTRUDE 100
// @section temperature
//These defines help to calibrate the AD595 sensor in case you get wrong temperature measurements.
//The measured temperature is defined as "actualTemp = (measuredTemp * TEMP_SENSOR_AD595_GAIN) + TEMP_SENSOR_AD595_OFFSET"
#define TEMP_SENSOR_AD595_OFFSET 0.0
#define TEMP_SENSOR_AD595_GAIN 1.0
//This is for controlling a fan to cool down the stepper drivers
//it will turn on when any driver is enabled
//and turn off after the set amount of seconds from last driver being disabled again
#define CONTROLLERFAN_PIN -1 //Pin used for the fan to cool controller (-1 to disable)
#define CONTROLLERFAN_SECS 60 //How many seconds, after all motors were disabled, the fan should run
#define CONTROLLERFAN_SPEED 255 // == full speed
// When first starting the main fan, run it at full speed for the
// given number of milliseconds. This gets the fan spinning reliably
// before setting a PWM value. (Does not work with software PWM for fan on Sanguinololu)
//#define FAN_KICKSTART_TIME 100
// This defines the minimal speed for the main fan, run in PWM mode
// to enable uncomment and set minimal PWM speed for reliable running (1-255)
// if fan speed is [1 - (FAN_MIN_PWM-1)] it is set to FAN_MIN_PWM
//#define FAN_MIN_PWM 50
// @section extruder
// Extruder cooling fans
// Configure fan pin outputs to automatically turn on/off when the associated
// extruder temperature is above/below EXTRUDER_AUTO_FAN_TEMPERATURE.
// Multiple extruders can be assigned to the same pin in which case
// the fan will turn on when any selected extruder is above the threshold.
#define EXTRUDER_0_AUTO_FAN_PIN -1
#define EXTRUDER_1_AUTO_FAN_PIN -1
#define EXTRUDER_2_AUTO_FAN_PIN -1
#define EXTRUDER_3_AUTO_FAN_PIN -1
#define EXTRUDER_AUTO_FAN_TEMPERATURE 50
#define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed
//===========================================================================
//============================ Mechanical Settings ==========================
//===========================================================================
// @section homing
// If you want endstops to stay on (by default) even when not homing
// enable this option. Override at any time with M120, M121.
//#define ENDSTOPS_ALWAYS_ON_DEFAULT
// @section extras
//#define Z_LATE_ENABLE // Enable Z the last moment. Needed if your Z driver overheats.
// Dual X Steppers
// Uncomment this option to drive two X axis motors.
// The next unused E driver will be assigned to the second X stepper.
//#define X_DUAL_STEPPER_DRIVERS
#if ENABLED(X_DUAL_STEPPER_DRIVERS)
// Set true if the two X motors need to rotate in opposite directions
#define INVERT_X2_VS_X_DIR true
#endif
// Dual Y Steppers
// Uncomment this option to drive two Y axis motors.
// The next unused E driver will be assigned to the second Y stepper.
//#define Y_DUAL_STEPPER_DRIVERS
#if ENABLED(Y_DUAL_STEPPER_DRIVERS)
// Set true if the two Y motors need to rotate in opposite directions
#define INVERT_Y2_VS_Y_DIR true
#endif
// A single Z stepper driver is usually used to drive 2 stepper motors.
// Uncomment this option to use a separate stepper driver for each Z axis motor.
// The next unused E driver will be assigned to the second Z stepper.
//#define Z_DUAL_STEPPER_DRIVERS
#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
// Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
// That way the machine is capable to align the bed during home, since both Z steppers are homed.
// There is also an implementation of M666 (software endstops adjustment) to this feature.
// After Z homing, this adjustment is applied to just one of the steppers in order to align the bed.
// One just need to home the Z axis and measure the distance difference between both Z axis and apply the math: Z adjust = Z - Z2.
// If the Z stepper axis is closer to the bed, the measure Z > Z2 (yes, it is.. think about it) and the Z adjust would be positive.
// Play a little bit with small adjustments (0.5mm) and check the behaviour.
// The M119 (endstops report) will start reporting the Z2 Endstop as well.
//#define Z_DUAL_ENDSTOPS
#if ENABLED(Z_DUAL_ENDSTOPS)
#define Z2_USE_ENDSTOP _XMAX_
#endif
#endif // Z_DUAL_STEPPER_DRIVERS
// Enable this for dual x-carriage printers.
// A dual x-carriage design has the advantage that the inactive extruder can be parked which
// prevents hot-end ooze contaminating the print. It also reduces the weight of each x-carriage
// allowing faster printing speeds. Connect your X2 stepper to the first unused E plug.
//#define DUAL_X_CARRIAGE
#if ENABLED(DUAL_X_CARRIAGE)
// Configuration for second X-carriage
// Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
// the second x-carriage always homes to the maximum endstop.
#define X2_MIN_POS 80 // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
#define X2_MAX_POS 353 // set maximum to the distance between toolheads when both heads are homed
#define X2_HOME_DIR 1 // the second X-carriage always homes to the maximum endstop position
#define X2_HOME_POS X2_MAX_POS // default home position is the maximum carriage position
// However: In this mode the HOTEND_OFFSET_X value for the second extruder provides a software
// override for X2_HOME_POS. This also allow recalibration of the distance between the two endstops
// without modifying the firmware (through the "M218 T1 X???" command).
// Remember: you should set the second extruder x-offset to 0 in your slicer.
// There are a few selectable movement modes for dual x-carriages using M605 S<mode>
// Mode 0: Full control. The slicer has full control over both x-carriages and can achieve optimal travel results
// as long as it supports dual x-carriages. (M605 S0)
// Mode 1: Auto-park mode. The firmware will automatically park and unpark the x-carriages on tool changes so
// that additional slicer support is not required. (M605 S1)
// Mode 2: Duplication mode. The firmware will transparently make the second x-carriage and extruder copy all
// actions of the first x-carriage. This allows the printer to print 2 arbitrary items at
// once. (2nd extruder x offset and temp offset are set using: M605 S2 [Xnnn] [Rmmm])
// This is the default power-up mode which can be later using M605.
#define DEFAULT_DUAL_X_CARRIAGE_MODE 0
// Default settings in "Auto-park Mode"
#define TOOLCHANGE_PARK_ZLIFT 0.2 // the distance to raise Z axis when parking an extruder
#define TOOLCHANGE_UNPARK_ZLIFT 1 // the distance to raise Z axis when unparking an extruder
// Default x offset in duplication mode (typically set to half print bed width)
#define DEFAULT_DUPLICATION_X_OFFSET 100
#endif //DUAL_X_CARRIAGE
// @section homing
//homing hits the endstop, then retracts by this distance, before it tries to slowly bump again:
#define X_HOME_BUMP_MM 5
#define Y_HOME_BUMP_MM 5
#define Z_HOME_BUMP_MM 2
#define HOMING_BUMP_DIVISOR {2, 2, 4} // Re-Bump Speed Divisor (Divides the Homing Feedrate)
//#define QUICK_HOME //if this is defined, if both x and y are to be homed, a diagonal move will be performed initially.
// When G28 is called, this option will make Y home before X
//#define HOME_Y_BEFORE_X
// @section machine
#define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder
//#define DUAL_NOZZLE_DUPLICATION_MODE
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false
#define INVERT_Y_STEP_PIN false
#define INVERT_Z_STEP_PIN false
#define INVERT_E_STEP_PIN false
// Default stepper release if idle. Set to 0 to deactivate.
// Steppers will shut down DEFAULT_STEPPER_DEACTIVE_TIME seconds after the last move when DISABLE_INACTIVE_? is true.
// Time can be set by M18 and M84.
#define DEFAULT_STEPPER_DEACTIVE_TIME 60
#define DISABLE_INACTIVE_X true
#define DISABLE_INACTIVE_Y true
#define DISABLE_INACTIVE_Z true // set to false if the nozzle will fall down on your printed part when print has finished.
#define DISABLE_INACTIVE_E true
#define DEFAULT_MINIMUMFEEDRATE 0.0 // minimum feedrate
#define DEFAULT_MINTRAVELFEEDRATE 0.0
// @section lcd
#if ENABLED(ULTIPANEL)
#define MANUAL_FEEDRATE {50*60, 50*60, 4*60, 60} // Feedrates for manual moves along X, Y, Z, E from panel
#define ULTIPANEL_FEEDMULTIPLY // Comment to disable setting feedrate multiplier via encoder
#endif
// @section extras
// minimum time in microseconds that a movement needs to take if the buffer is emptied.
#define DEFAULT_MINSEGMENTTIME 20000
// If defined the movements slow down when the look ahead buffer is only half full
#define SLOWDOWN
// Frequency limit
// See nophead's blog for more info
// Not working O
//#define XY_FREQUENCY_LIMIT 15
// Minimum planner junction speed. Sets the default minimum speed the planner plans for at the end
// of the buffer and all stops. This should not be much greater than zero and should only be changed
// if unwanted behavior is observed on a user's machine when running at very slow speeds.
#define MINIMUM_PLANNER_SPEED 0.05// (mm/sec)
// Microstep setting (Only functional when stepper driver microstep pins are connected to MCU.
#define MICROSTEP_MODES {16,16,16,16,16} // [1,2,4,8,16]
// Motor Current setting (Only functional when motor driver current ref pins are connected to a digital trimpot on supported boards)
#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
// Motor Current controlled via PWM (Overridable on supported boards with PWM-driven motor driver current)
//#define PWM_MOTOR_CURRENT {1300, 1300, 1250} // Values in milliamps
// uncomment to enable an I2C based DIGIPOT like on the Azteeg X3 Pro
//#define DIGIPOT_I2C
// Number of channels available for I2C digipot, For Azteeg X3 Pro we have 8
#define DIGIPOT_I2C_NUM_CHANNELS 4
// actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
#define DIGIPOT_I2C_MOTOR_CURRENTS {1.7, 1.7, 1.7, 1.7}
//===========================================================================
//=============================Additional Features===========================
//===========================================================================
#define ENCODER_RATE_MULTIPLIER // If defined, certain menu edit operations automatically multiply the steps when the encoder is moved quickly
#define ENCODER_10X_STEPS_PER_SEC 75 // If the encoder steps per sec exceeds this value, multiply steps moved x10 to quickly advance the value
#define ENCODER_100X_STEPS_PER_SEC 160 // If the encoder steps per sec exceeds this value, multiply steps moved x100 to really quickly advance the value
//#define CHDK 4 //Pin for triggering CHDK to take a picture see how to use it here http://captain-slow.dk/2014/03/09/3d-printing-timelapses/
#define CHDK_DELAY 50 //How long in ms the pin should stay HIGH before going LOW again
// @section lcd
// Include a page of printer information in the LCD Main Menu
//#define LCD_INFO_MENU
#if ENABLED(SDSUPPORT)
// Some RAMPS and other boards don't detect when an SD card is inserted. You can work
// around this by connecting a push button or single throw switch to the pin defined
// as SD_DETECT_PIN in your board's pins definitions.
// This setting should be disabled unless you are using a push button, pulling the pin to ground.
// Note: This is always disabled for ULTIPANEL (except ELB_FULL_GRAPHIC_CONTROLLER).
//#define SD_DETECT_INVERTED
#define SD_FINISHED_STEPPERRELEASE true //if sd support and the file is finished: disable steppers?
#define SD_FINISHED_RELEASECOMMAND "M84 X Y Z E" // You might want to keep the z enabled so your bed stays in place.
#define SDCARD_RATHERRECENTFIRST //reverse file order of sd card menu display. Its sorted practically after the file system block order.
// if a file is deleted, it frees a block. hence, the order is not purely chronological. To still have auto0.g accessible, there is again the option to do that.
// using:
//#define MENU_ADDAUTOSTART
// Show a progress bar on HD44780 LCDs for SD printing
//#define LCD_PROGRESS_BAR
#if ENABLED(LCD_PROGRESS_BAR)
// Amount of time (ms) to show the bar
#define PROGRESS_BAR_BAR_TIME 2000
// Amount of time (ms) to show the status message
#define PROGRESS_BAR_MSG_TIME 3000
// Amount of time (ms) to retain the status message (0=forever)
#define PROGRESS_MSG_EXPIRE 0
// Enable this to show messages for MSG_TIME then hide them
//#define PROGRESS_MSG_ONCE
#endif
// This allows hosts to request long names for files and folders with M33
//#define LONG_FILENAME_HOST_SUPPORT
// This option allows you to abort SD printing when any endstop is triggered.
// This feature must be enabled with "M540 S1" or from the LCD menu.
// To have any effect, endstops must be enabled during SD printing.
//#define ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED
#endif // SDSUPPORT
// for dogm lcd displays you can choose some additional fonts:
#if ENABLED(DOGLCD)
// save 3120 bytes of PROGMEM by commenting out #define USE_BIG_EDIT_FONT
// we don't have a big font for Cyrillic, Kana
//#define USE_BIG_EDIT_FONT
// If you have spare 2300Byte of progmem and want to use a
// smaller font on the Info-screen uncomment the next line.
//#define USE_SMALL_INFOFONT
#endif // DOGLCD
// @section safety
// The hardware watchdog should reset the microcontroller disabling all outputs,
// in case the firmware gets stuck and doesn't do temperature regulation.
#define USE_WATCHDOG
#if ENABLED(USE_WATCHDOG)
// If you have a watchdog reboot in an ArduinoMega2560 then the device will hang forever, as a watchdog reset will leave the watchdog on.
// The "WATCHDOG_RESET_MANUAL" goes around this by not using the hardware reset.
// However, THIS FEATURE IS UNSAFE!, as it will only work if interrupts are disabled. And the code could hang in an interrupt routine with interrupts disabled.
//#define WATCHDOG_RESET_MANUAL
#endif
// @section lcd
// Babystepping enables the user to control the axis in tiny amounts, independently from the normal printing process
// it can e.g. be used to change z-positions in the print startup phase in real-time
// does not respect endstops!
//#define BABYSTEPPING
#if ENABLED(BABYSTEPPING)
#define BABYSTEP_XY //not only z, but also XY in the menu. more clutter, more functions
//not implemented for deltabots!
#define BABYSTEP_INVERT_Z false //true for inverse movements in Z
#define BABYSTEP_MULTIPLICATOR 1 //faster movements
#endif
// @section extruder
// extruder advance constant (s2/mm3)
//
// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
//
// Hooke's law says: force = k * distance
// Bernoulli's principle says: v ^ 2 / 2 + g . h + pressure / density = constant
// so: v ^ 2 is proportional to number of steps we advance the extruder
//#define ADVANCE
#if ENABLED(ADVANCE)
#define EXTRUDER_ADVANCE_K .0
#define D_FILAMENT 2.85
#endif
// Implementation of a linear pressure control
// Assumption: advance = k * (delta velocity)
// K=0 means advance disabled. A good value for a gregs wade extruder will be around K=75
//#define LIN_ADVANCE
#if ENABLED(LIN_ADVANCE)
#define LIN_ADVANCE_K 75
#endif
// @section leveling
// Default mesh area is an area with an inset margin on the print area.
// Below are the macros that are used to define the borders for the mesh area,
// made available here for specialized needs, ie dual extruder setup.
#if ENABLED(MESH_BED_LEVELING)
#define MESH_MIN_X (X_MIN_POS + MESH_INSET)
#define MESH_MAX_X (X_MAX_POS - (MESH_INSET))
#define MESH_MIN_Y (Y_MIN_POS + MESH_INSET)
#define MESH_MAX_Y (Y_MAX_POS - (MESH_INSET))
#endif
// @section extras
// Arc interpretation settings:
#define ARC_SUPPORT // Disabling this saves ~2738 bytes
#define MM_PER_ARC_SEGMENT 1
#define N_ARC_CORRECTION 25
// Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
//#define BEZIER_CURVE_SUPPORT
const unsigned int dropsegments = 5; //everything with less than this number of steps will be ignored as move and joined with the next movement
// @section temperature
// Control heater 0 and heater 1 in parallel.
//#define HEATERS_PARALLEL
//===========================================================================
//================================= Buffers =================================
//===========================================================================
// @section hidden
// The number of linear motions that can be in the plan at any give time.
// THE BLOCK_BUFFER_SIZE NEEDS TO BE A POWER OF 2, i.g. 8,16,32 because shifts and ors are used to do the ring-buffering.
#if ENABLED(SDSUPPORT)
#define BLOCK_BUFFER_SIZE 16 // SD,LCD,Buttons take more memory, block buffer needs to be smaller
#else
#define BLOCK_BUFFER_SIZE 16 // maximize block buffer
#endif
// @section serial
// The ASCII buffer for serial input
#define MAX_CMD_SIZE 96
#define BUFSIZE 4
// Transfer Buffer Size
// To save 386 bytes of PROGMEM (and TX_BUFFER_SIZE+3 bytes of RAM) set to 0.
// To buffer a simple "ok" you need 4 bytes.
// For ADVANCED_OK (M105) you need 32 bytes.
// For debug-echo: 128 bytes for the optimal speed.
// Other output doesn't need to be that speedy.
// :[0,2,4,8,16,32,64,128,256]
#define TX_BUFFER_SIZE 0
// Enable an emergency-command parser to intercept certain commands as they
// enter the serial receive buffer, so they cannot be blocked.
// Currently handles M108, M112, M410
// Does not work on boards using AT90USB (USBCON) processors!
//#define EMERGENCY_PARSER
// Bad Serial-connections can miss a received command by sending an 'ok'
// Therefore some clients abort after 30 seconds in a timeout.
// Some other clients start sending commands while receiving a 'wait'.
// This "wait" is only sent when the buffer is empty. 1 second is a good value here.
//#define NO_TIMEOUTS 1000 // Milliseconds
// Some clients will have this feature soon. This could make the NO_TIMEOUTS unnecessary.
//#define ADVANCED_OK
// @section fwretract
// Firmware based and LCD controlled retract
// M207 and M208 can be used to define parameters for the retraction.
// The retraction can be called by the slicer using G10 and G11
// until then, intended retractions can be detected by moves that only extrude and the direction.
// the moves are than replaced by the firmware controlled ones.
//#define FWRETRACT //ONLY PARTIALLY TESTED
#if ENABLED(FWRETRACT)
#define MIN_RETRACT 0.1 //minimum extruded mm to accept a automatic gcode retraction attempt
#define RETRACT_LENGTH 3 //default retract length (positive mm)
#define RETRACT_LENGTH_SWAP 13 //default swap retract length (positive mm), for extruder change
#define RETRACT_FEEDRATE 45 //default feedrate for retracting (mm/s)
#define RETRACT_ZLIFT 0 //default retract Z-lift
#define RETRACT_RECOVER_LENGTH 0 //default additional recover length (mm, added to retract length when recovering)
#define RETRACT_RECOVER_LENGTH_SWAP 0 //default additional swap recover length (mm, added to retract length when recovering from extruder change)
#define RETRACT_RECOVER_FEEDRATE 8 //default feedrate for recovering from retraction (mm/s)
#endif
// Add support for experimental filament exchange support M600; requires display
#if ENABLED(ULTIPANEL)
// #define FILAMENT_CHANGE_FEATURE // Enable filament exchange menu and M600 g-code (used for runout sensor too)
#if ENABLED(FILAMENT_CHANGE_FEATURE)
#define FILAMENT_CHANGE_X_POS 3 // X position of hotend
#define FILAMENT_CHANGE_Y_POS 3 // Y position of hotend
#define FILAMENT_CHANGE_Z_ADD 10 // Z addition of hotend (lift)
#define FILAMENT_CHANGE_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
#define FILAMENT_CHANGE_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
#define FILAMENT_CHANGE_RETRACT_LENGTH 2 // Initial retract in mm
// It is a short retract used immediately after print interrupt before move to filament exchange position
#define FILAMENT_CHANGE_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
#define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm
// Longer length for bowden printers to unload filament from whole bowden tube,
// shorter lenght for printers without bowden to unload filament from extruder only,
// 0 to disable unloading for manual unloading
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast
#define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm
// Longer length for bowden printers to fast load filament into whole bowden tube over the hotend,
// Short or zero length for printers without bowden where loading is not used
#define FILAMENT_CHANGE_LOAD_FEEDRATE 10 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast
#define FILAMENT_CHANGE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is load over the hotend,
// 0 to disable for manual extrusion
// Filament can be extruded repeatedly from the filament exchange menu to fill the hotend,
// or until outcoming filament color is not clear for filament color change
#define FILAMENT_CHANGE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
#endif
#endif
/******************************************************************************\
* enable this section if you have TMC26X motor drivers.
* you need to import the TMC26XStepper library into the Arduino IDE for this
******************************************************************************/
// @section tmc
//#define HAVE_TMCDRIVER
#if ENABLED(HAVE_TMCDRIVER)
//#define X_IS_TMC
#define X_MAX_CURRENT 1000 //in mA
#define X_SENSE_RESISTOR 91 //in mOhms
#define X_MICROSTEPS 16 //number of microsteps
//#define X2_IS_TMC
#define X2_MAX_CURRENT 1000 //in mA
#define X2_SENSE_RESISTOR 91 //in mOhms
#define X2_MICROSTEPS 16 //number of microsteps
//#define Y_IS_TMC
#define Y_MAX_CURRENT 1000 //in mA
#define Y_SENSE_RESISTOR 91 //in mOhms
#define Y_MICROSTEPS 16 //number of microsteps
//#define Y2_IS_TMC
#define Y2_MAX_CURRENT 1000 //in mA
#define Y2_SENSE_RESISTOR 91 //in mOhms
#define Y2_MICROSTEPS 16 //number of microsteps
//#define Z_IS_TMC
#define Z_MAX_CURRENT 1000 //in mA
#define Z_SENSE_RESISTOR 91 //in mOhms
#define Z_MICROSTEPS 16 //number of microsteps
//#define Z2_IS_TMC
#define Z2_MAX_CURRENT 1000 //in mA
#define Z2_SENSE_RESISTOR 91 //in mOhms
#define Z2_MICROSTEPS 16 //number of microsteps
//#define E0_IS_TMC
#define E0_MAX_CURRENT 1000 //in mA
#define E0_SENSE_RESISTOR 91 //in mOhms
#define E0_MICROSTEPS 16 //number of microsteps
//#define E1_IS_TMC
#define E1_MAX_CURRENT 1000 //in mA
#define E1_SENSE_RESISTOR 91 //in mOhms
#define E1_MICROSTEPS 16 //number of microsteps
//#define E2_IS_TMC
#define E2_MAX_CURRENT 1000 //in mA
#define E2_SENSE_RESISTOR 91 //in mOhms
#define E2_MICROSTEPS 16 //number of microsteps
//#define E3_IS_TMC
#define E3_MAX_CURRENT 1000 //in mA
#define E3_SENSE_RESISTOR 91 //in mOhms
#define E3_MICROSTEPS 16 //number of microsteps
#endif
/******************************************************************************\
* enable this section if you have L6470 motor drivers.
* you need to import the L6470 library into the Arduino IDE for this
******************************************************************************/
// @section l6470
//#define HAVE_L6470DRIVER
#if ENABLED(HAVE_L6470DRIVER)
//#define X_IS_L6470
#define X_MICROSTEPS 16 //number of microsteps
#define X_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define X_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define X_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define X2_IS_L6470
#define X2_MICROSTEPS 16 //number of microsteps
#define X2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define X2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define X2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define Y_IS_L6470
#define Y_MICROSTEPS 16 //number of microsteps
#define Y_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define Y_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define Y_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define Y2_IS_L6470
#define Y2_MICROSTEPS 16 //number of microsteps
#define Y2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define Y2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define Y2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define Z_IS_L6470
#define Z_MICROSTEPS 16 //number of microsteps
#define Z_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define Z_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define Z_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define Z2_IS_L6470
#define Z2_MICROSTEPS 16 //number of microsteps
#define Z2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define Z2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define Z2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define E0_IS_L6470
#define E0_MICROSTEPS 16 //number of microsteps
#define E0_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define E0_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define E0_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define E1_IS_L6470
#define E1_MICROSTEPS 16 //number of microsteps
#define E1_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define E1_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define E1_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define E2_IS_L6470
#define E2_MICROSTEPS 16 //number of microsteps
#define E2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define E2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define E2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define E3_IS_L6470
#define E3_MICROSTEPS 16 //number of microsteps
#define E3_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define E3_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define E3_STALLCURRENT 1500 //current in mA where the driver will detect a stall
#endif
/**
* TWI/I2C BUS
*
* This feature is an EXPERIMENTAL feature so it shall not be used on production
* machines. Enabling this will allow you to send and receive I2C data from slave
* devices on the bus.
*
* ; Example #1
* ; This macro send the string "Marlin" to the slave device with address 0x63 (99)
* ; It uses multiple M155 commands with one B<base 10> arg
* M155 A99 ; Target slave address
* M155 B77 ; M
* M155 B97 ; a
* M155 B114 ; r
* M155 B108 ; l
* M155 B105 ; i
* M155 B110 ; n
* M155 S1 ; Send the current buffer
*
* ; Example #2
* ; Request 6 bytes from slave device with address 0x63 (99)
* M156 A99 B5
*
* ; Example #3
* ; Example serial output of a M156 request
* echo:i2c-reply: from:99 bytes:5 data:hello
*/
// @section i2cbus
//#define EXPERIMENTAL_I2CBUS
#endif // CONFIGURATION_ADV_H
File diff suppressed because it is too large Load Diff
@@ -1,799 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
* Configuration_adv.h
*
* Advanced settings.
* Only change these if you know exactly what you're doing.
* Some of these settings can damage your printer if improperly set!
*
* Basic settings can be found in Configuration.h
*
*/
#ifndef CONFIGURATION_ADV_H
#define CONFIGURATION_ADV_H
/**
*
* ***********************************
* ** ATTENTION TO ALL DEVELOPERS **
* ***********************************
*
* You must increment this version number for every significant change such as,
* but not limited to: ADD, DELETE RENAME OR REPURPOSE any directive/option.
*
* Note: Update also Version.h !
*/
#define CONFIGURATION_ADV_H_VERSION 010100
// @section temperature
//===========================================================================
//=============================Thermal Settings ============================
//===========================================================================
#if DISABLED(PIDTEMPBED)
#define BED_CHECK_INTERVAL 5000 // ms between checks in bang-bang control
#if ENABLED(BED_LIMIT_SWITCHING)
#define BED_HYSTERESIS 2 // Only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
#endif
#endif
/**
* Thermal Protection protects your printer from damage and fire if a
* thermistor falls out or temperature sensors fail in any way.
*
* The issue: If a thermistor falls out or a temperature sensor fails,
* Marlin can no longer sense the actual temperature. Since a disconnected
* thermistor reads as a low temperature, the firmware will keep the heater on.
*
* The solution: Once the temperature reaches the target, start observing.
* If the temperature stays too far below the target (hysteresis) for too long (period),
* the firmware will halt the machine as a safety precaution.
*
* If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
*/
#if ENABLED(THERMAL_PROTECTION_HOTENDS)
#define THERMAL_PROTECTION_PERIOD 40 // Seconds
#define THERMAL_PROTECTION_HYSTERESIS 4 // Degrees Celsius
/**
* Whenever an M104 or M109 increases the target temperature the firmware will wait for the
* WATCH_TEMP_PERIOD to expire, and if the temperature hasn't increased by WATCH_TEMP_INCREASE
* degrees, the machine is halted, requiring a hard reset. This test restarts with any M104/M109,
* but only if the current temperature is far enough below the target for a reliable test.
*
* If you get false positives for "Heating failed" increase WATCH_TEMP_PERIOD and/or decrease WATCH_TEMP_INCREASE
* WATCH_TEMP_INCREASE should not be below 2.
*/
#define WATCH_TEMP_PERIOD 20 // Seconds
#define WATCH_TEMP_INCREASE 2 // Degrees Celsius
#endif
/**
* Thermal Protection parameters for the bed are just as above for hotends.
*/
#if ENABLED(THERMAL_PROTECTION_BED)
#define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds
#define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius
/**
* Whenever an M140 or M190 increases the target temperature the firmware will wait for the
* WATCH_BED_TEMP_PERIOD to expire, and if the temperature hasn't increased by WATCH_BED_TEMP_INCREASE
* degrees, the machine is halted, requiring a hard reset. This test restarts with any M140/M190,
* but only if the current temperature is far enough below the target for a reliable test.
*
* If you get too many "Heating failed" errors, increase WATCH_BED_TEMP_PERIOD and/or decrease
* WATCH_BED_TEMP_INCREASE. (WATCH_BED_TEMP_INCREASE should not be below 2.)
*/
#define WATCH_BED_TEMP_PERIOD 60 // Seconds
#define WATCH_BED_TEMP_INCREASE 2 // Degrees Celsius
#endif
#if ENABLED(PIDTEMP)
// this adds an experimental additional term to the heating power, proportional to the extrusion speed.
// if Kc is chosen well, the additional required power due to increased melting should be compensated.
//#define PID_EXTRUSION_SCALING
#if ENABLED(PID_EXTRUSION_SCALING)
#define DEFAULT_Kc (100) //heating power=Kc*(e_speed)
#define LPQ_MAX_LEN 50
#endif
#endif
/**
* Automatic Temperature:
* The hotend target temperature is calculated by all the buffered lines of gcode.
* The maximum buffered steps/sec of the extruder motor is called "se".
* Start autotemp mode with M109 S<mintemp> B<maxtemp> F<factor>
* The target temperature is set to mintemp+factor*se[steps/sec] and is limited by
* mintemp and maxtemp. Turn this off by executing M109 without F*
* Also, if the temperature is set to a value below mintemp, it will not be changed by autotemp.
* On an Ultimaker, some initial testing worked with M109 S215 B260 F1 in the start.gcode
*/
#define AUTOTEMP
#if ENABLED(AUTOTEMP)
#define AUTOTEMP_OLDWEIGHT 0.98
#endif
//Show Temperature ADC value
//The M105 command return, besides traditional information, the ADC value read from temperature sensors.
//#define SHOW_TEMP_ADC_VALUES
/**
* High Temperature Thermistor Support
*
* Thermistors able to support high temperature tend to have a hard time getting
* good readings at room and lower temperatures. This means HEATER_X_RAW_LO_TEMP
* will probably be caught when the heating element first turns on during the
* preheating process, which will trigger a min_temp_error as a safety measure
* and force stop everything.
* To circumvent this limitation, we allow for a preheat time (during which,
* min_temp_error won't be triggered) and add a min_temp buffer to handle
* aberrant readings.
*
* If you want to enable this feature for your hotend thermistor(s)
* uncomment and set values > 0 in the constants below
*/
// The number of consecutive low temperature errors that can occur
// before a min_temp_error is triggered. (Shouldn't be more than 10.)
//#define MAX_CONSECUTIVE_LOW_TEMPERATURE_ERROR_ALLOWED 0
// The number of milliseconds a hotend will preheat before starting to check
// the temperature. This value should NOT be set to the time it takes the
// hot end to reach the target temperature, but the time it takes to reach
// the minimum temperature your thermistor can read. The lower the better/safer.
// This shouldn't need to be more than 30 seconds (30000)
//#define MILLISECONDS_PREHEAT_TIME 0
// @section extruder
// extruder run-out prevention.
//if the machine is idle, and the temperature over MINTEMP, every couple of SECONDS some filament is extruded
//#define EXTRUDER_RUNOUT_PREVENT
#define EXTRUDER_RUNOUT_MINTEMP 190
#define EXTRUDER_RUNOUT_SECONDS 30
#define EXTRUDER_RUNOUT_ESTEPS 14 // mm filament
#define EXTRUDER_RUNOUT_SPEED 1500 // extrusion speed
#define EXTRUDER_RUNOUT_EXTRUDE 100
// @section temperature
//These defines help to calibrate the AD595 sensor in case you get wrong temperature measurements.
//The measured temperature is defined as "actualTemp = (measuredTemp * TEMP_SENSOR_AD595_GAIN) + TEMP_SENSOR_AD595_OFFSET"
#define TEMP_SENSOR_AD595_OFFSET 0.0
#define TEMP_SENSOR_AD595_GAIN 1.0
//This is for controlling a fan to cool down the stepper drivers
//it will turn on when any driver is enabled
//and turn off after the set amount of seconds from last driver being disabled again
#define CONTROLLERFAN_PIN 23 //Pin used for the fan to cool controller (-1 to disable)
#define CONTROLLERFAN_SECS 60 //How many seconds, after all motors were disabled, the fan should run
#define CONTROLLERFAN_SPEED 255 // == full speed
// When first starting the main fan, run it at full speed for the
// given number of milliseconds. This gets the fan spinning reliably
// before setting a PWM value. (Does not work with software PWM for fan on Sanguinololu)
//#define FAN_KICKSTART_TIME 100
// This defines the minimal speed for the main fan, run in PWM mode
// to enable uncomment and set minimal PWM speed for reliable running (1-255)
// if fan speed is [1 - (FAN_MIN_PWM-1)] it is set to FAN_MIN_PWM
//#define FAN_MIN_PWM 50
// @section extruder
// Extruder cooling fans
// Configure fan pin outputs to automatically turn on/off when the associated
// extruder temperature is above/below EXTRUDER_AUTO_FAN_TEMPERATURE.
// Multiple extruders can be assigned to the same pin in which case
// the fan will turn on when any selected extruder is above the threshold.
#define EXTRUDER_0_AUTO_FAN_PIN -1
#define EXTRUDER_1_AUTO_FAN_PIN -1
#define EXTRUDER_2_AUTO_FAN_PIN -1
#define EXTRUDER_3_AUTO_FAN_PIN -1
#define EXTRUDER_AUTO_FAN_TEMPERATURE 50
#define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed
//===========================================================================
//============================ Mechanical Settings ==========================
//===========================================================================
// @section homing
// If you want endstops to stay on (by default) even when not homing
// enable this option. Override at any time with M120, M121.
//#define ENDSTOPS_ALWAYS_ON_DEFAULT
// @section extras
//#define Z_LATE_ENABLE // Enable Z the last moment. Needed if your Z driver overheats.
// Dual X Steppers
// Uncomment this option to drive two X axis motors.
// The next unused E driver will be assigned to the second X stepper.
//#define X_DUAL_STEPPER_DRIVERS
#if ENABLED(X_DUAL_STEPPER_DRIVERS)
// Set true if the two X motors need to rotate in opposite directions
#define INVERT_X2_VS_X_DIR true
#endif
// Dual Y Steppers
// Uncomment this option to drive two Y axis motors.
// The next unused E driver will be assigned to the second Y stepper.
//#define Y_DUAL_STEPPER_DRIVERS
#if ENABLED(Y_DUAL_STEPPER_DRIVERS)
// Set true if the two Y motors need to rotate in opposite directions
#define INVERT_Y2_VS_Y_DIR true
#endif
// A single Z stepper driver is usually used to drive 2 stepper motors.
// Uncomment this option to use a separate stepper driver for each Z axis motor.
// The next unused E driver will be assigned to the second Z stepper.
//#define Z_DUAL_STEPPER_DRIVERS
#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
// Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
// That way the machine is capable to align the bed during home, since both Z steppers are homed.
// There is also an implementation of M666 (software endstops adjustment) to this feature.
// After Z homing, this adjustment is applied to just one of the steppers in order to align the bed.
// One just need to home the Z axis and measure the distance difference between both Z axis and apply the math: Z adjust = Z - Z2.
// If the Z stepper axis is closer to the bed, the measure Z > Z2 (yes, it is.. think about it) and the Z adjust would be positive.
// Play a little bit with small adjustments (0.5mm) and check the behaviour.
// The M119 (endstops report) will start reporting the Z2 Endstop as well.
//#define Z_DUAL_ENDSTOPS
#if ENABLED(Z_DUAL_ENDSTOPS)
#define Z2_USE_ENDSTOP _XMAX_
#endif
#endif // Z_DUAL_STEPPER_DRIVERS
// Enable this for dual x-carriage printers.
// A dual x-carriage design has the advantage that the inactive extruder can be parked which
// prevents hot-end ooze contaminating the print. It also reduces the weight of each x-carriage
// allowing faster printing speeds. Connect your X2 stepper to the first unused E plug.
//#define DUAL_X_CARRIAGE
#if ENABLED(DUAL_X_CARRIAGE)
// Configuration for second X-carriage
// Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
// the second x-carriage always homes to the maximum endstop.
#define X2_MIN_POS 80 // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
#define X2_MAX_POS 353 // set maximum to the distance between toolheads when both heads are homed
#define X2_HOME_DIR 1 // the second X-carriage always homes to the maximum endstop position
#define X2_HOME_POS X2_MAX_POS // default home position is the maximum carriage position
// However: In this mode the HOTEND_OFFSET_X value for the second extruder provides a software
// override for X2_HOME_POS. This also allow recalibration of the distance between the two endstops
// without modifying the firmware (through the "M218 T1 X???" command).
// Remember: you should set the second extruder x-offset to 0 in your slicer.
// There are a few selectable movement modes for dual x-carriages using M605 S<mode>
// Mode 0: Full control. The slicer has full control over both x-carriages and can achieve optimal travel results
// as long as it supports dual x-carriages. (M605 S0)
// Mode 1: Auto-park mode. The firmware will automatically park and unpark the x-carriages on tool changes so
// that additional slicer support is not required. (M605 S1)
// Mode 2: Duplication mode. The firmware will transparently make the second x-carriage and extruder copy all
// actions of the first x-carriage. This allows the printer to print 2 arbitrary items at
// once. (2nd extruder x offset and temp offset are set using: M605 S2 [Xnnn] [Rmmm])
// This is the default power-up mode which can be later using M605.
#define DEFAULT_DUAL_X_CARRIAGE_MODE 0
// Default settings in "Auto-park Mode"
#define TOOLCHANGE_PARK_ZLIFT 0.2 // the distance to raise Z axis when parking an extruder
#define TOOLCHANGE_UNPARK_ZLIFT 1 // the distance to raise Z axis when unparking an extruder
// Default x offset in duplication mode (typically set to half print bed width)
#define DEFAULT_DUPLICATION_X_OFFSET 100
#endif //DUAL_X_CARRIAGE
// @section homing
//homing hits the endstop, then retracts by this distance, before it tries to slowly bump again:
#define X_HOME_BUMP_MM 5
#define Y_HOME_BUMP_MM 5
#define Z_HOME_BUMP_MM 1
#define HOMING_BUMP_DIVISOR {2, 2, 4} // Re-Bump Speed Divisor (Divides the Homing Feedrate)
//#define QUICK_HOME //if this is defined, if both x and y are to be homed, a diagonal move will be performed initially.
// When G28 is called, this option will make Y home before X
//#define HOME_Y_BEFORE_X
// @section machine
#define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder
//#define DUAL_NOZZLE_DUPLICATION_MODE
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false
#define INVERT_Y_STEP_PIN false
#define INVERT_Z_STEP_PIN false
#define INVERT_E_STEP_PIN false
// Default stepper release if idle. Set to 0 to deactivate.
// Steppers will shut down DEFAULT_STEPPER_DEACTIVE_TIME seconds after the last move when DISABLE_INACTIVE_? is true.
// Time can be set by M18 and M84.
#define DEFAULT_STEPPER_DEACTIVE_TIME 60
#define DISABLE_INACTIVE_X true
#define DISABLE_INACTIVE_Y true
#define DISABLE_INACTIVE_Z true // set to false if the nozzle will fall down on your printed part when print has finished.
#define DISABLE_INACTIVE_E true
#define DEFAULT_MINIMUMFEEDRATE 0.0 // minimum feedrate
#define DEFAULT_MINTRAVELFEEDRATE 0.0
// @section lcd
#if ENABLED(ULTIPANEL)
#define MANUAL_FEEDRATE {50*60, 50*60, 4*60, 60} // Feedrates for manual moves along X, Y, Z, E from panel
#define ULTIPANEL_FEEDMULTIPLY // Comment to disable setting feedrate multiplier via encoder
#endif
// @section extras
// minimum time in microseconds that a movement needs to take if the buffer is emptied.
#define DEFAULT_MINSEGMENTTIME 20000
// If defined the movements slow down when the look ahead buffer is only half full
#define SLOWDOWN
// Frequency limit
// See nophead's blog for more info
// Not working O
//#define XY_FREQUENCY_LIMIT 15
// Minimum planner junction speed. Sets the default minimum speed the planner plans for at the end
// of the buffer and all stops. This should not be much greater than zero and should only be changed
// if unwanted behavior is observed on a user's machine when running at very slow speeds.
#define MINIMUM_PLANNER_SPEED 0.05// (mm/sec)
// Microstep setting (Only functional when stepper driver microstep pins are connected to MCU.
#define MICROSTEP_MODES {16,16,16,16,16} // [1,2,4,8,16]
// Motor Current setting (Only functional when motor driver current ref pins are connected to a digital trimpot on supported boards)
#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
// Motor Current controlled via PWM (Overridable on supported boards with PWM-driven motor driver current)
//#define PWM_MOTOR_CURRENT {1300, 1300, 1250} // Values in milliamps
// uncomment to enable an I2C based DIGIPOT like on the Azteeg X3 Pro
//#define DIGIPOT_I2C
// Number of channels available for I2C digipot, For Azteeg X3 Pro we have 8
#define DIGIPOT_I2C_NUM_CHANNELS 8
// actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
#define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0}
//===========================================================================
//=============================Additional Features===========================
//===========================================================================
#define ENCODER_RATE_MULTIPLIER // If defined, certain menu edit operations automatically multiply the steps when the encoder is moved quickly
#define ENCODER_10X_STEPS_PER_SEC 75 // If the encoder steps per sec exceeds this value, multiply steps moved x10 to quickly advance the value
#define ENCODER_100X_STEPS_PER_SEC 160 // If the encoder steps per sec exceeds this value, multiply steps moved x100 to really quickly advance the value
//#define CHDK 4 //Pin for triggering CHDK to take a picture see how to use it here http://captain-slow.dk/2014/03/09/3d-printing-timelapses/
#define CHDK_DELAY 50 //How long in ms the pin should stay HIGH before going LOW again
// @section lcd
// Include a page of printer information in the LCD Main Menu
//#define LCD_INFO_MENU
#if ENABLED(SDSUPPORT)
// Some RAMPS and other boards don't detect when an SD card is inserted. You can work
// around this by connecting a push button or single throw switch to the pin defined
// as SD_DETECT_PIN in your board's pins definitions.
// This setting should be disabled unless you are using a push button, pulling the pin to ground.
// Note: This is always disabled for ULTIPANEL (except ELB_FULL_GRAPHIC_CONTROLLER).
#define SD_DETECT_INVERTED
#define SD_FINISHED_STEPPERRELEASE true //if sd support and the file is finished: disable steppers?
#define SD_FINISHED_RELEASECOMMAND "M84 X Y Z E" // You might want to keep the z enabled so your bed stays in place.
#define SDCARD_RATHERRECENTFIRST //reverse file order of sd card menu display. Its sorted practically after the file system block order.
// if a file is deleted, it frees a block. hence, the order is not purely chronological. To still have auto0.g accessible, there is again the option to do that.
// using:
//#define MENU_ADDAUTOSTART
// Show a progress bar on HD44780 LCDs for SD printing
//#define LCD_PROGRESS_BAR
#if ENABLED(LCD_PROGRESS_BAR)
// Amount of time (ms) to show the bar
#define PROGRESS_BAR_BAR_TIME 2000
// Amount of time (ms) to show the status message
#define PROGRESS_BAR_MSG_TIME 3000
// Amount of time (ms) to retain the status message (0=forever)
#define PROGRESS_MSG_EXPIRE 0
// Enable this to show messages for MSG_TIME then hide them
//#define PROGRESS_MSG_ONCE
#endif
// This allows hosts to request long names for files and folders with M33
//#define LONG_FILENAME_HOST_SUPPORT
// This option allows you to abort SD printing when any endstop is triggered.
// This feature must be enabled with "M540 S1" or from the LCD menu.
// To have any effect, endstops must be enabled during SD printing.
//#define ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED
#endif // SDSUPPORT
// for dogm lcd displays you can choose some additional fonts:
#if ENABLED(DOGLCD)
// save 3120 bytes of PROGMEM by commenting out #define USE_BIG_EDIT_FONT
// we don't have a big font for Cyrillic, Kana
//#define USE_BIG_EDIT_FONT
// If you have spare 2300Byte of progmem and want to use a
// smaller font on the Info-screen uncomment the next line.
//#define USE_SMALL_INFOFONT
#endif // DOGLCD
// @section safety
// The hardware watchdog should reset the microcontroller disabling all outputs,
// in case the firmware gets stuck and doesn't do temperature regulation.
#define USE_WATCHDOG
#if ENABLED(USE_WATCHDOG)
// If you have a watchdog reboot in an ArduinoMega2560 then the device will hang forever, as a watchdog reset will leave the watchdog on.
// The "WATCHDOG_RESET_MANUAL" goes around this by not using the hardware reset.
// However, THIS FEATURE IS UNSAFE!, as it will only work if interrupts are disabled. And the code could hang in an interrupt routine with interrupts disabled.
//#define WATCHDOG_RESET_MANUAL
#endif
// @section lcd
// Babystepping enables the user to control the axis in tiny amounts, independently from the normal printing process
// it can e.g. be used to change z-positions in the print startup phase in real-time
// does not respect endstops!
//#define BABYSTEPPING
#if ENABLED(BABYSTEPPING)
#define BABYSTEP_XY //not only z, but also XY in the menu. more clutter, more functions
//not implemented for deltabots!
#define BABYSTEP_INVERT_Z false //true for inverse movements in Z
#define BABYSTEP_MULTIPLICATOR 1 //faster movements
#endif
// @section extruder
// extruder advance constant (s2/mm3)
//
// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
//
// Hooke's law says: force = k * distance
// Bernoulli's principle says: v ^ 2 / 2 + g . h + pressure / density = constant
// so: v ^ 2 is proportional to number of steps we advance the extruder
//#define ADVANCE
#if ENABLED(ADVANCE)
#define EXTRUDER_ADVANCE_K .0
#define D_FILAMENT 2.85
#endif
// Implementation of a linear pressure control
// Assumption: advance = k * (delta velocity)
// K=0 means advance disabled. A good value for a gregs wade extruder will be around K=75
//#define LIN_ADVANCE
#if ENABLED(LIN_ADVANCE)
#define LIN_ADVANCE_K 75
#endif
// @section leveling
// Default mesh area is an area with an inset margin on the print area.
// Below are the macros that are used to define the borders for the mesh area,
// made available here for specialized needs, ie dual extruder setup.
#if ENABLED(MESH_BED_LEVELING)
#define MESH_MIN_X (X_MIN_POS + MESH_INSET)
#define MESH_MAX_X (X_MAX_POS - (MESH_INSET))
#define MESH_MIN_Y (Y_MIN_POS + MESH_INSET)
#define MESH_MAX_Y (Y_MAX_POS - (MESH_INSET))
#endif
// @section extras
// Arc interpretation settings:
#define ARC_SUPPORT // Disabling this saves ~2738 bytes
#define MM_PER_ARC_SEGMENT 1
#define N_ARC_CORRECTION 25
// Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
//#define BEZIER_CURVE_SUPPORT
const unsigned int dropsegments = 5; //everything with less than this number of steps will be ignored as move and joined with the next movement
// @section temperature
// Control heater 0 and heater 1 in parallel.
//#define HEATERS_PARALLEL
//===========================================================================
//================================= Buffers =================================
//===========================================================================
// @section hidden
// The number of linear motions that can be in the plan at any give time.
// THE BLOCK_BUFFER_SIZE NEEDS TO BE A POWER OF 2, i.g. 8,16,32 because shifts and ors are used to do the ring-buffering.
#if ENABLED(SDSUPPORT)
#define BLOCK_BUFFER_SIZE 16 // SD,LCD,Buttons take more memory, block buffer needs to be smaller
#else
#define BLOCK_BUFFER_SIZE 16 // maximize block buffer
#endif
// @section serial
// The ASCII buffer for serial input
#define MAX_CMD_SIZE 96
#define BUFSIZE 4
// Transfer Buffer Size
// To save 386 bytes of PROGMEM (and TX_BUFFER_SIZE+3 bytes of RAM) set to 0.
// To buffer a simple "ok" you need 4 bytes.
// For ADVANCED_OK (M105) you need 32 bytes.
// For debug-echo: 128 bytes for the optimal speed.
// Other output doesn't need to be that speedy.
// :[0,2,4,8,16,32,64,128,256]
#define TX_BUFFER_SIZE 0
// Enable an emergency-command parser to intercept certain commands as they
// enter the serial receive buffer, so they cannot be blocked.
// Currently handles M108, M112, M410
// Does not work on boards using AT90USB (USBCON) processors!
//#define EMERGENCY_PARSER
// Bad Serial-connections can miss a received command by sending an 'ok'
// Therefore some clients abort after 30 seconds in a timeout.
// Some other clients start sending commands while receiving a 'wait'.
// This "wait" is only sent when the buffer is empty. 1 second is a good value here.
//#define NO_TIMEOUTS 1000 // Milliseconds
// Some clients will have this feature soon. This could make the NO_TIMEOUTS unnecessary.
//#define ADVANCED_OK
// @section fwretract
// Firmware based and LCD controlled retract
// M207 and M208 can be used to define parameters for the retraction.
// The retraction can be called by the slicer using G10 and G11
// until then, intended retractions can be detected by moves that only extrude and the direction.
// the moves are than replaced by the firmware controlled ones.
//#define FWRETRACT //ONLY PARTIALLY TESTED
#if ENABLED(FWRETRACT)
#define MIN_RETRACT 0.1 //minimum extruded mm to accept a automatic gcode retraction attempt
#define RETRACT_LENGTH 3 //default retract length (positive mm)
#define RETRACT_LENGTH_SWAP 13 //default swap retract length (positive mm), for extruder change
#define RETRACT_FEEDRATE 45 //default feedrate for retracting (mm/s)
#define RETRACT_ZLIFT 0 //default retract Z-lift
#define RETRACT_RECOVER_LENGTH 0 //default additional recover length (mm, added to retract length when recovering)
#define RETRACT_RECOVER_LENGTH_SWAP 0 //default additional swap recover length (mm, added to retract length when recovering from extruder change)
#define RETRACT_RECOVER_FEEDRATE 8 //default feedrate for recovering from retraction (mm/s)
#endif
// Add support for experimental filament exchange support M600; requires display
#if ENABLED(ULTIPANEL)
// #define FILAMENT_CHANGE_FEATURE // Enable filament exchange menu and M600 g-code (used for runout sensor too)
#if ENABLED(FILAMENT_CHANGE_FEATURE)
#define FILAMENT_CHANGE_X_POS 3 // X position of hotend
#define FILAMENT_CHANGE_Y_POS 3 // Y position of hotend
#define FILAMENT_CHANGE_Z_ADD 10 // Z addition of hotend (lift)
#define FILAMENT_CHANGE_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
#define FILAMENT_CHANGE_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
#define FILAMENT_CHANGE_RETRACT_LENGTH 2 // Initial retract in mm
// It is a short retract used immediately after print interrupt before move to filament exchange position
#define FILAMENT_CHANGE_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
#define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm
// Longer length for bowden printers to unload filament from whole bowden tube,
// shorter lenght for printers without bowden to unload filament from extruder only,
// 0 to disable unloading for manual unloading
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast
#define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm
// Longer length for bowden printers to fast load filament into whole bowden tube over the hotend,
// Short or zero length for printers without bowden where loading is not used
#define FILAMENT_CHANGE_LOAD_FEEDRATE 10 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast
#define FILAMENT_CHANGE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is load over the hotend,
// 0 to disable for manual extrusion
// Filament can be extruded repeatedly from the filament exchange menu to fill the hotend,
// or until outcoming filament color is not clear for filament color change
#define FILAMENT_CHANGE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
#endif
#endif
/******************************************************************************\
* enable this section if you have TMC26X motor drivers.
* you need to import the TMC26XStepper library into the Arduino IDE for this
******************************************************************************/
// @section tmc
//#define HAVE_TMCDRIVER
#if ENABLED(HAVE_TMCDRIVER)
//#define X_IS_TMC
#define X_MAX_CURRENT 1000 //in mA
#define X_SENSE_RESISTOR 91 //in mOhms
#define X_MICROSTEPS 16 //number of microsteps
//#define X2_IS_TMC
#define X2_MAX_CURRENT 1000 //in mA
#define X2_SENSE_RESISTOR 91 //in mOhms
#define X2_MICROSTEPS 16 //number of microsteps
//#define Y_IS_TMC
#define Y_MAX_CURRENT 1000 //in mA
#define Y_SENSE_RESISTOR 91 //in mOhms
#define Y_MICROSTEPS 16 //number of microsteps
//#define Y2_IS_TMC
#define Y2_MAX_CURRENT 1000 //in mA
#define Y2_SENSE_RESISTOR 91 //in mOhms
#define Y2_MICROSTEPS 16 //number of microsteps
//#define Z_IS_TMC
#define Z_MAX_CURRENT 1000 //in mA
#define Z_SENSE_RESISTOR 91 //in mOhms
#define Z_MICROSTEPS 16 //number of microsteps
//#define Z2_IS_TMC
#define Z2_MAX_CURRENT 1000 //in mA
#define Z2_SENSE_RESISTOR 91 //in mOhms
#define Z2_MICROSTEPS 16 //number of microsteps
//#define E0_IS_TMC
#define E0_MAX_CURRENT 1000 //in mA
#define E0_SENSE_RESISTOR 91 //in mOhms
#define E0_MICROSTEPS 16 //number of microsteps
//#define E1_IS_TMC
#define E1_MAX_CURRENT 1000 //in mA
#define E1_SENSE_RESISTOR 91 //in mOhms
#define E1_MICROSTEPS 16 //number of microsteps
//#define E2_IS_TMC
#define E2_MAX_CURRENT 1000 //in mA
#define E2_SENSE_RESISTOR 91 //in mOhms
#define E2_MICROSTEPS 16 //number of microsteps
//#define E3_IS_TMC
#define E3_MAX_CURRENT 1000 //in mA
#define E3_SENSE_RESISTOR 91 //in mOhms
#define E3_MICROSTEPS 16 //number of microsteps
#endif
/******************************************************************************\
* enable this section if you have L6470 motor drivers.
* you need to import the L6470 library into the Arduino IDE for this
******************************************************************************/
// @section l6470
//#define HAVE_L6470DRIVER
#if ENABLED(HAVE_L6470DRIVER)
//#define X_IS_L6470
#define X_MICROSTEPS 16 //number of microsteps
#define X_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define X_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define X_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define X2_IS_L6470
#define X2_MICROSTEPS 16 //number of microsteps
#define X2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define X2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define X2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define Y_IS_L6470
#define Y_MICROSTEPS 16 //number of microsteps
#define Y_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define Y_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define Y_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define Y2_IS_L6470
#define Y2_MICROSTEPS 16 //number of microsteps
#define Y2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define Y2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define Y2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define Z_IS_L6470
#define Z_MICROSTEPS 16 //number of microsteps
#define Z_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define Z_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define Z_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define Z2_IS_L6470
#define Z2_MICROSTEPS 16 //number of microsteps
#define Z2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define Z2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define Z2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define E0_IS_L6470
#define E0_MICROSTEPS 16 //number of microsteps
#define E0_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define E0_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define E0_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define E1_IS_L6470
#define E1_MICROSTEPS 16 //number of microsteps
#define E1_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define E1_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define E1_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define E2_IS_L6470
#define E2_MICROSTEPS 16 //number of microsteps
#define E2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define E2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define E2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
//#define E3_IS_L6470
#define E3_MICROSTEPS 16 //number of microsteps
#define E3_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
#define E3_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off
#define E3_STALLCURRENT 1500 //current in mA where the driver will detect a stall
#endif
/**
* TWI/I2C BUS
*
* This feature is an EXPERIMENTAL feature so it shall not be used on production
* machines. Enabling this will allow you to send and receive I2C data from slave
* devices on the bus.
*
* ; Example #1
* ; This macro send the string "Marlin" to the slave device with address 0x63 (99)
* ; It uses multiple M155 commands with one B<base 10> arg
* M155 A99 ; Target slave address
* M155 B77 ; M
* M155 B97 ; a
* M155 B114 ; r
* M155 B108 ; l
* M155 B105 ; i
* M155 B110 ; n
* M155 S1 ; Send the current buffer
*
* ; Example #2
* ; Request 6 bytes from slave device with address 0x63 (99)
* M156 A99 B5
*
* ; Example #3
* ; Example serial output of a M156 request
* echo:i2c-reply: from:99 bytes:5 data:hello
*/
// @section i2cbus
//#define EXPERIMENTAL_I2CBUS
#endif // CONFIGURATION_ADV_H
-4051
View File
File diff suppressed because it is too large Load Diff
-157
View File
@@ -1,157 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
* Aragonese
*
* LCD Menu Messages
* See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
*
*/
#ifndef LANGUAGE_AN_H
#define LANGUAGE_AN_H
// Define SIMULATE_ROMFONT to see what is seen on the character based display defined in Configuration.h
//#define SIMULATE_ROMFONT
#define DISPLAY_CHARSET_ISO10646_1
#define WELCOME_MSG MACHINE_NAME " parada."
#define MSG_SD_INSERTED "Tarcheta colocada"
#define MSG_SD_REMOVED "Tarcheta retirada"
#define MSG_MAIN "Menu prencipal"
#define MSG_AUTOSTART " Autostart"
#define MSG_DISABLE_STEPPERS "Amortar motors"
#define MSG_AUTO_HOME "Levar a l'orichen"
#define MSG_LEVEL_BED_HOMING "Homing XYZ"
#define MSG_LEVEL_BED_WAITING "Click to Begin"
#define MSG_LEVEL_BED_DONE "Leveling Done!"
#define MSG_LEVEL_BED_CANCEL "Cancel"
#define MSG_SET_HOME_OFFSETS "Set home offsets"
#define MSG_HOME_OFFSETS_APPLIED "Offsets applied"
#define MSG_SET_ORIGIN "Establir zero"
#define MSG_PREHEAT_1 "Precalentar PLA"
#define MSG_PREHEAT_1_N "Precalentar PLA "
#define MSG_PREHEAT_1_ALL "Precalentar PLA a"
#define MSG_PREHEAT_1_BEDONLY "Prec. PLA Base"
#define MSG_PREHEAT_1_SETTINGS "Achustar tem. PLA"
#define MSG_PREHEAT_2 "Precalentar ABS"
#define MSG_PREHEAT_2_N "Precalentar ABS "
#define MSG_PREHEAT_2_ALL "Precalentar ABS a"
#define MSG_PREHEAT_2_BEDONLY "Prec. ABS Base"
#define MSG_PREHEAT_2_SETTINGS "Achustar tem. ABS"
#define MSG_COOLDOWN "Enfriar"
#define MSG_SWITCH_PS_ON "Enchegar Fuent"
#define MSG_SWITCH_PS_OFF "Desenchegar Fuent"
#define MSG_EXTRUDE "Extruir"
#define MSG_RETRACT "Retraer"
#define MSG_MOVE_AXIS "Mover Eixes"
#define MSG_MOVE_X "Move X"
#define MSG_MOVE_Y "Move Y"
#define MSG_MOVE_Z "Move Z"
#define MSG_MOVE_E "Extruder"
#define MSG_MOVE_01MM "Move 0.1mm"
#define MSG_MOVE_1MM "Move 1mm"
#define MSG_MOVE_10MM "Move 10mm"
#define MSG_SPEED "Velocidat"
#define MSG_NOZZLE "Nozzle"
#define MSG_BED "Base"
#define MSG_FAN_SPEED "Ixoriador"
#define MSG_FLOW "Fluxo"
#define MSG_CONTROL "Control"
#define MSG_MIN LCD_STR_THERMOMETER " Min"
#define MSG_MAX LCD_STR_THERMOMETER " Max"
#define MSG_FACTOR LCD_STR_THERMOMETER " Fact"
#define MSG_AUTOTEMP "Autotemp"
#define MSG_ON "On"
#define MSG_OFF "Off"
#define MSG_PID_P "PID-P"
#define MSG_PID_I "PID-I"
#define MSG_PID_D "PID-D"
#define MSG_PID_C "PID-C"
#define MSG_ACC "Acel"
#define MSG_VXY_JERK "Vxy-jerk"
#define MSG_VZ_JERK "Vz-jerk"
#define MSG_VE_JERK "Ves-jerk"
#define MSG_VMAX "Vmax"
#define MSG_X "X"
#define MSG_Y "Y"
#define MSG_Z "Z"
#define MSG_E "E"
#define MSG_VMIN "Vmin"
#define MSG_VTRAV_MIN "VTrav min"
#define MSG_AMAX "Amax"
#define MSG_A_RETRACT "A-retrac."
#define MSG_XSTEPS "X trangos/mm"
#define MSG_YSTEPS "Y trangos/mm"
#define MSG_ZSTEPS "Z trangos/mm"
#define MSG_ESTEPS "E trangos/mm"
#define MSG_TEMPERATURE "Temperatura"
#define MSG_MOTION "Movimiento"
#define MSG_VOLUMETRIC "Filament"
#define MSG_VOLUMETRIC_ENABLED "E in mm3"
#define MSG_FILAMENT_DIAM "Fil. Dia."
#define MSG_CONTRAST "Contrast"
#define MSG_STORE_EPROM "Alzar Memoria"
#define MSG_LOAD_EPROM "Cargar Memoria"
#define MSG_RESTORE_FAILSAFE "Rest. d'emerchen."
#define MSG_REFRESH "Tornar a cargar"
#define MSG_WATCH "Monitorizar"
#define MSG_PREPARE "Preparar"
#define MSG_TUNE "Achustar"
#define MSG_PAUSE_PRINT "Pausar impresion"
#define MSG_RESUME_PRINT "Contin. impresion"
#define MSG_STOP_PRINT "Detener Impresion"
#define MSG_CARD_MENU "Menu de SD"
#define MSG_NO_CARD "No i hai tarcheta"
#define MSG_DWELL "Reposo..."
#define MSG_USERWAIT "Asperan. ordines"
#define MSG_RESUMING "Contin. impresion"
#define MSG_PRINT_ABORTED "Print aborted"
#define MSG_NO_MOVE "Sin movimiento"
#define MSG_KILLED "ATURADA D'EMERCH."
#define MSG_STOPPED "ATURADA."
#define MSG_CONTROL_RETRACT "Retraer mm"
#define MSG_CONTROL_RETRACT_SWAP "Swap Retraer mm"
#define MSG_CONTROL_RETRACTF "Retraer F"
#define MSG_CONTROL_RETRACT_ZLIFT "Devantar mm"
#define MSG_CONTROL_RETRACT_RECOVER "DesRet +mm"
#define MSG_CONTROL_RETRACT_RECOVER_SWAP "Swap DesRet +mm"
#define MSG_CONTROL_RETRACT_RECOVERF "DesRet F"
#define MSG_AUTORETRACT "AutoRetr."
#define MSG_FILAMENTCHANGE "Cambear"
#define MSG_INIT_SDCARD "Encetan. tarcheta"
#define MSG_CNG_SDCARD "Cambiar tarcheta"
#define MSG_ZPROBE_OUT "Z probe out. bed"
#define MSG_HOME "Home" // Used as MSG_HOME " " MSG_X MSG_Y MSG_Z " " MSG_FIRST
#define MSG_FIRST "first"
#define MSG_ZPROBE_ZOFFSET "Z Offset"
#define MSG_BABYSTEP_X "Babystep X"
#define MSG_BABYSTEP_Y "Babystep Y"
#define MSG_BABYSTEP_Z "Babystep Z"
#define MSG_ENDSTOP_ABORT "Endstop abort"
#define MSG_DELTA_CALIBRATE "Delta Calibration"
#define MSG_DELTA_CALIBRATE_X "Calibrate X"
#define MSG_DELTA_CALIBRATE_Y "Calibrate Y"
#define MSG_DELTA_CALIBRATE_Z "Calibrate Z"
#define MSG_DELTA_CALIBRATE_CENTER "Calibrate Center"
#endif // LANGUAGE_AN_H
-159
View File
@@ -1,159 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
* Bulgarian
*
* LCD Menu Messages
* See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
*
*/
#ifndef LANGUAGE_BG_H
#define LANGUAGE_BG_H
#define MAPPER_D0D1 // For Cyrillic
// Define SIMULATE_ROMFONT to see what is seen on the character based display defined in Configuration.h
//#define SIMULATE_ROMFONT
#define DISPLAY_CHARSET_ISO10646_5
#define WELCOME_MSG MACHINE_NAME " Готов."
#define MSG_SD_INSERTED "Картата е поставена"
#define MSG_SD_REMOVED "Картата е извадена"
#define MSG_MAIN "Меню"
#define MSG_AUTOSTART "Автостарт"
#define MSG_DISABLE_STEPPERS "Изкл. двигатели"
#define MSG_AUTO_HOME "Паркиране"
#define MSG_LEVEL_BED_HOMING "Homing XYZ"
#define MSG_LEVEL_BED_WAITING "Click to Begin"
#define MSG_LEVEL_BED_DONE "Leveling Done!"
#define MSG_LEVEL_BED_CANCEL "Cancel"
#define MSG_SET_HOME_OFFSETS "Задай Начало"
#define MSG_HOME_OFFSETS_APPLIED "Offsets applied"
#define MSG_SET_ORIGIN "Изходна точка"
#define MSG_PREHEAT_1 "Подгряване PLA"
#define MSG_PREHEAT_1_N "Подгряване PLA"
#define MSG_PREHEAT_1_ALL "Подгр. PLA Всички"
#define MSG_PREHEAT_1_BEDONLY "Подгр. PLA Легло"
#define MSG_PREHEAT_1_SETTINGS "Настройки PLA"
#define MSG_PREHEAT_2 "Подгряване ABS"
#define MSG_PREHEAT_2_N "Подгряване ABS"
#define MSG_PREHEAT_2_ALL "Подгр. ABS Всички"
#define MSG_PREHEAT_2_BEDONLY "Подгр. ABS Легло"
#define MSG_PREHEAT_2_SETTINGS "Настройки ABS"
#define MSG_COOLDOWN "Охлаждане"
#define MSG_SWITCH_PS_ON "Вкл. захранване"
#define MSG_SWITCH_PS_OFF "Изкл. захранване"
#define MSG_EXTRUDE "Екструзия"
#define MSG_RETRACT "Откат"
#define MSG_MOVE_AXIS "Движение по ос"
#define MSG_LEVEL_BED "Нивелиране"
#define MSG_MOVE_X "Движение по X"
#define MSG_MOVE_Y "Движение по Y"
#define MSG_MOVE_Z "Движение по Z"
#define MSG_MOVE_E "Екструдер"
#define MSG_MOVE_01MM "Премести с 0.1mm"
#define MSG_MOVE_1MM "Премести с 1mm"
#define MSG_MOVE_10MM "Премести с 10mm"
#define MSG_SPEED "Скорост"
#define MSG_NOZZLE LCD_STR_THERMOMETER " Дюза"
#define MSG_BED LCD_STR_THERMOMETER " Легло"
#define MSG_FAN_SPEED "Вентилатор"
#define MSG_FLOW "Поток"
#define MSG_CONTROL "Управление"
#define MSG_MIN LCD_STR_THERMOMETER " Минимум"
#define MSG_MAX LCD_STR_THERMOMETER " Максимум"
#define MSG_FACTOR LCD_STR_THERMOMETER " Фактор"
#define MSG_AUTOTEMP "Авто-темп."
#define MSG_ON "Вкл. "
#define MSG_OFF "Изкл. "
#define MSG_PID_P "PID-P"
#define MSG_PID_I "PID-I"
#define MSG_PID_D "PID-D"
#define MSG_PID_C "PID-C"
#define MSG_ACC "Acc"
#define MSG_VXY_JERK "Vxy-jerk"
#define MSG_VZ_JERK "Vz-jerk"
#define MSG_VE_JERK "Ve-jerk"
#define MSG_VMAX "Vmax "
#define MSG_X "X"
#define MSG_Y "Y"
#define MSG_Z "Z"
#define MSG_E "E"
#define MSG_VMIN "Vmin"
#define MSG_VTRAV_MIN "VTrav min"
#define MSG_AMAX "Amax "
#define MSG_A_RETRACT "A-откат"
#define MSG_XSTEPS "X стъпки/mm"
#define MSG_YSTEPS "Y стъпки/mm"
#define MSG_ZSTEPS "Z стъпки/mm"
#define MSG_ESTEPS "E стъпки/mm"
#define MSG_TEMPERATURE "Температура"
#define MSG_MOTION "Движение"
#define MSG_VOLUMETRIC "Нишка"
#define MSG_VOLUMETRIC_ENABLED "E in mm3"
#define MSG_FILAMENT_DIAM "Диам. нишка"
#define MSG_CONTRAST "LCD контраст"
#define MSG_STORE_EPROM "Запази в EPROM"
#define MSG_LOAD_EPROM "Зареди от EPROM"
#define MSG_RESTORE_FAILSAFE "Фабрични настройки"
#define MSG_REFRESH LCD_STR_REFRESH "Обнови"
#define MSG_WATCH "Преглед"
#define MSG_PREPARE "Действия"
#define MSG_TUNE "Настройка"
#define MSG_PAUSE_PRINT "Пауза"
#define MSG_RESUME_PRINT "Възобнови печата"
#define MSG_STOP_PRINT "Спри печата"
#define MSG_CARD_MENU "Меню карта"
#define MSG_NO_CARD "Няма карта"
#define MSG_DWELL "Почивка..."
#define MSG_USERWAIT "Изчакване"
#define MSG_RESUMING "Продълж. печата"
#define MSG_PRINT_ABORTED "Печатът е прекъснат"
#define MSG_NO_MOVE "Няма движение"
#define MSG_KILLED "УБИТО."
#define MSG_STOPPED "СПРЯНО."
#define MSG_CONTROL_RETRACT "Откат mm"
#define MSG_CONTROL_RETRACT_SWAP "Смяна Откат mm"
#define MSG_CONTROL_RETRACTF "Откат V"
#define MSG_CONTROL_RETRACT_ZLIFT "Скок mm"
#define MSG_CONTROL_RETRACT_RECOVER "Възврат +mm"
#define MSG_CONTROL_RETRACT_RECOVER_SWAP "Смяна Възврат +mm"
#define MSG_CONTROL_RETRACT_RECOVERF "Възврат V"
#define MSG_AUTORETRACT "Автоoткат"
#define MSG_FILAMENTCHANGE "Смяна нишка"
#define MSG_INIT_SDCARD "Иниц. SD-Карта"
#define MSG_CNG_SDCARD "Смяна SD-Карта"
#define MSG_ZPROBE_OUT "Z-сондата е извадена"
#define MSG_HOME "Home" // Used as MSG_HOME " " MSG_X MSG_Y MSG_Z " " MSG_FIRST
#define MSG_FIRST "first"
#define MSG_ZPROBE_ZOFFSET "Z Отстояние"
#define MSG_BABYSTEP_X "Министъпка X"
#define MSG_BABYSTEP_Y "Министъпка Y"
#define MSG_BABYSTEP_Z "Министъпка Z"
#define MSG_ENDSTOP_ABORT "Стоп Кр.Изключватели"
#define MSG_DELTA_CALIBRATE "Делта Калибровка"
#define MSG_DELTA_CALIBRATE_X "Калибровка X"
#define MSG_DELTA_CALIBRATE_Y "Калибровка Y"
#define MSG_DELTA_CALIBRATE_Z "Калибровка Z"
#define MSG_DELTA_CALIBRATE_CENTER "Калибровка Център"
#endif // LANGUAGE_BG_H
-158
View File
@@ -1,158 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
* Catalan
*
* LCD Menu Messages
* See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
*
*/
#ifndef LANGUAGE_CA_H
#define LANGUAGE_CA_H
#define MAPPER_C2C3 // because of "ó"
// Define SIMULATE_ROMFONT to see what is seen on the character based display defined in Configuration.h
//#define SIMULATE_ROMFONT
#define DISPLAY_CHARSET_ISO10646_1
#define WELCOME_MSG MACHINE_NAME " preparada."
#define MSG_SD_INSERTED "SD detectada."
#define MSG_SD_REMOVED "SD expulsada."
#define MSG_MAIN "Menu principal"
#define MSG_AUTOSTART "Inici automatic"
#define MSG_DISABLE_STEPPERS "Apagar motors"
#define MSG_AUTO_HOME "Home global"
#define MSG_LEVEL_BED_HOMING "Homing XYZ"
#define MSG_LEVEL_BED_WAITING "Click to Begin"
#define MSG_LEVEL_BED_DONE "Leveling Done!"
#define MSG_LEVEL_BED_CANCEL "Cancel"
#define MSG_SET_HOME_OFFSETS "Set home offsets"
#define MSG_HOME_OFFSETS_APPLIED "Offsets applied"
#define MSG_SET_ORIGIN "Establir origen"
#define MSG_PREHEAT_1 "Preescalfar PLA"
#define MSG_PREHEAT_1_N "Preescalfar PLA "
#define MSG_PREHEAT_1_ALL "Preesc. tot PLA"
#define MSG_PREHEAT_1_BEDONLY "Preesc. llit PLA"
#define MSG_PREHEAT_1_SETTINGS "Configuració PLA"
#define MSG_PREHEAT_2 "Preescalfar ABS"
#define MSG_PREHEAT_2_N "Preescalfar ABS "
#define MSG_PREHEAT_2_ALL "Preesc. tot ABS"
#define MSG_PREHEAT_2_BEDONLY "Preesc. llit ABS"
#define MSG_PREHEAT_2_SETTINGS "Configuració ABS"
#define MSG_COOLDOWN "Refredar"
#define MSG_SWITCH_PS_ON "Switch power on"
#define MSG_SWITCH_PS_OFF "Switch power off"
#define MSG_EXTRUDE "Extruir"
#define MSG_RETRACT "Refredar"
#define MSG_MOVE_AXIS "Moure eixos"
#define MSG_MOVE_X "Moure X"
#define MSG_MOVE_Y "Moure Y"
#define MSG_MOVE_Z "Moure Z"
#define MSG_MOVE_E "Extrusor"
#define MSG_MOVE_01MM "Moure 0.1mm"
#define MSG_MOVE_1MM "Moure 1mm"
#define MSG_MOVE_10MM "Moure 10mm"
#define MSG_SPEED "Velocitat"
#define MSG_NOZZLE "Nozzle"
#define MSG_BED "Llit"
#define MSG_FAN_SPEED "Vel. Ventilador"
#define MSG_FLOW "Fluxe"
#define MSG_CONTROL "Control"
#define MSG_MIN LCD_STR_THERMOMETER " Min"
#define MSG_MAX LCD_STR_THERMOMETER " Max"
#define MSG_FACTOR LCD_STR_THERMOMETER " Fact"
#define MSG_AUTOTEMP "Autotemp"
#define MSG_ON "On "
#define MSG_OFF "Off"
#define MSG_PID_P "PID-P"
#define MSG_PID_I "PID-I"
#define MSG_PID_D "PID-D"
#define MSG_PID_C "PID-C"
#define MSG_ACC "Accel"
#define MSG_VXY_JERK "Vxy-jerk"
#define MSG_VZ_JERK "Vz-jerk"
#define MSG_VE_JERK "Ve-jerk"
#define MSG_VMAX "Vmax "
#define MSG_X "X"
#define MSG_Y "Y"
#define MSG_Z "Z"
#define MSG_E "E"
#define MSG_VMIN "Vmin"
#define MSG_VTRAV_MIN "VTrav min"
#define MSG_AMAX "Amax "
#define MSG_A_RETRACT "A-retract"
#define MSG_XSTEPS "Xpassos/mm"
#define MSG_YSTEPS "Ypassos/mm"
#define MSG_ZSTEPS "Zpassos/mm"
#define MSG_ESTEPS "Epassos/mm"
#define MSG_TEMPERATURE "Temperatura"
#define MSG_MOTION "Moviment"
#define MSG_VOLUMETRIC "Filament"
#define MSG_VOLUMETRIC_ENABLED "E in mm3"
#define MSG_FILAMENT_DIAM "Fil. Dia."
#define MSG_CONTRAST "Contrast de LCD"
#define MSG_STORE_EPROM "Desar a memoria"
#define MSG_LOAD_EPROM "Carregar de mem."
#define MSG_RESTORE_FAILSAFE "Rest. emergencia"
#define MSG_REFRESH "Refrescar"
#define MSG_WATCH "Pantalla Info."
#define MSG_PREPARE "Preparar"
#define MSG_TUNE "Calibrar"
#define MSG_PAUSE_PRINT "Pausa imp."
#define MSG_RESUME_PRINT "Reprendre imp."
#define MSG_STOP_PRINT "Parar inp."
#define MSG_CARD_MENU "Imprimir de SD"
#define MSG_NO_CARD "-Sense targeta SD"
#define MSG_DWELL "Repos..."
#define MSG_USERWAIT "Esperant usuari.."
#define MSG_RESUMING "Reprenent imp."
#define MSG_PRINT_ABORTED "Print aborted"
#define MSG_NO_MOVE "Sense moviment."
#define MSG_KILLED "PARADA DE EMERG. "
#define MSG_STOPPED "ATURAT. "
#define MSG_CONTROL_RETRACT "Retreure mm"
#define MSG_CONTROL_RETRACT_SWAP "Swap Retreure mm"
#define MSG_CONTROL_RETRACTF "Retreure F"
#define MSG_CONTROL_RETRACT_ZLIFT "Aixecar mm"
#define MSG_CONTROL_RETRACT_RECOVER "DesRet +mm"
#define MSG_CONTROL_RETRACT_RECOVER_SWAP "Swap DesRet +mm"
#define MSG_CONTROL_RETRACT_RECOVERF "DesRet F"
#define MSG_AUTORETRACT "AutoRetr."
#define MSG_FILAMENTCHANGE "Canviar filament"
#define MSG_INIT_SDCARD "Iniciant SD"
#define MSG_CNG_SDCARD "Canviar SD"
#define MSG_ZPROBE_OUT "Z probe out. bed"
#define MSG_HOME "Home" // Used as MSG_HOME " " MSG_X MSG_Y MSG_Z " " MSG_FIRST
#define MSG_FIRST "first"
#define MSG_ZPROBE_ZOFFSET "Z Offset"
#define MSG_BABYSTEP_X "Babystep X"
#define MSG_BABYSTEP_Y "Babystep Y"
#define MSG_BABYSTEP_Z "Babystep Z"
#define MSG_ENDSTOP_ABORT "Endstop abort"
#define MSG_DELTA_CALIBRATE "Delta Calibration"
#define MSG_DELTA_CALIBRATE_X "Calibrate X"
#define MSG_DELTA_CALIBRATE_Y "Calibrate Y"
#define MSG_DELTA_CALIBRATE_Z "Calibrate Z"
#define MSG_DELTA_CALIBRATE_CENTER "Calibrate Center"
#endif // LANGUAGE_CA_H
-162
View File
@@ -1,162 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
* Chinese
*
* LCD Menu Messages
* See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
*
*/
#ifndef LANGUAGE_CN_H
#define LANGUAGE_CN_H
#define DISPLAY_CHARSET_ISO10646_CN
#define WELCOME_MSG "\xa4\xa5\xa6\xa7"
#define MSG_SD_INSERTED "\xa8\xa9\xaa\xab"
#define MSG_SD_REMOVED "\xa8\xa9\xac\xad"
#define MSG_MAIN "\xae\xaf\xb0"
#define MSG_AUTOSTART "\xb1\xb2\xb3\xb4"
#define MSG_DISABLE_STEPPERS "\xb5\xb6\xb7\xb8\xb9\xba"
#define MSG_AUTO_HOME "\xbb\xbc\xbd"
#define MSG_LEVEL_BED_HOMING "Homing XYZ"
#define MSG_LEVEL_BED_WAITING "Click to Begin"
#define MSG_LEVEL_BED_DONE "Leveling Done!"
#define MSG_LEVEL_BED_CANCEL "Cancel"
#define MSG_SET_HOME_OFFSETS "\xbe\xbf\xbb\xbc\xbd\xc0\xc1"
#define MSG_HOME_OFFSETS_APPLIED "Offsets applied"
#define MSG_SET_ORIGIN "\xbe\xbf\xbc\xbd"
#define MSG_PREHEAT_1 "\xc3\xc4 PLA"
#define MSG_PREHEAT_1_N MSG_PREHEAT_1 " "
#define MSG_PREHEAT_1_ALL MSG_PREHEAT_1 " \xc5\xc6"
#define MSG_PREHEAT_1_BEDONLY MSG_PREHEAT_1 " \xc4\xc7"
#define MSG_PREHEAT_1_SETTINGS MSG_PREHEAT_1 " \xbe\xbf"
#define MSG_PREHEAT_2 "\xc3\xc4 ABS"
#define MSG_PREHEAT_2_N MSG_PREHEAT_2 " "
#define MSG_PREHEAT_2_ALL MSG_PREHEAT_2 " \xc5\xc6"
#define MSG_PREHEAT_2_BEDONLY MSG_PREHEAT_2 " \xbe\xc6"
#define MSG_PREHEAT_2_SETTINGS MSG_PREHEAT_2 " \xbe\xbf"
#define MSG_COOLDOWN "\xc8\xc9"
#define MSG_SWITCH_PS_ON "\xb9\xcb\xca\xb3"
#define MSG_SWITCH_PS_OFF "\xb9\xcb\xb5\xb6"
#define MSG_EXTRUDE "\xcc\xad"
#define MSG_RETRACT "\xbb\xcd"
#define MSG_MOVE_AXIS "\xc1\xb2\xce"
#define MSG_LEVEL_BED "\xcf\xe0\xc4\xc7"
#define MSG_MOVE_X "\xc1\xb2 X"
#define MSG_MOVE_Y "\xc1\xb2 Y"
#define MSG_MOVE_Z "\xc1\xb2 Z"
#define MSG_MOVE_E "\xcc\xad\xba"
#define MSG_MOVE_01MM "\xc1\xb2 0.1mm"
#define MSG_MOVE_1MM "\xc1\xb2 1mm"
#define MSG_MOVE_10MM "\xc1\xb2 10mm"
#define MSG_SPEED "\xd1\xd2"
#define MSG_NOZZLE "\xd3\xd4"
#define MSG_BED "\xc4\xc7"
#define MSG_FAN_SPEED "\xd5\xd6\xd1\xd2"
#define MSG_FLOW "\xcc\xad\xd1\xd2"
#define MSG_CONTROL "\xd8\xd9"
#define MSG_MIN LCD_STR_THERMOMETER " \xda\xdb"
#define MSG_MAX LCD_STR_THERMOMETER " \xda\xdc"
#define MSG_FACTOR LCD_STR_THERMOMETER " \xdd\xde"
#define MSG_AUTOTEMP "\xb1\xb2\xd8\xc9"
#define MSG_ON "\xb3 " // intentional space to shift wide symbol to the left
#define MSG_OFF "\xb5 " // intentional space to shift wide symbol to the left
#define MSG_PID_P "PID-P"
#define MSG_PID_I "PID-I"
#define MSG_PID_D "PID-D"
#define MSG_PID_C "PID-C"
#define MSG_ACC "Accel"
#define MSG_VXY_JERK "Vxy-jerk"
#define MSG_VZ_JERK "Vz-jerk"
#define MSG_VE_JERK "Ve-jerk"
#define MSG_VMAX "Vmax "
#define MSG_X "X"
#define MSG_Y "Y"
#define MSG_Z "Z"
#define MSG_E "E"
#define MSG_VMIN "Vmin"
#define MSG_VTRAV_MIN "VTrav min"
#define MSG_AMAX "Amax "
#define MSG_A_RETRACT "A-retract"
#define MSG_A_TRAVEL "A-travel"
#define MSG_XSTEPS "Xsteps/mm"
#define MSG_YSTEPS "Ysteps/mm"
#define MSG_ZSTEPS "Zsteps/mm"
#define MSG_ESTEPS "Esteps/mm"
#define MSG_TEMPERATURE "\xc9\xd2"
#define MSG_MOTION "\xdf\xb2"
#define MSG_VOLUMETRIC "Filament"
#define MSG_VOLUMETRIC_ENABLED "E in mm3"
#define MSG_FILAMENT_DIAM "Fil. Dia."
#define MSG_CONTRAST "LCD contrast"
#define MSG_STORE_EPROM "Store memory"
#define MSG_LOAD_EPROM "Load memory"
#define MSG_RESTORE_FAILSAFE "Restore failsafe"
#define MSG_REFRESH "Refresh"
#define MSG_WATCH "\xec\xed\xee\xef"
#define MSG_PREPARE "\xa4\xa5"
#define MSG_TUNE "\xcf\xf0"
#define MSG_PAUSE_PRINT "\xf1\xf2\xca\xf3"
#define MSG_RESUME_PRINT "\xf4\xf5\xca\xf3"
#define MSG_STOP_PRINT "\xf2\xf6\xca\xf3"
#define MSG_CARD_MENU "\xaf\xb0"
#define MSG_NO_CARD "\xf9\xa8"
#define MSG_DWELL "Sleep..."
#define MSG_USERWAIT "Wait for user..."
#define MSG_RESUMING "Resuming print"
#define MSG_PRINT_ABORTED "Print aborted"
#define MSG_NO_MOVE "No move."
#define MSG_KILLED "KILLED. "
#define MSG_STOPPED "STOPPED. "
#define MSG_CONTROL_RETRACT "Retract mm"
#define MSG_CONTROL_RETRACT_SWAP "Swap Re.mm"
#define MSG_CONTROL_RETRACTF "Retract V"
#define MSG_CONTROL_RETRACT_ZLIFT "Hop mm"
#define MSG_CONTROL_RETRACT_RECOVER "UnRet +mm"
#define MSG_CONTROL_RETRACT_RECOVER_SWAP "S UnRet+mm"
#define MSG_CONTROL_RETRACT_RECOVERF "UnRet V"
#define MSG_AUTORETRACT "AutoRetr."
#define MSG_FILAMENTCHANGE "Change filament"
#define MSG_INIT_SDCARD "Init. SD card"
#define MSG_CNG_SDCARD "Change SD card"
#define MSG_ZPROBE_OUT "Z probe out. bed"
#define MSG_HOME "Home" // Used as MSG_HOME " " MSG_X MSG_Y MSG_Z " " MSG_FIRST
#define MSG_FIRST "first"
#define MSG_ZPROBE_ZOFFSET "Z Offset"
#define MSG_BABYSTEP_X "Babystep X"
#define MSG_BABYSTEP_Y "Babystep Y"
#define MSG_BABYSTEP_Z "Babystep Z"
#define MSG_ENDSTOP_ABORT "Endstop abort"
#define MSG_HEATING_FAILED_LCD "Heating failed"
#define MSG_ERR_REDUNDANT_TEMP "Err: REDUNDANT TEMP"
#define MSG_THERMAL_RUNAWAY "THERMAL RUNAWAY"
#define MSG_ERR_MAXTEMP "Err: MAXTEMP"
#define MSG_ERR_MINTEMP "Err: MINTEMP"
#define MSG_ERR_MAXTEMP_BED "Err: MAXTEMP BED"
#define MSG_DELTA_CALIBRATE "Delta Calibration"
#define MSG_DELTA_CALIBRATE_X "Calibrate X"
#define MSG_DELTA_CALIBRATE_Y "Calibrate Y"
#define MSG_DELTA_CALIBRATE_Z "Calibrate Z"
#define MSG_DELTA_CALIBRATE_CENTER "Calibrate Center"
#endif // LANGUAGE_CN_H
-262
View File
@@ -1,262 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
* Czech
*
* LCD Menu Messages
* See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
*
* Translated by Petr Zahradnik, Computer Laboratory
* Blog and video blog Zahradnik se bavi
* http://www.zahradniksebavi.cz
*
*/
#ifndef LANGUAGE_CZ_H
#define LANGUAGE_CZ_H
// Define SIMULATE_ROMFONT to see what is seen on the character based display defined in Configuration.h
//#define SIMULATE_ROMFONT
#define DISPLAY_CHARSET_ISO10646_1
#define WELCOME_MSG MACHINE_NAME " pripraven."
#define MSG_SD_INSERTED "Karta vlozena"
#define MSG_SD_REMOVED "Karta vyjmuta"
#define MSG_LCD_ENDSTOPS "Endstopy" // maximalne 8 znaku
#define MSG_MAIN "Hlavni nabidka"
#define MSG_AUTOSTART "Autostart"
#define MSG_DISABLE_STEPPERS "Uvolnit motory"
#define MSG_AUTO_HOME "Domovska pozice"
#define MSG_AUTO_HOME_X "Domu osa X"
#define MSG_AUTO_HOME_Y "Domu osa Y"
#define MSG_AUTO_HOME_Z "Domu osa Z"
#define MSG_LEVEL_BED_HOMING "Mereni podlozky"
#define MSG_LEVEL_BED_WAITING "Kliknutim spustte"
#define MSG_LEVEL_BED_NEXT_POINT "Dalsi bod"
#define MSG_LEVEL_BED_DONE "Mereni hotovo!"
#define MSG_LEVEL_BED_CANCEL "Storno"
#define MSG_SET_HOME_OFFSETS "Nastavit ofsety"
#define MSG_HOME_OFFSETS_APPLIED "Ofsety nastaveny"
#define MSG_SET_ORIGIN "Nastavit pocatek"
#define MSG_PREHEAT_1 "Zahrat PLA"
#define MSG_PREHEAT_1_N MSG_PREHEAT_1 " "
#define MSG_PREHEAT_1_ALL MSG_PREHEAT_1 " Vse"
#define MSG_PREHEAT_1_BEDONLY MSG_PREHEAT_1 " Podloz"
#define MSG_PREHEAT_1_SETTINGS MSG_PREHEAT_1 " Nast"
#define MSG_PREHEAT_2 "Zahrat ABS"
#define MSG_PREHEAT_2_N MSG_PREHEAT_2 " "
#define MSG_PREHEAT_2_ALL MSG_PREHEAT_2 " Vse"
#define MSG_PREHEAT_2_BEDONLY MSG_PREHEAT_2 " Podloz"
#define MSG_PREHEAT_2_SETTINGS MSG_PREHEAT_2 " Nast"
#define MSG_H1 "1"
#define MSG_H2 "2"
#define MSG_H3 "3"
#define MSG_H4 "4"
#define MSG_COOLDOWN "Zchladit"
#define MSG_SWITCH_PS_ON "Zapnout napajeni"
#define MSG_SWITCH_PS_OFF "Vypnout napajeni"
#define MSG_EXTRUDE "Vytlacit (extr.)"
#define MSG_RETRACT "Zatlacit (retr.)"
#define MSG_MOVE_AXIS "Posunout osy"
#define MSG_LEVEL_BED "Vyrovnat podlozku"
#define MSG_MOVE_X "Posunout X"
#define MSG_MOVE_Y "Posunout Y"
#define MSG_MOVE_Z "Posunout Z"
#define MSG_MOVE_E "Extruder"
#define MSG_MOVE_E1 "1"
#define MSG_MOVE_E2 "2"
#define MSG_MOVE_E3 "3"
#define MSG_MOVE_E4 "4"
#define MSG_MOVE_01MM "Posunout o 0,1mm"
#define MSG_MOVE_1MM "Posunout o 1mm"
#define MSG_MOVE_10MM "Posunout o 10mm"
#define MSG_SPEED "Rychlost"
#define MSG_BED_Z "Vyska podl."
#define MSG_NOZZLE "Tryska"
#define MSG_N1 " 1"
#define MSG_N2 " 2"
#define MSG_N3 " 3"
#define MSG_N4 " 4"
#define MSG_BED "Podlozka"
#define MSG_FAN_SPEED "Rychlost vent."
#define MSG_FLOW "Prutok"
#define MSG_CONTROL "Ovladani"
#define MSG_MIN " " LCD_STR_THERMOMETER " Min"
#define MSG_MAX " " LCD_STR_THERMOMETER " Max"
#define MSG_FACTOR " " LCD_STR_THERMOMETER " Fakt"
#define MSG_AUTOTEMP "Autoteplota"
#define MSG_ON "Zap"
#define MSG_OFF "Vyp"
#define MSG_PID_P "PID-P"
#define MSG_PID_I "PID-I"
#define MSG_PID_D "PID-D"
#define MSG_PID_C "PID-C"
#define MSG_SELECT "Vybrat"
#define MSG_E1 " E1"
#define MSG_E2 " E2"
#define MSG_E3 " E3"
#define MSG_E4 " E4"
#define MSG_ACC "Zrychl"
#define MSG_VXY_JERK "Vxy-jerk"
#define MSG_VZ_JERK "Vz-jerk"
#define MSG_VE_JERK "Ve-jerk"
#define MSG_VMAX "Vmax "
#define MSG_X "X"
#define MSG_Y "Y"
#define MSG_Z "Z"
#define MSG_E "E"
#define MSG_VMIN "Vmin"
#define MSG_VTRAV_MIN "VTrav min"
#define MSG_AMAX "Amax "
#define MSG_A_RETRACT "A-retrakt"
#define MSG_A_TRAVEL "A-prejezd"
#define MSG_XSTEPS "Xkroku/mm"
#define MSG_YSTEPS "Ykroku/mm"
#define MSG_ZSTEPS "Zkroku/mm"
#define MSG_ESTEPS "Ekroku/mm"
#define MSG_TEMPERATURE "Teplota"
#define MSG_MOTION "Pohyb"
#define MSG_VOLUMETRIC "Filament"
#define MSG_VOLUMETRIC_ENABLED "E na mm3"
#define MSG_FILAMENT_DIAM "Fil. Prum."
#define MSG_DIAM_E1 " 1"
#define MSG_DIAM_E2 " 2"
#define MSG_DIAM_E3 " 3"
#define MSG_DIAM_E4 " 4"
#define MSG_CONTRAST "Kontrast LCD"
#define MSG_STORE_EPROM "Ulozit nastaveni"
#define MSG_LOAD_EPROM "Nacist nastaveni"
#define MSG_RESTORE_FAILSAFE "Obnovit vychozi"
#define MSG_REFRESH "Obnovit"
#define MSG_WATCH "Info obrazovka"
#define MSG_PREPARE "Priprava tisku"
#define MSG_TUNE "Doladeni tisku"
#define MSG_PAUSE_PRINT "Pozastavit tisk"
#define MSG_RESUME_PRINT "Obnovit tisk"
#define MSG_STOP_PRINT "Zastavit tisk"
#define MSG_CARD_MENU "Tisknout z SD"
#define MSG_NO_CARD "Zadna SD karta"
#define MSG_DWELL "Uspano..."
#define MSG_USERWAIT "Cekani na uziv..."
#define MSG_RESUMING "Obnovovani tisku"
#define MSG_PRINT_ABORTED "Tisk zrusen"
#define MSG_NO_MOVE "Zadny pohyb."
#define MSG_KILLED "PRERUSENO. "
#define MSG_STOPPED "ZASTAVENO. "
#define MSG_CONTROL_RETRACT "Retrakt mm"
#define MSG_CONTROL_RETRACT_SWAP "Vymena Re.mm"
#define MSG_CONTROL_RETRACTF "Retraktovat V"
#define MSG_CONTROL_RETRACT_ZLIFT "Zvednuti Z mm"
#define MSG_CONTROL_RETRACT_RECOVER "UnRet +mm"
#define MSG_CONTROL_RETRACT_RECOVER_SWAP "S UnRet+mm"
#define MSG_CONTROL_RETRACT_RECOVERF "UnRet V"
#define MSG_AUTORETRACT "AutoRetr."
#define MSG_FILAMENTCHANGE "Vymenit filament"
#define MSG_INIT_SDCARD "Nacist SD kartu"
#define MSG_CNG_SDCARD "Vymenit SD kartu"
#define MSG_ZPROBE_OUT "Sonda Z mimo podl"
#define MSG_HOME "Domu" // Used as MSG_HOME " " MSG_X MSG_Y MSG_Z " " MSG_FIRST
#define MSG_FIRST "prvni"
#define MSG_ZPROBE_ZOFFSET "Z ofset"
#define MSG_BABYSTEP_X "Babystep X"
#define MSG_BABYSTEP_Y "Babystep Y"
#define MSG_BABYSTEP_Z "Babystep Z"
#define MSG_ENDSTOP_ABORT "Endstop abort"
#define MSG_HEATING_FAILED_LCD "Chyba zahrivani"
#define MSG_ERR_REDUNDANT_TEMP "REDUND. TEPLOTA"
#define MSG_THERMAL_RUNAWAY "TEPLOTNI SKOK"
#define MSG_ERR_MAXTEMP "VYSOKA TEPLOTA"
#define MSG_ERR_MINTEMP "NIZKA TEPLOTA"
#define MSG_ERR_MAXTEMP_BED "VYS. TEPL. PODL."
#define MSG_ERR_MINTEMP_BED "NIZ. TEPL. PODL."
#define MSG_HALTED "TISK. ZASTAVENA"
#define MSG_PLEASE_RESET "Provedte reset"
#define MSG_SHORT_DAY "d"
#define MSG_SHORT_HOUR "h"
#define MSG_SHORT_MINUTE "m"
#define MSG_HEATING "Zahrivani..."
#define MSG_HEATING_COMPLETE "Zahrati hotovo."
#define MSG_BED_HEATING "Zahrivani podl."
#define MSG_BED_DONE "Podlozka hotova."
#define MSG_DELTA_CALIBRATE "Delta Kalibrace"
#define MSG_DELTA_CALIBRATE_X "Kalibrovat X"
#define MSG_DELTA_CALIBRATE_Y "Kalibrovat Y"
#define MSG_DELTA_CALIBRATE_Z "Kalibrovat Z"
#define MSG_DELTA_CALIBRATE_CENTER "Kalibrovat Stred"
#define MSG_INFO_MENU "O tiskarne"
#define MSG_INFO_PRINTER_MENU "Info o tiskarne"
#define MSG_INFO_STATS_MENU "Statistika"
#define MSG_INFO_BOARD_MENU "Info o desce"
#define MSG_INFO_THERMISTOR_MENU "Termistory"
#define MSG_INFO_EXTRUDERS "Extrudery"
#define MSG_INFO_BAUDRATE "Rychlost"
#define MSG_INFO_PROTOCOL "Protokol"
#if LCD_WIDTH > 19
#define MSG_INFO_PRINT_COUNT "Pocet tisku"
#define MSG_INFO_COMPLETED_PRINTS "Dokonceno"
#define MSG_INFO_PRINT_TIME "Celkovy cas"
#define MSG_INFO_PRINT_LONGEST "Nejdelsi tisk"
#define MSG_INFO_PRINT_FILAMENT "Celkem vytlaceno"
#else
#define MSG_INFO_PRINT_COUNT "Tisky"
#define MSG_INFO_COMPLETED_PRINTS "Hotovo"
#define MSG_INFO_PRINT_TIME "Cas"
#define MSG_INFO_PRINT_LONGEST "Nejdelsi"
#define MSG_INFO_PRINT_FILAMENT "Vytlaceno"
#endif
#define MSG_INFO_MIN_TEMP "Teplota min"
#define MSG_INFO_MAX_TEMP "Teplota max"
#define MSG_INFO_PSU "Nap. zdroj"
#define MSG_FILAMENT_CHANGE_HEADER "VYMENA FILAMENTU"
#define MSG_FILAMENT_CHANGE_OPTION_HEADER "CO DAL?"
#define MSG_FILAMENT_CHANGE_OPTION_EXTRUDE "Jeste vytlacit"
#define MSG_FILAMENT_CHANGE_OPTION_RESUME "Obnovit tisk"
#if LCD_HEIGHT >= 4
#define MSG_FILAMENT_CHANGE_INIT_1 "Cekejte prosim"
#define MSG_FILAMENT_CHANGE_INIT_2 "na zahajeni"
#define MSG_FILAMENT_CHANGE_INIT_3 "vymeny filamentu"
#define MSG_FILAMENT_CHANGE_UNLOAD_1 "Cekejte prosim"
#define MSG_FILAMENT_CHANGE_UNLOAD_2 "na vysunuti"
#define MSG_FILAMENT_CHANGE_UNLOAD_3 "filamentu"
#define MSG_FILAMENT_CHANGE_INSERT_1 "Vlozte filament"
#define MSG_FILAMENT_CHANGE_INSERT_2 "a stisknete"
#define MSG_FILAMENT_CHANGE_INSERT_3 "tlacitko..."
#define MSG_FILAMENT_CHANGE_LOAD_1 "Cekejte prosim"
#define MSG_FILAMENT_CHANGE_LOAD_2 "na zavedeni"
#define MSG_FILAMENT_CHANGE_LOAD_3 "filamentu"
#define MSG_FILAMENT_CHANGE_EXTRUDE_1 "Cekejte prosim"
#define MSG_FILAMENT_CHANGE_EXTRUDE_2 "na vytlaceni"
#define MSG_FILAMENT_CHANGE_EXTRUDE_3 "filamentu"
#define MSG_FILAMENT_CHANGE_RESUME_1 "Cekejte prosim"
#define MSG_FILAMENT_CHANGE_RESUME_2 "na pokracovani"
#define MSG_FILAMENT_CHANGE_RESUME_3 "tisku"
#else // LCD_HEIGHT < 4
#define MSG_FILAMENT_CHANGE_INIT_1 "Cekejte..."
#define MSG_FILAMENT_CHANGE_UNLOAD_1 "Vysouvani..."
#define MSG_FILAMENT_CHANGE_INSERT_1 "Vlozte, kliknete"
#define MSG_FILAMENT_CHANGE_LOAD_1 "Zavadeni..."
#define MSG_FILAMENT_CHANGE_EXTRUDE_1 "Vytlacovani..."
#define MSG_FILAMENT_CHANGE_RESUME_1 "Pokracovani..."
#endif // LCD_HEIGHT < 4
#endif // LANGUAGE_CZ_H
-197
View File
@@ -1,197 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
* Danish
*
* LCD Menu Messages
* See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
*
*/
#ifndef LANGUAGE_DA_H
#define LANGUAGE_DA_H
#define MAPPER_C2C3
// Define SIMULATE_ROMFONT to see what is seen on the character based display defined in Configuration.h
//#define SIMULATE_ROMFONT
#define DISPLAY_CHARSET_ISO10646_1
#define WELCOME_MSG MACHINE_NAME " er klar"
#define MSG_SD_INSERTED "Kort isat"
#define MSG_SD_REMOVED "Kort fjernet"
#define MSG_LCD_ENDSTOPS "Endstops" // Max length 8 characters
#define MSG_MAIN "Menu"
#define MSG_AUTOSTART "Autostart"
#define MSG_DISABLE_STEPPERS "Slå alle steppere fra"
#define MSG_AUTO_HOME "Auto Home" // G28
#define MSG_AUTO_HOME_X "Home X"
#define MSG_AUTO_HOME_Y "Home Y"
#define MSG_AUTO_HOME_Z "Home Z"
#define MSG_LEVEL_BED_HOMING "Homing XYZ"
#define MSG_LEVEL_BED_WAITING "Tryk for at starte bed level"
#define MSG_LEVEL_BED_NEXT_POINT "Næste punkt"
#define MSG_LEVEL_BED_DONE "Bed level er færdig!"
#define MSG_LEVEL_BED_CANCEL "Annuller bed level"
#define MSG_SET_HOME_OFFSETS "Sæt forskyding af home"
#define MSG_HOME_OFFSETS_APPLIED "Forskydninger af home pos. er tilføjet"
#define MSG_SET_ORIGIN "Sæt origin"
#define MSG_PREHEAT_1 "Forvarm PLA"
#define MSG_PREHEAT_1_N "Forvarm PLA "
#define MSG_PREHEAT_1_ALL "Forvarm PLA Alle"
#define MSG_PREHEAT_1_BEDONLY "Forvarm PLA Bed"
#define MSG_PREHEAT_1_SETTINGS "Forvarm PLA conf"
#define MSG_PREHEAT_2 "Forvarm ABS"
#define MSG_PREHEAT_2_N "Forvarm ABS "
#define MSG_PREHEAT_2_ALL "Forvarm ABS Alle"
#define MSG_PREHEAT_2_BEDONLY "Forvarm ABS Bed"
#define MSG_PREHEAT_2_SETTINGS "Forvarm ABS conf"
#define MSG_H1 "1"
#define MSG_H2 "2"
#define MSG_H3 "3"
#define MSG_H4 "4"
#define MSG_COOLDOWN "Afkøl"
#define MSG_SWITCH_PS_ON "Slå strøm til"
#define MSG_SWITCH_PS_OFF "Slå strøm fra"
#define MSG_EXTRUDE "Extruder"
#define MSG_RETRACT "Retract"
#define MSG_MOVE_AXIS "Flyt akser"
#define MSG_LEVEL_BED "Juster bed"
#define MSG_MOVE_X "Flyt X"
#define MSG_MOVE_Y "Flyt Y"
#define MSG_MOVE_Z "Flyt Z"
#define MSG_MOVE_E "Extruder"
#define MSG_MOVE_E1 "1"
#define MSG_MOVE_E2 "2"
#define MSG_MOVE_E3 "3"
#define MSG_MOVE_E4 "4"
#define MSG_MOVE_01MM "Flyt 0.1mm"
#define MSG_MOVE_1MM "Flyt 1mm"
#define MSG_MOVE_10MM "Flyt 10mm"
#define MSG_SPEED "Hastighed"
#define MSG_BED_Z "Plade Z"
#define MSG_NOZZLE "Dyse"
#define MSG_N1 " 1"
#define MSG_N2 " 2"
#define MSG_N3 " 3"
#define MSG_N4 " 4"
#define MSG_BED "Plade"
#define MSG_FAN_SPEED "Blæser hastighed"
#define MSG_FLOW "Flow"
#define MSG_CONTROL "Kontrol"
#define MSG_MIN " \002 Min"
#define MSG_MAX " \002 Max"
#define MSG_FACTOR " \002 Fact"
#define MSG_AUTOTEMP "Autotemp"
#define MSG_ON "Til "
#define MSG_OFF "Fra"
#define MSG_PID_P "PID-P"
#define MSG_PID_I "PID-I"
#define MSG_PID_D "PID-D"
#define MSG_PID_C "PID-C"
#define MSG_E1 " E1"
#define MSG_E2 " E2"
#define MSG_E3 " E3"
#define MSG_E4 " E4"
#define MSG_ACC "Accel"
#define MSG_VXY_JERK "Vxy-jerk"
#define MSG_VZ_JERK "Vz-jerk"
#define MSG_VE_JERK "Ve-jerk"
#define MSG_VMAX "Vmax "
#define MSG_X "X"
#define MSG_Y "Y"
#define MSG_Z "Z"
#define MSG_E "E"
#define MSG_VMIN "Vmin"
#define MSG_VTRAV_MIN "VTrav min"
#define MSG_AMAX "Amax "
#define MSG_A_RETRACT "A-retract"
#define MSG_A_TRAVEL "A-rejse"
#define MSG_XSTEPS "Xsteps/mm"
#define MSG_YSTEPS "Ysteps/mm"
#define MSG_ZSTEPS "Zsteps/mm"
#define MSG_ESTEPS "Esteps/mm"
#define MSG_TEMPERATURE "Temperatur"
#define MSG_MOTION "Bevægelse"
#define MSG_VOLUMETRIC "Filament"
#define MSG_VOLUMETRIC_ENABLED "E in mm3"
#define MSG_FILAMENT_DIAM "Fil. Dia."
#define MSG_DIAM_E1 " 1"
#define MSG_DIAM_E2 " 2"
#define MSG_DIAM_E3 " 3"
#define MSG_DIAM_E4 " 4"
#define MSG_CONTRAST "LCD kontrast"
#define MSG_STORE_EPROM "Gem i EEPROM"
#define MSG_LOAD_EPROM "Hent fra EEPROM"
#define MSG_RESTORE_FAILSAFE "Gendan failsafe"
#define MSG_REFRESH "Genopfrisk"
#define MSG_WATCH "Info skærm"
#define MSG_PREPARE "Forbered"
#define MSG_TUNE "Tune"
#define MSG_PAUSE_PRINT "Pause printet"
#define MSG_RESUME_PRINT "Forsæt printet"
#define MSG_STOP_PRINT "Stop printet"
#define MSG_CARD_MENU "Print fra SD"
#define MSG_NO_CARD "Intet SD kort"
#define MSG_DWELL "Dvale..."
#define MSG_USERWAIT "Venter på bruger..."
#define MSG_RESUMING "Forsætter printet"
#define MSG_PRINT_ABORTED "Print annulleret"
#define MSG_NO_MOVE "Ingen bevægelse."
#define MSG_KILLED "DRÆBT. "
#define MSG_STOPPED "STOPPET. "
#define MSG_CONTROL_RETRACT "Tilbagetræk mm"
#define MSG_CONTROL_RETRACT_SWAP "Skift Re.mm"
#define MSG_CONTROL_RETRACTF "Tilbagetræk V"
#define MSG_CONTROL_RETRACT_ZLIFT "Hop mm"
#define MSG_CONTROL_RETRACT_RECOVER "UnRet +mm"
#define MSG_CONTROL_RETRACT_RECOVER_SWAP "S UnRet+mm"
#define MSG_CONTROL_RETRACT_RECOVERF "UnRet V"
#define MSG_AUTORETRACT "AutoRetr."
#define MSG_FILAMENTCHANGE "Skift filament"
#define MSG_INIT_SDCARD "Init. SD card"
#define MSG_CNG_SDCARD "Skift SD kort"
#define MSG_ZPROBE_OUT "Probe udenfor plade"
#define MSG_HOME "Home" // Used as MSG_HOME " " MSG_X MSG_Y MSG_Z " " MSG_FIRST
#define MSG_FIRST "first"
#define MSG_ZPROBE_ZOFFSET "Z Offset"
#define MSG_BABYSTEP_X "Babystep X"
#define MSG_BABYSTEP_Y "Babystep Y"
#define MSG_BABYSTEP_Z "Babystep Z"
#define MSG_ENDSTOP_ABORT "Endstop abort"
#define MSG_HEATING_FAILED_LCD "Opvarmning mislykkedes"
#define MSG_ERR_REDUNDANT_TEMP "Fejl: reserve temp"
#define MSG_THERMAL_RUNAWAY "Temp løber løbsk"
#define MSG_ERR_MAXTEMP "Fejl: Maks temp"
#define MSG_ERR_MINTEMP "Fejl: Min temp"
#define MSG_ERR_MAXTEMP_BED "Fejl: Maks Plsde temp"
#define MSG_ERR_MINTEMP_BED "Fejl: Min Plade temp"
#define MSG_HEATING "Opvarmer..."
#define MSG_HEATING_COMPLETE "Opvarmet"
#define MSG_BED_HEATING "Opvarmer plade"
#define MSG_BED_DONE "Plade opvarmet"
#define MSG_DELTA_CALIBRATE "Delta Kalibrering"
#define MSG_DELTA_CALIBRATE_X "Kalibrer X"
#define MSG_DELTA_CALIBRATE_Y "Kalibrer Y"
#define MSG_DELTA_CALIBRATE_Z "Kalibrer Z"
#define MSG_DELTA_CALIBRATE_CENTER "Kalibrerings Center"
#endif // LANGUAGE_DA_H
-227
View File
@@ -1,227 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
* German
*
* LCD Menu Messages
* See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
*
*/
#ifndef LANGUAGE_DE_H
#define LANGUAGE_DE_H
#define MAPPER_C2C3
// Define SIMULATE_ROMFONT to see what is seen on the character based display defined in Configuration.h
//#define SIMULATE_ROMFONT
#define DISPLAY_CHARSET_ISO10646_1
#define WELCOME_MSG MACHINE_NAME " bereit"
#define MSG_SD_INSERTED "SD-Karte erkannt"
#define MSG_SD_REMOVED "SD-Karte entfernt"
#define MSG_MAIN "Hauptmenü"
#define MSG_AUTOSTART "Autostart"
#define MSG_DISABLE_STEPPERS "Motoren aus" // M84
#define MSG_AUTO_HOME "Home" // G28
#define MSG_LEVEL_BED_HOMING "Homing XYZ"
#define MSG_LEVEL_BED_WAITING "Klick für Start"
#define MSG_LEVEL_BED_DONE "Fertig"
#define MSG_LEVEL_BED_CANCEL "Abbruch"
#define MSG_SET_HOME_OFFSETS "Setze Homeoffsets"
#define MSG_HOME_OFFSETS_APPLIED "Offsets aktiv"
#define MSG_SET_ORIGIN "Setze Nullpunkt" //"G92 X0 Y0 Z0" commented out in ultralcd.cpp
#define MSG_PREHEAT_1 "Vorwärmen PLA"
#define MSG_PREHEAT_1_N "Vorwärmen PLA "
#define MSG_PREHEAT_1_ALL "Vorw. PLA Alle"
#define MSG_PREHEAT_1_BEDONLY "Vorw. PLA Bett"
#define MSG_PREHEAT_1_SETTINGS "Vorw. PLA Einst."
#define MSG_PREHEAT_2 "Vorwärmen ABS"
#define MSG_PREHEAT_2_N "Vorwärmen ABS "
#define MSG_PREHEAT_2_ALL "Vorw. ABS Alle"
#define MSG_PREHEAT_2_BEDONLY "Vorw. ABS Bett"
#define MSG_PREHEAT_2_SETTINGS "Vorw. ABS Einst."
#define MSG_COOLDOWN "Abkühlen"
#define MSG_SWITCH_PS_ON "Netzteil ein"
#define MSG_SWITCH_PS_OFF "Netzteil aus"
#define MSG_EXTRUDE "Extrudieren"
#define MSG_RETRACT "Retract"
#define MSG_MOVE_AXIS "Bewegen"
#define MSG_LEVEL_BED "Bett nivellieren"
#define MSG_MOVE_X "X"
#define MSG_MOVE_Y "Y"
#define MSG_MOVE_Z "Z"
#define MSG_MOVE_E "E"
#define MSG_MOVE_01MM " 0.1 mm"
#define MSG_MOVE_1MM " 1.0 mm"
#define MSG_MOVE_10MM "10.0 mm"
#define MSG_SPEED "Geschw."
#define MSG_BED_Z "Bett Z"
#define MSG_NOZZLE "Düse"
#define MSG_BED "Bett"
#define MSG_FAN_SPEED "Lüfter"
#define MSG_FLOW "Durchfluss"
#define MSG_CONTROL "Einstellungen"
#define MSG_MIN LCD_STR_THERMOMETER " min"
#define MSG_MAX LCD_STR_THERMOMETER " max"
#define MSG_FACTOR LCD_STR_THERMOMETER " Faktor"
#define MSG_AUTOTEMP "AutoTemp"
#define MSG_ON "Ein"
#define MSG_OFF "Aus"
#define MSG_PID_P "PID P"
#define MSG_PID_I "PID I"
#define MSG_PID_D "PID D"
#define MSG_PID_C "PID C"
#define MSG_ACC "A"
#define MSG_VXY_JERK "V XY Jerk"
#define MSG_VZ_JERK "V Z Jerk"
#define MSG_VE_JERK "V E Jerk"
#define MSG_VMAX "V max " // space by purpose
#define MSG_X "X"
#define MSG_Y "Y"
#define MSG_Z "Z"
#define MSG_E "E"
#define MSG_VMIN "V min"
#define MSG_VTRAV_MIN "V min Leerfahrt"
#define MSG_AMAX "A max " // space by purpose
#define MSG_A_RETRACT "A Retract"
#define MSG_A_TRAVEL "A Leerfahrt"
#define MSG_XSTEPS "X Steps/mm"
#define MSG_YSTEPS "Y Steps/mm"
#define MSG_ZSTEPS "Z Steps/mm"
#define MSG_ESTEPS "E Steps/mm"
#define MSG_TEMPERATURE "Temperatur"
#define MSG_MOTION "Bewegung"
#define MSG_VOLUMETRIC "Filament"
#define MSG_VOLUMETRIC_ENABLED "E in mm³"
#define MSG_FILAMENT_DIAM "D Fil."
#define MSG_CONTRAST "LCD Kontrast"
#define MSG_STORE_EPROM "EPROM speichern"
#define MSG_LOAD_EPROM "EPROM laden"
#define MSG_RESTORE_FAILSAFE "Standardkonfiguration"
#define MSG_REFRESH "Aktualisieren"
#define MSG_WATCH "Info"
#define MSG_PREPARE "Vorbereitung"
#define MSG_TUNE "Justierung"
#define MSG_PAUSE_PRINT "SD-Druck Pause"
#define MSG_RESUME_PRINT "SD-Druck Fortsetzung"
#define MSG_STOP_PRINT "SD-Druck Abbruch"
#define MSG_CARD_MENU "SD-Karte"
#define MSG_NO_CARD "Keine SD-Karte"
#define MSG_DWELL "Warten..."
#define MSG_USERWAIT "Warte auf Nutzer"
#define MSG_RESUMING "Druckfortsetzung"
#define MSG_PRINT_ABORTED "Druck abgebrochen"
#define MSG_NO_MOVE "Motoren eingeschaltet"
#define MSG_KILLED "KILLED"
#define MSG_STOPPED "ANGEHALTEN"
#define MSG_CONTROL_RETRACT "Retract mm"
#define MSG_CONTROL_RETRACT_SWAP "Wechs. Retract mm"
#define MSG_CONTROL_RETRACTF "Retract V"
#define MSG_CONTROL_RETRACT_ZLIFT "Z-Hop mm"
#define MSG_CONTROL_RETRACT_RECOVER "UnRet +mm"
#define MSG_CONTROL_RETRACT_RECOVER_SWAP "Wechs. UnRet +mm"
#define MSG_CONTROL_RETRACT_RECOVERF "UnRet V"
#define MSG_AUTORETRACT "AutoRetract"
#define MSG_FILAMENTCHANGE "Filament wechseln"
#define MSG_INIT_SDCARD "SD-Karte erkennen" // Manually initialize the SD-card via user interface
#define MSG_CNG_SDCARD "SD-Karte getauscht" // SD-card changed by user. For machines with no autocarddetect. Both send "M21"
#define MSG_ZPROBE_OUT "Sensor ausserhalb"
#define MSG_HOME "Vorher" // Used as MSG_HOME " " MSG_X MSG_Y MSG_Z " " MSG_FIRST
#define MSG_FIRST "homen"
#define MSG_ZPROBE_ZOFFSET "Z Offset"
#define MSG_BABYSTEP_X "Babystep X"
#define MSG_BABYSTEP_Y "Babystep Y"
#define MSG_BABYSTEP_Z "Babystep Z"
#define MSG_ENDSTOP_ABORT "Endstop-Abbr. ein"
#define MSG_HEATING_FAILED_LCD "HEIZEN FEHLGESCHLAGEN"
#define MSG_ERR_REDUNDANT_TEMP "REDUND. TEMPERATURABWEICHUNG"
#define MSG_THERMAL_RUNAWAY LCD_STR_THERMOMETER " NICHT ERREICHT"
#define MSG_ERR_MAXTEMP LCD_STR_THERMOMETER " ÜBERSCHRITTEN"
#define MSG_ERR_MINTEMP LCD_STR_THERMOMETER " UNTERSCHRITTEN"
#define MSG_ERR_MAXTEMP_BED "BETT " LCD_STR_THERMOMETER " ÜBERSCHRITTEN"
#define MSG_ERR_MINTEMP_BED "BETT " LCD_STR_THERMOMETER " UNTERSCHRITTEN"
#define MSG_HEATING "Aufheizen..."
#define MSG_HEATING_COMPLETE "Aufgeheizt"
#define MSG_BED_HEATING "Bett aufheizen"
#define MSG_BED_DONE "Bett aufgeheizt"
#define MSG_DELTA_CALIBRATE "Delta kalibrieren"
#define MSG_DELTA_CALIBRATE_X "Kalibriere X"
#define MSG_DELTA_CALIBRATE_Y "Kalibriere Y"
#define MSG_DELTA_CALIBRATE_Z "Kalibriere Z"
#define MSG_DELTA_CALIBRATE_CENTER "Kalibriere Mitte"
#define MSG_INFO_MENU "Über den Drucker"
#define MSG_INFO_PRINTER_MENU "Drucker Info"
#define MSG_INFO_STATS_MENU "Drucker Stats"
#define MSG_INFO_BOARD_MENU "Board Info"
#define MSG_INFO_THERMISTOR_MENU "Thermistors"
#define MSG_INFO_EXTRUDERS "Extruders"
#define MSG_INFO_BAUDRATE "Baud"
#define MSG_INFO_PROTOCOL "Protokol"
#if LCD_WIDTH > 19
#define MSG_INFO_PRINT_COUNT "Gesamte Drucke "
#define MSG_INFO_COMPLETED_PRINTS "Beendete Drucke "
#define MSG_INFO_PRINT_TIME "Gesamte Druckzeit"
#else
#define MSG_INFO_PRINT_COUNT "Prints "
#define MSG_INFO_COMPLETED_PRINTS "Completed"
#define MSG_INFO_PRINT_TIME "Duration "
#endif
#define MSG_INFO_MIN_TEMP "Min Temp"
#define MSG_INFO_MAX_TEMP "Max Temp"
#define MSG_INFO_PSU "Stromversorgung"
#define MSG_FILAMENT_CHANGE_HEADER "ÄNDERE FILAMENT"
#define MSG_FILAMENT_CHANGE_OPTION_HEADER "ÄNDERE OPTIONEN:"
#define MSG_FILAMENT_CHANGE_OPTION_EXTRUDE "Extrude mehr"
#define MSG_FILAMENT_CHANGE_OPTION_RESUME "Drucke weiter"
#if LCD_HEIGHT >= 4
#define MSG_FILAMENT_CHANGE_INIT_1 "Warte auf den"
#define MSG_FILAMENT_CHANGE_INIT_2 "Start zum "
#define MSG_FILAMENT_CHANGE_INIT_3 "Filament wechsel"
#define MSG_FILAMENT_CHANGE_UNLOAD_1 "Warte auf das"
#define MSG_FILAMENT_CHANGE_UNLOAD_2 "herrausnehmen"
#define MSG_FILAMENT_CHANGE_UNLOAD_3 "des Filaments"
#define MSG_FILAMENT_CHANGE_INSERT_1 "Fädel Filament"
#define MSG_FILAMENT_CHANGE_INSERT_2 "ein und drücke"
#define MSG_FILAMENT_CHANGE_INSERT_3 "den Knopf..."
#define MSG_FILAMENT_CHANGE_LOAD_1 "Warte auf das"
#define MSG_FILAMENT_CHANGE_LOAD_2 "laden des"
#define MSG_FILAMENT_CHANGE_LOAD_3 "Filaments"
#define MSG_FILAMENT_CHANGE_EXTRUDE_1 "Warte auf das"
#define MSG_FILAMENT_CHANGE_EXTRUDE_2 "Extruden des"
#define MSG_FILAMENT_CHANGE_EXTRUDE_3 "Filaments"
#define MSG_FILAMENT_CHANGE_RESUME_1 "Warte auf das"
#define MSG_FILAMENT_CHANGE_RESUME_2 "fortfahren des"
#define MSG_FILAMENT_CHANGE_RESUME_3 "Druckes"
#else // LCD_HEIGHT < 4
#define MSG_FILAMENT_CHANGE_INIT_1 "Bitte warten..."
#define MSG_FILAMENT_CHANGE_UNLOAD_1 "Auswerfen..."
#define MSG_FILAMENT_CHANGE_INSERT_1 "Laden und Klick"
#define MSG_FILAMENT_CHANGE_LOAD_1 "Laden..."
#define MSG_FILAMENT_CHANGE_EXTRUDE_1 "Extruden..."
#define MSG_FILAMENT_CHANGE_RESUME_1 "Weitermachen..."
#endif // LCD_HEIGHT < 4
#endif // LANGUAGE_DE_H
-198
View File
@@ -1,198 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
* Greek (Greece)
*
* LCD Menu Messages
* See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
*
*/
#ifndef LANGUAGE_EL_GR_H
#define LANGUAGE_EL_GR_H
// Define SIMULATE_ROMFONT to see what is seen on the character based display defined in Configuration.h
//#define SIMULATE_ROMFONT
//#define MAPPER_CECF
//#define DISPLAY_CHARSET_ISO10646_GREEK
#define WELCOME_MSG MACHINE_NAME " έτοιμο."
#define MSG_SD_INSERTED "Εισαγωγή κάρτας"
#define MSG_SD_REMOVED "Αφαίρεση κάρτας"
#define MSG_LCD_ENDSTOPS "Endstops" // Max length 8 characters
#define MSG_MAIN "Βασική Οθόνη"
#define MSG_AUTOSTART "Αυτόματη εκκίνηση"
#define MSG_DISABLE_STEPPERS "Απενεργοποίηση βηματιστή"
#define MSG_AUTO_HOME "Αυτομ. επαναφορά στο αρχικό σημείο"
#define MSG_AUTO_HOME_X "Αρχικό σημείο X"
#define MSG_AUTO_HOME_Y "Αρχικό σημείο Y"
#define MSG_AUTO_HOME_Z "Αρχικό σημείο Z"
#define MSG_LEVEL_BED_HOMING "Επαναφορά στο αρχικό σημείο ΧΥΖ"
#define MSG_LEVEL_BED_WAITING "Κάντε κλικ για να ξεκινήσετε"
#define MSG_LEVEL_BED_NEXT_POINT "Επόμενο σημείο"
#define MSG_LEVEL_BED_DONE "Ολοκλήρωση επιπεδοποίησης!"
#define MSG_LEVEL_BED_CANCEL "Ακύρωση"
#define MSG_SET_HOME_OFFSETS "Ορισμός βασικών μετατοπίσεων"
#define MSG_HOME_OFFSETS_APPLIED "Εφαρμόστηκαν οι μετατοπίσεις"
#define MSG_SET_ORIGIN "Ορισμός προέλευσης"
#define MSG_PREHEAT_1 "Προθέρμανση PLA"
#define MSG_PREHEAT_1_N MSG_PREHEAT_1 " "
#define MSG_PREHEAT_1_ALL MSG_PREHEAT_1 " όλα"
#define MSG_PREHEAT_1_BEDONLY MSG_PREHEAT_1 " κλίνη"
#define MSG_PREHEAT_1_SETTINGS MSG_PREHEAT_1 " επιβεβαίωση"
#define MSG_PREHEAT_2 "Προθέρμανση ABS"
#define MSG_PREHEAT_2_N MSG_PREHEAT_2 " "
#define MSG_PREHEAT_2_ALL MSG_PREHEAT_2 " όλα"
#define MSG_PREHEAT_2_BEDONLY MSG_PREHEAT_2 " Bed"
#define MSG_PREHEAT_2_SETTINGS MSG_PREHEAT_2 " επιβεβαίωση"
#define MSG_H1 "1"
#define MSG_H2 "2"
#define MSG_H3 "3"
#define MSG_H4 "4"
#define MSG_COOLDOWN "Μειωση θερμοκρασιας"
#define MSG_SWITCH_PS_ON "Ενεργοποίηση"
#define MSG_SWITCH_PS_OFF "Απενεργοποίηση"
#define MSG_EXTRUDE "Εξώθηση"
#define MSG_RETRACT "Ανάσυρση"
#define MSG_MOVE_AXIS "Μετακίνηση άξονα"
#define MSG_LEVEL_BED "Επιπεδοποίηση κλίνης"
#define MSG_MOVE_X "Μετακίνηση X"
#define MSG_MOVE_Y "Μετακίνηση Y"
#define MSG_MOVE_Z "Μετακίνηση Z"
#define MSG_MOVE_E "Εξωθητήρας"
#define MSG_MOVE_E1 "1"
#define MSG_MOVE_E2 "2"
#define MSG_MOVE_E3 "3"
#define MSG_MOVE_E4 "4"
#define MSG_MOVE_01MM "Μετακίνηση 0,1 μμ"
#define MSG_MOVE_1MM "Μετακίνηση 1 μμ"
#define MSG_MOVE_10MM "Μετακίνηση 10 μμ"
#define MSG_SPEED "Ταχύτητα"
#define MSG_BED_Z "Κλίνη Z"
#define MSG_NOZZLE "Ακροφύσιο"
#define MSG_N1 " 1"
#define MSG_N2 " 2"
#define MSG_N3 " 3"
#define MSG_N4 " 4"
#define MSG_BED "Κλίνη"
#define MSG_FAN_SPEED "Ταχύτητα ανεμιστήρα"
#define MSG_FLOW "Ροή"
#define MSG_CONTROL "Έλεγχος"
#define MSG_MIN " " LCD_STR_THERMOMETER " Min"
#define MSG_MAX " " LCD_STR_THERMOMETER " Max"
#define MSG_FACTOR " " LCD_STR_THERMOMETER " Fact"
#define MSG_AUTOTEMP "Αυτομ. ρύθμιση θερμοκρασίας"
#define MSG_ON "Ενεργοποιημένο"
#define MSG_OFF "Απενεργοποιημένο"
#define MSG_PID_P "PID-P"
#define MSG_PID_I "PID-I"
#define MSG_PID_D "PID-D"
#define MSG_PID_C "PID-C"
#define MSG_E1 " E1"
#define MSG_E2 " E2"
#define MSG_E3 " E3"
#define MSG_E4 " E4"
#define MSG_ACC "Επιτάχυνση"
#define MSG_VXY_JERK "Vαντίδραση xy"
#define MSG_VZ_JERK "Vαντίδραση z"
#define MSG_VE_JERK "Vαντίδραση e"
#define MSG_VMAX "Vμεγ "
#define MSG_X "X"
#define MSG_Y "Y"
#define MSG_Z "Z"
#define MSG_E "E"
#define MSG_VMIN "Vελαχ"
#define MSG_VTRAV_MIN "Vελάχ. μετατόπιση"
#define MSG_AMAX "Aμεγ "
#define MSG_A_RETRACT "Α-ανάσυρση"
#define MSG_A_TRAVEL "Α-μετατόπιση"
#define MSG_XSTEPS "Bήματα X ανά μμ"
#define MSG_YSTEPS "Bήματα Υ ανά μμ"
#define MSG_ZSTEPS "Bήματα Ζ ανά μμ"
#define MSG_ESTEPS "Bήματα Ε ανά μμ"
#define MSG_TEMPERATURE "Θερμοκρασία"
#define MSG_MOTION "Κίνηση"
#define MSG_VOLUMETRIC "Νήμα"
#define MSG_VOLUMETRIC_ENABLED "Ε σε μμ3"
#define MSG_FILAMENT_DIAM "Διάμετρος νήματος"
#define MSG_DIAM_E1 " 1"
#define MSG_DIAM_E2 " 2"
#define MSG_DIAM_E3 " 3"
#define MSG_DIAM_E4 " 4"
#define MSG_CONTRAST "Κοντράστ LCD"
#define MSG_STORE_EPROM "Αποθήκευση"
#define MSG_LOAD_EPROM "Φόρτωση"
#define MSG_RESTORE_FAILSAFE "Επαναφορά ασφαλούς αντιγράφου"
#define MSG_REFRESH "Ανανέωση"
#define MSG_WATCH "Οθόνη πληροφόρησης"
#define MSG_PREPARE "Προετοιμασία"
#define MSG_TUNE "Συντονισμός"
#define MSG_PAUSE_PRINT "Παύση εκτύπωσης"
#define MSG_RESUME_PRINT "Συνέχιση εκτύπωσης"
#define MSG_STOP_PRINT "Διακοπή εκτύπωσης"
#define MSG_CARD_MENU "Εκτύπωση από SD"
#define MSG_NO_CARD "Δεν βρέθηκε SD"
#define MSG_DWELL "Αναστολή λειτουργίας..."
#define MSG_USERWAIT "Αναμονή για χρήστη…"
#define MSG_RESUMING "Συνεχίζεται η εκτύπωση"
#define MSG_PRINT_ABORTED "Διακόπτεται η εκτύπωση"
#define MSG_NO_MOVE "Καμία κίνηση."
#define MSG_KILLED "ΤΕΡΜΑΤΙΣΜΟΣ. "
#define MSG_STOPPED "ΔΙΑΚΟΠΗ. "
#define MSG_CONTROL_RETRACT "Ανάσυρση μμ"
#define MSG_CONTROL_RETRACT_SWAP "Εναλλαγή ανάσυρσης μμ"
#define MSG_CONTROL_RETRACTF "Ανάσυρση V"
#define MSG_CONTROL_RETRACT_ZLIFT "Μεταπήδηση μμ"
#define MSG_CONTROL_RETRACT_RECOVER "UnRet +mm"
#define MSG_CONTROL_RETRACT_RECOVER_SWAP "S UnRet+mm"
#define MSG_CONTROL_RETRACT_RECOVERF "UnRet V"
#define MSG_AUTORETRACT "Αυτόματη ανάσυρση"
#define MSG_FILAMENTCHANGE "Αλλαγή νήματος"
#define MSG_INIT_SDCARD "Προετοιμασία κάρτας SD"
#define MSG_CNG_SDCARD "Αλλαγή κάρτας SD"
#define MSG_ZPROBE_OUT "Διερεύνηση Z εκτός κλίνης"
#define MSG_YX_UNHOMED "Επαναφορά Χ/Υ πριν από Ζ"
#define MSG_XYZ_UNHOMED "Επαναφορά ΧΥΖ πρώτα"
#define MSG_ZPROBE_ZOFFSET "Μετατόπιση Ζ"
#define MSG_BABYSTEP_X "Μικρό βήμα Χ"
#define MSG_BABYSTEP_Y "Μικρό βήμα Υ"
#define MSG_BABYSTEP_Z "Μικρό βήμα Ζ"
#define MSG_ENDSTOP_ABORT "Ματαίωση endstop "
#define MSG_HEATING_FAILED_LCD "Ανεπιτυχής θέρμανση"
#define MSG_ERR_REDUNDANT_TEMP "Λάθος: ΠΛΕΟΝΑΖΟΥΣΑ ΘΕΡΜΟΤΗΤΑ"
#define MSG_THERMAL_RUNAWAY "ΔΙΑΦΥΓΗ ΘΕΡΜΟΤΗΤΑΣ"
#define MSG_ERR_MAXTEMP "Λάθος: ΜΕΓΙΣΤΗ ΘΕΡΜΟΤΗΤΑ"
#define MSG_ERR_MINTEMP "Λάθος: ΕΛΑΧΙΣΤΗ ΘΕΡΜΟΤΗΤΑ"
#define MSG_ERR_MAXTEMP_BED "Λάθος: ΜΕΓΙΣΤΗ ΘΕΡΜΟΤΗΤΑ ΚΛΙΝΗΣ"
#define MSG_ERR_MINTEMP_BED "Λάθος: ΕΛΑΧΙΣΤΗ ΘΕΡΜΟΤΗΤΑ ΚΛΙΝΗΣ"
#define MSG_HEATING "Θερμαίνεται…"
#define MSG_HEATING_COMPLETE "Η θέρμανση ολοκληρώθηκε."
#define MSG_BED_HEATING "Θέρμανση κλίνης."
#define MSG_BED_DONE "Η κλίνη ολοκληρώθηκε."
#define MSG_DELTA_CALIBRATE "Βαθμονόμηση Delta"
#define MSG_DELTA_CALIBRATE_X "Βαθμονόμηση X"
#define MSG_DELTA_CALIBRATE_Y "Βαθμονόμηση Y"
#define MSG_DELTA_CALIBRATE_Z "Βαθμονόμηση Z"
#define MSG_DELTA_CALIBRATE_CENTER "Βαθμονόμηση κέντρου"
#endif // LANGUAGE_EL_GR_H
-254
View File
@@ -1,254 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
* Greek
*
* LCD Menu Messages
* See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
*
*/
#ifndef LANGUAGE_EL_H
#define LANGUAGE_EL_H
// Define SIMULATE_ROMFONT to see what is seen on the character based display defined in Configuration.h
//#define SIMULATE_ROMFONT
#define MAPPER_CECF
#define DISPLAY_CHARSET_ISO10646_GREEK
#define WELCOME_MSG MACHINE_NAME " έτοιμο."
#define MSG_SD_INSERTED "Εισαγωγή κάρτας"
#define MSG_SD_REMOVED "Αφαίρεση κάρτας"
#define MSG_LCD_ENDSTOPS "Endstops" // Max length 8 characters
#define MSG_MAIN "Βασική Οθόνη"
#define MSG_AUTOSTART "Αυτόματη εκκίνηση"
#define MSG_DISABLE_STEPPERS "Απενεργοποίηση Μοτέρ"
#define MSG_AUTO_HOME "Αυτομ. επαναφορά στο αρχικό σημείο" //SHORTEN
#define MSG_AUTO_HOME_X "Αρχικό σημείο X"
#define MSG_AUTO_HOME_Y "Αρχικό σημείο Y"
#define MSG_AUTO_HOME_Z "Αρχικό σημείο Z"
#define MSG_LEVEL_BED_HOMING "Επαναφορά Επ. Εκτύπωσης" //SHORTEN
#define MSG_LEVEL_BED_WAITING "Επιπεδοποίηση επ. Εκτύπωσης περιμενει" //SHORTEN
#define MSG_LEVEL_BED_NEXT_POINT "Επόμενο σημείο"
#define MSG_LEVEL_BED_DONE "Ολοκλήρωση επιπεδοποίησης!" //SHORTEN
#define MSG_LEVEL_BED_CANCEL "Ακύρωση"
#define MSG_SET_HOME_OFFSETS "Ορισμός βασικών μετατοπίσεων" //SHORTEN
#define MSG_HOME_OFFSETS_APPLIED "Εφαρμόστηκαν οι μετατοπίσεις" //SHORTEN
#define MSG_SET_ORIGIN "Ορισμός προέλευσης"
#define MSG_PREHEAT_1 "Προθέρμανση PLA"
#define MSG_PREHEAT_1_N MSG_PREHEAT_1 " "
#define MSG_PREHEAT_1_ALL MSG_PREHEAT_1 " όλα"
#define MSG_PREHEAT_1_BEDONLY MSG_PREHEAT_1 " bed" //SHORTEN
#define MSG_PREHEAT_1_SETTINGS MSG_PREHEAT_1 " επιβεβαίωση" //SHORTEN
#define MSG_PREHEAT_2 "Προθέρμανση ABS"
#define MSG_PREHEAT_2_N MSG_PREHEAT_2 " "
#define MSG_PREHEAT_2_ALL MSG_PREHEAT_2 " όλα"
#define MSG_PREHEAT_2_BEDONLY MSG_PREHEAT_2 " bed" //SHORTEN
#define MSG_PREHEAT_2_SETTINGS MSG_PREHEAT_2 " επιβεβαίωση" //SHORTEN
#define MSG_H1 "1"
#define MSG_H2 "2"
#define MSG_H3 "3"
#define MSG_H4 "4"
#define MSG_COOLDOWN "Μειωση θερμοκρασιας"
#define MSG_SWITCH_PS_ON "Ενεργοποίηση"
#define MSG_SWITCH_PS_OFF "Απενεργοποίηση"
#define MSG_EXTRUDE "Εξώθηση"
#define MSG_RETRACT "Ανάσυρση"
#define MSG_MOVE_AXIS "Μετακίνηση άξονα"
#define MSG_LEVEL_BED "Επιπεδοποίηση Επ. Εκτύπωσης" //SHORTEN
#define MSG_MOVE_X "Μετακίνηση X"
#define MSG_MOVE_Y "Μετακίνηση Y"
#define MSG_MOVE_Z "Μετακίνηση Z"
#define MSG_MOVE_E "Εξωθητήρας"
#define MSG_MOVE_E1 "1"
#define MSG_MOVE_E2 "2"
#define MSG_MOVE_E3 "3"
#define MSG_MOVE_E4 "4"
#define MSG_MOVE_01MM "Μετακίνηση 0,1μμ"
#define MSG_MOVE_1MM "Μετακίνηση 1μμ"
#define MSG_MOVE_10MM "Μετακίνηση 10μμ"
#define MSG_SPEED "Ταχύτητα"
#define MSG_BED_Z "Επ. Εκτύπωσης Z"
#define MSG_NOZZLE "Ακροφύσιο"
#define MSG_N1 " 1"
#define MSG_N2 " 2"
#define MSG_N3 " 3"
#define MSG_N4 " 4"
#define MSG_BED "Κλίνη"
#define MSG_FAN_SPEED "Ταχύτητα ανεμιστήρα"
#define MSG_FLOW "Ροή"
#define MSG_CONTROL "Έλεγχος"
#define MSG_MIN " " LCD_STR_THERMOMETER " Min"
#define MSG_MAX " " LCD_STR_THERMOMETER " Max"
#define MSG_FACTOR " " LCD_STR_THERMOMETER " Fact"
#define MSG_AUTOTEMP "Αυτομ ρύθμιση θερ/σίας" //SHORTEN
#define MSG_ON "Ενεργοποιημένο"
#define MSG_OFF "Απενεργοποιημένο"
#define MSG_PID_P "PID-P"
#define MSG_PID_I "PID-I"
#define MSG_PID_D "PID-D"
#define MSG_PID_C "PID-C"
#define MSG_E1 " E1"
#define MSG_E2 " E2"
#define MSG_E3 " E3"
#define MSG_E4 " E4"
#define MSG_ACC "Επιτάχυνση"
#define MSG_VXY_JERK "Vαντίδραση xy"
#define MSG_VZ_JERK "Vαντίδραση z"
#define MSG_VE_JERK "Vαντίδραση e"
#define MSG_VMAX "V Μέγιστο"
#define MSG_X "X"
#define MSG_Y "Y"
#define MSG_Z "Z"
#define MSG_E "E"
#define MSG_VMIN "V Ελάχιστο"
#define MSG_VTRAV_MIN "Vελάχ. μετατόπιση"
#define MSG_AMAX "Aμεγ "
#define MSG_A_RETRACT "Α-ανάσυρση"
#define MSG_A_TRAVEL "Α-μετατόπιση"
#define MSG_XSTEPS "Bήματα X ανά μμ"
#define MSG_YSTEPS "Bήματα Υ ανά μμ"
#define MSG_ZSTEPS "Bήματα Ζ ανά μμ"
#define MSG_ESTEPS "Bήματα Ε ανά μμ"
#define MSG_TEMPERATURE "Θερμοκρασία"
#define MSG_MOTION "Κίνηση"
#define MSG_VOLUMETRIC "Νήμα"
#define MSG_VOLUMETRIC_ENABLED "Ε σε μμ3"
#define MSG_FILAMENT_DIAM "Διάμετρος νήματος"
#define MSG_DIAM_E1 " 1"
#define MSG_DIAM_E2 " 2"
#define MSG_DIAM_E3 " 3"
#define MSG_DIAM_E4 " 4"
#define MSG_CONTRAST "Κοντράστ LCD"
#define MSG_STORE_EPROM "Αποθήκευση"
#define MSG_LOAD_EPROM "Φόρτωση"
#define MSG_RESTORE_FAILSAFE "Επαναφορά ασφαλούς αντιγράφου" //SHORTEN
#define MSG_REFRESH "Ανανέωση"
#define MSG_WATCH "Οθόνη πληροφόρησης"
#define MSG_PREPARE "Προετοιμασία"
#define MSG_TUNE "Συντονισμός"
#define MSG_PAUSE_PRINT "Παύση εκτύπωσης"
#define MSG_RESUME_PRINT "Συνέχιση εκτύπωσης"
#define MSG_STOP_PRINT "Διακοπή εκτύπωσης"
#define MSG_CARD_MENU "Εκτύπωση από SD"
#define MSG_NO_CARD "Δεν βρέθηκε SD"
#define MSG_DWELL "Αναστολή λειτουργίας"
#define MSG_USERWAIT "Αναμονή για χρήστη"
#define MSG_RESUMING "Συνεχίζεται η εκτύπωση" //SHORTEN
#define MSG_PRINT_ABORTED "Διακόπτεται η εκτύπωση" //SHORTEN
#define MSG_NO_MOVE "Καμία κίνηση."
#define MSG_KILLED "ΤΕΡΜΑΤΙΣΜΟΣ. "
#define MSG_STOPPED "ΔΙΑΚΟΠΗ. "
#define MSG_CONTROL_RETRACT "Ανάσυρση μμ"
#define MSG_CONTROL_RETRACT_SWAP "Εναλλαγή ανάσυρσης μμ" //SHORTEN
#define MSG_CONTROL_RETRACTF "Ανάσυρση V"
#define MSG_CONTROL_RETRACT_ZLIFT "Μεταπήδηση μμ"
#define MSG_CONTROL_RETRACT_RECOVER "UnRet +mm"
#define MSG_CONTROL_RETRACT_RECOVER_SWAP "S UnRet+mm"
#define MSG_CONTROL_RETRACT_RECOVERF "UnRet V"
#define MSG_AUTORETRACT "Αυτόματη ανάσυρση"
#define MSG_FILAMENTCHANGE "Αλλαγή νήματος"
#define MSG_INIT_SDCARD "Προετοιμασία κάρτας SD" //SHORTEN
#define MSG_CNG_SDCARD "Αλλαγή κάρτας SD"
#define MSG_ZPROBE_OUT "Διερεύνηση Z εκτός Επ.Εκτύπωσης" //SHORTEN
#define MSG_YX_UNHOMED "Επαναφορά Χ/Υ πριν από Ζ" //SHORTEN
#define MSG_XYZ_UNHOMED "Επαναφορά ΧΥΖ πρώτα"
#define MSG_ZPROBE_ZOFFSET "Μετατόπιση Ζ"
#define MSG_BABYSTEP_X "Μικρό βήμα Χ"
#define MSG_BABYSTEP_Y "Μικρό βήμα Υ"
#define MSG_BABYSTEP_Z "Μικρό βήμα Ζ"
#define MSG_ENDSTOP_ABORT "Ακύρωση endstop "
#define MSG_HEATING_FAILED_LCD "Ανεπιτυχής θέρμανση"
#define MSG_ERR_REDUNDANT_TEMP "ΠΛΕΟΝΑΖΟΥΣΑ ΘΕΡΜΟΤΗΤΑ"
#define MSG_THERMAL_RUNAWAY "ΔΙΑΦΥΓΗ ΘΕΡΜΟΚΡΑΣΙΑΣ"
#define MSG_ERR_MAXTEMP "ΠΕΡΙΤΗ ΘΕΡΜΟΚΡΑΣΙΑ"
#define MSG_ERR_MINTEMP "ΜΗ ΕΠΑΡΚΗΣ ΘΕΡΜΟΚΡΑΣΙΑΣ" //SHORTEN
#define MSG_ERR_MAXTEMP_BED "ΜΕΓΙΣΤΗ ΘΕΡΜΟΚΡΑΣΙΑΣ ΕΠ. ΕΚΤΥΠΩΣΗΣ" //SHORTEN
#define MSG_ERR_MINTEMP_BED "ΕΛΑΧΙΣΤΗ ΘΕΡΜΟΚΡΑΣΙΑΣ ΕΠ. ΕΚΤΥΠΩΣΗΣ" //SHORTEN
#define MSG_HALTED "H εκτύπωση διακόπηκε"
#define MSG_PLEASE_RESET "PLEASE RESET" //TRANSLATE
#define MSG_HEATING "Θερμαίνεται…"
#define MSG_HEATING_COMPLETE "Η θέρμανση ολοκληρώθηκε." //SHORTEN
#define MSG_BED_HEATING "Θέρμανση ΕΠ. Εκτύπωσης" //SHORTEN
#define MSG_BED_DONE "Η Επ. Εκτύπωσης ολοκληρώθηκε" //SHORTEN
#define MSG_DELTA_CALIBRATE "Βαθμονόμηση Delta"
#define MSG_DELTA_CALIBRATE_X "Βαθμονόμηση X"
#define MSG_DELTA_CALIBRATE_Y "Βαθμονόμηση Y"
#define MSG_DELTA_CALIBRATE_Z "Βαθμονόμηση Z"
#define MSG_DELTA_CALIBRATE_CENTER "Βαθμονόμηση κέντρου"
#define MSG_INFO_MENU "About Printer"
#define MSG_INFO_PRINTER_MENU "Printer Info"
#define MSG_INFO_STATS_MENU "Printer Stats"
#define MSG_INFO_BOARD_MENU "Board Info"
#define MSG_INFO_THERMISTOR_MENU "Thermistors"
#define MSG_INFO_EXTRUDERS "Extruders"
#define MSG_INFO_BAUDRATE "Baud"
#define MSG_INFO_PROTOCOL "Protocol"
#if LCD_WIDTH > 19
#define MSG_INFO_PRINT_COUNT "Print Count"
#define MSG_INFO_COMPLETED_PRINTS "Completed "
#define MSG_INFO_PRINT_TIME "Total Time "
#else
#define MSG_INFO_PRINT_COUNT "Prints "
#define MSG_INFO_COMPLETED_PRINTS "Completed"
#define MSG_INFO_PRINT_TIME "Duration "
#endif
#define MSG_INFO_MIN_TEMP "Min Temp"
#define MSG_INFO_MAX_TEMP "Max Temp"
#define MSG_INFO_PSU "Power Supply"
#define MSG_FILAMENT_CHANGE_HEADER "CHANGE FILAMENT"
#define MSG_FILAMENT_CHANGE_OPTION_EXTRUDE "Extrude more"
#define MSG_FILAMENT_CHANGE_OPTION_RESUME "Resume print"
#if LCD_HEIGHT >= 4
#define MSG_FILAMENT_CHANGE_INIT_1 "Wait for start"
#define MSG_FILAMENT_CHANGE_INIT_2 "of the filament"
#define MSG_FILAMENT_CHANGE_INIT_3 "change"
#define MSG_FILAMENT_CHANGE_UNLOAD_1 "Wait for"
#define MSG_FILAMENT_CHANGE_UNLOAD_2 "filament unload"
#define MSG_FILAMENT_CHANGE_UNLOAD_3 ""
#define MSG_FILAMENT_CHANGE_INSERT_1 "Insert filament"
#define MSG_FILAMENT_CHANGE_INSERT_2 "and press button"
#define MSG_FILAMENT_CHANGE_INSERT_3 "to continue..."
#define MSG_FILAMENT_CHANGE_LOAD_1 "Wait for"
#define MSG_FILAMENT_CHANGE_LOAD_2 "filament load"
#define MSG_FILAMENT_CHANGE_LOAD_3 ""
#define MSG_FILAMENT_CHANGE_EXTRUDE_1 "Wait for"
#define MSG_FILAMENT_CHANGE_EXTRUDE_2 "filament extrude"
#define MSG_FILAMENT_CHANGE_EXTRUDE_3 ""
#define MSG_FILAMENT_CHANGE_RESUME_1 "Wait for print"
#define MSG_FILAMENT_CHANGE_RESUME_2 "to resume"
#define MSG_FILAMENT_CHANGE_RESUME_3 ""
#else // LCD_HEIGHT < 4
#define MSG_FILAMENT_CHANGE_INIT_1 "Please wait..."
#define MSG_FILAMENT_CHANGE_UNLOAD_1 "Ejecting..."
#define MSG_FILAMENT_CHANGE_INSERT_1 "Insert and Click"
#define MSG_FILAMENT_CHANGE_LOAD_1 "Loading..."
#define MSG_FILAMENT_CHANGE_EXTRUDE_1 "Extruding..."
#define MSG_FILAMENT_CHANGE_RESUME_1 "Resuming..."
#endif
#endif // LANGUAGE_EL_H
-688
View File
@@ -1,688 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
* English
*
* LCD Menu Messages
* See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
*
*/
#ifndef LANGUAGE_EN_H
#define LANGUAGE_EN_H
//#define SIMULATE_ROMFONT //Comment in to see what is seen on the character based displays
#if DISABLED(SIMULATE_ROMFONT) && DISABLED(DISPLAY_CHARSET_ISO10646_1) && DISABLED(DISPLAY_CHARSET_ISO10646_5) && DISABLED(DISPLAY_CHARSET_ISO10646_KANA) && DISABLED(DISPLAY_CHARSET_ISO10646_GREEK) && DISABLED(DISPLAY_CHARSET_ISO10646_CN)
#define DISPLAY_CHARSET_ISO10646_1 // use the better font on full graphic displays.
#endif
#ifndef WELCOME_MSG
#define WELCOME_MSG MACHINE_NAME " ready."
#endif
#ifndef MSG_SD_INSERTED
#define MSG_SD_INSERTED "Card inserted"
#endif
#ifndef MSG_SD_REMOVED
#define MSG_SD_REMOVED "Card removed"
#endif
#ifndef MSG_LCD_ENDSTOPS
#define MSG_LCD_ENDSTOPS "Endstops" // Max length 8 characters
#endif
#ifndef MSG_MAIN
#define MSG_MAIN "Main"
#endif
#ifndef MSG_AUTOSTART
#define MSG_AUTOSTART "Autostart"
#endif
#ifndef MSG_DISABLE_STEPPERS
#define MSG_DISABLE_STEPPERS "Disable steppers"
#endif
#ifndef MSG_AUTO_HOME
#define MSG_AUTO_HOME "Auto home"
#endif
#ifndef MSG_AUTO_HOME_X
#define MSG_AUTO_HOME_X "Home X"
#endif
#ifndef MSG_AUTO_HOME_Y
#define MSG_AUTO_HOME_Y "Home Y"
#endif
#ifndef MSG_AUTO_HOME_Z
#define MSG_AUTO_HOME_Z "Home Z"
#endif
#ifndef MSG_LEVEL_BED_HOMING
#define MSG_LEVEL_BED_HOMING "Homing XYZ"
#endif
#ifndef MSG_LEVEL_BED_WAITING
#define MSG_LEVEL_BED_WAITING "Click to Begin"
#endif
#ifndef MSG_LEVEL_BED_NEXT_POINT
#define MSG_LEVEL_BED_NEXT_POINT "Next Point"
#endif
#ifndef MSG_LEVEL_BED_DONE
#define MSG_LEVEL_BED_DONE "Leveling Done!"
#endif
#ifndef MSG_LEVEL_BED_CANCEL
#define MSG_LEVEL_BED_CANCEL "Cancel"
#endif
#ifndef MSG_SET_HOME_OFFSETS
#define MSG_SET_HOME_OFFSETS "Set home offsets"
#endif
#ifndef MSG_HOME_OFFSETS_APPLIED
#define MSG_HOME_OFFSETS_APPLIED "Offsets applied"
#endif
#ifndef MSG_SET_ORIGIN
#define MSG_SET_ORIGIN "Set origin"
#endif
#ifndef MSG_PREHEAT_1
#define MSG_PREHEAT_1 "Preheat PLA"
#endif
#ifndef MSG_PREHEAT_1_N
#define MSG_PREHEAT_1_N MSG_PREHEAT_1 " "
#endif
#ifndef MSG_PREHEAT_1_ALL
#define MSG_PREHEAT_1_ALL MSG_PREHEAT_1 " All"
#endif
#ifndef MSG_PREHEAT_1_BEDONLY
#define MSG_PREHEAT_1_BEDONLY MSG_PREHEAT_1 " Bed"
#endif
#ifndef MSG_PREHEAT_1_SETTINGS
#define MSG_PREHEAT_1_SETTINGS MSG_PREHEAT_1 " conf"
#endif
#ifndef MSG_PREHEAT_2
#define MSG_PREHEAT_2 "Preheat ABS"
#endif
#ifndef MSG_PREHEAT_2_N
#define MSG_PREHEAT_2_N MSG_PREHEAT_2 " "
#endif
#ifndef MSG_PREHEAT_2_ALL
#define MSG_PREHEAT_2_ALL MSG_PREHEAT_2 " All"
#endif
#ifndef MSG_PREHEAT_2_BEDONLY
#define MSG_PREHEAT_2_BEDONLY MSG_PREHEAT_2 " Bed"
#endif
#ifndef MSG_PREHEAT_2_SETTINGS
#define MSG_PREHEAT_2_SETTINGS MSG_PREHEAT_2 " conf"
#endif
#ifndef MSG_H1
#define MSG_H1 "1"
#endif
#ifndef MSG_H2
#define MSG_H2 "2"
#endif
#ifndef MSG_H3
#define MSG_H3 "3"
#endif
#ifndef MSG_H4
#define MSG_H4 "4"
#endif
#ifndef MSG_COOLDOWN
#define MSG_COOLDOWN "Cooldown"
#endif
#ifndef MSG_SWITCH_PS_ON
#define MSG_SWITCH_PS_ON "Switch power on"
#endif
#ifndef MSG_SWITCH_PS_OFF
#define MSG_SWITCH_PS_OFF "Switch power off"
#endif
#ifndef MSG_EXTRUDE
#define MSG_EXTRUDE "Extrude"
#endif
#ifndef MSG_RETRACT
#define MSG_RETRACT "Retract"
#endif
#ifndef MSG_MOVE_AXIS
#define MSG_MOVE_AXIS "Move axis"
#endif
#ifndef MSG_LEVEL_BED
#define MSG_LEVEL_BED "Level bed"
#endif
#ifndef MSG_MOVE_X
#define MSG_MOVE_X "Move X"
#endif
#ifndef MSG_MOVE_Y
#define MSG_MOVE_Y "Move Y"
#endif
#ifndef MSG_MOVE_Z
#define MSG_MOVE_Z "Move Z"
#endif
#ifndef MSG_MOVE_E
#define MSG_MOVE_E "Extruder"
#endif
#ifndef MSG_MOVE_E1
#define MSG_MOVE_E1 "1"
#endif
#ifndef MSG_MOVE_E2
#define MSG_MOVE_E2 "2"
#endif
#ifndef MSG_MOVE_E3
#define MSG_MOVE_E3 "3"
#endif
#ifndef MSG_MOVE_E4
#define MSG_MOVE_E4 "4"
#endif
#ifndef MSG_MOVE_01MM
#define MSG_MOVE_01MM "Move 0.1mm"
#endif
#ifndef MSG_MOVE_1MM
#define MSG_MOVE_1MM "Move 1mm"
#endif
#ifndef MSG_MOVE_10MM
#define MSG_MOVE_10MM "Move 10mm"
#endif
#ifndef MSG_SPEED
#define MSG_SPEED "Speed"
#endif
#ifndef MSG_BED_Z
#define MSG_BED_Z "Bed Z"
#endif
#ifndef MSG_NOZZLE
#define MSG_NOZZLE "Nozzle"
#endif
#ifndef MSG_N1
#define MSG_N1 " 1"
#endif
#ifndef MSG_N2
#define MSG_N2 " 2"
#endif
#ifndef MSG_N3
#define MSG_N3 " 3"
#endif
#ifndef MSG_N4
#define MSG_N4 " 4"
#endif
#ifndef MSG_BED
#define MSG_BED "Bed"
#endif
#ifndef MSG_FAN_SPEED
#define MSG_FAN_SPEED "Fan speed"
#endif
#ifndef MSG_FLOW
#define MSG_FLOW "Flow"
#endif
#ifndef MSG_CONTROL
#define MSG_CONTROL "Control"
#endif
#ifndef MSG_MIN
#define MSG_MIN " " LCD_STR_THERMOMETER " Min"
#endif
#ifndef MSG_MAX
#define MSG_MAX " " LCD_STR_THERMOMETER " Max"
#endif
#ifndef MSG_FACTOR
#define MSG_FACTOR " " LCD_STR_THERMOMETER " Fact"
#endif
#ifndef MSG_AUTOTEMP
#define MSG_AUTOTEMP "Autotemp"
#endif
#ifndef MSG_ON
#define MSG_ON "On "
#endif
#ifndef MSG_OFF
#define MSG_OFF "Off"
#endif
#ifndef MSG_PID_P
#define MSG_PID_P "PID-P"
#endif
#ifndef MSG_PID_I
#define MSG_PID_I "PID-I"
#endif
#ifndef MSG_PID_D
#define MSG_PID_D "PID-D"
#endif
#ifndef MSG_PID_C
#define MSG_PID_C "PID-C"
#endif
#ifndef MSG_SELECT
#define MSG_SELECT "Select"
#endif
#ifndef MSG_E1
#define MSG_E1 " E1"
#endif
#ifndef MSG_E2
#define MSG_E2 " E2"
#endif
#ifndef MSG_E3
#define MSG_E3 " E3"
#endif
#ifndef MSG_E4
#define MSG_E4 " E4"
#endif
#ifndef MSG_ACC
#define MSG_ACC "Accel"
#endif
#ifndef MSG_VXY_JERK
#define MSG_VXY_JERK "Vxy-jerk"
#endif
#ifndef MSG_VZ_JERK
#define MSG_VZ_JERK "Vz-jerk"
#endif
#ifndef MSG_VE_JERK
#define MSG_VE_JERK "Ve-jerk"
#endif
#ifndef MSG_VMAX
#define MSG_VMAX "Vmax "
#endif
#ifndef MSG_X
#define MSG_X "X"
#endif
#ifndef MSG_Y
#define MSG_Y "Y"
#endif
#ifndef MSG_Z
#define MSG_Z "Z"
#endif
#ifndef MSG_E
#define MSG_E "E"
#endif
#ifndef MSG_VMIN
#define MSG_VMIN "Vmin"
#endif
#ifndef MSG_VTRAV_MIN
#define MSG_VTRAV_MIN "VTrav min"
#endif
#ifndef MSG_AMAX
#define MSG_AMAX "Amax "
#endif
#ifndef MSG_A_RETRACT
#define MSG_A_RETRACT "A-retract"
#endif
#ifndef MSG_A_TRAVEL
#define MSG_A_TRAVEL "A-travel"
#endif
#ifndef MSG_XSTEPS
#define MSG_XSTEPS "Xsteps/mm"
#endif
#ifndef MSG_YSTEPS
#define MSG_YSTEPS "Ysteps/mm"
#endif
#ifndef MSG_ZSTEPS
#define MSG_ZSTEPS "Zsteps/mm"
#endif
#ifndef MSG_ESTEPS
#define MSG_ESTEPS "Esteps/mm"
#endif
#ifndef MSG_TEMPERATURE
#define MSG_TEMPERATURE "Temperature"
#endif
#ifndef MSG_MOTION
#define MSG_MOTION "Motion"
#endif
#ifndef MSG_VOLUMETRIC
#define MSG_VOLUMETRIC "Filament"
#endif
#ifndef MSG_VOLUMETRIC_ENABLED
#define MSG_VOLUMETRIC_ENABLED "E in mm3"
#endif
#ifndef MSG_FILAMENT_DIAM
#define MSG_FILAMENT_DIAM "Fil. Dia."
#endif
#ifndef MSG_DIAM_E1
#define MSG_DIAM_E1 " 1"
#endif
#ifndef MSG_DIAM_E2
#define MSG_DIAM_E2 " 2"
#endif
#ifndef MSG_DIAM_E3
#define MSG_DIAM_E3 " 3"
#endif
#ifndef MSG_DIAM_E4
#define MSG_DIAM_E4 " 4"
#endif
#ifndef MSG_CONTRAST
#define MSG_CONTRAST "LCD contrast"
#endif
#ifndef MSG_STORE_EPROM
#define MSG_STORE_EPROM "Store memory"
#endif
#ifndef MSG_LOAD_EPROM
#define MSG_LOAD_EPROM "Load memory"
#endif
#ifndef MSG_RESTORE_FAILSAFE
#define MSG_RESTORE_FAILSAFE "Restore failsafe"
#endif
#ifndef MSG_REFRESH
#define MSG_REFRESH "Refresh"
#endif
#ifndef MSG_WATCH
#define MSG_WATCH "Info screen"
#endif
#ifndef MSG_PREPARE
#define MSG_PREPARE "Prepare"
#endif
#ifndef MSG_TUNE
#define MSG_TUNE "Tune"
#endif
#ifndef MSG_PAUSE_PRINT
#define MSG_PAUSE_PRINT "Pause print"
#endif
#ifndef MSG_RESUME_PRINT
#define MSG_RESUME_PRINT "Resume print"
#endif
#ifndef MSG_STOP_PRINT
#define MSG_STOP_PRINT "Stop print"
#endif
#ifndef MSG_CARD_MENU
#define MSG_CARD_MENU "Print from SD"
#endif
#ifndef MSG_NO_CARD
#define MSG_NO_CARD "No SD card"
#endif
#ifndef MSG_DWELL
#define MSG_DWELL "Sleep..."
#endif
#ifndef MSG_USERWAIT
#define MSG_USERWAIT "Wait for user..."
#endif
#ifndef MSG_RESUMING
#define MSG_RESUMING "Resuming print"
#endif
#ifndef MSG_PRINT_ABORTED
#define MSG_PRINT_ABORTED "Print aborted"
#endif
#ifndef MSG_NO_MOVE
#define MSG_NO_MOVE "No move."
#endif
#ifndef MSG_KILLED
#define MSG_KILLED "KILLED. "
#endif
#ifndef MSG_STOPPED
#define MSG_STOPPED "STOPPED. "
#endif
#ifndef MSG_CONTROL_RETRACT
#define MSG_CONTROL_RETRACT "Retract mm"
#endif
#ifndef MSG_CONTROL_RETRACT_SWAP
#define MSG_CONTROL_RETRACT_SWAP "Swap Re.mm"
#endif
#ifndef MSG_CONTROL_RETRACTF
#define MSG_CONTROL_RETRACTF "Retract V"
#endif
#ifndef MSG_CONTROL_RETRACT_ZLIFT
#define MSG_CONTROL_RETRACT_ZLIFT "Hop mm"
#endif
#ifndef MSG_CONTROL_RETRACT_RECOVER
#define MSG_CONTROL_RETRACT_RECOVER "UnRet +mm"
#endif
#ifndef MSG_CONTROL_RETRACT_RECOVER_SWAP
#define MSG_CONTROL_RETRACT_RECOVER_SWAP "S UnRet+mm"
#endif
#ifndef MSG_CONTROL_RETRACT_RECOVERF
#define MSG_CONTROL_RETRACT_RECOVERF "UnRet V"
#endif
#ifndef MSG_AUTORETRACT
#define MSG_AUTORETRACT "AutoRetr."
#endif
#ifndef MSG_FILAMENTCHANGE
#define MSG_FILAMENTCHANGE "Change filament"
#endif
#ifndef MSG_INIT_SDCARD
#define MSG_INIT_SDCARD "Init. SD card"
#endif
#ifndef MSG_CNG_SDCARD
#define MSG_CNG_SDCARD "Change SD card"
#endif
#ifndef MSG_ZPROBE_OUT
#define MSG_ZPROBE_OUT "Z probe out. bed"
#endif
#ifndef MSG_HOME
#define MSG_HOME "Home" // Used as MSG_HOME " " MSG_X MSG_Y MSG_Z " " MSG_FIRST
#endif
#ifndef MSG_FIRST
#define MSG_FIRST "first"
#endif
#ifndef MSG_ZPROBE_ZOFFSET
#define MSG_ZPROBE_ZOFFSET "Z Offset"
#endif
#ifndef MSG_BABYSTEP_X
#define MSG_BABYSTEP_X "Babystep X"
#endif
#ifndef MSG_BABYSTEP_Y
#define MSG_BABYSTEP_Y "Babystep Y"
#endif
#ifndef MSG_BABYSTEP_Z
#define MSG_BABYSTEP_Z "Babystep Z"
#endif
#ifndef MSG_ENDSTOP_ABORT
#define MSG_ENDSTOP_ABORT "Endstop abort"
#endif
#ifndef MSG_HEATING_FAILED_LCD
#define MSG_HEATING_FAILED_LCD "Heating failed"
#endif
#ifndef MSG_ERR_REDUNDANT_TEMP
#define MSG_ERR_REDUNDANT_TEMP "Err: REDUNDANT TEMP"
#endif
#ifndef MSG_THERMAL_RUNAWAY
#define MSG_THERMAL_RUNAWAY "THERMAL RUNAWAY"
#endif
#ifndef MSG_ERR_MAXTEMP
#define MSG_ERR_MAXTEMP "Err: MAXTEMP"
#endif
#ifndef MSG_ERR_MINTEMP
#define MSG_ERR_MINTEMP "Err: MINTEMP"
#endif
#ifndef MSG_ERR_MAXTEMP_BED
#define MSG_ERR_MAXTEMP_BED "Err: MAXTEMP BED"
#endif
#ifndef MSG_ERR_MINTEMP_BED
#define MSG_ERR_MINTEMP_BED "Err: MINTEMP BED"
#endif
#ifndef MSG_HALTED
#define MSG_HALTED "PRINTER HALTED"
#endif
#ifndef MSG_PLEASE_RESET
#define MSG_PLEASE_RESET "Please reset"
#endif
#ifndef MSG_SHORT_DAY
#define MSG_SHORT_DAY "d" // One character only
#endif
#ifndef MSG_SHORT_HOUR
#define MSG_SHORT_HOUR "h" // One character only
#endif
#ifndef MSG_SHORT_MINUTE
#define MSG_SHORT_MINUTE "m" // One character only
#endif
#ifndef MSG_HEATING
#define MSG_HEATING "Heating..."
#endif
#ifndef MSG_HEATING_COMPLETE
#define MSG_HEATING_COMPLETE "Heating done."
#endif
#ifndef MSG_BED_HEATING
#define MSG_BED_HEATING "Bed Heating."
#endif
#ifndef MSG_BED_DONE
#define MSG_BED_DONE "Bed done."
#endif
#ifndef MSG_DELTA_CALIBRATE
#define MSG_DELTA_CALIBRATE "Delta Calibration"
#endif
#ifndef MSG_DELTA_CALIBRATE_X
#define MSG_DELTA_CALIBRATE_X "Calibrate X"
#endif
#ifndef MSG_DELTA_CALIBRATE_Y
#define MSG_DELTA_CALIBRATE_Y "Calibrate Y"
#endif
#ifndef MSG_DELTA_CALIBRATE_Z
#define MSG_DELTA_CALIBRATE_Z "Calibrate Z"
#endif
#ifndef MSG_DELTA_CALIBRATE_CENTER
#define MSG_DELTA_CALIBRATE_CENTER "Calibrate Center"
#endif
#ifndef MSG_INFO_MENU
#define MSG_INFO_MENU "About Printer"
#endif
#ifndef MSG_INFO_PRINTER_MENU
#define MSG_INFO_PRINTER_MENU "Printer Info"
#endif
#ifndef MSG_INFO_STATS_MENU
#define MSG_INFO_STATS_MENU "Printer Stats"
#endif
#ifndef MSG_INFO_BOARD_MENU
#define MSG_INFO_BOARD_MENU "Board Info"
#endif
#ifndef MSG_INFO_THERMISTOR_MENU
#define MSG_INFO_THERMISTOR_MENU "Thermistors"
#endif
#ifndef MSG_INFO_EXTRUDERS
#define MSG_INFO_EXTRUDERS "Extruders"
#endif
#ifndef MSG_INFO_BAUDRATE
#define MSG_INFO_BAUDRATE "Baud"
#endif
#ifndef MSG_INFO_PROTOCOL
#define MSG_INFO_PROTOCOL "Protocol"
#endif
#if LCD_WIDTH > 19
#ifndef MSG_INFO_PRINT_COUNT
#define MSG_INFO_PRINT_COUNT "Print Count"
#endif
#ifndef MSG_INFO_COMPLETED_PRINTS
#define MSG_INFO_COMPLETED_PRINTS "Completed"
#endif
#ifndef MSG_INFO_PRINT_TIME
#define MSG_INFO_PRINT_TIME "Total print time"
#endif
#ifndef MSG_INFO_PRINT_LONGEST
#define MSG_INFO_PRINT_LONGEST "Longest job time"
#endif
#ifndef MSG_INFO_PRINT_FILAMENT
#define MSG_INFO_PRINT_FILAMENT "Extruded total"
#endif
#else
#ifndef MSG_INFO_PRINT_COUNT
#define MSG_INFO_PRINT_COUNT "Prints"
#endif
#ifndef MSG_INFO_COMPLETED_PRINTS
#define MSG_INFO_COMPLETED_PRINTS "Completed"
#endif
#ifndef MSG_INFO_PRINT_TIME
#define MSG_INFO_PRINT_TIME "Total"
#endif
#ifndef MSG_INFO_PRINT_LONGEST
#define MSG_INFO_PRINT_LONGEST "Longest"
#endif
#ifndef MSG_INFO_PRINT_FILAMENT
#define MSG_INFO_PRINT_FILAMENT "Extruded"
#endif
#endif
#ifndef MSG_INFO_MIN_TEMP
#define MSG_INFO_MIN_TEMP "Min Temp"
#endif
#ifndef MSG_INFO_MAX_TEMP
#define MSG_INFO_MAX_TEMP "Max Temp"
#endif
#ifndef MSG_INFO_PSU
#define MSG_INFO_PSU "Power Supply"
#endif
#ifndef MSG_FILAMENT_CHANGE_HEADER
#define MSG_FILAMENT_CHANGE_HEADER "CHANGE FILAMENT"
#endif
#ifndef MSG_FILAMENT_CHANGE_OPTION_HEADER
#define MSG_FILAMENT_CHANGE_OPTION_HEADER "CHANGE OPTIONS:"
#endif
#ifndef MSG_FILAMENT_CHANGE_OPTION_EXTRUDE
#define MSG_FILAMENT_CHANGE_OPTION_EXTRUDE "Extrude more"
#endif
#ifndef MSG_FILAMENT_CHANGE_OPTION_RESUME
#define MSG_FILAMENT_CHANGE_OPTION_RESUME "Resume print"
#endif
#if LCD_HEIGHT >= 4
#ifndef MSG_FILAMENT_CHANGE_INIT_1
#define MSG_FILAMENT_CHANGE_INIT_1 "Wait for start"
#endif
#ifndef MSG_FILAMENT_CHANGE_INIT_2
#define MSG_FILAMENT_CHANGE_INIT_2 "of the filament"
#endif
#ifndef MSG_FILAMENT_CHANGE_INIT_3
#define MSG_FILAMENT_CHANGE_INIT_3 "change"
#endif
#ifndef MSG_FILAMENT_CHANGE_UNLOAD_1
#define MSG_FILAMENT_CHANGE_UNLOAD_1 "Wait for"
#endif
#ifndef MSG_FILAMENT_CHANGE_UNLOAD_2
#define MSG_FILAMENT_CHANGE_UNLOAD_2 "filament unload"
#endif
#ifndef MSG_FILAMENT_CHANGE_UNLOAD_3
#define MSG_FILAMENT_CHANGE_UNLOAD_3 ""
#endif
#ifndef MSG_FILAMENT_CHANGE_INSERT_1
#define MSG_FILAMENT_CHANGE_INSERT_1 "Insert filament"
#endif
#ifndef MSG_FILAMENT_CHANGE_INSERT_2
#define MSG_FILAMENT_CHANGE_INSERT_2 "and press button"
#endif
#ifndef MSG_FILAMENT_CHANGE_INSERT_3
#define MSG_FILAMENT_CHANGE_INSERT_3 "to continue..."
#endif
#ifndef MSG_FILAMENT_CHANGE_LOAD_1
#define MSG_FILAMENT_CHANGE_LOAD_1 "Wait for"
#endif
#ifndef MSG_FILAMENT_CHANGE_LOAD_2
#define MSG_FILAMENT_CHANGE_LOAD_2 "filament load"
#endif
#ifndef MSG_FILAMENT_CHANGE_LOAD_3
#define MSG_FILAMENT_CHANGE_LOAD_3 ""
#endif
#ifndef MSG_FILAMENT_CHANGE_EXTRUDE_1
#define MSG_FILAMENT_CHANGE_EXTRUDE_1 "Wait for"
#endif
#ifndef MSG_FILAMENT_CHANGE_EXTRUDE_2
#define MSG_FILAMENT_CHANGE_EXTRUDE_2 "filament extrude"
#endif
#ifndef MSG_FILAMENT_CHANGE_EXTRUDE_3
#define MSG_FILAMENT_CHANGE_EXTRUDE_3 ""
#endif
#ifndef MSG_FILAMENT_CHANGE_RESUME_1
#define MSG_FILAMENT_CHANGE_RESUME_1 "Wait for print"
#endif
#ifndef MSG_FILAMENT_CHANGE_RESUME_2
#define MSG_FILAMENT_CHANGE_RESUME_2 "to resume"
#endif
#ifndef MSG_FILAMENT_CHANGE_RESUME_3
#define MSG_FILAMENT_CHANGE_RESUME_3 ""
#endif
#else // LCD_HEIGHT < 4
#ifndef MSG_FILAMENT_CHANGE_INIT_1
#define MSG_FILAMENT_CHANGE_INIT_1 "Please wait..."
#endif
#ifndef MSG_FILAMENT_CHANGE_UNLOAD_1
#define MSG_FILAMENT_CHANGE_UNLOAD_1 "Ejecting..."
#endif
#ifndef MSG_FILAMENT_CHANGE_INSERT_1
#define MSG_FILAMENT_CHANGE_INSERT_1 "Insert and Click"
#endif
#ifndef MSG_FILAMENT_CHANGE_LOAD_1
#define MSG_FILAMENT_CHANGE_LOAD_1 "Loading..."
#endif
#ifndef MSG_FILAMENT_CHANGE_EXTRUDE_1
#define MSG_FILAMENT_CHANGE_EXTRUDE_1 "Extruding..."
#endif
#ifndef MSG_FILAMENT_CHANGE_RESUME_1
#define MSG_FILAMENT_CHANGE_RESUME_1 "Resuming..."
#endif
#endif // LCD_HEIGHT < 4
#endif // LANGUAGE_EN_H
-195
View File
@@ -1,195 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
* Spanish
*
* LCD Menu Messages
* See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
*
*/
#ifndef LANGUAGE_ES_H
#define LANGUAGE_ES_H
// Define SIMULATE_ROMFONT to see what is seen on the character based display defined in Configuration.h
//#define SIMULATE_ROMFONT
#define DISPLAY_CHARSET_ISO10646_1
#define WELCOME_MSG MACHINE_NAME " lista."
#define MSG_SD_INSERTED "Tarjeta colocada"
#define MSG_SD_REMOVED "Tarjeta retirada"
#define MSG_LCD_ENDSTOPS "Endstops" // Max length 8 characters
#define MSG_MAIN "Menu principal"
#define MSG_AUTOSTART "Inicio automatico"
#define MSG_DISABLE_STEPPERS "Apagar motores"
#define MSG_AUTO_HOME "Llevar al origen"
#define MSG_AUTO_HOME_X "Origen X"
#define MSG_AUTO_HOME_Y "Origen Y"
#define MSG_AUTO_HOME_Z "Origen Z"
#define MSG_LEVEL_BED_HOMING "Origen XYZ"
#define MSG_LEVEL_BED_WAITING "Presione para iniciar"
#define MSG_LEVEL_BED_DONE "Nivelacion lista!"
#define MSG_LEVEL_BED_CANCEL "Cancelar"
#define MSG_SET_HOME_OFFSETS "Ajustar desfases"
#define MSG_HOME_OFFSETS_APPLIED "Desfase aplicado"
#define MSG_SET_ORIGIN "Establecer origen"
#define MSG_PREHEAT_1 "Precalentar PLA"
#define MSG_PREHEAT_1_N MSG_PREHEAT_1 " "
#define MSG_PREHEAT_1_ALL MSG_PREHEAT_1 "Todo"
#define MSG_PREHEAT_1_BEDONLY MSG_PREHEAT_1"Plataforma"
#define MSG_PREHEAT_1_SETTINGS MSG_PREHEAT_1 "Config"
#define MSG_PREHEAT_2 "Precalentar ABS"
#define MSG_PREHEAT_2_N MSG_PREHEAT_2 " "
#define MSG_PREHEAT_2_ALL MSG_PREHEAT_2 "Todo"
#define MSG_PREHEAT_2_BEDONLY MSG_PREHEAT_2 "Plataforma"
#define MSG_PREHEAT_2_SETTINGS MSG_PREHEAT_2 "Config"
#define MSG_H1 "1"
#define MSG_H2 "2"
#define MSG_H3 "3"
#define MSG_H4 "4"
#define MSG_COOLDOWN "Enfriar"
#define MSG_SWITCH_PS_ON "Encender"
#define MSG_SWITCH_PS_OFF "Apagar"
#define MSG_EXTRUDE "Extruir"
#define MSG_RETRACT "Retraer"
#define MSG_MOVE_AXIS "Mover ejes"
#define MSG_LEVEL_BED "Nivelar plataforma"
#define MSG_MOVE_X "Mover X"
#define MSG_MOVE_Y "Mover Y"
#define MSG_MOVE_Z "Mover Z"
#define MSG_MOVE_E "Extrusor"
#define MSG_MOVE_E1 "1"
#define MSG_MOVE_E2 "2"
#define MSG_MOVE_E3 "3"
#define MSG_MOVE_E4 "4"
#define MSG_MOVE_01MM "Mover 0.1mm"
#define MSG_MOVE_1MM "Mover 1mm"
#define MSG_MOVE_10MM "Mover 10mm"
#define MSG_SPEED "Velocidad"
#define MSG_BED_Z "Plataforma Z"
#define MSG_NOZZLE "Boquilla"
#define MSG_N1 " 1"
#define MSG_N2 " 2"
#define MSG_N3 " 3"
#define MSG_N4 " 4"
#define MSG_BED "Plataforma"
#define MSG_FAN_SPEED "Ventilador"
#define MSG_FLOW "Flujo"
#define MSG_CONTROL "Control"
#define MSG_MIN LCD_STR_THERMOMETER " Min"
#define MSG_MAX LCD_STR_THERMOMETER " Max"
#define MSG_FACTOR LCD_STR_THERMOMETER " Fact"
#define MSG_AUTOTEMP "Temperatura Automatica"
#define MSG_ON "Encender"
#define MSG_OFF "Apagar"
#define MSG_PID_P "PID-P"
#define MSG_PID_I "PID-I"
#define MSG_PID_D "PID-D"
#define MSG_PID_C "PID-C"
#define MSG_E1 " E1"
#define MSG_E2 " E2"
#define MSG_E3 " E3"
#define MSG_E4 " E4"
#define MSG_ACC "Aceleracion"
#define MSG_VXY_JERK "Vxy-jerk"
#define MSG_VZ_JERK "Vz-jerk"
#define MSG_VE_JERK "Ve-jerk"
#define MSG_VMAX "Vmax"
#define MSG_X "X"
#define MSG_Y "Y"
#define MSG_Z "Z"
#define MSG_E "E"
#define MSG_VMIN "Vmin"
#define MSG_VTRAV_MIN "Vel. viaje min"
#define MSG_AMAX "Acel. max"
#define MSG_A_RETRACT "Acel. retrac."
#define MSG_A_TRAVEL "Acel. Viaje"
#define MSG_XSTEPS "X pasos/mm"
#define MSG_YSTEPS "Y pasos/mm"
#define MSG_ZSTEPS "Z pasos/mm"
#define MSG_ESTEPS "E pasos/mm"
#define MSG_TEMPERATURE "Temperatura"
#define MSG_MOTION "Movimiento"
#define MSG_VOLUMETRIC "Filamento"
#define MSG_VOLUMETRIC_ENABLED "E in mm3"
#define MSG_FILAMENT_DIAM "Fil. Dia."
#define MSG_DIAM_E1 " 1"
#define MSG_DIAM_E2 " 2"
#define MSG_DIAM_E3 " 3"
#define MSG_DIAM_E4 " 4"
#define MSG_CONTRAST "Contraste"
#define MSG_STORE_EPROM "Guardar memoria"
#define MSG_LOAD_EPROM "Cargar memoria"
#define MSG_RESTORE_FAILSAFE "Restaurar memoria."
#define MSG_REFRESH "Volver a cargar"
#define MSG_WATCH "Informacion"
#define MSG_PREPARE "Preparar"
#define MSG_TUNE "Ajustar"
#define MSG_PAUSE_PRINT "Pausar impresion"
#define MSG_RESUME_PRINT "Reanudar impresion"
#define MSG_STOP_PRINT "Detener impresion"
#define MSG_CARD_MENU "Menu de SD"
#define MSG_NO_CARD "No hay tarjeta SD"
#define MSG_DWELL "Reposo..."
#define MSG_USERWAIT "Esperando ordenes"
#define MSG_RESUMING "Resumiendo impre."
#define MSG_PRINT_ABORTED "Impresion cancelada"
#define MSG_NO_MOVE "Sin movimiento"
#define MSG_KILLED "Parada de emergencia."
#define MSG_STOPPED "Detenida"
#define MSG_CONTROL_RETRACT "Retraer mm"
#define MSG_CONTROL_RETRACT_SWAP "Interc. Retraer mm"
#define MSG_CONTROL_RETRACTF "Retraer V"
#define MSG_CONTROL_RETRACT_ZLIFT "Levantar mm"
#define MSG_CONTROL_RETRACT_RECOVER "DesRet +mm"
#define MSG_CONTROL_RETRACT_RECOVER_SWAP "Interc. DesRet +mm"
#define MSG_CONTROL_RETRACT_RECOVERF "DesRet V"
#define MSG_AUTORETRACT "Retraccion Auto."
#define MSG_FILAMENTCHANGE "Cambiar filamento"
#define MSG_INIT_SDCARD "Iniciando tarjeta"
#define MSG_CNG_SDCARD "Cambiar tarjeta"
#define MSG_ZPROBE_OUT "Sonda Z fuera"
#define MSG_HOME "Home" // Used as MSG_HOME " " MSG_X MSG_Y MSG_Z " " MSG_FIRST
#define MSG_FIRST "first"
#define MSG_ZPROBE_ZOFFSET "Desfase Z"
#define MSG_BABYSTEP_X "Micropaso X"
#define MSG_BABYSTEP_Y "Micropaso Y"
#define MSG_BABYSTEP_Z "Micropaso Z"
#define MSG_ENDSTOP_ABORT "Cancelado - Endstop"
#define MSG_HEATING_FAILED_LCD "Error: al calentar"
#define MSG_ERR_REDUNDANT_TEMP "Error: temperatura redundante"
#define MSG_THERMAL_RUNAWAY "Error de temperatura"
#define MSG_ERR_MAXTEMP "Error: Temp Maxima"
#define MSG_ERR_MINTEMP "Error: Temp Minima"
#define MSG_ERR_MAXTEMP_BED "Error: Temp Max Plataforma"
#define MSG_ERR_MINTEMP_BED "Error: Temp Min Plataforma"
#define MSG_HEATING "Calentando..."
#define MSG_HEATING_COMPLETE "Calentamiento Completo"
#define MSG_BED_HEATING "Calentando plataforma ..."
#define MSG_BED_DONE "Plataforma Caliente"
#define MSG_DELTA_CALIBRATE "Calibracion Delta"
#define MSG_DELTA_CALIBRATE_X "Calibrar X"
#define MSG_DELTA_CALIBRATE_Y "Calibrar Y"
#define MSG_DELTA_CALIBRATE_Z "Calibrar Z"
#define MSG_DELTA_CALIBRATE_CENTER "Calibrar Centro"
#endif // LANGUAGE_ES_H

Some files were not shown because too many files have changed in this diff Show More