Compare commits

...

2984 Commits

Author SHA1 Message Date
Scott Lahteine
0bdea3f854 Fit task code for updated Max7219 2018-09-10 04:16:25 -05:00
Scott Lahteine
bef6b94b7e Max7219 RTOS changes 2018-09-10 04:14:37 -05:00
Scott Lahteine
05fe47e59a Add M101 command for RTOS 2018-09-10 04:12:01 -05:00
Roxy-3D
a1fdfa56f5 Marlin on RTOS 2018-09-10 04:12:01 -05:00
Scott Lahteine
4e3bad6dce Due HAL tweak 2018-09-10 04:11:42 -05:00
Scott Lahteine
5d5cd1332d Merge pull request #11772 from SJ-Innovation/bf2_ClosedLoopController_Support 2018-09-10 03:18:29 -05:00
Scott Lahteine
53b8c3bd66 Add EXTERNAL_CLOSED_LOOP_CONTROLLER to examples 2018-09-10 03:17:17 -05:00
Sam Lane
1b6bc19427 Add external closed loop controller support 2018-09-10 03:17:17 -05:00
Marcio Teixeira
2ebfe90be9 Add custom preheat temp to filament change (#11475) 2018-09-10 02:51:46 -05:00
Karl Andersson
69d0ed5791 [2.0.x] Fix ambiguous function call (SERIAL_PROTOCOL_F) when using Arduino_Core_STM32 (#11747) 2018-09-10 02:36:06 -05:00
Scott Lahteine
d32c4efc77 Fix some trailing whitespace 2018-09-10 01:26:20 -05:00
Alexander Amelkin
bc1ba998b2 [2.0.x] Fix undefined symbol 'g29_in_progress' (#11781) 2018-09-09 22:06:03 -05:00
InsanityAutomation
bad225dc04 Fix mesh leveling compile errors (#11768) 2018-09-09 04:19:48 -05:00
Dave Johnson
0f7d82bab1 [2.0.x] include AVR HAL in PIO src_filter for at90usb_dfu (#11778)
I missed this one
2018-09-09 04:15:23 -05:00
Sam Lane
d783400330 Updates to STM32F7 HAL, for completeness (#11770) 2018-09-09 03:26:15 -05:00
Scott Lahteine
72af8e0f02 Patch extruder_advance_K edit menu
Fix #11776
2018-09-09 03:21:08 -05:00
Sebastianv650
7e8c073fba Fix extruder stops extruding with LA (#11758) 2018-09-09 00:04:14 -05:00
Scott Lahteine
0c01099f17 hop_amount => current_hop 2018-09-08 21:20:37 -05:00
Scott Lahteine
eafd62308e Use TMC2208Stepper v0.2.5 (#11714) 2018-09-08 20:41:21 -05:00
Kevin
e25d2ae4a2 [2.0.x] SWITCHING_TOOLHEAD (#11623) 2018-09-08 01:43:24 -05:00
Alexander Amelkin
f417408df1 [STM32F1] Fix HAL for new PlatformIO (#11749) 2018-09-07 18:15:32 -05:00
Roxy-3D
3d7f2c1fde Fix directory name to be consistent (#11745) 2018-09-06 14:10:40 -05:00
Roxy-3D
a9c98a0e47 Create _Bootscreen.h 2018-09-06 10:24:03 -05:00
Roxy-3D
9f85d3a9cb Create _statusscreen.h 2018-09-06 10:23:20 -05:00
Roxy-3D
e2e7b1d705 Break out support of the T-Rex 3 2018-09-06 10:20:20 -05:00
Roxy-3D
67996c2b66 Break out support for the T-Rex 3 2018-09-06 10:19:05 -05:00
Roxy-3D
9c8d9d282f Break out support for Formbot T-Rex3 from previous versions 2018-09-06 09:49:04 -05:00
Roxy-3D
e3aac59637 Create pins_FORMBOT_TREX3.h 2018-09-06 09:46:23 -05:00
Roxy-3D
f580247581 Create pins_FORMBOT_TREX2.h 2018-09-06 09:45:29 -05:00
Roxy-3D
073857646b seperate the T-Rex2 and T-Rex3 support 2018-09-06 09:43:43 -05:00
Roxy-3D
fe4fc2883b Add support for Formbot T-Rex3 2018-09-06 09:41:59 -05:00
Scott Lahteine
2a61c9a939 Various fixups to configs, spacing, etc. 2018-09-06 06:44:31 -05:00
Scott Lahteine
b3efbc6e6e Add MANUAL_E_MOVES_RELATIVE to more configs 2018-09-06 02:09:14 -05:00
Scott Lahteine
3b2690ab02 Merge pull request #11733 from marcio-ao/pr-relative-manual-extrusion-moves
[2.0.x] Show manual extrusion moves as relative in LCD
2018-09-06 02:01:21 -05:00
Scott Lahteine
679e4602fe Add MANUAL_E_MOVES_RELATIVE to examples 2018-09-06 02:00:25 -05:00
Marcio Teixeira
beb51c2d58 Show manual extrusion moves as relative in LCD
- Implements FR#11724
- Old behavior can be restored by commenting out MANUAL_E_MOVES_RELATIVE
2018-09-06 02:00:25 -05:00
Scott Lahteine
d10f29ae2e Pass segment length in G2-G3 2018-09-06 01:43:27 -05:00
Scott Lahteine
dcfde2317f Pass segment length in prepare_kinematic_move_to (#11737) 2018-09-06 01:40:22 -05:00
Roxy-3D
d5379ee9d6 Fix search for white space in enqueued commands 2018-09-05 16:57:08 -05:00
Roxy-3D
8d5bea073b Assume one Max7219 unit if not specified 2018-09-05 14:18:13 -05:00
Roxy-3D
9651ceb36b Correct spelling of #endif 2018-09-05 10:46:08 -05:00
Scott Lahteine
b213a89ef5 Sanity-check NOZZLE_PARK_POINT 2018-09-05 06:18:08 -05:00
Scott Lahteine
86ee74731e Comment for RADDS + RRDFGSC 2018-09-05 05:45:17 -05:00
Kevin
ae1271b2ae RADDS: Update Full Graphic Display Pins (#11731) 2018-09-05 03:51:54 -05:00
Scott Lahteine
650d4313c4 Bring some configs up to date 2018-09-05 03:49:24 -05:00
AnHardt
530a13ab6c [2.0.x] SECURITYFIX missing max temp error when PID is used (#11717) 2018-09-05 01:41:45 -05:00
Scott Lahteine
12fded46c2 Correct some FR strings
Co-Authored-By: pipersw <pipersw@users.noreply.github.com>
2018-09-04 04:00:22 -05:00
Michael Triffon
aefc2f7cf9 Add Anet A2 and A2 Plus Configurations (#11677) 2018-09-03 23:38:51 -05:00
scott0122
72fdb6bab3 Fix SWITCHING_NOZZLE zdiff (#11683) 2018-09-03 23:24:40 -05:00
Scott Lahteine
8b837dc3ad No need for last \n in G-code items 2018-09-03 23:23:20 -05:00
Scott Lahteine
d1ceaf5550 [2.0.x] Followup to IDEX changes (#11707) 2018-09-03 23:15:31 -05:00
Roxy-3D
d62f4df0b7 Disable LCD Pins used by new Max7219 hook up if in that mode 2018-09-03 09:56:25 -05:00
Roxy-3D
fa772c31bf Provide more options for Max7219 connection on Formbot 2018-09-03 09:52:36 -05:00
Scott Lahteine
8e18e48d49 Merge pull request #11610 from Freeviv/bugfix-2.0.x
[2.0.x] Editable servo angles
2018-09-03 03:55:38 -05:00
Scott Lahteine
4668c71a75 Revert circleci oopsie 2018-09-03 01:59:49 -05:00
Giuliano Zaro
59e76e5fdf [2.0.x] Fix planner computation (#11708)
Fix #11697
2018-09-03 00:29:29 -05:00
Roxy-3D
509ee44611 Boot and status file should not have been added to main directory! 2018-09-02 10:25:36 -05:00
Roxy-3D
f8abe12a9c Boot and status file should not have been added to main directory! 2018-09-02 10:25:13 -05:00
Roxy-3D
7680b64aa6 IDEX clean up (#11690) 2018-09-02 10:18:59 -05:00
Scott Lahteine
8c11220042 [2.0.x] Debug Travis tests and scripts (#11704) 2018-09-02 03:27:39 -05:00
Scott Lahteine
d0c96ee83e Use TMC2208Stepper 0.2.1 for LPC1768 2018-09-01 20:03:41 -05:00
teemuatlut
49e107cea9 Restrict SW serial to AVR (#11696) 2018-09-01 15:24:44 -05:00
Scott Lahteine
92069f1422 Merge pull request #11692 from thinkyhead/bf2_teensy_and_servos
[2.0.x] Don't test servos for Teensy 3.5/3.6
2018-09-01 15:07:09 -05:00
Scott Lahteine
05dc79e78d Update platform tests to use '.test' folder 2018-09-01 06:57:55 -05:00
Scott Lahteine
18f1af2dca Fix up Teensy tests, servo sanity 2018-09-01 01:10:20 -05:00
Scott Lahteine
74a04aed55 Fix compile error with NO_LCD_MENUS 2018-08-31 19:16:04 -05:00
Scott Lahteine
509e1cf2bd Add *_DRIVER_TYPE to remaining configs 2018-08-31 19:07:17 -05:00
Scott Lahteine
e3debc796d Revert "Use TMC2208Stepper version 0.2.2"
This reverts commit 77efcad1df.
2018-08-31 17:48:41 -05:00
Scott Lahteine
d55f44edba Printcounter improvements (#11689) 2018-08-31 17:40:39 -05:00
Scott Lahteine
6a3207391f Remove obsolete HAL_timer_restrain 2018-08-31 16:17:22 -05:00
Scott Lahteine
77efcad1df Use TMC2208Stepper version 0.2.2 2018-08-31 16:13:23 -05:00
Scott Lahteine
e3fc9aa35f Update some config comments 2018-08-31 16:03:44 -05:00
Scott Lahteine
136860e8bb Sanity-check SERVO pin for servo probes 2018-08-31 15:47:47 -05:00
Roman Moravčík
66de50f5f8 Updated slovak translation (#11684) 2018-08-31 15:37:49 -05:00
scott0122
ada85d5585 Improve HOTEND OFFSET Z display precision to 3 (#11686) 2018-08-31 15:15:40 -05:00
scott0122
607c1e58d9 Improve HOTEND OFFSET Z display precision to 3 (#11685) 2018-08-31 15:14:33 -05:00
Scott Lahteine
3e81745e81 Fix issues, make optional 2018-08-29 17:58:02 -05:00
Jan
aa80e448e2 Store servo angles in EEPROM 2018-08-29 17:58:02 -05:00
Scott Lahteine
9953213513 Add EDITABLE_SERVO_ANGLES to example configs 2018-08-29 17:57:52 -05:00
Marcio Teixeira
0966bdcbc4 Reorganized ultralcd menu (10317) (#10360)
Replaced "Prepare" and "Control" menus with "Movement", "Temperature", "Configuration" and "Advanced Settings"
2018-08-29 16:51:14 -05:00
Scott Lahteine
e40a3eef04 Support for Anet A2 Plus 2018-08-29 03:39:43 -05:00
Scott Lahteine
199613a416 Merge pull request #11653 from neorex/add_support_E4
[2.0.x] Fix 5 mixing steppers
2018-08-29 02:00:23 -05:00
Scott Lahteine
32e38fee74 Update Controller Fan for Y2,Z2 2018-08-29 01:49:48 -05:00
Jeonghwan Roh
59cf217e77 Fix 5 mixing steppers 2018-08-29 01:49:48 -05:00
Scott Lahteine
2a2e8c314e Suppress emergency parser G-code errors
Co-Authored-By: srieche <srieche@users.noreply.github.com>
2018-08-29 01:04:55 -05:00
Ilya Bukhonin
7ecb8b4af5 [2.0.x] Teensy 3.1 and 3.2 support (#11460) 2018-08-27 21:49:49 -05:00
Pablo Crespo
409a0632af [2.0.x] Add Morpheus Board support (#11651) 2018-08-27 21:28:03 -05:00
Marcio Teixeira
0f14977b5d LIGHTWEIGHT_UI: Allow feedrate % to exceed 255% (#11656)
- Changed type of integer used for feedrate percentage from uint8_t to uint16_t.
2018-08-27 21:26:32 -05:00
scott0122
6dc9553aa5 Fix SWITCHING_NOZZLE compile error (#11657) 2018-08-27 21:25:25 -05:00
Scott Lahteine
a15e570d3b Fix SD progress with Lite Status Screen
Co-Authored-By: Lê Hoàng <icy.lord.love.angel@gmail.com>
2018-08-26 17:12:05 -05:00
Scott Lahteine
66966dbd69 Tweak comments for newer multiplexer 2018-08-25 17:00:49 -05:00
Scott Lahteine
933d833ec8 Tweak some Anet A6 comments 2018-08-24 21:50:53 -05:00
Scott Lahteine
d1c9517903 Followup to hotend_offset[Z] patch 2018-08-24 21:32:00 -05:00
Scott Lahteine
e2b8fc4f17 Reduce some debug strings 2018-08-24 21:11:39 -05:00
Chris Pepper
b71c2b8651 [2.0.x] Update LPC176x tests, fix clean script (#11617) 2018-08-24 18:53:24 -05:00
Scott Lahteine
a317bb4991 Remove stray tab 2018-08-24 17:35:13 -05:00
Scott Lahteine
acf5ae3083 !ENABLED => DISABLED 2018-08-24 16:36:37 -05:00
Scott Lahteine
ba1919c1eb HAL tweaks to LPC1768 main 2018-08-22 17:16:18 -05:00
Scott Lahteine
0987ed2a18 Use American English 2018-08-22 17:16:18 -05:00
Kevin
6483285bc5 HOTEND_OFFSET_Z always available (#11603) 2018-08-22 00:21:29 -05:00
Michael Triffon
f8c52c9c29 Azteeg X5 Mini WiFi support (#11601) 2018-08-21 23:58:26 -05:00
jneilliii
3671c63cde Einsy Full Graphic LCD Fix (#11604)
Fixed issue with LCD timings for Einsy RAMBo board.
2018-08-21 23:43:52 -05:00
Colin Gilgenbach
593d5375ea Fix G28 resetting DUAL_NOZZLE_DUPLICATION_MODE (#11605)
There's no reason for G28 to reset DUAL_NOZZLE_DUPLICATION_MODE, because it only affects the E stepper, unlike DUAL_X_CARRIAGE which affects the X steppers as well.
2018-08-21 23:42:55 -05:00
Scott Lahteine
f0dbe61692 Tweaks to motion.h reachable tests 2018-08-21 23:34:29 -05:00
Scott Lahteine
2d3317a35b Prettify Dual X Carriage description 2018-08-21 23:34:29 -05:00
Roxy-3D
cd9868f442 Make position_is_reachable() smarter about IDEX machines`
On many IDEX machines the allowed travel of the X1 carraige and X2 carraige does not perfectly overlap.

This helps the issue.   But more work needs to be done at the higher level.  (For example the X1_MAX_POS should probably be factored into G26's mesh validation pattern.)
2018-08-21 19:12:26 -05:00
Scott Lahteine
97f6396b25 Fix RE_ARM LCD pins to avoid #undef 2018-08-21 12:47:40 -05:00
Scott Lahteine
0e25f66c09 Fix Ultimaker servo pin
As pointed out at https://github.com/MarlinFirmware/Marlin/issues/7981#issuecomment-407116642
2018-08-21 11:39:53 -05:00
Scott Lahteine
ad12b9b46b Fix indentation, whitespace, spelling, formbot pins... 2018-08-21 09:47:57 -05:00
Scott Alfter
b5537dde7f need to add E2END to pins_RAMPS_FD_V2.h (#11564) 2018-08-21 02:16:31 -05:00
Scott Lahteine
8f0bbdcc9b Fix up Max7219 orientations (#11596) 2018-08-21 02:06:18 -05:00
Scott Lahteine
d05b23941d Tweak env build test scripts 2018-08-21 02:05:34 -05:00
jmz52
a77f8c6dd5 Implement servo support for STM32F1 (#11580)
Implement servo support for STM32F1. Original code was incomplete and depended on Servo library from stm32duino which conflicts with `module/servo.h`.
2018-08-20 21:13:51 -05:00
Dave Johnson
0456caf0ad Consolidate shared HALs and isolate HAL compile (#11552) 2018-08-20 21:11:12 -05:00
jmz52
dfe18ac633 Fix compilation error for STM32F1 with U8GLIB_SSD1306 or U8GLIB_SH1106 enabled (#11583)
The `binary.h` file required by `lcd/dogm/dogm_bitmaps.h` is not present in stm32duino environment. Binary macros are defined in `bit_constants.h` in stm32duino framework.
2018-08-20 20:37:56 -05:00
Roxy-3D
b0a8ce59bd Update Boards.h to include Formbot support 2018-08-20 16:46:27 -05:00
Roxy-3D
62ce937540 Update pins.h to include the Formbot board 2018-08-20 16:44:54 -05:00
Roxy-3D
a82be36d5d Create pins_FORMBOT.h 2018-08-20 16:43:42 -05:00
ghent360
00d24a8219 Don't call __delay_4cycles for 0 cycle delay - takes a really long time. (#11586) 2018-08-18 22:50:11 -05:00
Scott Lahteine
56f1e17a25 [2.0.x] Max7219 cleanup, simplify, and extend (#11575) 2018-08-18 01:33:13 -05:00
jmz52
0b2d686160 Fix "SD init fail" problem for STM32F1 (#11579)
Fix "SD init fail" problem for STM32F1 caused by incorrect SS pin state and incorrect SPI mode. Issue #11225
2018-08-17 23:27:10 -05:00
Scott Lahteine
a98f21ec5e Marlin assumes signed chars 2018-08-16 22:52:42 -05:00
Kevin
db30650731 Fix UBL/Homing (#11566) 2018-08-16 08:28:40 -05:00
Roxy-3D
aae4c67e5d Max7219 Clean Up (#11563)
Some of the Rotations did not do the right thing with setting and clearing pixels.
I think it is correct now.   But if not...  It is much closer to being correct.
2018-08-15 21:22:28 -05:00
InsanityAutomation
9de730b2bf Update tool_change.cpp (#11559) 2018-08-15 19:30:52 -05:00
InsanityAutomation
c2553f9888 2.0.x - Idex match119 (#11556)
* Update ubl_G29.cpp

* Update ultralcd.cpp
2018-08-15 13:26:11 -05:00
Roxy-3D
e9de321ac0 declare void Max7219_register_setup(); 2018-08-15 10:36:51 -05:00
Scott Lahteine
952a1bc9d5 Merge pull request #11551 from thinkyhead/bf2_trinamic_fixes
[2.0.x] Fix TMC2208 SW serial communication
2018-08-14 19:07:08 -05:00
petrzjunior
67613bf5bd Update Czech translations (#11510) 2018-08-14 18:45:16 -05:00
Scott Lahteine
bd6d032628 Update default driver configuration
Co-Authored-By: teemuatlut <teemu.mantykallio@live.fi>
2018-08-14 18:42:04 -05:00
Scott Lahteine
1561e61df7 New TMC2208 constructor
Co-Authored-By: teemuatlut <teemu.mantykallio@live.fi>
2018-08-14 18:41:51 -05:00
Nils Hasenbanck
b37bfeffeb [2.0.x] Use the new const functions of the persistentStore api (#11544) 2018-08-14 18:35:36 -05:00
Chris Pepper
5573ef62c6 [2.0.x] PersistentStore update followup (#11549) 2018-08-14 17:54:12 -05:00
Scott Lahteine
846bd24eb9 MALYAN_LCD is ok without SD 2018-08-14 05:31:47 -05:00
Scott Lahteine
834ea7fcea Remove 'const' from PersistentStore::capacity 2018-08-14 04:46:10 -05:00
Dave Johnson
c64199941e Compile only selected PIO environment (#11519) 2018-08-14 03:28:52 -05:00
Andy Shaw
5be2559eda Use flash memory to emulate EEPROM (#11500)
Use a sector of the LPC flash memory to emulate EEPROM storage, removing the need to have an SD card to store system parameters.
2018-08-14 01:19:34 -05:00
Scott Lahteine
6964e1a95a Clean up trailing whitespace 2018-08-14 00:55:37 -05:00
Scott Lahteine
ccf65c5397 Merge pull request #11542 from thinkyhead/bf2_misc_fixes_aug_6
Followup persistent store with heading, const
2018-08-14 00:19:45 -05:00
Scott Lahteine
865ee5985f Followup persistent store with heading, const 2018-08-13 23:55:33 -05:00
Scott Lahteine
a4b0148365 Easier to find 'static inline' 2018-08-13 23:55:33 -05:00
Scott Lahteine
cc0a60453f Merge pull request #11526 from hasenbanck/eeprom-cleanup
[2.0.x] Change direct eeprom access to HAL::PersistentStore
2018-08-13 19:45:10 -05:00
Roxy-3D
65c5227c29 Change M7219 I to setup Max7219 registers, but not do initialization pattern 2018-08-13 17:46:48 -05:00
Nils Hasenbanck
577aeb4aa9 All EEPROM access uses persistentStore 2018-08-13 17:43:35 -05:00
Scott Lahteine
6a8b906318 Followup for persistent_store_api.h 2018-08-13 17:43:35 -05:00
Chris Pepper
66d2b48b59 Update PersistentStore api (#11538)
- Clean up the API to use a `static` class instance to adhere to Marlin convention
- Add `const` position data access for read/write
- Add Storage capacity to the interface
2018-08-13 17:30:25 -05:00
Roxy-3D
60f1376798 Make M7219 I more robust and nice to look at
Make M2719 initialize the Max7219 registers and then run the initialization pattern (if one is specified).
2018-08-13 16:59:25 -05:00
Roxy-3D
fd15b1495a add I parameter to M42 to allow access to sensitive pins 2018-08-13 16:57:09 -05:00
Scott Lahteine
11b411a872 Improve AXIS_DRIVER_TYPE macros 2018-08-13 16:57:09 -05:00
Scott Lahteine
f1347f783d Optimize thermistor table 71
agData in Table 71 is extremely oversampled (see Issue #11220). I have removed the data points that perform *worse* than linearly interpolating the remaining points, and fixed up two points that were simply rounded incorrectly.

Co-Authored-By: Aaron Griffith <aargri@gmail.com>
2018-08-13 02:54:55 -05:00
Scott Lahteine
0bda22367b Allow Einsy RAMBo FAN1_PIN override 2018-08-13 02:49:30 -05:00
Scott Lahteine
1b921b246b Fix pca9632_set_led_color
…when used with an I2C screen.

Co-Authored-By: soimy <soimy@163.com>
2018-08-13 02:40:22 -05:00
Scott Lahteine
aa9d329560 Reduce max accel in Creality configs 2018-08-11 22:56:51 -05:00
Scott Lahteine
c93538e9f3 UBL/planner patch tweaks 2018-08-11 22:50:45 -05:00
Scott Lahteine
0af22549a6 Allow G33 to compile with no LCD 2018-08-11 22:32:09 -05:00
Thomas Moore
fc55f1da01 Account for UBL correction when setting the planner position (#11486) 2018-08-10 13:00:50 -05:00
Scott Lahteine
b328fb4dc9 Treat TMC2660 like non-TMC (#11508) 2018-08-10 00:30:28 -05:00
Scott Lahteine
42ffa58e35 Merge pull request #11488 from timeshell/bugfix-2.0.x
[2.0.x] Add Smoothieboard pins file
2018-08-10 00:24:22 -05:00
Scott Lahteine
72b086b90d Add A5984 to example configurations 2018-08-09 23:04:27 -05:00
Greg Nutt
a1a5367380 Smoothieboard V1.0/1.1 and A5984 support 2018-08-09 23:03:17 -05:00
Chris Pepper
b7e15a65e3 Target specific nxplpc and ststm32 pio platform versions to fix build (#11506) 2018-08-09 22:41:10 -05:00
Scott Lahteine
f891416e70 No raise on G28 after power-loss 2018-08-07 13:51:36 -05:00
Scott Lahteine
e4ecade8d4 Fix AUTO_POWER_CONTROL compile error
Counterpart to #11467

Co-Authored-By: lsellens <lsellens@users.noreply.github.com>
2018-08-06 23:20:51 -05:00
Giuliano
eee1b7c50c [2.0.x] Fix compile error (#11465)
Address #11463
2018-08-06 23:14:53 -05:00
Giuliano
e85feb2545 [2.0.x] Better timing handling (#11461) 2018-08-06 23:13:36 -05:00
Scott Lahteine
79835590e3 Easier to disable homing validation (#11458) 2018-08-06 23:11:37 -05:00
Scott Lahteine
131d216afa Fix drivers.h dependency, defer macro evaluation (#11450) 2018-08-03 21:49:04 -05:00
Scott Lahteine
9c62c47579 [2.0.x] Fix Dual X Carriage tool change crash (#11447) 2018-08-03 20:47:29 -05:00
Scott Lahteine
9bae413901 Add Bigtreetech/BIQU KFB 2.0 board (#11446) 2018-08-03 18:14:26 -05:00
Marcio Teixeira
f2224755ad Fix jumping progress bar. (#11439)
- When LCD_SET_PROGRESS_MANUALLY was disabled and an SD print was not active (i.e. the printer was idle), progress_bar_percent would read uninitialized memory from stack and cause progress bar to jump wildly.
- Also updated conditions in `#ifdef` to match `ultralcd.cpp`
2018-08-03 17:17:02 -05:00
Scott Lahteine
aae02827c0 Cosmetic pins changes 2018-08-03 17:03:19 -05:00
Scott Lahteine
64c493ad82 MKS_12864_OLED code cleanup 2018-07-30 23:22:40 -05:00
Scott Lahteine
b826bf4194 Fix initial safe_speed in jerk code (#11417) 2018-07-30 22:50:08 -05:00
forkoz
2cc950d67e [2.0.x] MKS SBASE Trinamic examples/support (#11402) 2018-07-30 22:48:58 -05:00
Roxy-3D
16432376ab Revert "[2.0.x]Idex and bl touch fixes" (#11407)
* Revert "[2.0.x] bltouch home refinements (#11397)"

This reverts commit 74900f7a70.

* Revert "[2.0.x]Idex and bl touch fixes (#11395)"

This reverts commit 6dafb90c01.
2018-07-28 23:14:46 -05:00
Giuliano
74900f7a70 [2.0.x] bltouch home refinements (#11397)
Just create  a better functions call logic flow
2018-07-28 19:30:14 -05:00
silentninja1
6dafb90c01 [2.0.x]Idex and bl touch fixes (#11395)
* Fix BLTouch homing

Deploy at start, dont call generic stow function at finish or raise goes too high before setting 0

* Update tool_change.cpp

* Update motion.cpp

* Update motion.cpp

* Update motion.cpp

* Update motion.cpp

* Change brackets to be more in align of Marlin coding standards
2018-07-28 10:33:31 -05:00
Giuliano
5ce5ff8e9b [2.0.x] fix bltouch homing (#11379)
Partially revert. Seems to solve the issue, but one report says G29 still fails.
2018-07-27 18:30:08 -05:00
Scott Lahteine
15d68cb496 Pre-override of ST7920 delays before HAL.h 2018-07-26 23:33:18 -05:00
Dave Johnson
8a24ff94d1 AT90USB1286 PIO cleanup and optimization (#11230)
-normalize `env` and `board` to lowercase naming convention.
-make board `name` follow descriptive convention.
-implement `-fsingle-precision-constant` compile optimization per https://github.com/MarlinFirmware/Marlin/pull/11178#issuecomment-401673901
-fix typo in 5DPRINT entry.
2018-07-26 05:58:28 -05:00
Lee Olivares
094e6d81a5 Add Einstart-S support (#11219)
Indeed the HAL does not need to be mucked around with to expose ATmega2560 pins not available as numbers on the MEGA board, I'll need to update the wiki with that tidbit and a reference to the pin-mapping comment in `fastio_1280.h`.
2018-07-26 05:52:22 -05:00
Scott Lahteine
244b9a8257 Better fastio 1280/2560 pin list
Co-Authored-By: bleughb <36889022+bleughb@users.noreply.github.com>
2018-07-26 05:23:51 -05:00
Scott Lahteine
955a7f0ae9 Improve driver.h macros (#11371) 2018-07-26 05:11:22 -05:00
MikeLud
aadcf08913 [2.0.x] add Calibrate Z (M915) to Prepare Menu (#11331) 2018-07-26 05:09:49 -05:00
Giuliano
4237c3d9f8 [2.0.x] different bltouch init (#11135) 2018-07-26 05:04:09 -05:00
Andy Shaw
624986d423 Ensure ADC conversion is complete before reading (#11336)
The current Marlin implementation relies on a timer interrupt to start the ADC conversion and read it. However in some circumstances the interrupt can be delayed resulting in insufficient time being available for the ADC conversion. This results in a bad reading and false temperature fluctuations. These changes make sure that the conversion is complete (by checking the ADC hardware via the HAL) before reading a value.

See: https://github.com/MarlinFirmware/Marlin/issues/11323
2018-07-26 03:59:19 -05:00
Scott Lahteine
e2aa635e70 Fix Anet A6 thermistors
Co-Authored-By: vitekn <vitekn@users.noreply.github.com>
2018-07-26 02:02:27 -05:00
Bo Herrmannsen
67b205fd45 Add support for board RuRAMPS4D v1.3 (#11363) 2018-07-25 19:32:27 -05:00
forkoz
d1c6687ecd Update MKS sBase pins (#11357) 2018-07-25 19:19:09 -05:00
Scott Lahteine
048dbf6eca Merge pull request #11275 from thinkyhead/bf2_pwm_adjustments
[2.0.x] Tweak some SoftPWM code
2018-07-25 19:02:28 -05:00
Scott Lahteine
e05e95cf97 Clean trailing whitespace 2018-07-25 18:49:47 -05:00
Scott Lahteine
22ebbc091f Tweak some SoftPWM code 2018-07-25 18:09:31 -05:00
Scott Lahteine
32de09f5c5 Specify some extra CR-10S pins 2018-07-25 18:08:09 -05:00
J.C. Nelson
9c2bfa2ab3 Remove extra parameter to enqueue. (#11364) 2018-07-25 18:02:02 -05:00
Giuliano
bd3ec66a78 [2.0.x] typo fix (#11365)
Typo fix
2018-07-25 18:00:47 -05:00
Scott Lahteine
4dfbae0e5c Merge pull request #11264 from teemuatlut/bf2_define_drivers
[2.0.x] Configure stepper drivers per axis
2018-07-25 04:05:04 -05:00
teemuatlut
fbcdf5eaeb Simplify stepper driver per-axis selection 2018-07-25 02:47:43 -05:00
Scott Lahteine
e5c0b490c8 Add *_DRIVER_TYPE to example configs
Co-Authored-By: teemuatlut <teemu.mantykallio@live.fi>
2018-07-25 02:47:30 -05:00
Eyal
fbdbe53290 Fix get_period_inverse(0) so it doesn't crash (#11334) 2018-07-25 01:58:40 -05:00
Scott Lahteine
14e2b11195 Fix spelling in configs 2018-07-24 21:03:38 -05:00
Scott Lahteine
4685c7d59f Followup to M91x I patch 2018-07-24 18:30:28 -05:00
Roxy-3D
62fa028155 Handle dual gantry machines better 2018-07-24 15:34:53 -05:00
Roxy-3D
09485f63e9 add missing ')' 2018-07-22 10:50:41 -05:00
Roxy-3D
a35abce1ac Fix missing ')' 2018-07-19 19:20:40 -05:00
Scott Lahteine
76d4cfb064 Tweak some Max7219 code 2018-07-19 18:49:39 -05:00
Scott Lahteine
4195757585 Merge pull request #11309 from thinkyhead/bf2_manual_probe_start_z
[2.0.x] Manual Z Start Height
2018-07-19 18:26:26 -05:00
Roxy-3D
03b01e2500 Folger Tech i3-2020 now defaults to 2 Max7219 units 2018-07-19 17:02:46 -05:00
Roxy-3D
db85ca93c4 Change Max7219_idle_task() to use a column instead of row if Y-Axis as 16 LED's 2018-07-19 17:01:31 -05:00
Roxy-3D
9660996cc3 Add Multi Unit Support for Max7219 to bugfix_2.0.0 (#11285)
* Add Multi Unit Support for Max7219 to bugfix_2.0.0

* Apply multi-MAX7219 to example configs

* Tweak some spacing, macros
2018-07-19 13:56:47 -05:00
Scott Lahteine
39c8aed8ba Add MANUAL_PROBE_START_Z to example configs 2018-07-18 21:49:20 -05:00
Scott Lahteine
2106fa26b1 Add MANUAL_PROBE_START_Z for manual probing 2018-07-18 21:49:20 -05:00
Scott Lahteine
17ed0f815c Fix tool_change call in UBL G29
Fix #11279, #11252
2018-07-18 20:30:30 -05:00
Scott Lahteine
6d2aff03bd Merge pull request #11306 from thinkyhead/bf2_power_loss_pin
[2.0.x] Add support for power loss detect pin
2018-07-18 20:13:20 -05:00
Scott Lahteine
63a146d424 planner.synchronize at start of tool_change
See https://github.com/MarlinFirmware/Marlin/issues/10949#issuecomment-398540498
2018-07-18 20:10:55 -05:00
Scott Lahteine
665ac1e4d0 Add POWER_LOSS_PIN support 2018-07-18 19:55:10 -05:00
Scott Lahteine
2243f72523 Add POWER_LOSS_PIN to example configs 2018-07-18 19:55:10 -05:00
Chris Pepper
47d5fcbbcc [2.0.x] Change MKS SBASE default serial port to avoid confusion (#11301) 2018-07-18 18:43:20 -05:00
Scott Lahteine
c83109c0ae Merge pull request #11238 from xC0000005/MalyanLCDUpdate
[2.0.x] Malyan LCD Feedrate + Better Temp Handling
2018-07-17 21:06:52 -05:00
Scott Lahteine
64f007580b Fix some header comments 2018-07-17 19:50:24 -05:00
Giuliano
aed1d17a2d Initialize default units (#11295)
When `INCH_MODE_SUPPORT` is enabled no default unit is set. This fixes it.
2018-07-17 19:37:30 -05:00
Scott Lahteine
8c40f0c6c7 Reduce TQ message code size 2018-07-17 18:18:52 -05:00
xC0000005
b04e0c0cbb Malyan LCD feedrate, better temp handling. 2018-07-17 18:18:52 -05:00
Scott Lahteine
065e9c3d66 Add card.longest_filename method 2018-07-17 18:18:52 -05:00
Roxy-3D
71df1f7f57 Don't display M421 information for UBL at startup
It takes too long to display the mesh data for large mesh's at startup.   We should consider ways to speed this up.
Perhaps it makes sense to display an entire row of the mesh instead of just one mesh point?
2018-07-17 17:19:52 -05:00
Roxy-3D
902167fa78 Revert "[2.0.x] Switch to PIO managed L6470 library (#11288)" (#11290)
This reverts commit a26fdf6b68.
2018-07-17 00:23:47 -05:00
Shen Yiming
a26fdf6b68 [2.0.x] Switch to PIO managed L6470 library (#11288)
On a leap of faith...  I'm merging...
2018-07-17 00:10:07 -05:00
Scott Lahteine
be7d1dfb3c Merge pull request #11267 from teemuatlut/bf2_lpc_spi
[2.0.x] LPC1768: Expand hardware SPI class
2018-07-16 21:52:18 -05:00
Giuliano
8f686aa449 [2.0.x] Fix change filament crash (#11269)
Prevent crash, on filament change, when printer is not homed
2018-07-16 21:49:29 -05:00
teemuatlut
f38c81cdde LPC176x: Expand HW SPI class 2018-07-14 19:06:27 +03:00
teemuatlut
3b5dec4b13 Add new LPC include folder 2018-07-14 18:58:56 +03:00
Chris Pepper
c43793aa1e Update Travis Tests to run platforms in parallel (#11256) 2018-07-13 23:42:15 -05:00
Scott Lahteine
e486326910 Vellemann K8400 Y bed size is 180
Co-Authored-By: kaimimue <kaimimue@users.noreply.github.com>
2018-07-13 23:19:46 -05:00
Giuliano
e5ea9d200f [2.0.x] fix kill printer (#11260)
This will fix kill message on dual printer with 0 alignment offset
2018-07-13 23:12:43 -05:00
Jamie Bainbridge
8c57cadbe7 Include stdlib in fontutils (#11251)
When `REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER` is defined and Re-ARM build is attempted, `u8g_fontutf8.cpp` includes `fontutils.h` which uses `abs()`.

However, `abs()` is defined in `stdlib.h` which is not included in `fontutils.h`, so compile fails with an error.

Include `stdlib.h` in `fontutils.h` so that `abs()` is defined before `u8g_fontutf8.cpp` needs to use it, resolving the compile error.

Signed-off-by: Jamie Bainbridge <jamie.bainbridge@gmail.com>
2018-07-13 00:02:38 -05:00
Scott Lahteine
fed68f29af Merge pull request #11257 from thinkyhead/bf2_misc_fixes_jun19
[2.0.x] Shorter Z raise between multiple probes
2018-07-12 23:55:37 -05:00
Scott Lahteine
bf7d0ba859 Assert that XY probe offsets are integers 2018-07-12 22:48:07 -05:00
Scott Lahteine
12854f1909 Add Z_CLEARANCE_MULTI_PROBE to example configs
Co-Authored-By: nightgryphon <ngryph@gmail.com>
2018-07-12 22:46:34 -05:00
Scott Lahteine
25e2ca8896 Add Z_CLEARANCE_MULTI_PROBE
Co-Authored-By: nightgryphon <ngryph@gmail.com>
2018-07-12 22:46:34 -05:00
Scott Lahteine
fd8a76493b Unify M91x parameter I meaning, simplify reports (#11249) 2018-07-12 22:31:51 -05:00
Scott Lahteine
c8d24a6412 Add Sublime G-code (RepRap) syntax 2018-07-12 22:23:55 -05:00
Scott Lahteine
566d05006d report_state > event_handler
Make the endstop report method track endstop changes on its own.
2018-07-11 21:08:07 -05:00
Scott Lahteine
6b521b6df2 Loosen thermistor table size limit
Co-Authored-By: Aaron Griffith <aargri@gmail.com>
2018-07-11 21:08:07 -05:00
Scott Lahteine
20761b88e0 Merge pull request #11212 from AlexanderAmelkin/2.0-HD44780-remove-unused-include
[2.0.x][HD44780] Remove unused include
2018-07-08 17:19:59 -05:00
Roxy-3D
603e136e87 Resolve issue where user can't edit UBL's mesh 2018-07-08 14:41:38 -05:00
Scott Lahteine
03fa05ab59 Travis CI test STM32F1 with HD44780 2018-07-06 23:45:47 -05:00
Alexander Amelkin
ed720194d2 [2.0.x][HD44780] Remove unused include
The <binary.h> header is not available in STM32 toolchain
and is not used anywhere in ultralcd_common_HD44780.h.
If it is used anywhere in HD44780 support for other platforms,
it must be included in the corresponding .cpp file directly
and put under appropriate conditional compilation directives
for the platform requiring it.

As I was unable to find such code, I consider the file unused
and hence remove the inclusion.
2018-07-06 23:45:47 -05:00
Scott Lahteine
d05e832f29 Add STM32F1 support for SD-based EEPROM 2018-07-06 23:45:47 -05:00
Scott Lahteine
63f4c9bdb9 Followup to float maths patch 2018-07-06 21:34:09 -05:00
Scott Lahteine
b143441251 Test CR-10S with status and bootscreen
Also fix use_example_configs
2018-07-06 21:10:27 -05:00
Scott Lahteine
dde009efdf Merge pull request #11178 from ejtagle/misc-fixes
[2.0.x] Use 'float' instead of 'double' maths
2018-07-06 18:53:40 -05:00
Scott Lahteine
2992112da0 Optimize delta kinematics
Co-Authored-By: ejtagle <ejtagle@hotmail.com>
2018-07-04 22:28:56 -05:00
etagle
1367df2875 Replace double with float, optimize calculation 2018-07-04 22:28:56 -05:00
Scott Lahteine
d960d448fa Optimize calculations with LROUND 2018-07-04 22:22:28 -05:00
Scott Lahteine
68e6650df7 Remove Quake Fast Inverse SQRT (it isn't faster) 2018-07-04 22:22:10 -05:00
etagle
e7e896e7d7 More tweaks to fastio_Due.h 2018-07-04 17:57:47 -05:00
Chris Pepper
55f4744e54 [LPC176x] Endstop Interrupts Feature (#11202)
Enable the endstop interrupts feature for LPC176x boards. Although Smoothieboard chose to use non-interrupt capable pins for their endstops, and this has been copied by clones, so they can't use it.
2018-07-04 17:51:45 -05:00
Chris Pepper
5abf5bc8a7 [LPC176x] Fix Interrupt forward declarations (#11200) 2018-07-04 17:43:14 -05:00
Chris Pepper
cbea385ed7 [2.0.x] Fix LCD_LANGUAGE options list formatting in config (#11198)
* Fix LCD_LANGUAGE options list formatting in config
* Remove 'cn' language option from list
2018-07-04 17:42:14 -05:00
Scott Lahteine
6837252fba Merge pull request #11196 from thinkyhead/bf2_fix_m914_sgt
[2.0.x] No M914 or SGT with non-sensorless axes
2018-07-04 02:34:48 -05:00
Scott Lahteine
5379c115c8 Fix Trigorilla include typo 2018-07-03 20:23:26 -05:00
Scott Lahteine
9c058091e9 No M914 or SGT set for non-sensorless axes 2018-07-03 20:09:13 -05:00
Scott Lahteine
c7ec6c68e7 Patch SCARA config to match 1.1.x 2018-07-03 20:09:13 -05:00
Scott Lahteine
480a3d3d0c Apply sensorless homing requirements only for specified axes 2018-07-03 19:16:09 -05:00
Scott Lahteine
47ee149dfd Merge pull request #11195 from thinkyhead/bf2_tronxy_x3a
[2.0.x] Tronxy X3A configurations and thermistor
2018-07-03 19:06:01 -05:00
Scott Lahteine
8c0ec81a19 Followup to #11187 2018-07-03 18:19:26 -05:00
Scott Lahteine
48c1f32b3e Add configurations for Tronxy X3A 2018-07-03 17:56:48 -05:00
Scott Lahteine
568cfe7caa Add thermistor 501 (100K Zonestar) 2018-07-03 17:52:06 -05:00
Scott Lahteine
1a0f4dedad Fix and improve POWER_LOSS_RECOVERY (#11187) 2018-07-02 23:21:28 -05:00
Scott Lahteine
e0ab8acf19 Add "Marlin Dev Mode" option 2018-07-02 22:55:21 -05:00
Scott Lahteine
4b2af6ab48 Minor patches to POWER_LOSS_RECOVERY 2018-07-02 17:26:53 -05:00
Scott Lahteine
1ea222e6fc Turn off DISABLE_INACTIVE_EXTRUDER with SWITCHING_NOZZLE
Fix #11183
2018-07-02 17:26:53 -05:00
Roman Moravčík
8299ac121d [2.0.x] Slovak translation update (#11175) 2018-07-01 23:15:51 -05:00
teemuatlut
3de0c85d41 Fix RRW graphical LCD constructor macro (#11171) 2018-07-01 23:14:23 -05:00
TheLongAndOnly
cedc158106 [2.0.x] Board specific init macro (#11170) 2018-07-01 23:11:42 -05:00
Chris Pepper
5616581eb1 [LPC176x] Update fastio _GET_INPUT, _GET_OUTPUT macros (#11168) 2018-07-01 23:02:38 -05:00
Scott Lahteine
8a8eae8d97 Implement more fastio_Due macros (#11165) 2018-07-01 01:24:06 -05:00
Scott Lahteine
c51e27d11d Do a hard kill for failed homing moves (#11161) 2018-06-30 21:54:07 -05:00
Scott Lahteine
90ba77ea0f Lose the old HOMEAXIS macro 2018-06-30 18:13:13 -05:00
Scott Lahteine
2421f3a47d Detect endstop hits in any direction 2018-06-30 17:27:37 -05:00
Scott Lahteine
f9a090b2cf Fix Trigorilla 1.4 pins
See #11097
2018-06-30 13:45:55 -05:00
Scott Lahteine
8eaac0dab3 Add delta feedrate scaling (#11153) 2018-06-30 13:44:27 -05:00
Scott Lahteine
444725ae9a Non-conflicting CS pins for MKS Gen L 2018-06-30 02:36:01 -05:00
J.C. Nelson
8c9f90153e Enable Malyan LCD Support for M200 printers. (#11051) 2018-06-30 00:35:54 -05:00
Scott Lahteine
fc10101b06 Tweaks to fastio_Due.h 2018-06-30 00:15:50 -05:00
Scott Lahteine
05518d6add Add newline to end of file 2018-06-29 23:54:16 -05:00
Scott Lahteine
d4fde91222 Fix serial.h including itself 2018-06-29 23:53:25 -05:00
Scott Lahteine
a431013eb7 Fix G33 compile warning 2018-06-29 23:17:51 -05:00
Scott Lahteine
bd7f5848f1 Remove JUNCTION_DEVIATION_INCLUDE_E option (#11147) 2018-06-29 22:42:05 -05:00
Scott Lahteine
fbf1c9b496 Fix and tweak POWER_LOSS_RECOVERY (#11151) 2018-06-29 22:41:02 -05:00
Colin Gilgenbach
0fff79c24b Fixes G29_with_retry behavior (#11045)
* Fix G29 (ABL) retry behavior
2018-06-29 20:48:11 -05:00
Scott Lahteine
c36efd3106 Don't hide deeper lib folders 2018-06-29 19:38:18 -05:00
Scott Lahteine
3349eb0020 Fix SKEW_CORRECTION compile error 2018-06-29 19:38:18 -05:00
Scott Lahteine
a264030526 Fix "G29" G29_MAX_RETRIES handling 2018-06-29 18:46:31 -05:00
Scott Lahteine
42f9921482 Ignore Z min endstop with separate Z-probe
To allow for the case where a Z endstop (e.g., hall effect) is higher than the probe trigger point, don't check the Z min endstop during probe moves. See #11134
2018-06-28 05:06:11 -05:00
Scott Lahteine
921685d12f Teensy++ 2.0 can truly go away 2018-06-28 04:51:42 -05:00
Scott Lahteine
1b8973eb1c Fix up microsteps conditionals 2018-06-27 23:41:32 -05:00
Scott Lahteine
aa4cd2e861 Eliminate stepper.* signed/unsigned warnings 2018-06-27 23:10:51 -05:00
Eduardo José Tagle
edb21f349a Fix stepper/planner block handling, race conditions (#11098)
- Allow planner to alter the deceleration phase of the currently executing block.
- Remove BUSY flag, as it is NON ATOMIC to set bits in the Stepper ISR and Planner at the same time.
2018-06-27 18:11:16 -05:00
Scott Lahteine
4d3a9930c5 Match ASM comment spacing to 1.1.x 2018-06-27 17:26:48 -05:00
Scott Lahteine
053438a3aa Poll all endstops, even when stationary (#11123) 2018-06-27 04:18:57 -04:00
Andy Shaw
3b3029c4bf Make max_e_jerk an array to reduce CPU usage (#11118) 2018-06-26 22:38:31 -04:00
Scott Lahteine
d13f76b7da Patch some loop macros 2018-06-26 20:30:52 -05:00
Scott Lahteine
229b26b02c Clear LED matrix without startup test 2018-06-26 18:54:01 -05:00
Dave Johnson
0ee34eb784 Add PIO board definitions for Malyan M200 (#11120)
Co-Authored-By: J.C. Nelson <xc0000005@users.noreply.github.com>
2018-06-26 15:22:30 -04:00
Alexander Amelkin
ffdbc1f42c STM32F1: Fix SD card persistent store API (#11090) 2018-06-26 14:41:23 -04:00
Giuliano
8d8f257384 [2.0.x] Fix advanced pause init values (#11095)
Fixed for cycle used to initialize default values
2018-06-26 14:37:52 -04:00
etagle
5b49fccf80 Add stepper driver DIR delay configuration option
...and recommended pulse width configuration for A4988
2018-06-26 13:28:04 -05:00
Scott Lahteine
d86f25ab63 Fix Serial ISR priority for LPC1768
Co-Authored-By: p3p <p3p@p3psoft.co.uk>
2018-06-25 12:15:41 -04:00
etagle
fb4e0b105b Fix endstops compilation error 2018-06-25 12:10:17 -04:00
Eduardo José Tagle
48a15d1c7e [2.0.x] Fix stepper/planner race condition and Stepper pulse timer (#11081)
* Planner: Removal of some race conditions between Stepper ISR and Planner, some of them pointed out by @AnHardt, some of my own findings
* Fixing timing on stepper pulses adding a compensation for the non-null time required to set ports.
2018-06-22 09:15:37 -05:00
Scott Lahteine
3fa9aeb5c7 Restore env:teensy20, for now
See https://github.com/MarlinFirmware/Marlin/pull/11079#issuecomment-399309709
2018-06-22 00:13:11 -04:00
Michael Triffon
7e802145cc [2.0.x] Add CR-10 stock display support for Re-Arm (EXP3) (#11068) 2018-06-21 23:08:17 -05:00
Dave Johnson
3b7c5a31a3 Enable local board repository for PIO (#11079)
-Enable boards_dir option in PIO INI
-Remove defunct custom board file operations for PIO auto-build environment
-Remove now-defunct Teensy++ 2.0 PIO entry, replaced by `at90USB1286_DFU` and `at90USB1286_DFU` (using this entry always put AT90USB board boot loaders in jeopardy of being overwritten due to the very small size of the official Teensy++ 2.0 bootloader)
-whitespace
2018-06-21 21:09:23 -05:00
Scott Lahteine
50b6204079 Fix LIN_ADVANCE max_e_jerk_factor
According to https://github.com/MarlinFirmware/Marlin/issues/9917#issuecomment-399204568
2018-06-21 22:02:34 -04:00
Scott Lahteine
99591dc20c Filter endstops state at all times (#11066) 2018-06-21 20:14:16 -05:00
Scott Lahteine
a5c11bf578 Merge pull request #11075 from thinkyhead/bf2_value_editing
[2.0.x] Fix value editing (with callback)
2018-06-21 20:13:58 -05:00
Roxy-3D
1d7dd0edfd Add the move_z_after_probing() functionality to UBL's G29 J 2018-06-21 13:26:20 -05:00
Scott Lahteine
383129728a Edit Z fade as whole numbers 2018-06-21 11:52:29 -04:00
Scott Lahteine
1239e8eda2 Fix value editing with callback 2018-06-21 11:52:03 -04:00
Scott Lahteine
7a84b03796 Use MIN/MAX in post-conditionals 2018-06-20 03:15:19 -05:00
Scott Lahteine
a2a30ff0ac Use Tool 0 for Dual X Axis G29
See https://github.com/MarlinFirmware/Marlin/issues/5597#issuecomment-397683325
2018-06-20 01:32:23 -05:00
Scott Lahteine
e366d55bc2 Don't reset stepper timeout for all g-codes 2018-06-19 21:48:28 -05:00
Scott Lahteine
7406f04029 Use MAX (not max) in stepper.h 2018-06-19 20:51:07 -05:00
Roxy-3D
7c54c4ed27 Tiny improvement to M7219
The registers within the Max7219 can get corrupted a number of ways.  This allows the Max7219 to be reset and fully initialized.
And...  it also allows the user to see the initialization pattern.
2018-06-19 14:46:30 -05:00
Giuliano
a65d15c905 [2.0.x] Fix Italian msg len (#11058)
Fix message to long for 12864 display
2018-06-18 22:04:55 -05:00
Scott Lahteine
d4795e5b8e [2.0.x] Tweaks and additions for MAX7219 (#11034) 2018-06-18 22:04:03 -05:00
Scott Lahteine
e23677a7b2 Update some G-code comments 2018-06-18 16:13:01 -05:00
Chris Pepper
0312c42f9d [2.0.x] LPC176x Serial cleanup (#11032) 2018-06-16 20:59:22 -05:00
Scott Lahteine
c1269c2ec1 Tweak AVR critical section defines 2018-06-16 17:42:32 -05:00
Scott Lahteine
da94e0bd27 Unsigned eeprom mesh addresses 2018-06-15 15:51:57 -05:00
Chris Pepper
f88adcbfd5 [2.0.x][LPC176x] Fix binary linking broken by pio update (#11026) 2018-06-15 15:32:51 -05:00
Scott Lahteine
fdd97e649d Merge pull request #11020 from simon-jouet/esp32
HAL for Espressif ESP32 WiFi
2018-06-13 19:35:01 -05:00
Simon Jouet
e2aeda61ed HAL for Espressif ESP32 Wifi 2018-06-13 19:33:35 -05:00
Scott Lahteine
091f742432 Add WIFISUPPORT to example configs 2018-06-13 19:27:33 -05:00
Scott Lahteine
19d4c7c1cd Tweak HAL header comments 2018-06-13 19:08:42 -05:00
Bob Kuhn
7e8d2d611d Auto Build for Visual Studio Code (#11014) 2018-06-13 18:49:47 -05:00
Giuliano
cce0523a95 [2.0.x] reset bltouch on home (#11018)
Added reset bltouch instead. This ensure properly stow even when in error.
2018-06-13 14:09:13 -05:00
Scott Lahteine
4c8d6df13c Extra insurance against endstop false positives (#11013) 2018-06-13 01:22:02 -05:00
Scott Lahteine
81edbfa665 Merge pull request #11004 from ejtagle/always_honor_maximum_step_rate
[2.0.x] Fix stepper pulse minimum period and timing calculations
2018-06-12 22:17:22 -05:00
Scott Lahteine
f3fed52348 Fix coolstep_min_speed / sensorless homing
Fix #8890
2018-06-12 22:12:46 -05:00
etagle
a215725df6 Fix stepper pulse timing
Always honor minimum period on stepper pulse generation, and fix timing calculations

Signed-off-by: etagle <ejtagle@hotmail.com>
2018-06-12 21:34:24 -05:00
Scott Lahteine
0d79128c8d Localize stepper-specific defines 2018-06-12 21:16:54 -05:00
Scott Lahteine
a9861a780e Tweak HAL heading 2018-06-12 19:40:17 -05:00
Scott Lahteine
cf53e502a2 No need to set input after attachInterrupt 2018-06-12 18:43:11 -05:00
Karl Andersson
e0276d2f32 Official STMicroelectronics Arduino Core STM32F4 HAL compatibility (#11006) 2018-06-12 18:38:00 -05:00
Scott Lahteine
4dbec774b5 HAL_*_TIMER_RATE => *_TIMER_RATE 2018-06-12 16:39:12 -05:00
Scott Lahteine
928e50e724 Try LiquidCrystal@1.3.4 2018-06-12 00:40:50 -05:00
Scott Lahteine
12689f2470 Merge pull request #11001 from thinkyhead/bf2_junction_deviation_fix
[2.0.x] Updates for junction_deviation_mm
2018-06-11 22:31:17 -05:00
Scott Lahteine
9b945c13a1 Fix STM32F1 ISR_ENABLED 2018-06-11 22:09:45 -05:00
Scott Lahteine
9d04f47d98 Improvements for junction_deviation_mm
- Drop `max_jerk` with `JUNCTION_DEVIATION`
- Add `max_e_jerk_factor` for use by `LIN_ADVANCE`
- Recalculate `max_e_jerk_factor` when `junction_deviation_mm` changes
- Fix LCD editing of `junction_deviation_mm`
2018-06-11 22:05:16 -05:00
Scott Lahteine
f2c3b0d476 Use bit flags for homed/known 2018-06-11 22:05:16 -05:00
Scott Lahteine
4832be52d7 Followup to G29 O 2018-06-11 21:57:26 -05:00
Robert Mendon
86170e6a66 [2.0.x] Add O (optional) flag to G28/G29 (#10913) 2018-06-11 21:51:48 -05:00
Alexey Shvetsov
2ddba201c0 STM32F1 HAL Fixes (#10999)
- Enable / disable interrupts with `__iSeiRetVal` / `__iCliRetVal`
- Add STM32F1 to Travis CI tests
2018-06-11 20:00:56 -05:00
Scott Lahteine
43bdd0bfe4 Fix indent in stepper.h 2018-06-11 19:17:46 -05:00
Scott Lahteine
b8f8dc72f0 Add travis helper update_defaults 2018-06-11 18:49:43 -05:00
Scott Lahteine
2ba198a624 Tweak M122 report spacing 2018-06-10 20:33:18 -05:00
Eduardo José Tagle
5590c8ffd0 Fix MarlinSerial (AVR) (#10991)
An undocumented hw bug makes the UART lose chars when RX ISR is disabled, even for a very small amount of time. This happens when RX_BUFFER > 256, and the result is corrupted received commands. Solved by implementing pseudo-atomic operations on 16bit indices.
2018-06-10 20:32:20 -05:00
Scott Lahteine
3fd1f32b73 Fix ADC key and chamber temp 2018-06-10 20:11:40 -05:00
Scott Lahteine
117fd007a9 Followup to pin error change 2018-06-10 19:28:45 -05:00
Scott Lahteine
ae07a3e4aa Multiplier edit large ranges 2018-06-10 18:22:12 -05:00
Scott Lahteine
20a5db03bb Junction Deviation limit (0.01 to 0.3) 2018-06-10 18:22:08 -05:00
Scott Lahteine
a2f521d34b Add Junction Deviation mm runtime setting (#10990) 2018-06-10 18:02:54 -05:00
Scott Lahteine
590ce1c33e Fix serial debug ouput 2018-06-10 17:54:22 -05:00
Scott Lahteine
968a5d2e63 Protected pin err for M226 2018-06-10 17:45:47 -05:00
Scott Lahteine
4b90cd8ead Merge pull request #10922 from ejtagle/bugfix-2.0.x
[2.0.x] Adaptive multiaxis step smoothing, and tons of fixes
2018-06-10 16:28:52 -05:00
Giuliano
f1cdfe3dfd [2.0.x] stow bltouch before start homing (#10987) 2018-06-10 16:27:14 -05:00
etagle
6f14bcaa3e Add MAXIMUM_STEPPER_RATE, enforce in multi-stepping
The timing value should be properly set for ALL boards. The compiler will check and set maximum step rate calculations based on those values.
2018-06-10 16:02:47 -05:00
etagle
39a7e7720d Adaptive multiaxis step smoothing
- Stepper bugs fixed
- Support MIXING_EXTRUDER with Linear Advance
- Miscellaneous cleanup
2018-06-10 16:02:47 -05:00
Scott Lahteine
ae15c5af88 Merge pull request #10983 from thinkyhead/bf2_xon_xoff_changes
[2.0.x] Serial handshaking fixes / debug
2018-06-10 04:33:51 -05:00
etagle
99af086cea Add hidden Serial overflow debug options 2018-06-10 04:25:42 -05:00
etagle
d90e8fcad9 Fix XON/XOFF implementation
Pointed out by @GMagician
2018-06-10 04:25:42 -05:00
Scott Lahteine
bbf80440bf Add sanity-check for MOTHERBOARD 2018-06-10 04:03:33 -05:00
Giuliano
b64cc9329e [2.0.x] Fix dual enstop home (#10980) 2018-06-10 02:08:47 -05:00
Scott Lahteine
8a376e6beb Update MINIMUM_STEPPER_PULSE description 2018-06-10 00:13:03 -05:00
Scott Lahteine
3701869e6c Add HAL_timer_start for AVR, use stepper timer to time pulses 2018-06-09 22:30:13 -05:00
Giuliano
e970e429b6 [2.0.x] Fix null check in lsDive (#10978) 2018-06-09 22:03:49 -05:00
etagle
d82704354f Increase the planner first block HOLD delay to 100mS 2018-06-09 21:12:37 -05:00
Scott Lahteine
779d4a17a0 Highlight 64128N and common ST7565 difference
Followup to #10920, addressing #10962
2018-06-09 19:18:41 -05:00
Scott Lahteine
b9418439b9 Prevent MB false-positive on bad board name 2018-06-08 19:58:43 -05:00
Scott Lahteine
88314b8910 CREALITY_ENDER is long gone
As noted in #10965
2018-06-08 19:53:21 -05:00
Scott Lahteine
334341c632 Hephestos config updates (#10960) 2018-06-07 21:23:55 -05:00
Scott Lahteine
f74278b8b1 Add -4 thermocouple to list in configs 2018-06-07 21:04:06 -05:00
Scott Lahteine
7ba5afff01 Allow FAN_PIN override, pins cleanup (#10956) 2018-06-07 16:46:13 -05:00
Scott Lahteine
55aedf036b Fix M503 ABL mesh report. (Zero-based IJ indices) 2018-06-07 16:36:50 -05:00
Scott Lahteine
e7623b5788 Restore Z_PROBE_PIN to pinsDebug_list.h 2018-06-07 15:39:24 -05:00
Scott Lahteine
a426986df8 Ensure pins set to INPUT after attachInterrupt (#10928) 2018-06-06 20:59:08 -05:00
Scott Lahteine
d8b983f624 More concise M503 output for M906, M913, M914 (#10947) 2018-06-06 20:58:28 -05:00
Giuliano
eb1026d438 [2.0.x] Fix compile warning (#10931) 2018-06-05 22:44:34 -05:00
Dave Johnson
a5b0bf86f1 [2.0.x] Correct PROGMEM on DFU-equiped AT90USB boards (#10943)
130048 is available on genuine Teensy2.0++ with Paul's "Halfkay" bootloader.  Atmel DFU-equiped boards have only 122880 available
2018-06-05 22:34:54 -05:00
Scott Lahteine
c2bdbdffaa Prevent a buffer overflow in diveToFile
Co-Authored-By: akunt
2018-06-05 22:13:17 -05:00
Giuliano
c9d1a620d4 [2.0.x] fix indentations (#10934) 2018-06-05 02:03:26 -05:00
Roxy-3D
d550da084f Fix Max7219 control pins for use with 32-bit platforms 2018-06-04 13:37:23 -05:00
Scott Lahteine
c16e41e9e6 STM32F4 pins cleanup 2018-06-03 19:08:04 -05:00
Scott Lahteine
c685c7b7dd STM32F4: All pins can do PWM 2018-06-03 04:30:15 -05:00
Scott Lahteine
85914423a1 Merge pull request #10920 from thinkyhead/bf2_misc_cleanups_jun2
[2.0.x] Clean up ST7565, dual endstops homing
2018-06-03 03:36:07 -05:00
Scott Lahteine
2fd9ba56da LED menu item bool (like Case Lights) 2018-06-03 00:34:29 -05:00
Scott Lahteine
ad8d3150aa Cleanup for dual endstops homing 2018-06-03 00:34:29 -05:00
Scott Lahteine
61181b7f24 Add macros for ST7565 commands 2018-06-02 20:48:44 -05:00
Eduardo José Tagle
d3c02410a8 [2.0.x] Small assorted collection of fixes and improvements (#10911)
* Misc fixes and improvements

- Get rid of most critical sections on the Serial port drivers for AVR and DUE. Proper usage of FIFOs should allow interrupts to stay enabled without harm to queuing and dequeuing.
  Also, with 8-bit indices (for AVR) and up to 32-bit indices (for ARM), there is no need to protect reads and writes to those indices.
- Simplify the XON/XOFF logic quite a bit. Much cleaner now (both for AVR and ARM)
- Prevent a race condition (edge case) that could happen when estimating the proper value for the stepper timer (by reading it) and writing the calculated value for the time to the next ISR by disabling interrupts in those critical and small sections of the code - The problem could lead to lost steps.
- Fix dual endstops not properly homing bug (maybe).

* Set position immediately when possible
2018-06-01 19:02:22 -05:00
Scott Lahteine
ae1be0fa53 Merge pull request #10910 from thinkyhead/bf2_fix_junction_deviation
[2.0.x] Fix / improve junction deviation
2018-06-01 00:12:41 -05:00
Scott Lahteine
2deff0d9b9 Fix/Improve junction deviation
- Respect axis max acceleration limits instead of forcing a fixed acceleration value.
- The `junction_unit_vec` ensures proper handling of entry and exit speeds even when the axes involved have different limits.
2018-05-31 20:09:53 -05:00
Scott Lahteine
6885ca606c Drop JUNCTION_ACCELERATION from example configs 2018-05-31 20:07:28 -05:00
Chris Pepper
d87257f63c [2.0.x][LPC176x] Fix PIO build flags (#10909)
Don't build and link with different flags, the binary may not work.
2018-05-31 19:08:31 -05:00
Axel
ae322e0c54 [2.0.x] Add GTM32 Pro VB support (#10898) 2018-05-31 00:11:38 -05:00
Scott Lahteine
d259070980 Clean up trailing spaces from vim, etc. 2018-05-31 00:09:41 -05:00
Scott Lahteine
21d812d502 Fix the Z un-hop on G11
Co-Authored-By: zarthcode <anthony.clay@zarthcode.com>
2018-05-29 23:41:36 -05:00
Scott Lahteine
d3c473002a For SCARA probe Y offset is proximal/distal 2018-05-29 21:55:53 -05:00
Scott Lahteine
b90f54b0fc Improve probe logging 2018-05-29 21:54:13 -05:00
Scott Lahteine
3f2a062a57 Fix M914 value range (-64...+63)
Fix #10896
2018-05-29 12:02:15 -05:00
Scott Lahteine
b6cd8d9cc6 Set deltas to park on the left 2018-05-29 11:44:31 -05:00
Scott Lahteine
9713538427 HOTENDS for Switching Nozzle with Switching Extruder 2018-05-29 11:05:52 -05:00
Scott Lahteine
c68b7b3913 Update Fan 2 and E0 Auto Fan pins for Trigorilla 2018-05-28 21:11:12 -05:00
Scott Lahteine
cbcb284f4a Allow libServo::attach to work on Teensy 3.5/3.6 2018-05-28 20:56:24 -05:00
Chris Pepper
f89f7c4a82 [2.0.x][LPC176x][Build] Force single precision constants, disable freestanding (#10892) 2018-05-28 19:38:22 -05:00
Scott Lahteine
4299e5dc8b Modify E-stepping macros for use in LINEAR_ADVANCE (#10885) 2018-05-28 19:34:08 -05:00
Scott Lahteine
8f14ef855d More concise commentary in planner.cpp 2018-05-28 19:25:18 -05:00
Scott Lahteine
6919e87656 Minor cleanup of multi-stepping logic 2018-05-28 17:44:33 -05:00
android444
16da5c62d0 Teensy 3.x fastio pullup (#10890) 2018-05-28 16:25:12 -05:00
Scott Lahteine
853a9056ac Long thermistor tables need special consideration 2018-05-28 06:28:34 -05:00
Scott Lahteine
a4f9c3373f Tweak thermistor spacing 2018-05-28 03:44:32 -05:00
Scott Lahteine
9b9b62b218 delay(SERVO_DELAY) => safe_delay(servo_delay[servo_index]) 2018-05-28 03:44:32 -05:00
Scott Lahteine
1ce97f1f6d Faster (bisect) search in thermistor tables (#10883) 2018-05-27 23:27:51 -05:00
Scott Lahteine
0ca9db7051 Correct HOTENDS for SWITCHING_EXTRUDER 2018-05-27 23:22:48 -05:00
Scott Lahteine
945139e328 Clean up some formatting 2018-05-27 17:58:40 -05:00
android444
9c235ef821 [HAL]Add support for ST7920 - Teensy 3.x (#10872) 2018-05-27 03:36:57 -05:00
Eduardo José Tagle
7b9f0302d4 Fix Bresenham rounding errors, add link to article (#10871) 2018-05-27 01:49:59 -05:00
Scott Lahteine
2566342979 Adjust some commentary 2018-05-27 00:10:25 -05:00
Scott Lahteine
1b200f3312 Sanity check SWITCHING_EXTRUDER with SINGLENOZZLE 2018-05-26 23:26:23 -05:00
Scott Lahteine
22771dd2dd Update 'board_f_cpu' to 'board_build.f_cpu' 2018-05-26 23:26:23 -05:00
Scott Lahteine
6775a16c97 Fix switching extruder stepping with LA 2018-05-26 19:07:01 -05:00
Scott Lahteine
05fc761929 Merge pull request #10858 from thinkyhead/bf2_rename_some_options
[2.0.x] Rename and document some configuration options
2018-05-26 18:42:39 -05:00
Scott Lahteine
2e139fe50f Tweak configuration spacing 2018-05-26 18:33:51 -05:00
Scott Lahteine
931ab4ec40 Rename Junction Deviation options 2018-05-26 18:33:51 -05:00
Scott Lahteine
aaaf09bda2 BEZIER_JERK_CONTROL => S_CURVE_ACCELERATION 2018-05-26 18:33:51 -05:00
Scott Lahteine
cf7d5a642a Fix manual moves for switching tools (#10868) 2018-05-26 18:30:53 -05:00
Eduardo José Tagle
1da2c4f1c1 Text LCD display routine fix. Coauthored with @MagoKimbra (#10864) 2018-05-26 18:13:33 -05:00
Bob Kuhn
498a328148 Merge pull request #10860 from Bob-the-Kuhn/upload-extra-script-fix
[2.0.x] LPC1768 upload_extra_script.py fix (wrong type of exit method)
2018-05-26 09:40:55 -05:00
Bob-the-Kuhn
1c0ad8bbae wrong type of exit method 2018-05-26 08:17:03 -05:00
Scott Lahteine
01d37e00af Fix up stepper ISR with linear advance timing (#10853)
Co-Authored-By: ejtagle <ejtagle@hotmail.com>
2018-05-26 01:00:13 -05:00
Eduardo José Tagle
6f330f397e [2.0.x] Buffer overflow and scroll fix, UTF8 cleanup (#10844) 2018-05-25 23:32:37 -05:00
Bob Kuhn
235facd545 install AVRDUDE 5.10, faster disk find for LPC1768 (#10849) 2018-05-25 20:26:48 -05:00
Scott Lahteine
645df23eb0 Fix warning with FASTER_GCODE_PARSER disabled 2018-05-25 06:45:42 -05:00
Scott Lahteine
d74e333c0f Make sure FAN_ANIM_FRAMES is defined 2018-05-25 05:28:50 -05:00
Bob Kuhn
e2db509d58 [2.0.x] Update/Fix LPC1768 extra script upload_extra_script.py (#10843)
* Use a different method to find the volume info in Windows
2018-05-25 04:31:18 -05:00
Scott Lahteine
7261f48872 Fix reset of endstops and move state 2018-05-24 19:33:36 -05:00
Scott Lahteine
50fa8e01c1 Minor optimization of axis_did_move bits 2018-05-24 19:08:07 -05:00
Scott Lahteine
a94506ada0 Fix K8400 Y min pos, M118 comment 2018-05-24 08:21:16 -05:00
Scott Lahteine
336a022529 Support Malyan LCD without SD 2018-05-24 05:01:18 -05:00
Scott Lahteine
f28e366b77 Followup for core endstops 2018-05-24 03:02:57 -05:00
Scott Lahteine
8b44745bc7 Clean up and consolidate SD-related code (#10831) 2018-05-24 01:18:56 -05:00
Scott Lahteine
9644d56b42 Patches for core motion tests 2018-05-24 00:49:01 -05:00
Scott Lahteine
5f8591528e Remove #pragmas that don't help c files 2018-05-23 23:47:16 -05:00
Scott Lahteine
230ae6a143 Default G30 to engage / disengage 2018-05-23 16:57:23 -05:00
Scott Lahteine
3e3789da85 Regression: Endstops Core compatibility (#10823)
Co-Authored-By: ejtagle <ejtagle@hotmail.com>
2018-05-23 03:45:25 -05:00
Scott Lahteine
c89649b46e Suppress U8glib build warnings 2018-05-23 02:47:36 -05:00
Axel
bbd09a99f1 32 bit boards classification cleanup (#10818)
- Ordering and match classification between `boards.h` and `pins.h`
- Check `pins.h` environments
2018-05-22 21:20:24 -05:00
Scott Lahteine
ee333f6be2 Followup to endstops tweaks 2018-05-22 20:41:03 -05:00
Axel
d98bc71af7 Boards classification arrangement (#10814)
STM32 ARM Cortex-M3 boards were listed as M4
2018-05-22 02:56:51 -05:00
Bob Kuhn
22e0691a70 [2.0.x] Add Sublime support for Auto build, minor Auto-build update (#10809) 2018-05-22 02:04:51 -05:00
Scott Lahteine
4b610b333e Tweak G38 formatting 2018-05-22 01:56:03 -05:00
Scott Lahteine
d2647c1f19 Fix G1 behaviour after tool unpark
Fix #10777 for 2.0.x

Co-Authored-By: Ante Vukorepa <o.orcinus@gmail.com>
2018-05-22 00:53:00 -05:00
Scott Lahteine
3bb950c69a Fix DEBUG_LEVELING_FEATURE for MBL
As noted in #10777
2018-05-22 00:49:15 -05:00
Scott Lahteine
1af98519cd Group and adjust LCD buttons code 2018-05-22 00:37:45 -05:00
Scott Lahteine
0c3773d724 Cleanup in stepper_indirection.h 2018-05-22 00:36:03 -05:00
Scott Lahteine
4118199ddd Tweaks to core headers 2018-05-21 20:32:18 -05:00
Scott Lahteine
4b2f6e3b2b [2.0.x] Add endstop noise filter (#10796) 2018-05-21 15:51:38 -05:00
Scott Lahteine
65a004564c Stepper::set_position needed for some applications 2018-05-21 15:21:33 -05:00
Scott Lahteine
435ecb6b67 Followup to stepper/planner refactor 2018-05-20 23:13:38 -05:00
Bob Kuhn
6dfbb39f83 [LPC1768] Add error-handling to upload script, update autobuild.py (#10802) 2018-05-20 21:22:04 -05:00
Scott Lahteine
68d7fcec83 Simplify and fix Z fade height edit
Fix #10761
2018-05-20 12:29:23 -05:00
Bob Kuhn
d557c84a71 [2.0.x] Error for FAST_PWM_FAN with 32 bit CPU (#10798) 2018-05-20 11:37:55 -05:00
Scott Lahteine
16f92dca44 Merge pull request #10688 from ejtagle/bugfix-2.0.x
[2.0.x] Refactor, optimization of core planner/stepper/endstops logic
2018-05-20 07:24:39 -05:00
etagle
569df3fc0c Fix interrupt-based endstop detection
- Also implemented real endstop reading on interrupt.
2018-05-20 07:10:24 -05:00
etagle
a4af975873 Fix planner block optimization
- Fixed the planner incorrectly avoiding optimization of the block following the active one.
- Added extra conditions to terminate planner early and avoid redundant computations.
2018-05-20 07:10:24 -05:00
etagle
e0ca627033 Planner block HOLD flag
Allows the Stepper ISR to wait until a given block is free for use. Allows Planner to plan the first move, which is split into two.
2018-05-20 06:23:58 -05:00
etagle
a11eb50a3e Refactor and optimize Stepper/Planner
Better encapsulation and considerably reduce stepper jitter
2018-05-20 06:23:58 -05:00
etagle
0566badcef Add memory barrier, optimal interrupt on-off
Disabling an ISR on ARM has 3 instructions of latency. A Memory barrier is REQUIRED to ensure proper and predictable disabling. Memory barriers are expensive, so avoid disabling if already disabled (See https://mcuoneclipse.com/2015/10/16/nvic-disabling-interrupts-on-arm-cortex-m-and-the-need-for-a-memory-barrier-instruction/)
2018-05-20 02:39:34 -05:00
Scott Lahteine
c2fb2f54a1 Use assembly for AVR ISR vectors
Co-Authored-By: ejtagle <ejtagle@hotmail.com>
2018-05-20 01:58:51 -05:00
Scott Lahteine
206014a957 Fix LPC176x timer functions
Co-Authored-By: ejtagle <ejtagle@hotmail.com>
2018-05-20 01:58:51 -05:00
Scott Lahteine
59f7861bcb Move backtrace to the HAL folder (#10790) 2018-05-20 01:33:21 -05:00
Scott Lahteine
228139eae6 Tweak some LCD comments 2018-05-19 21:00:08 -05:00
Scott Lahteine
7dc03ce721 Simplified fix for babystep pulse width
Alternative to the apparently superfluous double delay
2018-05-19 21:00:08 -05:00
Scott Lahteine
65270d6a96 Fix LIN_ADVANCE + SWITCHING_EXTRUDER
Followup to #10656
2018-05-19 18:32:00 -05:00
Bob Kuhn
62e2987488 add AT90USB support & add items to popup menu (#10779) 2018-05-19 17:39:26 -05:00
Bob Kuhn
9ad42d6617 add delay between pulse edges (#10778) 2018-05-19 17:12:16 -05:00
Scott Lahteine
fe7aea7bf6 Merge pull request #10772 from GMagician/2.0.x-address-#10766
[2.0.x] Fix switching extruder
2018-05-19 17:10:56 -05:00
Scott Lahteine
83d42f33e1 Add HAS_HOTEND_OFFSET_Z conditional 2018-05-19 17:05:15 -05:00
GMagician
3c76bda2d8 Fix switching extruder
`DONT_SWITCH` got lost along the way. Replace it with `DO_SWITCH_EXTRUDER` and adjust the code.
2018-05-19 17:05:15 -05:00
Scott Lahteine
8f18854d4d monitor_baud => monitor_speed 2018-05-19 16:59:23 -05:00
Scott Lahteine
c173a31060 Fix some compile warnings 2018-05-19 16:54:48 -05:00
Giuliano
e1d9046efc [2.0.x] Temperature reading fix (#10774) 2018-05-19 15:39:36 -05:00
Chris Pepper
9b64fdbc3a [LPC176x] HAL: Add missing program space definition (#10776) 2018-05-19 15:37:54 -05:00
Scott Lahteine
50270b53a0 Clear up some more compile warnings 2018-05-17 18:40:49 -05:00
etagle
06fd4d7b28 Improve NOMORE, NOLESS, and LIMIT macros 2018-05-17 18:23:14 -05:00
etagle
40d7e12827 Removing warnings from compilation 2018-05-17 18:04:22 -05:00
Scott Lahteine
b9079aa1b5 Merge pull request #10754 from comps/fan-max-pwm-scaling
[2.0.x] Add FAN_MAX_PWM
2018-05-15 22:23:47 -05:00
KangDroid
9a531da861 Support Darwin environment on buildroot/bin (#10751) 2018-05-15 22:22:03 -05:00
Scott Lahteine
0755fe8ba2 Add FAN_MAX_PWM to example configs 2018-05-15 21:18:47 -05:00
Jiri Jaburek
43ddb29f9e Add FAN_MAX_PWM for M106-controlled fans 2018-05-15 21:18:46 -05:00
Scott Lahteine
0ea60d506a Clear up LCD-related compile issues 2018-05-15 00:06:59 -05:00
Scott Lahteine
eb2eb72720 Modify UBL mesh_is_valid and use in leveling_is_valid (#10746) 2018-05-14 22:36:03 -05:00
Scott Lahteine
b7dfc79988 Disable SERIAL_PORT_2 by default and sanity-check it (#10748) 2018-05-14 21:38:24 -05:00
Scott Lahteine
3f6073e23a Followup tweak to lcdprint_u8g.cpp 2018-05-14 14:42:11 -05:00
Scott Lahteine
7edf5bcb7b Merge pull request #10742 from thinkyhead/bf2_u8g_code_cleanup
[2.0.x] Prevent compilation of unused u8g-oriented code
2018-05-14 14:40:44 -05:00
Scott Lahteine
ba100e9548 Clean up and reduce Travis CI tests 2018-05-14 13:47:56 -05:00
Scott Lahteine
fb608938f8 Prevent compilation of unused u8g-oriented code 2018-05-14 13:31:04 -05:00
Scott Lahteine
35258dd50b Consistent heating status and status reset
Fix #10699
2018-05-13 17:18:19 -05:00
Scott Lahteine
37b15fe4cf Reorder HAL timer header items 2018-05-13 16:50:39 -05:00
Scott Lahteine
836b0bbeee Fix MBL line_to_destination
Fix #10708
2018-05-13 16:50:39 -05:00
Scott Lahteine
ba4c32eec5 Followup to _AXIS patch 2018-05-13 10:43:35 -05:00
Scott Lahteine
d9154ebdf6 Followup to math patch 2018-05-13 09:30:27 -05:00
Scott Lahteine
f07260c33f Don't babystep on long click unless printing
As pointed out in #10731
2018-05-13 08:11:35 -05:00
Scott Lahteine
883b0c9880 Convert custom maths to inlines (#10728) 2018-05-13 08:10:08 -05:00
Scott Lahteine
8f3d313086 Merge pull request #10727 from thinkyhead/bf2_smarter_min_max_abs
[2.0.x] Smarter MIN, MAX, ABS macros
2018-05-13 08:09:48 -05:00
Scott Lahteine
08e36e264e Apply _AXIS macro 2018-05-13 06:51:01 -05:00
Scott Lahteine
083ec9963e Tweaks to heater / lcd conditions 2018-05-13 04:52:56 -05:00
Scott Lahteine
99ecdf59af Smarter MIN, MAX, ABS macros
Use macros that explicitly avoid double-evaluation and can be used for any datatype, replacing `min`, `max`, `abs`, `fabs`, `labs`, and `FABS`.

Co-Authored-By: ejtagle <ejtagle@hotmail.com>
2018-05-13 04:52:56 -05:00
etagle
9d98a62699 Followup to HAL optimizations and delays
- Cleanups, fixes for Due HAL code.
- TC_IER is write-only. Use TC_IMR to test ISR state.
2018-05-13 00:46:23 -05:00
Scott Lahteine
8f8c6a9bc4 Move get_axis_position_mm to Planner (#10718) 2018-05-12 09:59:11 -05:00
Scott Lahteine
a1062eec5b Better handling of DELAY_NS and DELAY_US (#10716)
Co-Authored-By: ejtagle <ejtagle@hotmail.com>
2018-05-12 08:34:04 -05:00
Scott Lahteine
f5aaa2d6c0 Fix some compiler warnings 2018-05-12 05:28:12 -05:00
Scott Lahteine
3614e6ce0f Fix Switching Extruder with Linear Advance 2018-05-12 02:26:14 -05:00
Scott Lahteine
625035a9ce Fix M301 access to lpq_len (#10714)
Co-Authored-By: Zwaubel
2018-05-12 02:13:40 -05:00
etagle
1b225a2809 DUE: Emergency parser for the USB CDC 2018-05-12 02:12:11 -05:00
Scott Lahteine
306f0f2135 Move Stepper::synchronize to Planner (#10713)
Co-Authored-By: ejtagle <ejtagle@hotmail.com>
2018-05-12 01:38:02 -05:00
Scott Lahteine
f2e3c9896e Fix compile warnings in backtrace
Part of #10688

Co-Authored-By: ejtagle <ejtagle@hotmail.com>
2018-05-11 23:38:29 -05:00
Scott Lahteine
acacee80a2 Add JUNCTION_ACCELERATION_FACTOR to configs
Part of #10688

Co-Authored-By: ejtagle <ejtagle@hotmail.com>
2018-05-11 23:13:27 -05:00
Giuliano
d99f1b2245 [2.0.x] EEPROM code cleanup (#10710) 2018-05-11 18:06:04 -05:00
ManuelMcLure
8679f671ed Remove dependency on PI. (#10701) 2018-05-11 17:55:56 -05:00
Scott Lahteine
7d78f3476b Use the latest L6470 library 2018-05-11 02:26:47 -05:00
Scott Lahteine
6671c064cd Use arc moves for G26 if enabled (#10696)
Co-Authored-By: ManuelMcLure <manuelmclure@users.noreply.github.com>
2018-05-11 02:15:14 -05:00
Scott Lahteine
325bbbc8c2 [2.0.x] Enable AD595 and AD8495 in concert (#10693)
* Allow both AD595 and AD8495 in concert
* General temperature code tweaks
2018-05-11 01:01:51 -05:00
Scott Lahteine
c43235dd39 Remove non-special comments 2018-05-11 00:36:04 -05:00
ManuelMcLure
613a3be167 Remove hidden dependencies on destination. Fixes #10686. (#10691) 2018-05-11 00:30:51 -05:00
Scott Lahteine
23a876b08d Update a comment in motion.cpp 2018-05-10 15:03:37 -05:00
Scott Lahteine
439e0cdd0f Patch up reverse_pass_kernel (and other planner code) (#10674) 2018-05-10 01:30:55 -05:00
Scott Lahteine
fe5c308872 Correction to Printrboard SDSS pin (#10677)
Co-Authored-By: Simon Swenson <simon-swenson-8351@users.noreply.github.com>
2018-05-10 01:28:55 -05:00
Scott Lahteine
265161ba30 Blink the value for unhomed/unknown axes (#10670) 2018-05-10 01:19:20 -05:00
Scott Lahteine
57c2f8d2f6 Trailing whitespace cleanup 2018-05-10 00:17:10 -05:00
Scott Lahteine
b76344c080 More Trinamic cleanup 2018-05-10 00:12:10 -05:00
Scott Lahteine
473c6d3a91 Drop extra RIGIDBOT_PANEL from D6 config 2018-05-09 18:02:07 -05:00
Giuliano
44f3a6dc3b [2.0.x] Add missing axes to M911, M912 (#10668) 2018-05-09 17:58:11 -05:00
Scott Lahteine
722aba77f3 Fix LIN_ADVANCE + SWITCHING_EXTRUDER stepper directions (#10656) 2018-05-09 14:36:09 -05:00
Scott Lahteine
a225d2e99e Fix compilation with UBL and Arc/Bézier
Fix #10660
2018-05-09 00:40:37 -05:00
Scott Lahteine
6d9ec1852a Fix compilation of say_units
Fixes #10663
2018-05-09 00:30:29 -05:00
Scott Lahteine
19f189b4e5 Add UBL support for G2/G3 and G5 (#10648) 2018-05-08 11:10:45 -05:00
Scott Lahteine
2cdaf76c40 Merge pull request #10651 from thinkyhead/bf2_junction_deviation
[2.0.x] Junction Deviation
2018-05-08 11:09:01 -05:00
Scott Lahteine
4c663b0216 Add JUNCTION_DEVIATION to example configs 2018-05-08 10:08:54 -05:00
Scott Lahteine
4d4bf7897d Junction Deviation jerk limiting option 2018-05-08 10:08:54 -05:00
Scott Lahteine
0436e16fb2 Apply shorthand Assembler macros 2018-05-08 10:08:54 -05:00
Scott Lahteine
d1b619be52 Standardize some hexadecimals 2018-05-08 09:19:18 -05:00
Scott Lahteine
ec05408453 Add 3-frame fan animation to bitmaps (#10654) 2018-05-08 09:06:01 -05:00
Scott Lahteine
55f1f8446b Show correct current units in M503 2018-05-08 06:29:53 -05:00
Giuliano
4e16e699c1 Fix sanity checks for dual axes (#10633) 2018-05-07 03:34:26 -05:00
Scott Lahteine
a1fab8336e Fix abort of SD printing 2018-05-07 02:52:26 -05:00
Scott Lahteine
e978e6e782 [2.0.x] Arrange LCD options by type (#10630) 2018-05-06 19:16:55 -05:00
Scott Lahteine
8c5bc77fb9 Fix the sanity-check for config versions 2018-05-06 09:37:00 -05:00
Scott Lahteine
1f11b0f612 Fully init planner sync block 2018-05-06 08:16:54 -05:00
Scott Lahteine
f30241bda5 Merge pull request #10614 from thinkyhead/bf2_synced_planner_set_position
[2.0.x] Improve sync of planner / stepper position, asynchronous G92
2018-05-06 03:10:43 -05:00
Scott Lahteine
840ff60952 Bring some configs up to date 2018-05-06 02:42:27 -05:00
Phr3d13
71cd681473 Add Geeetech i3 Pro C / W examples (#10626)
Added base example configs for Geeetech's Pro C and Pro W machines.
2018-05-06 02:07:54 -05:00
Scott Lahteine
62e7a9c671 Fix up fwretract handling 2018-05-06 01:24:14 -05:00
Scott Lahteine
bfe223e120 Adjust usage of stepper.synchronize 2018-05-06 01:24:14 -05:00
Scott Lahteine
af1950a63e Improve sync of stepper positions 2018-05-06 01:24:14 -05:00
Scott Lahteine
0c23792344 Apply int32_t to stepper 2018-05-05 18:21:03 -05:00
Roxy-3D
c2c02bdc67 Change Max7219 coordinates to traditional (X,Y) 2018-05-05 16:08:54 -05:00
Scott Lahteine
b337698f96 Additional patch for no heated bed 2018-05-04 00:15:37 -05:00
Scott Lahteine
0125e009d3 Fix Travis testing of jp-kana 2018-05-02 23:52:22 -05:00
Scott Lahteine
76da6cc544 Fix Ender 2 build volume 2018-05-02 19:03:29 -05:00
Scott Lahteine
d10cb46783 Merge pull request #10595 from nightdemonx/bugfix-2.0.x
[2.0.x] Add thermocouple with AD8495 support
2018-05-02 09:05:34 -05:00
Scott Lahteine
81b632c255 Additional temp-oriented improvements 2018-05-02 08:43:22 -05:00
nightdemonx
e911635fb1 Add thermocouple with AD8495 support 2018-05-02 08:43:16 -05:00
Scott Lahteine
00e86f1c2d Add Velleman RGB-LED strip support to K8400 2018-05-02 08:10:48 -05:00
Bob-the-Kuhn
410b023b50 [2.0.x] Add Viki support to RAMPS_FD_V1 (DUE) (#10598) 2018-05-02 07:54:06 -05:00
Scott Lahteine
fcc5baef52 Merge pull request #10589 from thinkyhead/bf2_lcd_bed_leveling_abl
[2.0.x] Sub-menu for ABL with LCD_BED_LEVELING
2018-05-02 06:22:42 -05:00
Scott Lahteine
b7e938a9fb LCD_BED_LEVELING enables a sub-menu for ABL 2018-05-01 07:13:56 -05:00
Scott Lahteine
a90d99c27c Rename float32 => float52, etc. 2018-05-01 07:08:47 -05:00
Scott Lahteine
d7b699ec34 Fewer includes of vector_3.h 2018-05-01 07:05:18 -05:00
thisiskeithb
9312636ee4 Ender-3 config files (#10585) 2018-05-01 06:44:50 -05:00
Scott Lahteine
05fca752d6 Clean up autostart handling 2018-05-01 01:35:57 -05:00
Scott Lahteine
c87b0e21be Add units to probe speed comments 2018-04-30 23:50:28 -05:00
Scott Lahteine
2c1205d8b1 Improve debug of homing move feedrate 2018-04-30 23:49:51 -05:00
Scott Lahteine
c8e4b7c8a6 Fix XY homing move away rate 2018-04-30 23:49:07 -05:00
Scott Lahteine
05c33833e7 [2.0.x] Add NO_LCD_MENUS option (#10582) 2018-04-30 21:16:31 -05:00
Scott Lahteine
524cc392f4 Fix sd_status comparison
Co-Authored-By: perkmeister <perkmeister@users.noreply.github.com>
2018-04-30 21:09:50 -05:00
MagoKimbra
1f92b9a4ed Fix do_probe_move with fr_mm_s (#10576) 2018-04-30 16:28:20 -05:00
Scott Lahteine
582dc7ef97 Add build notes to README 2018-04-30 05:01:29 -05:00
Scott Lahteine
a73cece360 Fix utility.cpp for DEBUG_LEVELING_FEATURE
As mentioned in https://github.com/MarlinFirmware/Marlin/issues/9429#issuecomment-385305597

Co-Authored-By: Jack Bradach <jack@bradach.net>
2018-04-30 03:40:50 -05:00
Scott Lahteine
4dfc011d86 Fix homing with probe feedrates 2018-04-30 03:35:07 -05:00
Scott Lahteine
59fda986ea Allow Z_AFTER_PROBING to be 0 2018-04-30 03:25:47 -05:00
Scott Lahteine
63e4afc910 Do rounding in integer (instead of FIXFLOAT)
Co-Authored-By: Bob-the-Kuhn <bob-the-kuhn@users.noreply.github.com>
2018-04-29 19:33:26 -05:00
Scott Lahteine
616651ff23 Add sanity check for LED_CONTROL_MENU
Addressing #10569
2018-04-29 18:34:57 -05:00
Scott Lahteine
9e0d99c0c6 Round all floats in string conversion functions (#10566) 2018-04-29 00:51:36 -05:00
Scott Lahteine
3f68203324 Modify FastIO error message 2018-04-28 20:27:36 -05:00
Scott Lahteine
1dab44213a Fix the TMC26X initializer CS pin argument
From #10531

Co-Authored-By: chriscg9 <chriscg9@users.noreply.github.com>
2018-04-28 12:02:45 -05:00
Scott Lahteine
cd08f01bb4 Fix M421 comment in gcode.h 2018-04-28 11:16:52 -05:00
Scott Lahteine
7546f87949 Allow a home bump of 0 when homing Z with probe 2018-04-28 10:26:31 -05:00
Scott Lahteine
d470a1234f Fix ENABLED/DISABLED for DUE
…and any other platforms where `false`/`true` are defined as `0x0`/`0x1`.

This fixes issue #10550.
2018-04-28 10:12:37 -05:00
Scott Lahteine
683dc24e0f When homing with Z probe bump at Z_PROBE_SPEED_SLOW 2018-04-28 08:50:23 -05:00
Scott Lahteine
8db7fb226a Fix M420 C for UBL 2018-04-28 08:14:20 -05:00
Scott Lahteine
ed8d2bc225 Clean up some endstop inverting examples 2018-04-28 08:04:43 -05:00
Scott Lahteine
c7305be4d2 Fix some endstop inverting settings 2018-04-28 08:04:33 -05:00
Bob-the-Kuhn
f973ff49ae [2.0.x] MKS SBASE - Separate SD_DETECT for LCD and on-board SD cards (#10557) 2018-04-28 07:24:07 -05:00
Scott Lahteine
5ac226aa93 Further cleanup of inline delays 2018-04-27 19:22:22 -05:00
Marcio Teixeira
724e9f56c8 Removed "const" to match parser. (#10548) 2018-04-27 17:48:52 -05:00
Giuliano
2e1939e85c [2.0.x] report error on unsupported commands (#10553)
Raise an error when an unknown/unsupported G/M command is requires.

This will address #10546
2018-04-27 17:40:27 -05:00
Scott Lahteine
a474a7e675 Correct AVR_ATmega328_FAMILY macro
…as with #10540

Co-Authored-By: per1234 <per1234@users.noreply.github.com>
2018-04-27 03:13:46 -05:00
Scott Lahteine
f790b4bc0a Reorganize some conditionals 2018-04-27 02:23:11 -05:00
Scott Lahteine
a51ba6e3f6 Fix ABL grid bounds test for Delta/SCARA
Addressing #10538
2018-04-27 02:23:10 -05:00
Scott Lahteine
df6bc812b5 Fix disable of Z_HOMING_SENSITIVITY for HOMING_Z_WITH_PROBE
As pointed out in #10532
2018-04-27 02:23:10 -05:00
Scott Lahteine
63e0b36f8b Fix G29_RECOVER_COMMANDS typo 2018-04-27 02:23:10 -05:00
Scott Lahteine
f83361a814 Apply const to tmc_sensorless_homing 2018-04-27 02:23:10 -05:00
Scott Lahteine
212e52e485 Basic delay for Max7219 on ARM 2018-04-27 00:41:29 -05:00
Scott Lahteine
7b6e742436 Wrap delay macros in do{}while(0) 2018-04-26 18:18:23 -05:00
Karl Andersson
58ca3be1ec delayMicroseconds() cannot be called in critical section (#10535)
on the STM32 platform
2018-04-26 14:31:01 -05:00
Bob-the-Kuhn
00dfaae8df [2.0.x] Platformio - automate build & environment selection (#10503) 2018-04-26 02:42:06 -05:00
Scott Lahteine
299c4fed42 Undefine PIDTEMPBED without a bed heater 2018-04-26 01:30:10 -05:00
Scott Lahteine
456cf971af HAL FastIO cleanup and fixes 2018-04-26 00:40:16 -05:00
J.C. Nelson
5b5e322356 Set Interrupt Priorities and Grouping for STM32F103. (#10517) 2018-04-26 00:21:16 -05:00
Scott Lahteine
0e450df6a2 MKS OLED support for RUMBA
Based on #10519

Co-Authored-By: Alex <alex18881@users.noreply.github.com>
2018-04-25 23:00:44 -05:00
Scott Lahteine
2578996631 [2.0.x] Emergency parser for multiple serial ports (#10524) 2018-04-25 20:58:00 -05:00
Scott Lahteine
8cc31d1b2e Cleanup to emergency parser
Followup to #10516
2018-04-25 06:54:37 -05:00
Chris Pepper
2242b98248 [LPC176x] Emergency Parser Feature (#10516) 2018-04-25 06:44:26 -05:00
Scott Lahteine
eef0248a1c Add M420 C to adjust the whole mesh (#10522) 2018-04-25 06:43:45 -05:00
Eduardo José Tagle
c1e5ebbc1e [2.0.x] AVR: Atomic bit set and clear of upper pin ports without critical section (#10502)
* AVR: Atomic bit set and clear

The critical section can be dropped, saving 3 cycles per access. Also simplified pin toggling for all ports.
2018-04-24 13:45:43 -05:00
Marcio Teixeira
02a711c4d6 [2.0.x] Fix crash upon repeated calls to process_subcommands_now_P (#10509) 2018-04-24 13:44:22 -05:00
Scott Lahteine
a3ce8a3fcd Add sanity checks for EMERGENCY_PARSER 2018-04-24 09:24:26 -05:00
Scott Lahteine
f06c3c38b9 Fix M0_M1 with no LCD 2018-04-24 09:22:05 -05:00
Scott Lahteine
c82dd5129f Revert potentially-not-redundant UBL test
Response to #10435
2018-04-24 08:04:13 -05:00
Scott Lahteine
9789c1c719 Fix current_temperature_chamber compile error
Fix #10505
2018-04-24 07:55:58 -05:00
Eduardo José Tagle
0c428a66d9 Proper AVR preemptive interrupt handling (#10496)
Also simplify logic on all ARM-based interrupts. Now, it is REQUIRED to properly configure interrupt priority. USART should have highest priority, followed by Stepper, and then all others.
2018-04-23 22:05:07 -05:00
Scott Lahteine
f423e54f77 Strip trailing spaces 2018-04-23 18:00:43 -05:00
Scott Lahteine
8177c4334e Merge pull request #10498 from xC0000005/MalyanLCDFix
Fix overridden Malyan LCD functions
2018-04-23 17:22:43 -05:00
Scott Lahteine
cb46cb8480 Add HAS_HEATED_BED conditional (#10495) 2018-04-23 17:13:01 -05:00
Marcio Teixeira
10a25f733e Add SENSORLESS_HOMING to Archim 2.0 (#10500) 2018-04-23 17:11:33 -05:00
xC0000005
24d23ce49b Fix function definitions for Malyan LCD 2018-04-23 16:56:37 -05:00
xC0000005
73022d3119 Add a PlatformIO environment for Malyan M200 2018-04-23 16:25:49 -05:00
Alexey Shvetsov
ad58b626a3 Fix pin mappings for Viki2 on Azteeg X5 GT (#10487) 2018-04-22 18:41:30 -05:00
Scott Lahteine
9e07df5c1b Extra options for LEVEL_BED_CORNERS (#10483) 2018-04-22 02:50:48 -05:00
Scott Lahteine
1c3d49afe0 Fix G28 with Z_AFTER_PROBING
Fix #10476
2018-04-22 01:23:26 -05:00
Scott Lahteine
b6747c742a Cleanup AZTEEG_X5_GT pins for VIKI
What should the SD detect and SDSS pins be? Followup soon on #8138
2018-04-22 01:19:43 -05:00
Scott Lahteine
023385ca59 Merge pull request #10479 from thinkyhead/bf2_creality_power_loss_resume
[2.0.x] Creality3D Power-Loss Recovery
2018-04-22 00:17:44 -05:00
Scott Lahteine
3396671011 [2.0.x] Reset LCD status to fallbacks (#10470)
* Remove obsolete strings
* Tweak some static consts
* Reset LCD status to fallbacks
2018-04-22 00:16:30 -05:00
Scott Lahteine
d58450c82a Russian language update
Co-Authored-By: anton-piliugin <34044202+anton-piliugin@users.noreply.github.com>
2018-04-22 00:14:20 -05:00
Scott Lahteine
11ab017dd0 Creality3D Power-Loss Recovery 2018-04-21 21:56:50 -05:00
Scott Lahteine
594d6f9efd Add POWER_LOSS_RECOVERY to example configs 2018-04-21 19:40:46 -05:00
Scott Lahteine
7dcd0a1cff Add R parameter to G28 to specify pre-raise 2018-04-21 19:07:48 -05:00
Scott Lahteine
2f4b4d6076 Add Stopwatch::resume method 2018-04-21 19:06:05 -05:00
Scott Lahteine
a90cbc6339 [2.0.x] Wait for bed heaters between probing (#10472) 2018-04-21 15:43:21 -05:00
Scott Lahteine
a0dac95d25 Merge pull request #10460 from thinkyhead/bf2_trigorilla_14
[2.0.x] Split TRIGORILLA into 1.3 and 1.4
2018-04-20 18:25:40 -05:00
Scott Lahteine
f0cbf3d432 Correction to sanity check 2018-04-20 18:16:27 -05:00
Scott Lahteine
d8a8eec6ea Add THERMAL_PROTECTION capability
Based on #10465

In response to `M115` the firmware reports if Thermal Protection is enabled (1) or not (0). This information can be used by software such as OctoPrint (more precisely the Printer Safety Check plugin) to warn users when Thermal Protection is not enabled in the firmware.

Co-Authored-By: andrivet <sebastien@advtools.com>
2018-04-20 16:50:50 -05:00
Scott Lahteine
186d71b361 Complete CREALITY_ENDER revert 2018-04-20 16:17:25 -05:00
Scott Lahteine
11ef432476 Match Makefile to boards.h 2018-04-20 16:13:50 -05:00
Scott Lahteine
2be5fe5ddf Split TRIGORILLA into 1.3 and 1.4 2018-04-20 16:12:25 -05:00
Scott Lahteine
80e29492c6 TRIGORILLA => TRIGORILLA_13 2018-04-20 16:12:25 -05:00
Scott Lahteine
dea686cf55 Define short pin names in fastio for STM32 (#10461) 2018-04-20 14:54:35 -05:00
Scott Lahteine
65a6a86d19 Don't report point 0 in MBL G29 2018-04-20 13:12:50 -05:00
Scott Lahteine
3cf7bac129 Merge pull request #10450 from marcio-ao/pr-2.0.x-advanced-g29-recovery-and-retry
[2.0.x] Advanced G29 probe fail recovery and retry
2018-04-19 21:22:06 -05:00
Scott Lahteine
78ea4871f9 Fix up enqueue now functions
…and apply to MALYAN_LCD.
2018-04-19 19:45:53 -05:00
Scott Lahteine
6faa93d787 Add G29_RETRY_AND_RECOVER to example configs 2018-04-19 19:45:53 -05:00
Marcio Teixeira
5cc7916e69 Add G29_RETRY_AND_RECOVER feature
- Add an option to retry G29, optionally executing a G-code procedure after each failed probe.
2018-04-19 19:45:53 -05:00
Roxy-3D
23635c2b64 Update ubl_motion.cpp
Restore necessary and needed loop termination logic.
2018-04-19 12:04:35 -05:00
Scott Lahteine
f36ddef9a7 Merge pull request #10417 from yhfudev/fix-fonts-merge-sk-cz 2018-04-19 08:51:32 -05:00
Scott Lahteine
dde941cac8 Updates to font scripts and fonts documentation 2018-04-19 06:19:47 -05:00
Scott Lahteine
8ca3c43d73 Updated language_data spacing, headers 2018-04-19 06:16:16 -05:00
Scott Lahteine
90765b1f72 Remove "find" lines from .travis.yml 2018-04-19 06:16:16 -05:00
Scott Lahteine
184c077c58 Correct includes (u8g.h) and spelling 2018-04-19 06:16:16 -05:00
Yunhui Fu
627348b46c move the TALL_FONT_CORRECTION to language files 2018-04-19 06:16:16 -05:00
Yunhui Fu
77bc653524 Use X windows 6x12 bitmap font to support western languages. 2018-04-19 06:16:15 -05:00
Scott Lahteine
a51b61b38c Remove old and obsolete .fon files 2018-04-19 06:15:46 -05:00
Scott Lahteine
9d06d9edc8 Fix up fonts scripts 2018-04-19 06:15:46 -05:00
Yunhui Fu
d81649b365 Update language data for sk. 2018-04-19 06:15:19 -05:00
Yunhui Fu
41839746a2 Removed unused macros 2018-04-19 06:15:19 -05:00
Yunhui Fu
3f71e951f1 Merge SK,CZ fonts to buildroot/share/fonts/ISO10646-0-2.bdf 2018-04-19 06:15:19 -05:00
Scott Lahteine
4f184ba5da [2.0.x] Add BOARD_MKS_BASE_15 with digital micro-stepping (#10454)
* Add BOARD_MKS_BASE_15 with digital micro-stepping
* Rename MKS_13 to MKS_GEN_13
2018-04-18 22:58:43 -05:00
Scott Lahteine
ad6baa5c9d Fix for UBL set_bed_leveling_enabled 2018-04-18 00:14:48 -05:00
Scott Lahteine
df2f24617b Use 0 as the bed position (not Z_MIN_POS) 2018-04-17 20:32:56 -05:00
Karl Andersson
428c54f2ad [2.0.x] HAL for STM32F4 (#10434) 2018-04-17 17:33:29 -05:00
Chris Pepper
744bcaee61 [2.0.x] Fix problems compiling with Arduino IDE (#10441)
* Fix problems compiling u8glib utf8 support on Arduino
* Change header in auto-generated font data
* Change include in font gen scripts
2018-04-17 17:28:55 -05:00
GMagician
20772492aa Fix compile warnings in AVR fastio.h (#10440) 2018-04-17 17:26:57 -05:00
Scott Lahteine
f57a008c58 Merge pull request #10443 from thinkyhead/bf2_fix_and_improve
[2.0.x] Improve UBL mesh report, M420 V T, M421 N, and…
2018-04-17 16:59:31 -05:00
Scott Lahteine
89b1580587 Fix compile error in tmc_status 2018-04-17 16:13:28 -05:00
Scott Lahteine
52c024e260 M221 with no parameters report flow 2018-04-17 16:06:25 -05:00
Scott Lahteine
01b01f6dfd Tweak fwretract.retract debug, comments 2018-04-17 16:05:25 -05:00
Scott Lahteine
e4acd2c40e One fewer compare in _lcd_move_xyz 2018-04-17 16:03:15 -05:00
Scott Lahteine
e05c825a05 Update position for UBL non-segmented activate/deactivate 2018-04-17 16:02:02 -05:00
Scott Lahteine
d462be6de6 Try FIXFLOAT rounding based on sign 2018-04-17 15:59:04 -05:00
Scott Lahteine
39c6f65ce7 Ignore LCD_BED_LEVELING with UBL 2018-04-17 15:57:44 -05:00
Scott Lahteine
0746aff595 Improve UBL mesh report. Add M420 T, M421 N 2018-04-17 15:52:56 -05:00
Scott Lahteine
3c826e5d05 Prevent delay when power is already on
Fix #10410
2018-04-17 04:34:31 -05:00
Scott Lahteine
5a064d0e94 Fix bug in planner.set_position_mm 2018-04-16 04:19:58 -05:00
Scott Lahteine
0945674ba2 Use H0 by default with UBL_MESH_EDIT_MOVES_Z (#10428) 2018-04-15 20:49:14 -05:00
Scott Lahteine
6cb83758d7 Fix Brazilian Portuguese language duplicates 2018-04-15 19:18:08 -05:00
Scott Lahteine
8f57e098de Use end-of-line comments in planner.cpp 2018-04-15 19:02:30 -05:00
Scott Lahteine
6c7a17dba6 Abort SD printing more safely (#10407)
Allow the current command to complete when aborting an SD print, otherwise some commands (G28, G29, etc.) will cause trouble.
2018-04-15 18:27:54 -05:00
Chris Pepper
c9aed73987 Fix missed includes from HAL macro patch (#10416) 2018-04-15 18:27:34 -05:00
Scott Lahteine
74f4eb8312 Drop utf8 tweaks in build files 2018-04-15 14:48:47 -05:00
Scott Lahteine
9f8a96fb8a Brazilian Portuguese update (#10409) 2018-04-15 13:13:46 -05:00
Yunhui Fu
93273a4c9e Fix u8g.h search path error (#10419)
Support env MARLIN_LANGS for user select generated language, and update doc; update script to generate dogm_font_data_ISO10646_1.h automatically.
2018-04-15 13:12:02 -05:00
Scott Lahteine
584735c994 u8g.h => clib/u8g.h 2018-04-14 12:26:01 -05:00
Scott Lahteine
29dda871cb Patch "upload_disk" to make python happy 2018-04-13 22:27:08 -05:00
Scott Lahteine
36b97bde9f clear_block_buffer, kill_current_block in quick_stop 2018-04-13 22:04:53 -05:00
Scott Lahteine
99282a46e9 Make sure ABL (manual) starts close to the bed 2018-04-13 20:19:30 -05:00
Roxy-3D
21f13f9e57 Stow Probe at end of G29 J3 2018-04-13 14:46:47 -05:00
KangDroid
6c535081ec [2.0.x] Add optional menu item to toggle software endstops (#10389) 2018-04-13 00:24:09 -05:00
Scott Lahteine
3c5c6d478a Prettify process_parsed_command 2018-04-13 00:23:11 -05:00
Scott Lahteine
0535ebc4d2 MESH_BED_LEVELING before PROBE_MANUALLY 2018-04-12 22:45:52 -05:00
Scott Lahteine
bb7064cc30 Tweak MBL move to bed code 2018-04-12 22:43:02 -05:00
Chris Pepper
cc6d41e1d3 Use a macro for HAL header redirection (#10380) 2018-04-12 20:25:08 -05:00
Luc Van Daele
12785583d0 [2.0.x] G33 MIN_STEPS_PER_SEGMENT (#10386) 2018-04-12 20:22:29 -05:00
Yunhui Fu
c96412a78f [2.0.x] UTF-8 language translation support (#10213) 2018-04-12 20:14:01 -05:00
Scott Lahteine
daa712455b Make sure MBL starts close to the bed
Fix #10390
2018-04-12 19:36:37 -05:00
Scott Lahteine
4c8751727a Fix M118 parameter handling
Fix #10388
2018-04-12 19:10:04 -05:00
Scott Lahteine
3bc179a16f Compress/update comments ubl_motion
…to fit more code on the screen and correct outdated commentary contrasting ABL.
2018-04-12 18:07:19 -05:00
Luc Van Daele
646aa20b43 Overhaul of G33 Delta Calibration (#8822) 2018-04-11 21:14:48 -05:00
Luc Van Daele
ac2e0afb62 Low Point for delta calibration (#10363) 2018-04-11 18:59:46 -05:00
Eduardo José Tagle
57a899a412 [2.0.x] 6th-order jerk-controlled motion planning in real-time for AVR (#10373) 2018-04-11 18:13:42 -05:00
Scott Lahteine
5676b187b4 Move etc/udev to buildroot/etc
Followup to #10375. This is the appropriate place for any system etc folder additions.
2018-04-11 17:38:14 -05:00
Bob-the-Kuhn
44a03ecfc9 Add Linux compatibility for Arduino boards (#10375) 2018-04-11 14:43:28 -05:00
Bob-the-Kuhn
85014cd132 [2.0.x] LPC1768 - automatic selection of upload disk (#10374) 2018-04-11 14:41:16 -05:00
Scott Lahteine
8669dba5e6 Merge pull request #10172 from noingwhat/2.0.x-Filament-Change-Acceleration
[2.0.x] Filament load/unload add acceleration for Bowden
2018-04-11 00:39:11 -05:00
Scott Lahteine
472ab0cc24 Tweak RAMPS SDSS pins 2018-04-10 16:47:48 -05:00
LichtiMC
b94c8defee Provide additional information about SMART-RAMPS board (#10353) 2018-04-10 04:02:55 -05:00
Scott Lahteine
6f8e228880 Add RESET_PIN to pins_RAMPS_SMART.h 2018-04-10 03:34:20 -05:00
Sean
2d9b0a66fe Add Filament Change accelerations 2018-04-09 23:57:27 -05:00
Scott Lahteine
71d3523254 Add Filament Change accelerations to example configs 2018-04-09 23:57:23 -05:00
Scott Lahteine
dcb1f1f452 Merge pull request #10351 from thinkyhead/bf2_z_probe_low_point
[2.0.x] Z_PROBE_LOW_POINT to prevent probe/bed damage
2018-04-09 18:24:50 -05:00
Scott Lahteine
8b8ad14178 Add Z_PROBE_LOW_POINT to prevent damage 2018-04-09 17:23:03 -05:00
Scott Lahteine
82dafbba33 Add Z_PROBE_LOW_POINT to example configs 2018-04-09 01:55:05 -05:00
Roxy-3D
a731a723e8 Better i3-2020 Z_PROBE_OFFSET_FROM_EXTRUDER 2018-04-08 21:26:36 -05:00
Roxy-3D
26cc12eaa4 Resolve corruption of Max7219 Debug LED Matrix 2018-04-08 21:26:36 -05:00
Scott Lahteine
72c15a5cc9 Add --no-track to mfnew git script 2018-04-08 06:52:29 -05:00
Scott Lahteine
dca69efc11 Update Bed PID comments 2018-04-08 06:44:47 -05:00
Scott Lahteine
56486c5c0e Apply const to manage_inactivity 2018-04-08 04:00:26 -05:00
Scott Lahteine
a6485456df Fix LIGHTWEIGHT_UI with UBL
See https://github.com/MarlinFirmware/Marlin/issues/10317#issuecomment-379100702
2018-04-08 03:24:22 -05:00
Scott Lahteine
e02fc4f1d6 Better RESTORE_LEVELING_AFTER_G28 sanity-check
As suggested by @GMagician
2018-04-08 03:24:15 -05:00
Scott Lahteine
44a697ab04 Set STM32F1 TEMP_TIMER_FREQUENCY to 1K
Responding to https://github.com/MarlinFirmware/Marlin/pull/8833#issuecomment-379426803
2018-04-08 01:08:05 -05:00
Scott Lahteine
cec6e19099 Add RepRapPro Huxley configuration
Based on #10343 by @indazoo
2018-04-08 00:37:18 -05:00
Scott Lahteine
9ff4e9e1e6 Patch _IS_HW_SPI so defined() works 2018-04-07 23:29:00 -05:00
Scott Lahteine
cea398849e Tweak to gcode_line_error/return 2018-04-07 21:25:49 -05:00
Scott Lahteine
4382f2124d Merge pull request #10337 from ejtagle/bugfix-2.0.x
[2.0.x] 6th-order jerk-controlled motion planning in real-time
2018-04-07 21:07:59 -05:00
etagle
a29adde5c0 Implement BEZIER_JERK_CONTROL
Enable 6th-order jerk-controlled motion planning in real-time.
Only for 32bit MCUs. (AVR simply does not have enough processing power for this!)
2018-04-07 21:03:28 -05:00
Scott Lahteine
5932df7ea1 Add BEZIER_JERK_CONTROL to example configs 2018-04-07 21:03:22 -05:00
Scott Lahteine
93524c1994 Merge pull request #10045 from Lenbok/2.0.x-monitor_chamber_temperature_and_auto_fan
[2.0.x] Monitor chamber temperature, with auto fan control.
2018-04-06 23:52:38 -05:00
Lenbok
0e8242180d Chamber temperature monitoring and auto fan control.
This is an initial cut for feedback, updated for 2.0.x.

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:06 -05:00
Scott Lahteine
5b3bda1c16 Add Chamber Temp options to example configs 2018-04-06 23:09:06 -05:00
Bob-the-Kuhn
acda4ecb20 Fix DUE Trinamic SW/HW SPI sanity check (#10336) 2018-04-06 22:22:30 -05:00
Bob-the-Kuhn
ab715c70d1 TMC SPI sanity-check and pins debugging (#10324) 2018-04-06 20:24:54 -05:00
Scott Lahteine
4dc7e64789 Update Slovak language
Based on #10313 by @rmoravcik
2018-04-06 20:23:20 -05:00
Scott Lahteine
0dccf9ea6a Merge pull request #10318 from marcio-ao/pr-einsy-retro-tmc2130
[2.0.x] Fix TMC2130 DIAG1 active high, Einsy Retro
2018-04-06 20:18:34 -05:00
Marcio Teixeira
2efc072fdb Clear progress bar on completion (#10333)
Fix #10330
2018-04-06 20:13:19 -05:00
GMagician
6ce060cfe0 [2.0.x] Update language_it.h (#10322)
Updated to #10296
2018-04-06 20:07:46 -05:00
Marcio Teixeira
9356cf648f Added support for Einsy Retro
http://reprap.org/wiki/EinsyRetro
2018-04-06 19:48:46 -05:00
Marcio Teixeira
75037493fa Default active low for TMC2130 DIAG1 (#10294)
- Added sanity check to inform users to set the endstop to inverting
  when using SENSORLESS_HOMING
2018-04-06 19:48:46 -05:00
Scott Lahteine
e8e60263c8 Scale feedrate (mm/s to deg/s) for SCARA 2018-04-06 19:47:48 -05:00
Scott Lahteine
051303ad42 Russian language updates
From #10311 by @anton-piliugin
2018-04-05 00:46:46 -05:00
Scott Lahteine
386bc71d57 Merge pull request #10173 from noingwhat/2.0.x-Continuous-Purge
[2.0.x] Continuous Purge
2018-04-04 22:50:27 -05:00
Sean
2fa0a73c2c Implement filament change continuous purge 2018-04-04 20:57:51 -05:00
Scott Lahteine
d133ad61f3 Add continuous purge to example configs 2018-04-04 20:56:18 -05:00
Scott Lahteine
4b25543633 Backtrace formatting cleanup 2018-04-04 20:24:39 -05:00
Bob-the-Kuhn
902c885782 Switch to TMC2130 compatible hardware SPI & misc (#10299) 2018-04-04 20:13:27 -05:00
Scott Lahteine
1c36606886 Fix MSG_HEATING_FAILED_LCD_BED macro evaluation 2018-04-04 19:01:22 -05:00
Scott Lahteine
fe91514395 MBL should add z_offset regardless of fade (#10308) 2018-04-04 18:57:33 -05:00
Marcio Teixeira
8bc93c6f2b Improve heating/cooling LCD messages (#10293) 2018-04-04 18:29:27 -05:00
GMagician
21a47b50f4 Additional tool-change fixes (#10304)
Followup to #10257
2018-04-04 17:06:33 -05:00
Scott Lahteine
e6042a7c52 Tweak platformio debug_server options 2018-04-02 22:26:11 -05:00
Scott Lahteine
f68b4265a6 Fix a probe pin definition 2018-04-02 21:52:34 -05:00
Yunhui Fu
a019eebdd6 support utf8 unicode for test language (#10220) 2018-04-02 20:03:25 -05:00
Scott Lahteine
656219d867 Add configs for Creality CR-8 2018-04-02 20:02:04 -05:00
Karl Andersson
7cbbc2af7a [2.0.x] Optional heater signal inversion (#10260) 2018-04-02 19:37:41 -05:00
Marcio Teixeira
4d1a61335c [2.0.x] Fixed Makefile for Marlin 2.0 (#10255) (#10281)
* Fixed Makefile for Marlin 2.0 (#10255)

- Makefile now supports the new Marlin 2.0 directory hierarchy.
- RELOC_WORKAROUND is now automatically enabled based on avr-gcc version.

* Makefile support for U8glib and TMC2130Stepper

- Updated paths for oliver's U8glib 1.19.1
- Added option for teemuatlut's TMC2130Stepper 2.2.1
2018-04-02 19:36:27 -05:00
Scott Lahteine
241996d5d6 Merge pull request #10257 from thinkyhead/bf2_tool_change_debug 2018-04-02 19:33:45 -05:00
Scott Lahteine
4c79dc1093 Fix a Serial+EEPROM compile error
Fixes #10278
2018-04-02 03:11:20 -05:00
Scott Lahteine
93305a2d5e Fix some spellings 2018-04-02 03:03:37 -05:00
Scott Lahteine
adcb87f0db Z Endstop Servo => Z Probe Servo 2018-04-01 23:54:21 -05:00
Scott Lahteine
e3bbd70664 Merge pull request #10276 from thinkyhead/bf2_ender_4_cr_8
[2.0.x] Fix Ender 4 compilation, add more AVRs to Makefile
2018-04-01 19:01:04 -05:00
Scott Lahteine
4f0eafce8f Add more AVR boards to Makefile 2018-04-01 18:22:06 -05:00
Scott Lahteine
4a23069de9 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:22:06 -05:00
Scott Lahteine
02f0f95d40 Handle disabled HYBRID_THRESHOLD in EEPROM (#10275) 2018-04-01 16:58:37 -05:00
Scott Lahteine
9ec2c03c5b Fix likely error in retract/recover
Addressing #10200
2018-03-31 23:01:13 -05:00
Scott Lahteine
49f384a2ab Note about MKS_MINI_12864 in sanitycheck 2018-03-31 22:52:23 -05:00
Scott Lahteine
2672120a97 Do a small raise for all move-back 2018-03-31 22:43:05 -05:00
Scott Lahteine
5acccbacc1 Simplified leveling-based tool change 2018-03-31 22:43:05 -05:00
Scott Lahteine
1a75165f35 For set_z_fade_height use set_bed_leveling_enabled 2018-03-31 22:43:05 -05:00
Scott Lahteine
d1734a089a Split up tool_change for some setups 2018-03-31 22:43:05 -05:00
Scott Lahteine
a9f94f260a Some RADDS pin updates 2018-03-31 22:15:24 -05:00
Scott Lahteine
31df43212c Use lcd_printPGM_utf in more places
Fix #10256
2018-03-31 20:49:20 -05:00
Scott Lahteine
7d8a46519f Output ABC for delta stepper counts 2018-03-31 20:13:32 -05:00
Scott Lahteine
6098efcc59 Use float62 for LCD edit of Z Fade 2018-03-31 20:03:09 -05:00
Scott Lahteine
f6d13e2295 Allow Z_SAFE_HOMING sanity checks to handle floats 2018-03-31 19:01:56 -05:00
Scott Lahteine
889fd5f71f Backtrace minor cleanup 2018-03-31 18:59:36 -05:00
Scott Lahteine
53f0c7522a 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:54:01 -05:00
Scott Lahteine
ac7e97f4fe 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:07:38 -05:00
Scott Lahteine
55e9b85ad6 Clear the "Wait for user" message set by M0/M1
See https://github.com/MarlinFirmware/Marlin/issues/10246#issuecomment-377146936
2018-03-29 18:38:12 -05:00
Scott Lahteine
b6a55f0891 Temporary workaround for tool-change compile error
Pending a more complete solution to tool-change Z deviation.
2018-03-29 17:55:57 -05:00
Scott Lahteine
b852781eba Fix BLTOUCH compile error
Followup to #10250
2018-03-29 17:55:57 -05:00
AnHardt
c1f58a238d No delay in sensorless quick homing (#10254) 2018-03-29 16:10:20 -05:00
Scott Lahteine
1be955e52a Alert users about low Z jerk values 2018-03-28 23:08:33 -05:00
Scott Lahteine
9e4c037cef Wait before turning off PRINTER_EVENT_LEDS at print end (#10248) 2018-03-28 22:59:28 -05:00
Scott Lahteine
568ae094f4 Merge pull request #10250 from thinkyhead/bf2_homing_move_adjustments
[2.0.x] Improvements to general and delta homing
2018-03-28 22:59:09 -05:00
Scott Lahteine
8b7381b626 Clear sensorless homing in home_delta after first move-to-top 2018-03-28 22:01:42 -05:00
Scott Lahteine
dbe2b6f7b0 Do moves towards endstops differently in do_homing_move 2018-03-28 22:01:42 -05:00
Scott Lahteine
d573a2cada Fix pins_RAMPS.h for 32-bit platforms
Followup to 436e5b7
2018-03-28 22:01:20 -05:00
Scott Lahteine
f04be05a14 "G28 Z Forbidden" => "Home XY first"
Some languages will need to be updated for proper phrasing
2018-03-28 21:51:15 -05:00
Scott Lahteine
a97624dd81 Allow pinsDebug "Analog in" long int 2018-03-28 20:40:28 -05:00
Scott Lahteine
7b8bb2519e Fix gcode_line_error call
Followup to 3007eee
2018-03-28 20:29:41 -05:00
Scott Lahteine
aa20b3ef7c Fix linear/3-point manual leveling buffer overrun
Fixes #10137
2018-03-28 18:41:22 -05:00
Alexey Shvetsov
cbdc78ec0f Fix STM32 compilation with PlatformIO (#10245) 2018-03-28 18:35:20 -04:00
Scott Lahteine
9d2ea5d64b Undo German changes
See 941e9bd329 (commitcomment-28262166)
2018-03-28 17:05:14 -05:00
Scott Lahteine
2bc7f416ee Fix missing comma in tmc_sgt
Fixes #10209
2018-03-28 17:05:14 -05:00
Scott Lahteine
38378cd0e8 M218 with DELTA needs planner.h
Fix #10232
2018-03-28 17:05:14 -05:00
Scott Lahteine
3007eee22e Require a checksum when writing to SD
From #10204 by @adriancuzman
2018-03-28 17:05:13 -05:00
Bob-the-Kuhn
9656a82609 Fix G53/CNC_COORDINATE_SYSTEMS compilation, Travis testing (#10227) 2018-03-28 14:14:39 -04:00
Eduardo José Tagle
749f19e502 [2.0.x] Move backtrace to a shared location (#10237)
- And implement the `backtrace()` function call
2018-03-28 14:13:20 -04:00
xC0000005
7dc256432f Restore STM32F1 series to working order. (#10229)
The `_O2` attribute is no longer needed on the malyanlcd function, and the macros have broken timer numbers - reset this to a function to return the right device. Also fix the bit order cast in SPI.
2018-03-28 14:07:52 -04:00
Rob Power
d1f14202a9 [2.0.x] NANODLP_Z_SYNC requires linear axes (#10240) 2018-03-28 14:03:34 -04:00
Scott Lahteine
b287560258 Fix say_M603 2018-03-28 12:54:58 -05:00
Scott Lahteine
436e5b7ea3 Apply spacing in pins files 2018-03-28 12:52:08 -05:00
Scott Lahteine
4d533b9baa Update bq Hephestos 2 probe offset
From #10234 by @thopiekar
2018-03-27 21:05:03 -05:00
Bob-the-Kuhn
78df07ac71 Merge pull request #10221 from ejtagle/bugfix-2.0.x
[2.0.x] DUE: Several fixes to the backtracker
2018-03-27 03:26:10 -05:00
etagle
8934a2c49b Added some missing Thumb instructions to the traceback follower, so now it is able to traceback through switch() statements 2018-03-27 04:30:38 -03:00
etagle
328edea03a Several fixes to the backtracer. Tested ant it works 2018-03-26 03:42:54 -03:00
Scott Lahteine
aa6dacbbdf German update
Based on #10216
2018-03-25 15:21:13 -04:00
Yunhui Fu
8322a79bb9 update the UTF-8 C strings for Chinsee languages, for Simplified and Traditional Chinese (#10211) 2018-03-25 12:37:54 -04:00
ejtagle
9a24c0ae3f Tons of fixes to the backtracker code, and also added an extra backtracker that does not require unwind tables to work and it is used if unwind tables are absent 2018-03-25 00:52:04 -03:00
Scott Lahteine
a891af2f7a Enforce minimum TMC2130 / TMC2208 libs 2018-03-24 15:57:22 -04:00
Bob-the-Kuhn
75b381cd28 Merge pull request #10203 from Bob-the-Kuhn/sanity-check-fix
[2.0.x] Fix TMC sanity checks that always fail
2018-03-24 14:06:34 -05:00
Bob-the-Kuhn
433e984d1f move comment to fix compile error 2018-03-24 13:44:54 -05:00
Bob-the-Kuhn
f7857ac8a8 Merge pull request #10185 from ejtagle/bugfix-2.0.x
[2.0.x] DUE debugging: Solve WDT startup delay, add traceback & crash report uses programming port baud rate
2018-03-24 13:32:34 -05:00
Bob-the-Kuhn
b756a15aba another needs to be deleted 2018-03-24 10:22:03 -05:00
Bob-the-Kuhn
50c81ebe0d remove check that always fails 2018-03-24 09:36:50 -05:00
Scott Lahteine
3ac135cef3 Enforce minimum TMC2130 / TMC2208 libs 2018-03-23 18:05:23 -04:00
Bob-the-Kuhn
8870f9b1da Fix M503 helper functions following TMC updates (#10197) 2018-03-23 16:43:43 -05:00
Scott Lahteine
bb7236a750 Z correction on tool-change for all HAS_MESH (#10199) 2018-03-23 13:12:00 -05:00
Bob-the-Kuhn
81d68b2180 Merge pull request #10195 from Bob-the-Kuhn/DUE-hw-SPI-to-mode-0
[2.0.x] DUE - change hardware SPI to mode 0change to mode 0
2018-03-23 09:46:26 -05:00
Bob-the-Kuhn
509227fd80 change to mode 0 2018-03-23 09:37:58 -05:00
etagle
c3b23974bd Added detection of case when no unwind tables are available 2018-03-23 05:22:45 -03:00
Scott Lahteine
ea1a83ce41 Use pgm_read_ptr for tables of pointers 2018-03-23 02:16:35 -04:00
Scott Lahteine
9da0797e29 Fix EEPROM size of tmc_hybrid_threshold
Followup to #10102
2018-03-23 02:08:35 -04:00
teemuatlut
daf643e1ce [2.0.x] TMC: Match axis label order (#10188) 2018-03-23 01:04:12 -05:00
Roxy-3D
1628a9e864 make data declarations consistent 2018-03-22 19:25:28 -05:00
etagle
b210bdf032 Now the Crash reporter uses the configured BAUDRATE to send the report through the Programming port. And also shows the traceback of functions as discussed. For that latest feature to work, you need to compile the project with -funwind-tables and -mpoke-function-name compiler flags 2018-03-22 03:34:03 -03:00
etagle
c5730cf711 As Bob-The-Khun suggested, resetting the USB peripheral solves the huge startup delays that happen when a WDT reset happens and we are connected through the native port 2018-03-22 03:31:25 -03:00
Scott Lahteine
1cb810ff1c [2.0.x] Automatically reset stepper timeout (#10179)
* 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.

* blocks_queued => has_blocks_queued
2018-03-21 19:30:06 -05:00
Eduardo José Tagle
97e8a6ebd9 Various fixes for DUE... (#10152)
- Watchdog reset during SD Card initialization.
- Move `DebugMonitor` to `DebugMonitor_Due.cpp`.
- Since the watchdog is enabled on boot do extra resets during init.
- Have `thermalManager` do watchdog reset before its ISR starts to prevent reset.
- Ensure that timers are stopped before reprogramming them to address tone issues.
- Improve SAM3XE reset when reflashed through the native port.
2018-03-21 19:04:45 -05:00
Roxy-3D
c3c264978f correct truncated comment 2018-03-21 16:54:45 -05:00
Scott Lahteine
9fd1016bb1 Trust the bootloader to clear globals 2018-03-21 05:49:39 -05:00
Scott Lahteine
045ee28c50 Tweaks to M915 2018-03-21 05:15:25 -05:00
Scott Lahteine
987597532c For MK2_MULTIPLEXER undef DISABLE_INACTIVE_EXTRUDER
Fix #10098
2018-03-21 04:34:50 -05:00
Scott Lahteine
ff304d3767 Allow G53 to go back to native space 2018-03-21 01:38:25 -05:00
Scott Lahteine
bc45fb6b13 Tweak use of move_z_after_probing 2018-03-21 01:25:08 -05:00
Scott Lahteine
c352954882 Allow no raise after run_z_probe in probe_pt 2018-03-21 01:24:51 -05:00
Scott Lahteine
ae39fbd646 Also suppress keepalive with suspend_auto_report 2018-03-21 00:29:09 -05:00
Scott Lahteine
8dfaf1539e Merge pull request #10102 from thinkyhead/bf2_eeprom_M913
[2.0.x] More complete Trinamic driver options
2018-03-20 23:14:19 -05:00
AnHardt
837ac2fdbd [2.0.x] Fix_Autotune_THERMAL_PROTECTION_BED_off (#10166)
- Fix Autotune Thermal Protection
- Make 2 constants in autotune configurable
2018-03-20 16:48:36 -05:00
Bob-the-Kuhn
785dbfc72d [2.0.x] FASTIO consistency (#10164) 2018-03-20 16:24:50 -05:00
Bob-the-Kuhn
7308ef7809 Add conditional, give DUE SPI a unique name, fix compiler warnings (#10168) 2018-03-20 15:53:21 -05:00
teemuatlut
b5b39af531 [2.0.x] TMC: Fix CURRENT_STEP_DOWN (#10170) 2018-03-20 15:16:05 -05:00
Scott Lahteine
a5c6d3c7b8 Prevent null pointer crash in Endstops::update
Thanks to Evgeny Kotsuba!
2018-03-20 04:21:18 -05:00
Scott Lahteine
a46bac3100 Add 'I' parameter to M906/M913/M914; 'T' to M906/M913 2018-03-19 22:05:16 -05:00
Scott Lahteine
cfc13ed7f3 Quiet M906/M913/M914 with axes. Patch for DISTINCT_E_FACTORS. 2018-03-19 22:05:16 -05:00
Scott Lahteine
c95450016b Improve Trinamic support in the EEPROM 2018-03-19 22:05:16 -05:00
Scott Lahteine
48d7036874 Consolidate smart stepper driver initialization 2018-03-19 22:05:16 -05:00
Bob-the-Kuhn
53362b81cc Tone fixes/changes (#10151) 2018-03-19 04:48:06 -05:00
Scott Lahteine
2f192dbcd6 Merge pull request #10154 from thinkyhead/bf2_fewer_options
[2.0.x] Consolidate 3-point probing, auto delta probe radius
2018-03-19 04:47:26 -05:00
Scott Lahteine
dd2949922b Consolidate 3-point leveling point options 2018-03-19 04:12:20 -05:00
Scott Lahteine
1d22609473 MIN_PROBE_EDGE replaces DELTA_PROBEABLE_RADIUS 2018-03-19 04:11:46 -05:00
Scott Lahteine
eaefc1e410 Add CorePQ support for BABYSTEPPING (#10155) 2018-03-19 02:51:40 -05:00
Scott Lahteine
72281c4ff9 Turn power off in kill instead of setting PS_ON to input 2018-03-19 02:37:55 -05:00
Scott Lahteine
9d99360912 Fix matrix.debug output 2018-03-18 20:02:20 -05:00
Eduardo José Tagle
bbfbf90797 Fix for DUE - no host support on native USB if SD card not enabled (#10148) 2018-03-18 19:49:51 -05:00
Scott Lahteine
772810fb24 Followup to PORTVAR patch 2018-03-18 19:23:58 -05:00
Scott Lahteine
978f342392 Reduce some tmc_util strings 2018-03-18 18:58:10 -05:00
Scott Lahteine
fbdc5ad962 Prevent lcd_update stack overflow on SD Card change 2018-03-18 18:58:10 -05:00
Scott Lahteine
c0d694d5d3 Squash UBL postscript comment 2018-03-18 18:58:10 -05:00
Scott Lahteine
93af8aa157 Fix home_delta for SENSORLESS_HOMING (#10145) 2018-03-17 20:52:06 -05:00
Scott Lahteine
883524056b Set default baudrate for the pio serial monitor 2018-03-17 19:48:06 -05:00
Scott Lahteine
73616d721a Use the latest L6470 library (v0.6) 2018-03-17 19:28:19 -05:00
Scott Lahteine
0543362b34 Don't init the tone timer if no BEEPER_PIN 2018-03-17 18:59:43 -05:00
Scott Lahteine
c6ff39cc14 Spacing cleanup 2018-03-17 16:49:08 -05:00
Scott Lahteine
9e9e29ddf8 Einsy: Regular endstops and BLTOUCH pins
Based on #10131
2018-03-17 16:43:09 -05:00
Bob-the-Kuhn
c79b53d406 Merge pull request #10140 from Bob-the-Kuhn/DUE-full-speed
[2.0.x] DUE - add full speed USB native port option
2018-03-17 13:41:45 -05:00
Bob-the-Kuhn
7f1afbfd60 can't type 2018-03-17 13:07:49 -05:00
Bob-the-Kuhn
23760d6c14 add full speed option 2018-03-17 12:56:44 -05:00
Bob-the-Kuhn
cbcd1ed42d full speed 2018-03-17 02:57:18 -05:00
Scott Lahteine
6689884910 Easier override of ST7920 LCD timing 2018-03-17 02:40:24 -05:00
Scott Lahteine
ab769590a1 Merge pull request #10121 from thinkyhead/bf2_misc_fixes_mar16
[2.0.x] Reduce size of "only one" sanity checks
2018-03-16 21:43:27 -05:00
Scott Lahteine
d603e655d3 Fix SWITCHING_EXTRUDER manual movement 2018-03-16 03:22:56 -05:00
Scott Lahteine
5f77816772 Reduce size of "only one" sanity checks 2018-03-16 02:43:02 -05:00
Scott Lahteine
8922b56b58 Fix some spelingz 2018-03-16 01:25:41 -05:00
Scott Lahteine
a6feb58837 Delta support for multiple hotends with offsets (#10118) 2018-03-16 00:46:42 -05:00
Scott Lahteine
899b4df7a3 Merge pull request #10055 from TheSFReader/getFilename
[2.0.x] Add 'C' to M27 to echo filename (plus long name, if any)
2018-03-16 00:02:27 -05:00
TheSFReader
2e43438e0c Add C parameter to M27 to include the long filename
In answer to #10001

Add an option to retrieve the currently open file name (long filename if possible).
2018-03-15 23:06:18 -05:00
Scott Lahteine
2168d6ac25 Allow NULL prepend in lsDive 2018-03-15 23:06:17 -05:00
Scott Lahteine
1e946d681d Update Marlin for newest TMC libraries
- TMC2130Stepper v2.2.0
- TMC2208Stepper v0.0.4
2018-03-15 22:23:31 -05:00
shaktee
63fc4a8521 BIBO2 default update and Cyclops config (#10108) 2018-03-15 00:16:55 -05:00
Bob-the-Kuhn
e5157dc63d Merge pull request #10110 from ejtagle/bugfix-2.0.x
[2.0.x] DUE - native port hang (USB CDC: Do not send any character if no program on the PC is listening)
2018-03-14 23:30:49 -05:00
etagle
404fc94705 DUE USB CDC: Do not send any character if no program on the PC is listening to them. This avoids Marlin waiting until the user actually opens a program that is able to consume the output of Marlin 2018-03-15 00:56:28 -03:00
Scott Lahteine
4aebe3d82e Pretty up EEPROM port args 2018-03-14 22:44:25 -05:00
Scott Lahteine
51bf3c9503 Fix E direction for MK2_MULTIPLEXER with LIN_ADVANCE 2018-03-14 07:56:18 -05:00
teemuatlut
e6dcfa64b0 Cast SERIAL_CHAR to void in M122 (#10086) 2018-03-14 07:09:06 -05:00
Marcio Teixeira
c24dbcbfe1 When STATUS_EXPIRE_SECONDS is 0, hide the position. (#10081)
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:30 -05:00
Studiodyne
e7a61de8af [2.0] FWRetract Reset (Best way) (#10083) 2018-03-14 01:35:30 -05:00
Scott Lahteine
f894209de2 Merge pull request #10093 from thinkyhead/bf2_trinamic_config
[2.0.x] Clean up Trinamic config options, sanity check
2018-03-14 01:16:55 -05:00
Scott Lahteine
f1327fd5f9 Use lcd_goto_previous_menu_no_defer more 2018-03-14 00:50:15 -05:00
Scott Lahteine
e7570f3195 Improve TMC config organization, naming 2018-03-14 00:18:41 -05:00
Scott Lahteine
374ea49be9 Revert marlinAnalogInputToDigitalPin 2018-03-14 00:18:40 -05:00
Scott Lahteine
34f656decd Add TMC2208 include in tmc_util.h 2018-03-14 00:18:40 -05:00
Scott Lahteine
07cf2cd9c4 Fix sensorless_homing_per_axis compile warning 2018-03-14 00:18:40 -05:00
Scott Lahteine
4c3d7083c0 Fix DUE build in Travis CI
Followup to #10096
2018-03-14 00:18:40 -05:00
Scott Lahteine
b858c638ad Fix compiler warning for HAL_ANALOG_SELECT 2018-03-13 22:33:21 -05:00
Bob-the-Kuhn
c4467da53a Merge pull request #10063 from ejtagle/bugfix-2.0.x
[2.0.x] DUE - add programming capability to native port
2018-03-13 22:07:21 -05:00
Bob-the-Kuhn
9aac0c7333 Merge pull request #10096 from Bob-the-Kuhn/DUE-platform.ini
[2.0.x] platformio.ini - add DUE native port support
2018-03-13 15:45:40 -05:00
Bob-the-Kuhn
d194be8e8b platformio.ini DUE native port support 2018-03-13 15:31:17 -05:00
Scott Lahteine
65ce0303f8 Fix MKS_12864_OLED blank issue
Fixes #10071
2018-03-13 04:54:23 -05:00
Scott Lahteine
36452b4d6e Fix filename HAL/DUE/servotimers.h => ServoTimers.h 2018-03-13 01:38:37 -05:00
Scott Lahteine
14c03cb6f4 [2.0.x] Make MIN_PROBE_EDGE a general option (for electronic probes) (#10069)
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:22 -05:00
Scott Lahteine
5dec828abc Add MKS_12864OLED to lcd_implementation_init
Followup to #7914
2018-03-12 08:54:17 -05:00
Scott Lahteine
468f34104b Patch do_blocking_move_to so 'destination' can be used 2018-03-12 08:16:17 -05:00
Scott Lahteine
5b45aab262 M218: report with no parameters 2018-03-12 08:14:35 -05:00
Scott Lahteine
18de11c1ea Followup to auto-assign of dual axis CS pins 2018-03-12 07:19:56 -05:00
ejtagle
703c8ac0ef Added Arduino-compatible kludge to the (ATMEL supplied) SAM3X USB stack we are now using so the Native port is also usable as a programming port on Arduino DUE and derived designs 2018-03-11 15:17:55 -03:00
Scott Lahteine
28f1276286 [2.0.x] Add Z_AFTER_PROBING option (#10058)
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 13:07:55 -05:00
Scott Lahteine
dd19e74476 Cleanup trailing whitespace
@Bob-the-Kuhn — Please set your git options to remove trailing whitespace on commit.
2018-03-11 10:29:00 -05:00
Scott Lahteine
d0ac0151b6 Fix typo in ubl.prepare_segmented_line_to 2018-03-11 10:20:50 -05:00
Scott Lahteine
d385b9aac7 Auto-assign CS pins for X2, Y2, Z2 (#10057)
Fixes #9211
2018-03-11 08:56:13 -05:00
Scott Lahteine
bae1cb859c Patch flush_and_request_resend for 1.1.x parity 2018-03-11 07:36:00 -05:00
Scott Lahteine
51ebdf3b7d Finish scroll_screen with menu direction/multiplier
Fixes #10041
2018-03-11 04:41:12 -05:00
Bob-the-Kuhn
e27fd269c1 Merge pull request #10051 from Bob-the-Kuhn/PR-9661-
[2.0.x] restore PR 9661 (DUE compatibility with shared SPI LCDs, USB mass storage, add pin defs & update examples\MakerParts\Configuration.h)
2018-03-10 23:26:08 -06:00
Bob-the-Kuhn
0d8c15c01f restore PR 9661 files & V1 fix 2018-03-10 22:46:32 -06:00
Scott Lahteine
751785fc97 Followup to recent patches
- `M666` is static, not inline
- Disambiguate some stepper macros
2018-03-10 21:41:17 -06:00
GMagician
3c8781e2e9 [2.0.x] visual studio gitignore update (#10044) 2018-03-10 19:58:31 -06:00
Scott Lahteine
a0211f5d6c Disambiguate else in stepper_indirection.h 2018-03-10 19:56:22 -06:00
Scott Lahteine
f003173752 Fixup M666
Followup to d6df032
2018-03-10 19:52:30 -06:00
Bob-the-Kuhn
6747225e02 Merge pull request #10046 from MarlinFirmware/revert-9961-DUE-SPI-4-MAR
Revert "[2.0.x] DUE compatibility with shared SPI LCDs, USB mass storage, add pin defs & update examples\MakerParts\Configuration.h"
2018-03-10 17:23:33 -06:00
Bob-the-Kuhn
bf59a4a6df Revert "[2.0.x] DUE compatibility with shared SPI LCDs, USB mass storage, add pin defs & update examples\MakerParts\Configuration.h" 2018-03-10 17:22:20 -06:00
Sebastianv650
fd1d590726 [2.0.x] Silence M204 (#10037)
`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:16:55 -06:00
Scott Lahteine
f10c87b442 Update Endstops class for 1.1.x parity 2018-03-10 06:57:31 -06:00
Scott Lahteine
d6df0322c2 Update M666 for XYZ dual endstops 2018-03-10 06:57:31 -06:00
Scott Lahteine
fbc41c0e98 Update Marlin G-code summary 2018-03-10 06:57:31 -06:00
Scott Lahteine
239902f861 Fix E2END and add EEPROM to Smart RAMPS
Reference #9983
2018-03-10 06:57:31 -06:00
Scott Lahteine
ddce486360 Merge pull request #10032 from thinkyhead/bf2_unknown_z_no_raise
[2.0.x] Add UNKNOWN_Z_NO_RAISE to prevent Z grinding
2018-03-10 00:57:30 -06:00
Bob-the-Kuhn
fc32db300d Merge pull request #9961 from Bob-the-Kuhn/DUE-SPI-4-MAR
[2.0.x] DUE compatibility with shared SPI LCDs, USB mass storage, add pin defs & update examples\MakerParts\Configuration.h
2018-03-10 00:34:19 -06:00
Scott Lahteine
79e6d890d5 Add UNKNOWN_Z_NO_RAISE to example configs 2018-03-10 00:17:34 -06:00
Scott Lahteine
419d12ca1b 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-10 00:17:34 -06:00
Scott Lahteine
3b4c89e4b5 Move do_probe_raise closer to set_probe_deployed
…and limit the raise to Z_MAX_POS
2018-03-10 00:17:34 -06:00
Scott Lahteine
2908e76151 Fix position_is_reachable_by_probe typo, add comment
Fix #10029
2018-03-10 00:15:41 -06:00
Roxy-3D
26dc594ebb prevent steppers from turning off during manual probes 2018-03-10 00:15:41 -06:00
Bob-the-Kuhn
d8eadf3796 fix ubl_G29.cpp Travis error 2018-03-09 23:59:30 -06:00
Bob-the-Kuhn
914bb80bde removed SDSS init
added device & comm drivers for shared SPI LCDs

mistyped some updates in ultralcd_impl_DOGM.h

remove unwanted changes in onfiguration.h

still can't type

Update HAL_LCD_class_defines.h

include USB mass storage & misc
2018-03-09 23:06:11 -06:00
Scott Lahteine
6d9ea7e184 Fix position_is_reachable_by_probe typo, add comment
Fix #10029
2018-03-09 21:12:11 -06:00
Roxy-3D
646dd5554c prevent steppers from turning off during manual probes 2018-03-09 17:56:00 -07:00
Scott Lahteine
161ff9ff35 Fix UPDATE_ENDSTOP for CorePQ compatibility
Fixes #9939
2018-03-09 08:54:48 -06:00
Scott Lahteine
49ca67202f Patch configuration_store for extra serial port
Fix #9948
2018-03-09 07:42:27 -06:00
Scott Lahteine
cc59ac4603 Fix _tmc_say_axis string address
Fixes #10003
2018-03-09 06:10:11 -06:00
Scott Lahteine
16a8edc5f0 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:26:29 -06:00
Scott Lahteine
dfd5d2fe75 Have position_is_reachable_by_probe use the whole bed (#10020)
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:37:30 -06:00
Bob-the-Kuhn
67a17446f2 Fix DUE incompatible enum type specification (#10017) 2018-03-09 02:17:57 -06:00
Bob-the-Kuhn
3c58ca181c [2.0.x] Correct step pulse width on LPC1768, DUE & Teensy35_36 (#10016) 2018-03-09 02:11:28 -06:00
Scott Lahteine
3707078ffc More VSCode droppings 2018-03-09 01:49:39 -06:00
Scott Lahteine
e297748b22 Apply const, safe_delay in servo.* 2018-03-08 19:31:32 -06:00
Scott Lahteine
3c2bfa5e53 Update powersupply_on in power_on/off (#10015)
Fix #10004
2018-03-08 18:56:47 -06:00
Scott Lahteine
42608b1925 Init old_red to 127 to ensure initial change
Fix #10012
2018-03-08 18:28:33 -06:00
Scott Lahteine
317673fec3 Init watchdog last in setup() 2018-03-08 17:34:50 -06:00
Scott Lahteine
8d32fd997f Wrap NORM_E_DIR/REV_E_DIR macros in do{}while(0) 2018-03-08 16:20:24 -06:00
Scott Lahteine
1913c37a91 Tweak to manual move eindex arg 2018-03-08 16:20:24 -06:00
Scott Lahteine
98d48fc731 Followup to HAL_timer_restrain
Followup to #9985
2018-03-07 22:18:37 -06:00
Scott Lahteine
03e3011332 Fix compile error with MAX_MESSAGE_LENGTH
Fix #9988
2018-03-07 21:57:01 -06:00
Bob-the-Kuhn
6b4a928145 2uS default step pulse (#9989) 2018-03-07 21:11:01 -06:00
Scott Lahteine
ca577c1638 Fix up various spacing, comments, and typos 2018-03-07 21:09:08 -06:00
Scott Lahteine
d45f19d385 Remove Unicode from var name 2018-03-07 19:08:44 -06:00
Scott Lahteine
224688cc3b Fix for unicode-ignorant gcc preprocessor 2018-03-07 18:34:07 -06:00
Chris Pepper
a1a88ebabc HAL function to ensure min stepper interrupt interval (#9985) 2018-03-07 17:53:25 -06:00
Scott Lahteine
be0e100fed Fix sd subdirectory encoder position
Followup to 7e386c7
2018-03-07 16:54:19 -06:00
Bob-the-Kuhn
04dedc7ed8 always completely initialize display (#9981) 2018-03-07 16:40:59 -06:00
Scott Lahteine
0149680f54 Fix compile error with char LCD 2018-03-07 16:25:37 -06:00
Scott Lahteine
9515e5aefb Fix LA_active_extruder (static) 2018-03-07 05:49:20 -06:00
Scott Lahteine
e5ec793f7e Wrap stepper indirection macros 2018-03-07 05:42:45 -06:00
Sebastianv650
5b85464791 Fix for LA (#9964)
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:33:13 -06:00
Scott Lahteine
7e386c7e98 Fix encoder position for sddirectory 2018-03-07 05:23:03 -06:00
Scott Lahteine
9e97c13c6f Merge pull request #9979 from thinkyhead/bf2_suppress_autoreport
[2.0.x] Capability to suppress auto-reporting
2018-03-07 03:33:40 -06:00
Scott Lahteine
1d604be671 Suspend auto-report during UBL map output 2018-03-07 02:00:19 -06:00
Scott Lahteine
eb212ae073 Add suspend_auto_report flag to suppress auto-report 2018-03-07 01:57:09 -06:00
Scott Lahteine
ffbf63e6af Add HAS_TEMP_SENSOR conditional 2018-03-07 01:53:50 -06:00
Scott Lahteine
94f5204629 Move AUTO_REPORT_SD_STATUS to SDSUPPORT block 2018-03-07 01:50:30 -06:00
Scott Lahteine
22a017a856 Rebuild SD file sort array on Stop SD Print (#9976)
Thanks Chuck Hellebuyck.
2018-03-07 01:42:11 -06:00
Scott Lahteine
920d92aa46 Merge pull request #9974 from thinkyhead/bf2_tmc_util_progmem
[2.0.x] Move tmc_util.* extended_axis_codes to PROGMEM
2018-03-07 00:16:50 -06:00
Scott Lahteine
b198b49d15 Followup to AUTO_REPORT_SD_STATUS
Followup to #9832
2018-03-07 00:13:42 -06:00
Scott Lahteine
2057177184 Make enums into implicit char 2018-03-06 23:39:56 -06:00
Scott Lahteine
e28e3bb532 Move extended_axis_codes to PROGMEM 2018-03-06 22:21:24 -06:00
Scott Lahteine
d7aed2fe4f Merge pull request #9971 from thinkyhead/bf2_lin_advance_duplication
[2.0.x] Support duplication mode in LIN_ADVANCE
2018-03-06 21:59:59 -06:00
Scott Lahteine
ca0def766e LIN_ADVANCE single stepper optimization 2018-03-06 19:26:54 -06:00
Scott Lahteine
8291ae34f2 Support duplication mode in LIN_ADVANCE 2018-03-06 19:12:23 -06:00
Scott Lahteine
b08ec22fe1 Show E0-E4 in monitor_tmc_driver output (#9969)
Fix #9966
2018-03-06 19:01:07 -06:00
Marcio Teixeira
fd883c909a Improvements to Lightweight ST7920 status screen. (#9952)
- Show units on lightweight status screen.
- Fixed progress bar so it works with M73
2018-03-06 01:49:36 -06:00
Scott Lahteine
0dd1c4458d Put more code between pulse start and stop (#9959) 2018-03-05 23:06:57 -06:00
Scott Lahteine
f9cafc4001 Fix menu highlight glitch, tweak scrolling code (#9957) 2018-03-05 23:05:15 -06:00
Scott Lahteine
bf9fc8ac0e M851 - report only without parameters 2018-03-05 02:11:50 -06:00
Scott Lahteine
eb867817b5 Prevent filament runout false positives (#9946) 2018-03-05 01:49:30 -06:00
Scott Lahteine
36262a0479 Use static classes for job timers (#9938) 2018-03-04 21:23:43 -06:00
Scott Lahteine
930720bbbb Fix broken reverse planner (#9943)
From #9914 by @Sebastianv650
2018-03-04 21:19:06 -06:00
Bob-the-Kuhn
025118da3e Init print_job_timer in setup() instead of "early" (#9937) 2018-03-04 16:23:44 -06:00
Scott Lahteine
beeed580b8 Implement digipots for MKS SBASE (#9927)
Fix #9477
2018-03-04 15:14:47 -06:00
Scott Lahteine
07ae23fe14 No pulse delay on last e_steps in advance isr 2018-03-04 15:06:31 -06:00
Scott Lahteine
881529a401 Fix #9904 - toDigital should show 00-99 hours 2018-03-04 04:34:39 -06:00
Scott Lahteine
ed758de80d tweak comment in stepper.cpp 2018-03-04 04:03:23 -06:00
Scott Lahteine
e74a5829c7 Show .github folder in Sublime Text project 2018-03-03 23:36:03 -06:00
Scott Lahteine
d1dc863962 autotemp_factor is not value_celsius_diff
See https://github.com/MarlinFirmware/Marlin/issues/9852#issuecomment-369861822
2018-03-03 23:27:54 -06:00
Thomas Moore
f3914a432e Clear retracted status when homing the Z axis 2018-03-03 23:18:40 -06:00
Scott Lahteine
6d7f4f84e2 Add board MKS_BASE_HEROIC (#9926)
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:52 -06:00
Scott Lahteine
649f375494 Fix: M112 calling kill from interrupt (#9923)
Fix #9906
2018-03-03 23:14:01 -06:00
Scott Lahteine
c37b3f995a Sanity-check some graphical LCD-only options 2018-03-03 20:31:59 -06:00
Scott Lahteine
a2a672449a Updated boot screen description 2018-03-03 20:04:17 -06:00
Scott Lahteine
4d0584a828 Add templates, contributing, code of conduct 2018-03-03 19:43:09 -06:00
Scott Lahteine
61620cbd15 Tweak M211 2018-03-02 02:20:40 -06:00
Scott Lahteine
b9303b5577 Enhance github helper scripts (#9888) 2018-03-01 20:41:01 -06:00
Scott Lahteine
6e08ddce6e Correct M401 / M402 description 2018-03-01 19:10:36 -06:00
Studiodyne
23a576faf7 [2.0] Fix for FW retract (#9878) 2018-03-01 15:15:40 -06:00
Ben Lye
461c8ef834 Fix DIGITAL_PIN_TO_ANALOG_PIN macro for Atmega1284p (#9881) 2018-03-01 15:13:57 -06:00
Scott Lahteine
88b6a15b47 Update M900 verbiage 2018-03-01 15:11:31 -06:00
Ben Lye
e2df286444 Update pinsDebug.h (#9874)
Fix display of analog input value.
2018-03-01 04:51:36 -06:00
Scott Lahteine
91db7930dc 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:30:41 -06:00
Bob-the-Kuhn
c1f4112bdc [2.0.x] Add 1284 support & misc. bug fixes (#9864) 2018-03-01 03:07:39 -06:00
Scott Lahteine
118899357d Add sanity checks to Linear Advance 1.5 (#9873) 2018-03-01 02:10:43 -06:00
Scott Lahteine
1746749361 Followup to #9868 2018-03-01 01:53:12 -06:00
Scott Lahteine
a446433c87 Fix SENSORLESS_HOMING for Core Kinematics (#9868) 2018-03-01 01:37:31 -06:00
Scott Lahteine
2d1233b86c Fix lcd_quick_feedback call for BTN_BACK 2018-02-28 20:24:11 -06:00
AnHardt
eb8b758226 Fix some mapper, charsize problems (#9866) 2018-02-28 18:57:05 -06:00
Scott Lahteine
8bffb26c23 Fix manual move position display
Manual moves now correctly include the workspace offset.
2018-02-28 17:33:23 -06:00
Scott Lahteine
8c03ce4d80 Fix Z safe homing sanity check for no probe
Fix #9851
2018-02-28 05:28:35 -06:00
Scott Lahteine
c471389afb Add Einsy Rambo pins (#9850) 2018-02-28 04:16:12 -06:00
Zachary Hill
c22f8dd660 Get duration_t in printcounter.h for its clients (#9843) 2018-02-28 04:15:29 -06:00
Scott Lahteine
24b9c1923f ubl G29 tweaks 2018-02-28 03:40:06 -06:00
Scott Lahteine
bd0967ad87 Fix BTN_BACK
Followup to #9835
2018-02-28 03:26:28 -06:00
Scott Lahteine
d9a98b5814 Russian language update
From #9849
2018-02-28 03:07:39 -06:00
Scott Lahteine
13940268a2 Fix findMissingTranslations.sh for 2.0.x 2018-02-28 01:19:40 -06:00
Ben Lye
461cb22069 Fix Zonestar / ADC keypad with RAMPS. (#9840) 2018-02-28 00:07:50 -06:00
Scott Lahteine
35ec67885a Add support for BACK button (RADDS) (#9835) 2018-02-26 22:52:57 -06:00
Scott Lahteine
0bc4c216ac Patch up pinsDebug pins 2018-02-26 19:32:48 -06:00
Scott Lahteine
cd7dc49527 Fix CR-10 status screen missing commas
Fix #9660
2018-02-26 15:52:50 -06:00
geigerg
4817c78a65 Add files via upload (#9828) 2018-02-26 15:44:01 -06:00
TheSFReader
eb079959fb Report sd card progress [FR] #9751 (#9832)
* SD Status auto-report feature
Feature Request #9751
2018-02-26 15:38:27 -06:00
Scott Lahteine
7bdb98c946 Fix #9826. Solution by @gloomyandy 2018-02-26 15:02:19 -06:00
Scott Lahteine
02474a321a Fix SDSUPPORT (and indentation)
Based on https://github.com/MarlinFirmware/Marlin/issues/8746#issuecomment-368471901 by @benlye
2018-02-26 14:40:40 -06:00
Scott Lahteine
cfdcf91df5 Fix compile error with initTone 2018-02-26 01:49:48 -06:00
Scott Lahteine
ae1a2ff16f Pins parity with 1.1.x 2018-02-26 01:17:50 -06:00
Scott Lahteine
1c13cc9b48 Merge pull request #9810 from thinkyhead/bf2_better_M503
[2.0.x] Mesh export in Bilinear + UBL M503
2018-02-26 01:00:44 -06:00
Roxy-3D
306f44198e Prevent serial buffer overrun in Pronterface
75ms might  be excessive...    But I know people are seeing problems with PronterFace as the client...
2018-02-25 23:50:44 -06:00
Scott Lahteine
966d9af98a Mesh export in Bilinear + UBL M503 2018-02-25 23:25:39 -06:00
Scott Lahteine
8d5a77001e EEPROM parity with 1.1.x 2018-02-25 23:03:09 -06:00
Scott Lahteine
2228dff3ea ubl.h compile flags from 1.1.x 2018-02-25 23:03:08 -06:00
Sebastianv650
cb4cb86d80 Useless line removed (#9814)
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:20:37 -06:00
Scott Lahteine
f2c0ed193d Add tone support for Due (#9807) 2018-02-25 10:48:14 -06:00
Scott Lahteine
0557ab5780 Fix CONFIG_ECHO_START bug
In reference to #9633
2018-02-25 05:34:52 -06:00
Scott Lahteine
61688233c7 HAL style tweak 2018-02-25 05:00:44 -06:00
Scott Lahteine
19ba91f77a Fix lcd_custom_bootscreen compiler warning 2018-02-25 04:38:17 -06:00
Scott Lahteine
f3dbe19669 Tweaks to HAL codestyle 2018-02-25 04:38:17 -06:00
Scott Lahteine
0e0f17be30 Sublime Text can ignore .vscode 2018-02-25 04:38:17 -06:00
Bob-the-Kuhn
f15d7bdbf2 [2.0.x] ELF improvement, fix lib_ignore (#9793)
- Compiler flags so ELF will include the original source.
- Use commit-id archives for a working `lib_ignore`.
2018-02-25 03:02:46 -06:00
Scott Lahteine
54c65fc3cb Standardize LCD buzz defaults 2018-02-24 22:58:22 -06:00
Scott Lahteine
4953fb1c88 Standardize encoder defaults 2018-02-24 22:34:45 -06:00
Scott Lahteine
078627f805 [2.0.x] Creality Ender-4 configuration (#9803)
* Move Creality Ender-2 configurations
* Add Creality Ender-4 configurations
2018-02-24 22:11:11 -06:00
Scott Lahteine
5684beae90 Bring some configs up to speed 2018-02-24 21:56:27 -06:00
UtterlyD
813f9f3082 [bugfix_2.0.x] - LIN_ADVANCE V1.5 stepper.cpp (#9797)
Removal of obsolete (i) from port of LIN_ADVANCE from V1.1.x to V2..0.x.
2018-02-24 16:37:23 -06:00
Scott Lahteine
3f89bbeab5 Drop a conditional only used once 2018-02-24 16:35:31 -06:00
Scott Lahteine
a01473d7a5 Extend .gitignore to make VSCode happy 2018-02-24 15:48:34 -06:00
Scott Lahteine
689bc99402 Correction to acceleration 2018-02-24 11:09:36 -06:00
Roxy-3D
92c8efdc96 Change Folger Tech i3-2020 defaults 2018-02-24 10:29:24 -06:00
Scott Lahteine
2024775e07 Spanish (UTF8) Language (#9786)
From #7314 by @MrAmericanMike
2018-02-23 20:24:02 -06:00
Scott Lahteine
43ff15244d Fix a progress bar condition 2018-02-23 19:43:44 -06:00
Scott Lahteine
b8485528b2 Prettify LCD_PROGRESS_BAR options 2018-02-23 19:19:57 -06:00
Zachary Hill
4d588b2d6a Further fix of LCD_PROGRESS_BAR (#9783) 2018-02-23 18:53:04 -06:00
Scott Lahteine
e0227f2110 Fix *_CS_PIN for RAMPS_FD
Fix #9778
2018-02-23 14:29:57 -06:00
Scott Lahteine
e65a853c59 Fix LCD_PROGRESS_BAR
Fix #9208
2018-02-23 14:05:10 -06:00
Scott Lahteine
07d7e8aa1b Merge pull request #9775 from thinkyhead/bf2_g28_restore_leveling
[2.0.x] Add RESTORE_LEVELING_AFTER_G28 option
2018-02-23 13:43:22 -06:00
Scott Lahteine
e749945317 Un-pause print on cancel (#9780) 2018-02-23 13:42:15 -06:00
Scott Lahteine
17d984eab3 Add RESTORE_LEVELING_AFTER_G28 to example configs 2018-02-23 13:38:54 -06:00
Scott Lahteine
b2cf253a13 Add RESTORE_LEVELING_AFTER_G28 option 2018-02-23 13:38:54 -06:00
Scott Lahteine
65519263f4 Fix broken LEVEL_BED_CORNERS
Fix #8805
2018-02-23 09:13:34 -06:00
Scott Lahteine
8f9262f3fe Fix path to _Statusscreen.h 2018-02-23 09:06:06 -06:00
Scott Lahteine
007c56f453 Fix HAL_STM32F1/endstop_interrupts.h
In response to https://github.com/MarlinFirmware/Marlin/issues/7076#issuecomment-367556982
2018-02-23 02:07:34 -06:00
Scott Lahteine
0542b03750 Fix bootscreen include path
Fix #9759
2018-02-23 01:59:35 -06:00
Scott Lahteine
2bd252b501 [2.0.x] LIN_ADVANCE v1.5 (#9712) 2018-02-23 00:53:29 -06:00
Scott Lahteine
90fa423737 Preliminary cleanup of #include structure (#9763) 2018-02-23 00:52:52 -06:00
Scott Lahteine
a6b7e721cf Slovak language update 2018-02-23 00:49:07 -06:00
Scott Lahteine
2c9775313a Fix Z position on HD44780
Fix #9732
2018-02-23 00:42:42 -06:00
Studiodyne
9c9cd54ef3 Add Z Fade Height edit to UBL and Tune submenus (#9738) 2018-02-23 00:29:58 -06:00
Scott Lahteine
3851ffce0f Merge pull request #9637 from marcio-ao/pr-lite-st7920-status
[2.0.x] Light-weight status screen for ST7920 based printers
2018-02-22 23:55:02 -06:00
Scott Lahteine
5f8b2c2ff0 More descriptive environment error message 2018-02-22 23:34:49 -06:00
Scott Lahteine
b17982bde9 Merge pull request #9769 from teemuatlut/bf2_compile_fixes
[2.0.x] Fix compiling with M600 and runout sensor
2018-02-22 22:52:31 -06:00
Scott Lahteine
799e3b2b40 LPC1768 HAL formatting/comments 2018-02-22 14:36:17 -06:00
teemuatlut
5968a3e60e Add ADVANCED_PAUSE_FEATURE include 2018-02-22 20:28:46 +02:00
teemuatlut
93cc3a8492 Make used methods public 2018-02-22 20:26:14 +02:00
Marcio Teixeira
13176dfe2f Merge remote-tracking branch 'origin/pr-lite-st7920-status' into pr-lite-st7920-status 2018-02-22 08:02:31 -07:00
Scott Lahteine
424b9a83cd Slovak language update
From @rmoravcik at #9760
2018-02-22 03:00:47 -06:00
Scott Lahteine
e75ccfd727 Hatchbox Alpha Config with E3Dv6 (#9762) 2018-02-22 02:57:48 -06:00
Scott Lahteine
556abc0888 Add LIGHTWEIGHT_UI to example configs 2018-02-22 00:10:43 -06:00
Marcio Teixeira
532bb3aaa1 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:10:43 -06:00
Scott Lahteine
59c98d6fd5 Hephestos2 heated bed kit for all (#9757) 2018-02-21 22:27:09 -06:00
Scott Lahteine
8c1a82c327 Merge pull request #9753 from ldkraemer/BF2CR-10Bootscr
[2.0.x] Creality CR-10mini configuration
2018-02-21 20:29:36 -06:00
Scott Lahteine
72f63a4980 Fix DOGM progress bar with LCD_SET_PROGRESS_MANUALLY 2018-02-21 19:47:04 -06:00
ldkraemer
6c3162f9c6 Add CR-10 Mini configuration 2018-02-21 19:08:42 -06:00
ldkraemer
4431f4deb8 Add CR-10S _Bootscreen.h 2018-02-21 18:55:14 -06:00
Marcio Teixeira
e7f329edb2 Added bed corners to bed icon.
- This makes it look less like a dash (idea stolen from cjsoong).
2018-02-21 15:31:56 -07:00
Marcio Teixeira
e84a5545e1 Removed unnecessary extended mode switch.
- This will slightly reduce the SPI requirements for
  updating the progress bar.
2018-02-21 15:12:11 -07:00
Scott Lahteine
343c17d5b3 Reduce Creality3D bootscreens flash usage (#9752) 2018-02-21 16:08:52 -06:00
Scott Lahteine
63bc6ade4f Fix pinsDebug compile error 2018-02-21 14:28:58 -06:00
Roxy-3D
d504bbbfa4 Fix botched check for being off the mesh... 2018-02-21 14:28:58 -06:00
Marcio Teixeira
716a22498f Changed temp type from uint8_t to int16_t
- Also deleted old implementation files which had been renamed.
2018-02-21 10:15:55 -07:00
Scott Lahteine
7d8c6b3f3c Add 20x4 option for Sainsmart LCD (#9740) 2018-02-21 00:46:25 -06:00
Scott Lahteine
1d7f5be0ff quick_home_xy sensorless homing 2018-02-20 20:52:48 -06:00
Scott Lahteine
eb182c08af Merge pull request #9733 from thinkyhead/bf2_random_fixup_branch
[2.0.x] Drop HAL_timer_set_count
2018-02-20 17:03:18 -06:00
Kevin
03b48df7bb RADDS: Add EEPROM Size (#9737)
needed for UBL
2018-02-20 16:24:29 -06:00
Scott Lahteine
9f0907d40c Fix big edit font width calculation
Fix #9685
2018-02-20 16:24:23 -06:00
Marcio Teixeira
9d5968e8ec Fixed dual-extruder in Lightweight UI.
- Moved bed icon down when the machine is configured with two nozzles.
2018-02-20 13:34:34 -07:00
Scott Lahteine
4303f2e377 Fix MALYAN_LCD message bugs
Fix #9711
Replacing #9731
2018-02-20 05:40:19 -06:00
Scott Lahteine
12c5fdfdb5 Fix CYCLES_PER_MICROSECOND conflict on STM32F1 2018-02-20 03:10:39 -06:00
Scott Lahteine
a810e585db Drop HAL_timer_set_count 2018-02-20 03:10:39 -06:00
Bob-the-Kuhn
a823b801b8 Merge pull request #9729 from Bob-the-Kuhn/U8G-compile-error-2.0.x
[2.0.x] Move #include <U8glib.h> in ultralcd_st7920_u8glib_rrd_AVR.cpp (fix bug introduced in PR #9624)
2018-02-19 18:36:23 -06:00
Bob-the-Kuhn
47d529aac5 move #include <U8glib.h> 2018-02-19 17:39:40 -06:00
Marcio Teixeira
aada1e698f Removed unused configuration options. 2018-02-19 16:14:33 -07:00
Marcio Teixeira
c7513eb032 Merge branch 'pr-lite-st7920-status' of github.com:marcio-ao/Marlin into pr-lite-st7920-status 2018-02-19 15:38:13 -07:00
Scott Lahteine
73cd34b121 Finish AUTO_POWER_CONTROL implementation
Followup to #9503
2018-02-19 16:12:04 -06:00
Scott Lahteine
fc460fff94 Extend menu items for SWITCHING_EXTRUDER
Reference #5367
2018-02-19 11:12:42 -06:00
Scott Lahteine
c4ec01d59b Conditionals for SWITCHING_EXTRUDER
In reference to #5367. SWITCHING_EXTRUDER was not fully implemented for EXTRUDERS > 2.
2018-02-19 10:59:47 -06:00
Scott Lahteine
d4e4fe40e0 Add SENSORLESS_HOMING delay to quick_home_xy
Fix #9471
2018-02-19 10:12:16 -06:00
Scott Lahteine
25e3e62354 Null-terminate lcd_status_message 2018-02-19 10:12:16 -06:00
Scott Lahteine
a11fcd46a2 Merge pull request #9699 from Studiodyne/Studiodyne-filamentMulti
[2.0.x] Support multiple filament runout sensors
2018-02-19 08:42:39 -06:00
Scott Lahteine
b3deadd898 Don't raise FIX_MOUNTED_PROBE on stow
Reference #9336
2018-02-19 08:36:43 -06:00
Scott Lahteine
a74cece6d0 CR-10 Bootscreen
From @plainpylut in #9660
2018-02-19 08:07:08 -06:00
Scott Lahteine
8733d5a296 Add NUM_RUNOUT_SENSORS to example configs 2018-02-19 07:02:50 -06:00
Studiodyne
d3ca82d8c2 Support for multiple filament runout sensors 2018-02-19 07:02:50 -06:00
Scott Lahteine
0106c3e476 Style tweak in MarlinSerialUSB_Due.h 2018-02-19 06:58:26 -06:00
Scott Lahteine
3d1692d1fd Fix X2 enable with X_DUAL_STEPPER_DRIVERS
From #9286
2018-02-18 22:50:47 -06:00
Scott Lahteine
c241da32e8 stepper.h parity with 1.1.x 2018-02-18 22:50:38 -06:00
Scott Lahteine
3af988a7f3 Add sensorless homing delay to home_z_safely
Based on #9705
2018-02-18 19:28:40 -06:00
Scott Lahteine
ca55f2927a Pulldown pin mode support (#9701)
Implemented for LPC1768.
2018-02-18 19:26:23 -06:00
Scott Lahteine
aef9e036bf More overridable FIL_RUNOUT_PIN 2018-02-18 04:43:15 -06:00
Scott Lahteine
79272f98fc Proposed changes to ST7920 lightweight status screen 2018-02-18 02:47:31 -06:00
Marcio Teixeira
24eb275b99 Added a light-weight status screen for the ST7920
- The 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-18 02:29:45 -06:00
Scott Lahteine
a6563df705 Sync pinsDebug_list.h between 1.1.x and 2.0.x (#9693) 2018-02-18 02:25:32 -06:00
Scott Lahteine
bab0e975c8 The ENDER can use BOARD_MELZI_CREALITY (#9692) 2018-02-18 02:24:39 -06:00
Scott Lahteine
83d7e95de0 Add MSG_THERMAL_RUNAWAY_BED (#9691) 2018-02-18 02:23:55 -06:00
Scott Lahteine
6589f654b0 Merge pull request #9676 from smoki3/bugfix-2.0.x
[2.0.x] Option to force homing of a dependent axis
2018-02-18 02:22:03 -06:00
Scott Lahteine
8ffa0b24a4 Strip excess G28 debug logging 2018-02-18 01:11:41 -06:00
Kevin
9019ea0fce Option to force X or Y to home first when homing the other axis 2018-02-18 01:11:41 -06:00
Scott Lahteine
60fc372211 Add CODEPENDENT_XY_HOMING to example configs 2018-02-18 00:46:04 -06:00
Scott Lahteine
da7c51d820 Space out some pins lines 2018-02-17 22:53:58 -06:00
Bob-the-Kuhn
e05673a379 [2.0.x] VIKI2 & RE_ARM changes (#9686)
* VIKI2 & RE_ARM changes

1. Remove `DISABLED(SDSUPPORT)` from ST7565 in `ultralcd_impl_DOGM.h`. These LCDs share pins with the SD card and can run at the SD card rates.

2. Add SDSS definition to `pins_RAMPS_RE_ARM.h`.  Apparently the SDSS definition in `pins.h` is being processed before the one in `spi_pins.h` which resulted in not being able to read the SD card.
2018-02-17 16:41:36 -06:00
Scott Lahteine
7a381366aa Merge pull request #9208 from benlye/benlye-m73
[2.0.x] Allow M73 without SDSUPPORT
2018-02-17 15:50:11 -06:00
Scott Lahteine
7d093edc18 Add Tronxy XY100 configuration
Based on #9674
2018-02-17 15:48:32 -06:00
Scott Lahteine
472229b974 Fix #9681 2018-02-17 08:28:12 -06:00
Scott Lahteine
f6cc89ec7c LCD_PROGRESS_BAR w/out SDSUPPORT for character LCD 2018-02-17 08:17:22 -06:00
blye
330437ad7c Update LCD_SET_PROGRESS_MANUALLY in configs 2018-02-17 08:12:10 -06:00
blye
168af8bacb Allow LCD_SET_PROGRESS_MANUALLY without SDSUPPORT 2018-02-17 07:54:24 -06:00
Scott Lahteine
bf5df306e1 Fix compile error with SHOW_BOOTSCREEN disabled
Fix #9530
Fix #9524
2018-02-17 00:52:08 -06:00
Scott Lahteine
3021058e6d Fix non-UTF8 Czech language 2018-02-16 22:23:29 -06:00
Scott Lahteine
bd54ce830a Include utility.h in neopixel.cpp 2018-02-16 22:19:34 -06:00
Scott Lahteine
ff90cb409e No space for E2 with ReARM+RAMPS
Addressing #9474
2018-02-16 21:37:26 -06:00
Scott Lahteine
d7f82c8ddf Drop extra avr/pgmspace include in _Bootscreen.h
Addressing #9441
2018-02-16 18:36:35 -06:00
Scott Lahteine
1bf2b1e475 Use serial macro in sd_mmc_spi_mem.cpp for Due 2018-02-16 17:57:24 -06:00
Scott Lahteine
241e55ef3b Apply SERIAL_FLUSH macro 2018-02-16 17:32:12 -06:00
Scott Lahteine
1f8f8c9104 Merge pull request #9657 from petrzjunior/bugfix-2.0.x
[2.0.x][Language] Update Czech (Advanced pause...)
2018-02-16 02:54:06 -06:00
Thomas Moore
cff62042ee Fix LCD manual movement on kinematic machines (#9655) 2018-02-16 02:34:36 -06:00
teemuatlut
749bc42aa9 TMC SGT is int8 (#9651) 2018-02-16 02:19:33 -06:00
Bob-the-Kuhn
2d749d490b Fix / complete USE_CONTROLLER_FAN (#9666) 2018-02-16 02:18:50 -06:00
Scott Lahteine
08d685c97a Followup to 21e60fd 2018-02-16 02:09:17 -06:00
Scott Lahteine
c49844df66 !ENABLED => DISABLED 2018-02-16 01:51:34 -06:00
Scott Lahteine
304e0f8945 Followup to 21e60fd
`ENABLED` only works for flag-type options. Floats must use `#ifdef`.
2018-02-15 22:24:23 -06:00
Scott Lahteine
6a70a4fbb3 Fix G26 circles (#9627)
Easier to configure. Catch an odd divisor.
2018-02-15 22:11:26 -06:00
Bob-the-Kuhn
4ea7e723fe Merge pull request #9667 from Bob-the-Kuhn/USE_CONTROLLER_FAN-config-2.0.x
[2.0.x] Improved CONTROLLER_FAN_PIN example in Configuration_adv.h
2018-02-15 21:45:25 -06:00
Bob-the-Kuhn
349dafa728 config update (set to -1) 2018-02-15 21:42:54 -06:00
Roxy-3D
21e60fd3ed Allow user to control Z-Height correction for off mesh movements (#9661) 2018-02-15 15:07:42 -06:00
Petr Zahradník
d81e9ce7cb Add CHARSIZE to ignorelist 2018-02-15 20:23:02 +01:00
Petr Zahradník
5d9e16ea49 Update Czech advanced pause 2018-02-15 20:22:22 +01:00
Roxy-3D
c78e1c0f23 Fix G26 Circles... (#9641)
* Fix G26 Circles...
2018-02-15 11:15:15 -06:00
Bob-the-Kuhn
b648999528 Merge pull request #9624 from Bob-the-Kuhn/RRD-8-bit-code-to-2.0.x
[2.0.x] Add delays to AVR driver for RRD Full Graphic Smart Controller
2018-02-14 22:43:17 -06:00
Marcio Teixeira
8db67d1647 Fixed compilation when using avr-gcc
- avr-gcc is more strict than the Arduino IDE, it seems.
2018-02-14 15:51:25 -07:00
Marcio Teixeira
f05bd7f082 Added files missing from earlier commit. 2018-02-14 14:51:35 -07:00
Marcio Teixeira
4880ac6533 Added a light-weight status screen for the ST7920
- The 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-14 14:43:54 -07:00
Roxy-3D
3d74ff3c87 Cartesian UBL systems should not use SEGMENT_LEVELED_MOVES
There is significant downside to breaking up the long line segments on UBL Cartesian machines.   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:16:12 -06:00
Scott Lahteine
5dc04c5201 Fix #9361 2018-02-14 07:48:20 -06:00
AnHardt
133b38b93b Complete M48 description (#9631) 2018-02-14 05:17:58 -06:00
Scott Lahteine
93c0198b2d Init LCD welcome message programmatically 2018-02-14 05:09:44 -06:00
Scott Lahteine
f0debfd2fc See if this passes Travis CI 2018-02-14 04:26:10 -06:00
Scott Lahteine
67a4cc610b French update
Based on #9610
2018-02-14 04:15:47 -06:00
Scott Lahteine
e7b50c89b0 Fix #9201
FILAMENT_LCD_DISPLAY can work with SDSUPPORT
2018-02-14 03:29:47 -06:00
Scott Lahteine
8d71ad37cb flush comment to match 1.1.x 2018-02-14 02:56:18 -06:00
Scott Lahteine
272f132b82 Remove stray ` from STM32F1 HAL
As noted in #8585
2018-02-14 01:06:37 -06:00
Scott Lahteine
5b70d3da1c Update DIGIPOT_I2C_MOTOR_CURRENTS comments 2018-02-13 22:54:12 -06:00
Scott Lahteine
2ec65051fd Fix serial comment sp. 2018-02-13 22:40:56 -06:00
Bob-the-Kuhn
9a423e9a89 tested 2018-02-13 21:59:18 -06:00
Scott Lahteine
d741bcf8a9 Tweak boards spacing 2018-02-13 03:49:28 -06:00
Scott Lahteine
f8912bb19f French update
Based on #9590 by @studiodyne
2018-02-12 01:07:47 -06:00
Scott Lahteine
e6b8207b03 Restore welcome message 2018-02-12 01:02:30 -06:00
Scott Lahteine
89165326b4 Cleanup after vim and vigor 2018-02-11 06:07:30 -06:00
Scott Lahteine
423bf9955e Set Megatronics baud rate to 115200
Fix #9092
2018-02-11 03:43:36 -06:00
Scott Lahteine
377108619b Fix plan_arc clockwise (G2)
Fix #9482
2018-02-11 03:34:25 -06:00
Scott Lahteine
47e56afeeb Add 'mffp' to quickly push upstream (#9587) 2018-02-11 02:16:29 -06:00
Scott Lahteine
378867d894 Update PB Rev.F pins 2018-02-11 01:45:37 -06:00
Scott Lahteine
8e0c107545 Have Kossel Pro use Z_MIN_PROBE_ENDSTOP (#9586) 2018-02-11 01:41:40 -06:00
Scott Lahteine
03d790451f [2.0.x] HAL timer set/get count => set/get compare (#9581)
To reduce confusion over the current timer count vs. the compare (aka "top") value. Caution: this re-uses the function name, changing its meaning.
2018-02-10 20:42:00 -06:00
Scott Lahteine
7a4029d1b1 Correct MOTHERBOARD for Geeetech i3 Pro X 2018-02-10 20:29:29 -06:00
Scott Lahteine
451fb16f9b Fix CYCLES_PER_MICROSECOND conflict 2018-02-10 20:08:48 -06:00
Scott Lahteine
3e384b60ce Malyan M200 fix E0_AUTO_FAN_PIN (#9580)
Fixes #8794
2018-02-10 20:04:09 -06:00
Scott Lahteine
33752de12d Update some outdated configs 2018-02-10 19:48:16 -06:00
Scott Lahteine
38c7d53bf7 Repair some spacing 2018-02-10 19:33:26 -06:00
Scott Lahteine
e3043d7ac7 Fix #8744 2018-02-10 16:54:42 -06:00
Scott Lahteine
d3ddd5ffaa Merge pull request #9576 from thinkyhead/bf2_more_tests
[2.0.x] Fix Power class
2018-02-10 16:43:55 -06:00
Scott Lahteine
0749ce92b3 Merge pull request #9572 from thinkyhead/bf2_tronxy_x5s
[2.0.x] Tronxy X5S
2018-02-10 15:43:58 -06:00
Scott Lahteine
7280fa1e31 Patch Power class 2018-02-10 15:41:18 -06:00
Scott Lahteine
4311dd13ae Test POWER_SUPPLY and AUTO_POWER_CONTROL 2018-02-10 15:28:01 -06:00
Scott Lahteine
4aff6c1c32 Tronxy X5S pins and configuration 2018-02-10 15:07:04 -06:00
Scott Lahteine
4fef36966b Rename environment anet10 to melzi 2018-02-10 14:46:17 -06:00
Scott Lahteine
05aa75cecf Melzi boards use melzi pins 2018-02-10 14:44:14 -06:00
gege2b
5785bbb491 Updated french translation (#9556) 2018-02-10 14:15:41 -06:00
GMagician
299606e4ae [2.0.x] Memory overflow protection (#9562) 2018-02-10 14:14:34 -06:00
teemuatlut
5990266724 Init CS pins before loading settings (#9566) 2018-02-10 14:08:53 -06:00
teemuatlut
d3fdb44ad8 Update TMC section with SW SPI pins (#9554) 2018-02-09 22:54:34 -06:00
Scott Lahteine
3168f0e646 Merge pull request #9549 from thinkyhead/bf2_prevent_comments_resetting
[2.0.x] Prevent watchdog reset due to many comments
2018-02-09 07:13:26 -06:00
Scott Lahteine
9be6aa3f79 Merge pull request #9544 from thinkyhead/bf2_reliable_probe_heaters_off
[2.0.x] More reliable PROBING_HEATERS_OFF with BED_LIMIT_SWITCHING
2018-02-09 07:12:29 -06:00
Scott Lahteine
c0dd9ef9f2 Support for AnyCubic TriGorilla board (#9551) 2018-02-09 05:41:52 -06:00
Scott Lahteine
da693a636e Fix handling of escapes in serial input 2018-02-09 05:19:33 -06:00
Scott Lahteine
cc9cef7f7a Fix HAS_CONTROLLER_FAN in is_power_needed 2018-02-09 05:19:33 -06:00
Scott Lahteine
112917cfef No EXTRUDER_RUNOUT_PREVENT during print 2018-02-09 05:19:33 -06:00
Scott Lahteine
c30a8067ab Prevent watchdog reset due to many comments
Addressing #7449
2018-02-09 05:19:33 -06:00
Scott Lahteine
b7053156fe Minor comment/condition cleanup 2018-02-09 01:53:35 -06:00
Scott Lahteine
f64d300cfd Sanity check SERIAL_PORT
Addressing #7400
2018-02-09 00:44:15 -06:00
Scott Lahteine
5a70887467 Size lcd_status_message based on language (#9545) 2018-02-08 23:03:47 -06:00
Scott Lahteine
545cd8fa60 Tweak malyanlcd.cpp 2018-02-08 22:00:23 -06:00
Scott Lahteine
e698998343 More reliable PROBING_HEATERS_OFF with BED_LIMIT_SWITCHING 2018-02-08 21:10:11 -06:00
shaktee
27faeafc1b [2.0.x] BIBO Cyclops (#9541) 2018-02-08 21:01:31 -06:00
Scott Lahteine
2014d38e10 NEOPIXEL_BRIGHTNESS parity 2018-02-08 18:55:19 -06:00
Scott Lahteine
694d2ebec0 TMC SW SPI pins in Configuration_adv.h
Counterpart to #9632
2018-02-08 18:49:38 -06:00
GMagician
9854262334 [2.0.x] Fix compile warning (#9539) 2018-02-08 17:59:03 -06:00
Scott Lahteine
b639f1ad4b Correct some retract() comments 2018-02-08 17:57:48 -06:00
Thomas Moore
1541224a81 Enable Z axis and delta sensorless homing (#9516) 2018-02-08 04:20:44 -06:00
Scott Lahteine
b2f8b4ada5 I2C position encoders update (#9533)
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 03:57:11 -06:00
Thomas Moore
93af0365e8 [2.0.x] Add support for Cohesion3D ReMix and Mini (#9512)
* Add support for Cohesion3D ReMix and Mini
* Two separate pins files for pedantic reasons
2018-02-08 03:14:39 -06:00
Johnny Eshak
852468ead7 [2.0.x] Fix compile Error Anet (#9509) 2018-02-08 03:02:16 -06:00
Scott Lahteine
23240f7986 Fix sw serial pins for TMC2208
From #9518 by @melvinisken
2018-02-08 02:54:49 -06:00
Scott Lahteine
d42a87cb31 Update language Italian
From #9508 by @tnw513
2018-02-08 02:10:15 -06:00
Scott Lahteine
2538f019d0 Update language Basque-Euskera
From #9514 by @1138-4EB
2018-02-08 02:08:41 -06:00
Scott Lahteine
d168ee9bed Drop leveling include from steppers.cpp 2018-02-08 01:32:19 -06:00
Scott Lahteine
09c8807a36 Minor formatting in queue.cpp 2018-02-08 01:31:19 -06:00
Scott Lahteine
704d33c374 Special override of LCD_WIDTH 2018-02-08 01:30:56 -06:00
Scott Lahteine
e6c32b3a14 Add sublime-project file (#9526) 2018-02-07 15:50:10 -06:00
Scott Lahteine
b3f115fa0a Marlin.ino needs no content (#9506) 2018-02-06 02:28:18 -06:00
Scott Lahteine
ca8fdff1af Comment G26 properly 2018-02-06 00:58:28 -06:00
Scott Lahteine
8558264514 Configs for Prusa i3 Pro B GT2560 Rev.A Plus (#9505)
One without probe and one with BLTOUCH.
2018-02-06 00:24:21 -06:00
Scott Lahteine
b5e92f4f90 [2.0.x] Enable / disable PSU automatically (#9503) 2018-02-06 00:22:30 -06:00
Scott Lahteine
db1ace5e82 Merge pull request #9501 from thinkyhead/bf2_ulticontroller_v21
[2.0.x] UltiController v2.1 support
2018-02-05 23:06:32 -06:00
Scott Lahteine
eecb0188c0 Add ULTI_CONTROLLER to example configs 2018-02-05 22:30:03 -06:00
Scott Lahteine
16739264d3 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:30:03 -06:00
Scott Lahteine
a8c4174a13 M100 comment 2018-02-05 21:54:50 -06:00
Scott Lahteine
38d62494ef Adjustment to DOG_CHAR_*_EDIT 2018-02-05 20:25:45 -06:00
Scott Lahteine
8a6feab1c4 Num-to-string functions for DEBUG_LEVELING_FEATURE 2018-02-05 19:08:27 -06:00
Scott Lahteine
766faa05a9 sp 2018-02-05 15:57:29 -06:00
GMagician
f27c89980a [2.0.x] Simplify bltouch configuration (#9488) 2018-02-05 14:38:09 -06:00
GMagician
338dac258b [2.0.x] Fix compiler error when G26 is enabled (#9492) 2018-02-05 14:27:39 -06:00
Scott Lahteine
4ddb6a3a1f Merge pull request #9470 from thinkyhead/bf2_malyan_clueless
[2.0.x] Malyan M200 LCD
2018-02-05 05:03:18 -06:00
Scott Lahteine
03bfc0d7c8 Merge pull request #9439 from thinkyhead/bf2_fix_G26_circle_bumps
[2.0.x] Change G26 circle angles
2018-02-04 19:05:18 -06:00
Scott Lahteine
e5ee0b6f6c Implement MALYAN_LCD 2018-02-04 18:52:44 -06:00
Scott Lahteine
b939a2e88c Watchdog conditional for LPC 2018-02-04 18:52:44 -06:00
Scott Lahteine
4925f60cff Add MALYAN_LCD to configs 2018-02-04 18:52:44 -06:00
Scott Lahteine
3a1225e438 Sanity check SENSORLESS_HOMING 2018-02-04 18:52:44 -06:00
Scott Lahteine
2ea4e74ed3 Misc. comments 2018-02-04 17:40:39 -06:00
Scott Lahteine
aecf0c9bb9 Allow override of CS pins generally 2018-02-04 16:36:30 -06:00
Scott Lahteine
0891b58c30 #ifdef tweaks 2018-02-04 16:36:30 -06:00
Bob-the-Kuhn
428f164d02 [2.0.x] Bug fix - "M114 D" and Due (dtostrf C linkage) (#9481) 2018-02-04 16:11:27 -06:00
Scott Lahteine
693843f1fa Allow override of RAMPS CS Pins (#9472) 2018-02-04 16:00:16 -06:00
ABH10
ac6bf7226a Update of comments in thermistor files. No functional changes. (#8986) 2018-02-04 06:06:21 -06:00
Alexey Shvetsov
da3a0d619c Add Selena Compact board (#9407)
5-axis, high performance, powerful board with Smoothieware opensource firmware. Designed for 3D printer, Laser cutter or CNC mill. Five changed independent drivers on board. Two extruders 3d printer support.
2018-02-04 03:15:09 -06:00
Thomas Moore
786746404b [2.0.x] Apply feedrate to nozzle movement for kinematic machines (#8778) 2018-02-04 00:26:05 -06:00
Scott Lahteine
5364b92c37 Drop obsolete string 2018-02-03 23:58:31 -06:00
shaktee
34624cf399 [2.0.x] BIBO TouchX configuration (#9469) 2018-02-03 23:21:02 -06:00
Bob-the-Kuhn
d08597c65a Merge pull request #9468 from Bob-the-Kuhn/remove--/src
[2.0.x] Cleanup - remove not needed "../src"
2018-02-03 21:57:49 -06:00
Bob-the-Kuhn
3d72fe0730 snapshot 2018-02-03 21:28:05 -06:00
Scott Lahteine
33ec599ca0 Tweaky LPC1768 SPI spacing/style 2018-02-03 20:25:57 -06:00
Scott Lahteine
dbd2189945 Pretty up Print.* within CMSIS 2018-02-03 20:06:52 -06:00
Scott Lahteine
c46de340b7 Clean up trailing whitespace 2018-02-03 20:05:23 -06:00
Thomas Moore
e1fd9c08b3 [2.0.x] Add support for LPC1769 at 120 MHz (#9423) 2018-02-03 19:33:26 -06:00
GMagician
6ace57e1b0 [2.0.x] remove duplicated include (#9445)
This was present in #9357 but lost
2018-02-03 19:32:05 -06:00
GMagician
9e13d1fad5 [2.0.x] Fix temperature out of LCD (#9461)
Fix bug introduced in #9415
2018-02-03 19:25:04 -06:00
Scott Lahteine
e6cdc438fd Change G26 circle angles
To prevent the nozzle from colliding with the printed pattern.
2018-02-03 19:17:49 -06:00
Scott Lahteine
a8764ac5d5 G26 parity with 1.1.x 2018-02-02 05:19:14 -06:00
Manuel Valentino
374f2a5e16 [2.0.x] Fixed wrong information about TMC2208 wiring (#9335) 2018-02-02 04:45:55 -06:00
Bob-the-Kuhn
a0570ff1eb Fix caselight on Due (#9364) 2018-02-02 04:13:33 -06:00
Scott Lahteine
b13099de3f General cleanup of HAL code 2018-02-02 03:37:15 -06:00
Scott Lahteine
9b9350e010 Fix jerky Z motion between probes
Suggested by #9375
2018-02-02 02:32:11 -06:00
Scott Lahteine
d6e29e9597 Update French language
Based on #9373 by @nikkoura
2018-02-02 01:56:25 -06:00
GMagician
e1117a8492 [2.0.x] fix compile errors when CNC_COORDINATE_SYSTEMS is enabled (#9380) 2018-02-02 01:45:46 -06:00
GMagician
ea9ad4e46d [2.0.x] Fix compile error on delta when NO_WORKSPACE_OFFSETS (#9388) 2018-02-02 01:44:48 -06:00
Scott Lahteine
ca00fed827 Merge pull request #9415 from thinkyhead/bf2_enhance_boot_status
[2.0.x] Enhance Boot and Status screens
2018-02-02 01:41:07 -06:00
Scott Lahteine
79796b22ad Fix up _Bootscreen.h and _Statusscreen.h 2018-02-02 00:57:16 -06:00
Scott Lahteine
434a2dcbf2 Merge pull request #9393 from Bob-the-Kuhn/revert-parser-to-array-2.0.x
[2.0.x] Fix compile error when FASTER_GCODE_PARSER is disabled
2018-02-02 00:56:50 -06:00
Bob-the-Kuhn
21179f8300 Fix the "slow" version of the G-code parser 2018-02-02 00:35:58 -06:00
Scott Lahteine
c251601916 Simplified SET_BIT, moved to endstops.cpp 2018-02-02 00:34:23 -06:00
Scott Lahteine
eb18ae9003 Define LSBFIRST / MSBFIRST for LPC 2018-02-02 00:34:23 -06:00
Scott Lahteine
f8227abf1c Merge pull request #9384 from tcm0116/2.0.x-retract
[2.0.x] Clear retracted status when homing the Z axis
2018-02-01 23:36:36 -06:00
Scott Lahteine
ea5f91737f Merge pull request #9392 from studiodyne/studiodyne-pause
[2.0.x] Pause resuming fix
2018-02-01 23:32:24 -06:00
teemuatlut
5c69d45f5b [2.0.x] TMC2130 support for LPC platform (#9114) 2018-02-01 21:49:40 -06:00
Scott Lahteine
34160806c0 Fix broken G29 W I J 2018-02-01 21:37:35 -06:00
Scott Lahteine
f5cfdf6efe Use _BV32 to avoid name conflict 2018-02-01 21:37:35 -06:00
Scott Lahteine
6339b506c0 Make sure binary.h is included as needed 2018-02-01 21:37:35 -06:00
Scott Lahteine
6e3519abae Try to use an Neopixel library for Travis CI 2018-02-01 04:14:27 -06:00
studiodyne
51d080d2c1 Update Pause 2018-01-29 21:57:37 +01:00
Thomas Moore
7035471982 Clear retracted status when homing the Z axis 2018-01-29 19:40:04 +00:00
GMagician
6d4bc9a1f8 [2.0.x] Fix SD wrong filename list (#9342)
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-26 14:03:51 -06:00
Bob-the-Kuhn
5bd23db0ee Merge pull request #9351 from Bob-the-Kuhn/Fix-USEABLE_HARDWARE_PWM-for-Due
[2.0.x] fix USEABLE_HARDWARE_PWM for DUE
2018-01-25 22:56:28 -06:00
Bob-the-Kuhn
c6e01ebd52 never mind ... 2018-01-25 22:13:32 -06:00
Bob-the-Kuhn
571ca72824 Merge pull request #9345 from Bob-the-Kuhn/Due-compile-issue-2.0.x
[2.0.x] DUE - add USEABLE_HARDWARE_PWM & clear up some compiler warnings
2018-01-24 22:14:12 -06:00
Bob-the-Kuhn
ab709ccac1 add USEABLE_HARDWARE_PWM & clear up some compiler warnings 2018-01-24 21:42:36 -06:00
Scott Lahteine
70e4f12d2f Merge pull request #9327 from thinkyhead/bf2_fix_parser_M118
[2.0.x] Fix parser.has_value, M118 parameters
2018-01-24 00:57:41 -06:00
Scott Lahteine
fc5c1a28d8 Fix M118 parameter parsing 2018-01-24 00:30:13 -06:00
Scott Lahteine
399bca316a Fix has_value with FASTER_GCODE_PARSER 2018-01-24 00:30:13 -06:00
Scott Lahteine
80d3ded895 Change parser codebits from array to int32_t 2018-01-24 00:30:13 -06:00
Scott Lahteine
053b1371c7 Simplify G-code debug option 2018-01-24 00:06:07 -06:00
Scott Lahteine
608f8b10da Parser val method parity with 1.1.x 2018-01-24 00:06:07 -06:00
Scott Lahteine
2bea1bda56 Move more strings to PROGMEM 2018-01-24 00:06:06 -06:00
Scott Lahteine
58671e1bc1 Marlin must override _BV for 32-bit masks! 2018-01-23 23:52:35 -06:00
Scott Lahteine
45cfb16424 Merge pull request #8355 from tcm0116/2.0.x-TwoWire
[2.0.x] Master-only TwoWire (I2C) class for LPC1768
2018-01-23 20:14:02 -06:00
Scott Lahteine
c19327f1bb Merge pull request #9325 from thinkyhead/bf2_simple_patches
[2.0.x] Optimize some strings, arc length calculation
2018-01-23 19:27:52 -06:00
Scott Lahteine
1dcfe193ac Optimize some serial strings 2018-01-23 19:14:00 -06:00
Scott Lahteine
9644fe1839 Lightly optimize arc length calculation 2018-01-23 19:13:59 -06:00
Scott Lahteine
c9bda932fe Patch M114 D logical output 2018-01-23 18:50:37 -06:00
Scott Lahteine
4eb41031e9 Merge pull request #9312 from thinkyhead/bf2_fade_info_too
[2.0.x] Include Z Fade in log_machine_info
2018-01-23 14:32:20 -06:00
Scott Lahteine
e5ca60acf5 Patch G29 no_action for A and Q 2018-01-23 14:00:06 -06:00
Scott Lahteine
696f8eb4c6 Include Z Fade in log_machine_info 2018-01-23 14:00:06 -06:00
Scott Lahteine
3217da6fa5 Followup patch for TMC stepper init 2018-01-23 14:00:06 -06:00
Scott Lahteine
db031d5d76 Add missing SoftwareSerial begin for TMC2208
Based on #9299
2018-01-22 10:43:24 -06:00
Thomas Moore
3db35ba9be [2.0.x] Fix change filament for delta machines (#9295) 2018-01-22 10:21:42 -06:00
Scott Lahteine
62ecc74e76 Merge pull request #9297 from thinkyhead/bf2_fix_skew_factor
[2.0.x] Fix Skew Correction pre-calculation overflow error
2018-01-22 08:45:11 -06:00
Scott Lahteine
f7f8569bbf Fix skew settings report precision
Followup to changes from #8843
2018-01-22 08:32:47 -06:00
Scott Lahteine
2ebf52e57d Fix Skew Correction pre-calculation overflow error 2018-01-22 08:20:21 -06:00
Scott Lahteine
adb2ac4747 Fix skew settings report precision 2018-01-22 08:09:36 -06:00
Scott Lahteine
205c5fa078 Merge pull request #9277 from oysteinkrog/fix/DualX_Endstops
[2.0.x] Fix DUAL_X_CARRIAGE endstop tests
2018-01-22 07:42:49 -06:00
Scott Lahteine
90d011cc48 Use ADD_PORT_ARG for all cases 2018-01-22 06:27:22 -06:00
Scott Lahteine
51c7b5d46f Fix set_home_offset bug from bad porting 2018-01-22 06:16:21 -06:00
Scott Lahteine
a19656e7cb Merge pull request #9290 from thinkyhead/bf2_print_start_fix
[2.0.x] Minor filament change improvements
2018-01-22 06:10:58 -06:00
Scott Lahteine
b1cd012aa6 Clean up and document load/unload/pause/resume 2018-01-22 05:45:46 -06:00
Scott Lahteine
266086670b Better LCD message when heating needed 2018-01-22 04:38:37 -06:00
Scott Lahteine
a718f5bdf3 Don't run M600 on filament runout if the nozzle is cold 2018-01-22 04:38:37 -06:00
Scott Lahteine
61bf8478a2 Add hotEnough methods 2018-01-22 04:38:37 -06:00
Scott Lahteine
7a52dfad55 Merge pull request #9283 from thinkyhead/bf2_jgaurora_configs
[2.0.x] Add JGAurora A5 support
2018-01-22 02:21:56 -06:00
Chris Pepper
f875f49caa [2.0.x] LPC1768: Fix: Serial pins disabled correctly when in use (#9193) 2018-01-22 01:54:41 -06:00
Scott Lahteine
c63cffca7f Add example configs for JGAurora A5 2018-01-22 01:27:11 -06:00
Scott Lahteine
7d6c009104 Add thermistor 15 tuned for JGAurora A5 2018-01-22 01:27:11 -06:00
Scott Lahteine
582d073de1 Patch up digital microstepping and SPI CS pins 2018-01-22 01:27:11 -06:00
Scott Lahteine
ab8a1a2a0d Sync gCreate gMax1.5+ config with 1.1.x 2018-01-22 01:05:12 -06:00
Scott Lahteine
f9dbd4d9f4 Updated FolgerTech i3-2020 config 2018-01-22 01:05:12 -06:00
Scott Lahteine
348b454401 Probe bounds based on bed size 2018-01-22 01:05:11 -06:00
Bob-the-Kuhn
a440522f84 Merge pull request #9284 from Bob-the-Kuhn/DUE-pins-debug
[2.0.x] PINS_DEBUGGING maintenance
2018-01-21 18:40:39 -06:00
Scott Lahteine
58ed9901d7 Consistent NEOPIXEL_TYPE options 2018-01-21 17:19:38 -06:00
Scott Lahteine
382a5e3318 Clean up trailing whitespace 2018-01-21 17:19:38 -06:00
Øystein Krog
441517bbe1 Fix DUAL_X_CARRIAGE endstops
\#8170 fixed
2018-01-21 15:32:19 +01:00
Scott Lahteine
b46932f0c0 Merge pull request #9273 from thinkyhead/bf2_creality_tuneup
[2.0.x] Fix and improve Creality configs
2018-01-21 02:53:16 -06:00
Scott Lahteine
49bcb5ce2d Merge pull request #9220 from benlye/lcd-timer
[2.0.x] Fix LCD timer string length
2018-01-21 02:47:59 -06:00
Scott Lahteine
07db5638e2 Add a heating indicator X offset 2018-01-21 02:04:14 -06:00
Scott Lahteine
c68ce8667d Fix and improve Creality configs 2018-01-21 02:04:14 -06:00
Scott Lahteine
8190fdb260 [2.0.x] Option to use Neopixel as case light (#9270)
* Add option to use Neopixel as case light

* Apply CASE_LIGHT_USE_NEOPIXEL to example configs
2018-01-20 16:58:41 -06:00
GMagician
9b519864bf [2.0.x] Relative movements fix (#9259) 2018-01-20 15:22:03 -06:00
Scott Lahteine
887664aa61 Restore broken Dual X Carriage 2018-01-20 15:08:50 -06:00
Scott Lahteine
fb044b6a64 Fix HAL_timer_set_current_count for STM32F1 2018-01-20 14:57:17 -06:00
Scott Lahteine
a8638aa20d Update STM32F1 timer code to use libmaple bb_perip 2018-01-20 14:56:57 -06:00
Scott Lahteine
2e2fd8fd79 Merge pull request #9261 from tcm0116/2.0.x-delta_softstops
[2.0.x] Allow DELTA to compile with soft endstops disabled
2018-01-20 14:16:30 -06:00
Scott Lahteine
750cc02b3a Use delay() in serial temp report 2018-01-20 14:13:17 -06:00
Scott Lahteine
9de8c04945 Allow FIL_RUNOUT_PIN override on RAMPS-based boards 2018-01-20 12:00:59 -06:00
Scott Lahteine
57b61491d3 Set FIL_RUNOUT_PIN for Creality CR10-S
Tested with M43 and found to be connected to DIO 2
2018-01-20 11:56:57 -06:00
Scott Lahteine
4a4d832344 Use standard encoder pulses/steps for CR-10S 2018-01-20 11:35:52 -06:00
Thomas Moore
44239b1062 Allow DELTA to compile with soft endstops disabled 2018-01-20 09:40:36 -06:00
Scott Lahteine
4bc4351250 Date refresh 2018-01-20 09:17:57 -06:00
Scott Lahteine
303d792b9f Merge pull request #9253 from tcm0116/2.0.x-mks_sbase
[2.0.x] Cleanup MKS-SBASE compile warnings
2018-01-19 22:37:38 -06:00
Scott Lahteine
afec16e644 Merge pull request #9240 from tcm0116/2.0.x-eeprom
[2.0.x] Follow-on to #9161
2018-01-19 22:36:24 -06:00
Scott Lahteine
f2ea8a0529 Merge pull request #9197 from p3p/pr_bf2_operation_freemem
[2.0.x] LPC1768: Free up some RAM
2018-01-19 22:35:45 -06:00
Scott Lahteine
5367a1f51f Merge pull request #9216 from benlye/update-gitignore
[2.0.x] Additional .gitignore entry for VS Code
2018-01-19 22:33:41 -06:00
Scott Lahteine
0c176c677e Merge pull request #9231 from GMagician/2.0.x-ramps-pins-fixup
[2.0.x] Expand RAMP case light possibilities
2018-01-19 22:29:32 -06:00
Scott Lahteine
f2d09f27bb Merge pull request #9246 from GMagician/2.0.x-bed-temp-limit-fix
[2.0.x] Standardized max temp values
2018-01-19 22:27:19 -06:00
Bob-the-Kuhn
16eb966ee3 PINS_DEBUGGING cleanup for DUE 2018-01-19 21:12:24 -06:00
Thomas Moore
63fd23ab1c Cleanup MKS-SBASE compile warnings 2018-01-19 15:46:34 -06:00
Bob-the-Kuhn
11e68541b0 Merge pull request #9245 from Bob-the-Kuhn/TMC2208-sanity-check-2.0.x
[2.0.x] add TMC2208 sanity check to AVR
2018-01-19 15:42:53 -06:00
Thomas Moore
429e6ba8a6 Fix lcd_preheat dummy variable types 2018-01-19 15:24:13 -06:00
GMagician
719cd53e09 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:32:46 +01:00
Bob-the-Kuhn
0ea9cdf4f2 TMC2208 sanity check 2018-01-19 12:19:34 -06:00
Roxy-3D
7c469c0712 Suggested change to fix Due compile problem 2018-01-18 23:00:03 -06:00
Roxy-3D
bfd9728cf4 Serial buffer over run work around for v2.0.0 (#9236)
* Work around for serial buffer over run

PronterFace sends a lot of M105 commands.  During long operations such
as UBL's G29 P1, G29 P2, G29 P4 and G26 this can over run the serial
buffer.   This results (very often) in a M1 (actually a M1M105) ending
up in the command queue.

Until we figure out a better way to resolve this issue, this will keep
the UBL commands from experiencing bogus commands at thier completion.
2018-01-18 19:57:18 -06:00
GMagician
c371bdc499 Expand RAMP case light possibilities
Pin 6 is only used by servos when 2 or more of them are used
2018-01-18 18:31:08 +01:00
blye
7c18c2ea5f Fix LCD timer string length 2018-01-17 21:10:45 +00:00
Roxy-3D
9d0cf02fef Correct mesh size calculations 2018-01-17 09:36:12 -06:00
Ben Lye
2af3541880 Additional .gitignore entry for VS Code
Add .vscode/launch.json to .gitignore
2018-01-17 14:28:53 +00:00
Scott Lahteine
c7bad74d8f Merge pull request #9202 from benlye/m73-bugfix
[2.0.x] Fix progress bar duration when time is exactly 86400s
2018-01-16 21:14:58 -06:00
Roxy-3D
af9b32e3b9 Give PronterFace time to print the UBL What information...
Give PronterFace time to print the UBL What information...
2018-01-16 18:00:57 -06:00
Roxy-3D
acb1e31374 Fix UBL Mesh Size regression 2018-01-16 17:58:15 -06:00
Roxy-3D
f5f1b069ad Convert UBL mesh tilting to all use the same algorithm (#9204)
A number of regressions were patched also. The UBL G29 P2 and P4 Press and Hold had stopped working. It is very possible this is broken in the bugfix_v1.1.x branch also.

The main purpose of the Pull Request is to get the 3-Point mesh tilting to use the LSF algorithm just like the grid based mesh tilt. This simplifies the logic and reduces the code size some what. But the real reason to do it is the 3-Point case can be solved exactly. And by feeding these numbers into the LSF algorithm it provides a way to check all that code for 'correctness'.
2018-01-16 11:08:00 -06:00
blye
554d849827 Fix duration when time is exactly 86400s 2018-01-16 08:12:00 +00:00
Christopher Pepper
6f1bf5d212 LPC1768: Config: default to SDSORT_LIMIT = 64 instead of 256 2018-01-15 22:02:21 +00:00
Christopher Pepper
1e65562d55 LPC1768: HAL: only initialise used HardwareSerial ports
Misc formatting
2018-01-15 22:00:59 +00:00
Roxy-3D
9dacd54a50 Get FT-i3-2020 configuration files into compliance with ?_BED_SIZE 2018-01-15 15:33:51 -06:00
Scott Lahteine
d178d6e921 M503 patch for EEPROM_CHITCHAT off
Fix #9155
2018-01-15 06:09:25 -06:00
Scott Lahteine
fa432508b0 Followup to Ender config 2018-01-15 06:00:21 -06:00
Scott Lahteine
72b7331f5f Merge pull request #8806 from fiveangle/bf-circleci_config
[2.0.x] Validate example configs with CircleCI
2018-01-15 05:26:30 -06:00
Thomas Moore
6856eccc77 Master-only TwoWire class for LPC1768 2018-01-15 05:22:03 -06:00
Scott Lahteine
d5bf9e74c4 Merge pull request #8996 from p3p/pr_bf2_more_adc_filter
[2.0.x] PID control fix and more LPC1768 ADC filtering
2018-01-15 05:14:25 -06:00
Scott Lahteine
4d2f277d43 Merge pull request #9189 from psavva/tmc_debug_compile_fix
[2.0.x] Fixes TMC_DEBUG compilation error
2018-01-15 04:52:21 -06:00
Scott Lahteine
43d3d024ac Update tmc_util.cpp 2018-01-15 04:51:59 -06:00
Panayiotis Savva
ad500b01e0 Fixes TMC compilation error 2018-01-15 12:43:22 +02:00
Scott Lahteine
f4e4c7a7c8 Merge pull request #9188 from thinkyhead/bf2_creality_ender
[2.0.x] Add Creality Ender config/board
2018-01-15 04:33:09 -06:00
Scott Lahteine
d743d96886 Merge pull request #9150 from Spawn32/bugfix-2.0.x
Bugfix 2.0.x New board and MCU for Marlin.
2018-01-15 03:51:00 -06:00
Scott Lahteine
2038722c52 LARGE_FLASH obsolete 2018-01-15 03:42:24 -06:00
Scott Lahteine
f887719a40 Creality Ender board support 2018-01-15 03:42:24 -06:00
Scott Lahteine
9a2dd0bc5a Creality Ender 2/4 configuration 2018-01-15 03:42:23 -06:00
Scott Lahteine
2c18faf3e4 General cleanups for HAL 2018-01-15 02:46:37 -06:00
Scott Lahteine
42933c804a Cleanups for STM32F7 2018-01-15 02:46:37 -06:00
Morten
a0246c5c96 Add support for STM32F7 MCU 2018-01-15 01:13:03 -06:00
Scott Lahteine
a27fa80a7e More featureful CR-10S configuration 2018-01-15 01:06:06 -06:00
Scott Lahteine
1a3d2ad275 Merge pull request #9168 from marvin-sinister/rename-M100-2.0.x
[2.0.x] Rename M200 pins file to uppercase
2018-01-15 00:49:06 -06:00
Scott Lahteine
a408209d24 More reliable temperature serial report? 2018-01-15 00:43:51 -06:00
Scott Lahteine
5f807e37c5 A second rename saves nine 2018-01-14 23:44:19 -06:00
Scott Lahteine
3ae41e5f7f Merge pull request #9152 from thinkyhead/bf2_anti_stutter
[2.0.x] Ensure smooth printer movements
2018-01-14 23:34:01 -06:00
Scott Lahteine
02ff12d491 More up front option to show SD percentage 2018-01-14 23:32:39 -06:00
Scott Lahteine
3b15c88225 Merge pull request #9153 from thinkyhead/bf2_malyan_support
[2.0.x] Fix support for Malyan M150
2018-01-14 22:54:00 -06:00
Scott Lahteine
e753d6298f FLSUN Kossel example configs 2018-01-14 22:52:35 -06:00
Scott Lahteine
77c2d810f9 Bring configs up to date 2018-01-14 22:52:06 -06:00
Scott Lahteine
3952070800 Link to marlinfw.org boot screen tool 2018-01-14 22:41:05 -06:00
Scott Lahteine
0cd397a3f8 Add instructions for Malyan M150 2018-01-14 21:15:03 -06:00
Scott Lahteine
344ebc3bd2 Create and use pins_MELZI_MALYAN.h for Malyan M150 2018-01-14 21:14:58 -06:00
Scott Lahteine
094e9b1dab Remove ARDUINO_ARCH_SAM from serial.h too? 2018-01-14 21:07:10 -06:00
Scott Lahteine
c37d38886c Fix serial.h avr block
Followup to #8148
2018-01-14 21:07:10 -06:00
Scott Lahteine
4f5e087ff4 Planner anti-stutter by Sebastian Popp 2018-01-14 21:07:10 -06:00
Scott Lahteine
ac368f2788 Add STEPPER_ISR_ENABLED() to HALs
Some also get a `HAL_timer_interrupt_enabled` function.
2018-01-14 21:07:10 -06:00
Scott Lahteine
5578dccaa0 Merge pull request #9161 from tcm0116/2.0.x-eeprom
[2.0.x] Fix EEPROM SettingsData for 32-bit architectures
2018-01-14 20:50:37 -06:00
Scott Lahteine
6ba8cf8405 Merge pull request #9163 from GMagician/2.0.x-SD-issues-fix
[2.0.x] sd issue fix
2018-01-14 20:48:52 -06:00
Marvin Sinister
50c55b25f7 Renamed to upercase 2018-01-13 15:02:07 +01:00
GMagician
6667a916a4 Indentation fix 2018-01-13 09:48:26 +01:00
GMagician
be717b3c07 Save some program memory
This will save some program memory with no speed lose
2018-01-13 08:56:51 +01:00
GMagician
f37c64ee5b Fix unsupported CMD59
It seems that some SD cards don't support CRC_ON_OFF command. This fix will permit to use also these cards but leaving CRC check active on the system
2018-01-13 08:53:12 +01:00
Thomas Moore
cfd989d7c5 Fix EEPROM SettingsData for 32-bit architectures 2018-01-12 19:38:23 -06:00
Bob-the-Kuhn
da600e5fbe Merge pull request #9132 from Bob-the-Kuhn/add-VIKI2-to-Travis
[2.0.x] add VIKI2 test to Travis & fix LCD contrast (again)
2018-01-12 00:42:04 -06:00
Scott Lahteine
742cff5f3c Followup to #9141 2018-01-11 22:15:01 -06:00
Thomas Moore
84de428d30 [2.0.x] Fix compile errors (#9141)
* Update persistent_store_impl.cpp
* Remove define BYTE from serial functions since Arduino docs typically show 0 for the normal case.
2018-01-11 21:43:26 -06:00
Bob-the-Kuhn
e633ce06c7 LCD contrast type mismatch is back
WORKS!
2018-01-11 10:32:58 -06:00
Scott Lahteine
e654ea1e1a Merge pull request #9130 from thinkyhead/bf2_tmc_followup
[2.0.x] More TMC followup
2018-01-11 03:40:45 -06:00
Scott Lahteine
06eb46b1d4 Merge pull request #9144 from thinkyhead/bf2_Creality_CR-10S
[2.0.x] Creality CR-10S configurations
2018-01-11 01:33:52 -06:00
Scott Lahteine
8ac246162e Creality CR-10S configurations
Provided by printedsolid.com
2018-01-11 01:10:17 -06:00
Scott Lahteine
048486390e Bring some configs up to date 2018-01-11 01:10:17 -06:00
Scott Lahteine
6a043eee55 Various updates for TMC support 2018-01-10 23:04:48 -06:00
Scott Lahteine
2c2cf5e856 Use dev version of platformio 2018-01-10 23:04:48 -06:00
Scott Lahteine
d7fd78cb91 Merge pull request #8148 from tcm0116/2.0.x-multi_host
[2.0.x] Add multi-host support
2018-01-10 02:38:59 -06:00
teemuatlut
a8c446c3bc [2.0.x]DUE: Fix includes for SDSUPPORT (#9112) 2018-01-10 00:46:34 -06:00
Thomas Moore
f7efac57b7 Multi-host support 2018-01-10 00:14:47 -06:00
Thomas Moore
dabb75034c Update example configurations 2018-01-10 00:01:20 -06:00
Scott Lahteine
cf654b9a1a Merge pull request #9131 from Bob-the-Kuhn/LPC-formatted-prints
[2.0.x] LPC1768 formatted print statements
2018-01-09 23:44:10 -06:00
Bob-the-Kuhn
6a50adb4d5 works 2018-01-09 22:15:33 -06:00
Scott Lahteine
5c076a6d93 Improved M915 description 2018-01-09 18:56:27 -06:00
Scott Lahteine
a94104dbb5 Merge pull request #9113 from teemuatlut/TMC_followup
[2.0.x]TMC followup
2018-01-09 18:46:35 -06:00
Dave Johnson
554e577676 SERIAL_STATS_* features not supported on USBCON targets (#9127) 2018-01-09 18:42:55 -06:00
Dave Johnson
2db666e99a Enable USE_ZMIN_PLUG on SCARA example (#9126) 2018-01-09 18:41:28 -06:00
Scott Lahteine
7e000e6af4 More EEPROM field debugging (#9123) 2018-01-09 18:33:44 -06:00
Ivan Kravets
6c0fae15f8 Update cached @PlatformIO packages (#9124)
11 line caches PIO packages (toolchains, libs) which is very good! This PR will force PIO to find updates for installed libs and packages.
2018-01-09 18:32:22 -06:00
Ivan Kravets
a994eec513 Cleanup unused options (#9115) 2018-01-09 18:25:16 -06:00
GMagician
3a99dc7c5c 2.0.x Fix compiler warning (#9116)
Fix duplicate language define warning
2018-01-09 16:54:41 -06:00
GMagician
5295b4713d [2.0.x] add semitec 104NT-4 (#9119)
Table is very very similar to old 104-GT2 so I added only the name and recycled old ID
2018-01-09 16:53:12 -06:00
teemuatlut
cdc61ebf53 Add M915 configuration option 2018-01-09 18:28:48 +02:00
teemuatlut
9d923c6c03 Fix TMC gcode commands 2018-01-08 18:45:05 +02:00
Scott Lahteine
99516572b1 Fix TMC current read from EEPROM 2018-01-07 20:48:46 -06:00
Tannoo
f26805e862 [2.0.x] UBL Mesh Storage Message (#9095) 2018-01-07 20:33:53 -06:00
Scott Lahteine
e180b7a460 Merge pull request #9087 from thinkyhead/bf2_mbl_localize
[2.0.x] MBL cleanup, has_mesh() method
2018-01-07 20:10:22 -06:00
Christopher Pepper
14dcad6bbc LPC1768: Increase ADC median filter from 3 values to 23
Clarify the HAL_adc_get_result method to make sure correct values enter the filters

HAL: Fix the PID control loop for non-AVR platforms
2018-01-07 22:15:20 +00:00
Scott Lahteine
60d07f20e7 Make mbl.has_mesh() a method 2018-01-07 00:13:36 -06:00
Scott Lahteine
86818c9a89 Move MBL functions into the class 2018-01-07 00:13:36 -06:00
Scott Lahteine
95065791b3 Merge pull request #9086 from fiveangle/bf2-hasmesh_on_g29s3
[2.0.x] Set has_mesh if user issues G9 S3 with MBL
2018-01-06 23:27:53 -06:00
Unknown
bbb8d4c802 Set has_mesh if user issues G9 S3
Prevents user from having to manually run through entire manual leveling process only to enable mesh so they can manually restore their offline mesh backup
2018-01-06 21:07:07 -08:00
Scott Lahteine
2b5a9be49c Fix M503 skew output
Followup to 19e75ccf86
2018-01-06 20:55:57 -06:00
Bob-the-Kuhn
082d161a75 Merge pull request #9069 from Bob-the-Kuhn/broken-teensy
[2.0.x] fix Teensy2 compile error (PlatformIO LDF problem)
2018-01-06 16:42:59 -06:00
Scott Lahteine
cf2922f164 Laser/spindle PWM off on M5 2018-01-06 15:29:22 -06:00
Scott Lahteine
cf3fd21234 Merge pull request #9077 from GMagician/2.0.x-bmp-fix
[2.0.x] Clockwise bmp fix
2018-01-06 13:53:48 -06:00
GMagician
5fb6dd1424 Bmp fix
Clockwise arrow fixed
2018-01-06 19:02:36 +01:00
Bob-the-Kuhn
760dbbb734 works
root cause identified
2018-01-06 11:11:29 -06:00
Bob-the-Kuhn
cb0e826c5d Merge pull request #9068 from Bob-the-Kuhn/SD-detect
[2.0.x] SD card detect improvement
2018-01-05 21:09:57 -06:00
Bob-the-Kuhn
f72b0a7b04 1234 2018-01-05 20:36:05 -06:00
Scott Lahteine
702c8acdd5 Settings FIELD_TEST fix 2018-01-05 19:13:30 -06:00
Scott Lahteine
013c911a82 Merge pull request #9056 from thinkyhead/bf2_new_eeprom_powers
[2.0.x] New EEPROM powers
2018-01-05 18:19:35 -06:00
Scott Lahteine
e89f1453ab UBL G29 works without settings.load() 2018-01-05 15:48:34 -06:00
Scott Lahteine
950be70a33 Add FIELD_TEST to validate storage 2018-01-05 15:48:34 -06:00
Scott Lahteine
760c912ab9 Add data size validation 2018-01-05 15:48:34 -06:00
Scott Lahteine
b91ca168fb Add a struct defining EEPROM storage 2018-01-05 15:48:34 -06:00
Scott Lahteine
51e0f2bee3 Add MarlinSettings::validate() 2018-01-05 14:35:24 -06:00
Scott Lahteine
878f54c27b Write filler with NO_VOLUMETRICS 2018-01-05 10:29:49 -06:00
Scott Lahteine
3ea6745b36 Pretty up TMC current write 2018-01-05 10:29:49 -06:00
Scott Lahteine
3319765034 Detab some HAL files 2018-01-05 10:28:17 -06:00
Scott Lahteine
1c41de16d4 Trailing whitespace clean 2018-01-05 10:11:31 -06:00
Scott Lahteine
1746a7352e Merge pull request #9042 from thinkyhead/bf2_M701_M702
[2.0.x] Improved Pause/Load/Unload, M701-M702
2018-01-04 19:41:58 -06:00
Scott Lahteine
048d8a0158 CheapTRONIC v2.0 additions/revisions
Based on #9030
2018-01-04 18:00:25 -06:00
Roxy-3D
3a4e107b6b use SERIAL_EOL(); instead of new line string 2018-01-04 16:20:18 -06:00
Roxy-3D
a5dfe08a81 Add precision to planner.xy_skew_factor so it doesn't print as 0.00 2018-01-04 16:14:09 -06:00
Roxy-3D
19e75ccf86 Add enough precision so planner.xy_skew_factor doesn't print as 0.00 2018-01-04 16:02:22 -06:00
Scott Lahteine
4fb60e1562 M702.cpp => M701_M702.cpp 2018-01-04 15:07:37 -06:00
Scott Lahteine
7541316bb4 Add M701/M702 Filament Load/Unload, M603 2018-01-04 15:07:37 -06:00
Scott Lahteine
81211da7b4 M701 / M702 language changes 2018-01-04 05:05:28 -06:00
Scott Lahteine
8704e533da Apply FILAMENT_LOAD_UNLOAD_GCODES to example configs 2018-01-04 03:56:36 -06:00
Scott Lahteine
455592eee8 Improvements to LCD menu macros 2018-01-04 03:56:36 -06:00
Scott Lahteine
a80f2eea23 Group leveling reports for folding 2018-01-04 03:56:36 -06:00
Scott Lahteine
190cd0a111 Nozzle park args 2018-01-04 03:56:36 -06:00
revilor
0e93506985 Fix for issue #9005, #8942 - Bed PID autotuning (#9036) 2018-01-04 03:26:14 -06:00
Bob-the-Kuhn
016e46a3c0 Merge pull request #9009 from Bob-the-Kuhn/Due-RRDFG-power-up-garbage
[2.0.x] Due - fix power up garbage on RRDFG LCD
2018-01-03 23:19:29 -06:00
studiodyne
31582caa07 2.0 Fix for bad Pause extruder position resuming (#9029) 2018-01-03 23:18:27 -06:00
Scott Lahteine
41246b45f1 Merge pull request #9040 from thinkyhead/bf2_m303_bughunt
[2.0.x] M303 pid autotune cleanup, comment
2018-01-03 23:17:59 -06:00
Bob-the-Kuhn
4626d04067 as good as i can get it
minor edits to force new Travis test (last one timed out)

Update u8g_com_HAL_DUE_st7920_sw_spi.cpp

initial power up display garbage gone
2018-01-03 22:46:31 -06:00
Scott Lahteine
4af3d436b2 M303 pid autotune cleanup, commentary 2018-01-03 21:30:45 -06:00
Bob-the-Kuhn
f968b41f63 Merge pull request #9028 from Bob-the-Kuhn/Due-SDSUPPORT
[2.0.x] Due - allow compile without SD card enabled & misc improvements (replaces PR #9007)
2018-01-03 15:25:40 -06:00
Bob-the-Kuhn
e5b71af8c9 snapshot
found a few more nasties
2018-01-03 10:41:23 -06:00
Scott Lahteine
724e3f33bc Merge pull request #9001 from Tannoo/(2.0.x)_LCD_EEPROM_init_fix
[2.0.x] EEPROM init fix
2018-01-03 05:47:01 -06:00
revilor
959a2d2527 Add beginTransaction to HAL SPI (#9019) 2018-01-03 05:12:25 -06:00
Tannoo
e43f3ac989 EEPROM init fix 2018-01-03 04:31:01 -06:00
Scott Lahteine
fc67c64b8f Merge pull request #8989 from tcm0116/2.0.x_ubl
[2.0.x] Fix UBL compilation warnings
2018-01-02 21:38:45 -06:00
Thomas Moore
8afc4f8d9d Fix UBL compilation warnings 2018-01-02 21:00:06 -06:00
Bob-the-Kuhn
eca5cc8669 Merge pull request #9003 from Bob-the-Kuhn/Due-PINS_DEBUG-&-related
[2.0.x] add Due PINS_DEBUG support & misc improvements (replaces PR #8990)
2018-01-02 18:47:53 -06:00
Bob-the-Kuhn
e9fc7bc69c Merge pull request #9000 from Bob-the-Kuhn/2.0-LCD-contrast
[2.0.x] lcd_contrast type mismatch work around
2018-01-02 18:46:31 -06:00
Bob-the-Kuhn
448b0a0014 Merge pull request #9004 from Bob-the-Kuhn/PWM-for-any-pin-(LPC1768)
[2.0.x] LPC1768 - PWM for any pin (replaces PR #8991)
2018-01-02 11:42:27 -06:00
Bob-the-Kuhn
5574fad69c copy of PR #8991 code
Formatting tweaks

correct array initialization & remove test code
2018-01-02 11:17:46 -06:00
Scott Lahteine
d190c702de Add MKS_BASE Microstepping pins
Based on #9008
2018-01-01 18:49:21 -06:00
Scott Lahteine
5e01ee8adf Temperature updates for parity with 1.1.x 2018-01-01 18:29:08 -06:00
Bob-the-Kuhn
adb9ecf3cc copy of PR #8990 2018-01-01 16:11:56 -06:00
Roxy-3D
39e5fabfa9 Z BabyStepping should not be dependent on a bed leveling system being active 2018-01-01 14:46:50 -06:00
Bob-the-Kuhn
ef911a2d12 works 2018-01-01 14:35:16 -06:00
Scott Lahteine
d80c4f1a6e Fix typo in delta call to buffer_line
Fix #8901
2017-12-31 01:40:07 -06:00
Scott Lahteine
9312ee63b0 Merge pull request #8979 from thinkyhead/bf2_sync_up_configs
[2.0.x] Synchronize configs with 1.1.x
2017-12-31 01:15:43 -06:00
Scott Lahteine
41dfb229ec Merge pull request #8978 from thinkyhead/bf2_slimming_option
[2.0.x] SLIM_LCD_MENUS option
2017-12-31 00:56:29 -06:00
Scott Lahteine
3dd04736c0 Update M17_M18_M84.cpp 2017-12-31 00:26:45 -06:00
Scott Lahteine
2929c9e56f A specific option to SLIM_LCD_MENUS 2017-12-31 00:11:22 -06:00
Scott Lahteine
10edb469bb Apply SLIM_LCD_MENUS to example configs 2017-12-31 00:11:21 -06:00
Scott Lahteine
5294fd132f Merge pull request #8924 from ejtagle/bugfix-2.0.x
[2.0.x] Improve SW SPI for DUE a bit more
2017-12-30 23:32:46 -06:00
Scott Lahteine
0b4a46fa6c Bring configs up to date with 1.1.x 2017-12-30 23:28:53 -06:00
Scott Lahteine
7cc2193bce Add Tronxy X1 example config (#8972) 2017-12-30 17:25:31 -06:00
etagle
729a9f55fc Improved Sw SPI on DUE HAL a bit more.
Now the USB MSD can transfer at 750k/s. Previously, it was 500k/s. I think this is the maximum achievable speed using Sw SPI.
2017-12-30 17:24:38 -06:00
Scott Lahteine
2b1e6829b3 Merge pull request #8966 from thinkyhead/bf2_better_no_reentry
[2.0.x] ultralcd.cpp: Better no_reentry, use in queuing G-code
2017-12-30 16:33:24 -06:00
Scott Lahteine
615146c069 Enqueue commands better in ultralcd.cpp 2017-12-30 04:44:59 -06:00
Scott Lahteine
9686ffedef Single pause flag also indicates SD print pause 2017-12-30 04:44:59 -06:00
Scott Lahteine
6d94bbf618 Apply some PGM_P pointers 2017-12-30 04:03:17 -06:00
Bob-the-Kuhn
9bfabc1f13 Merge pull request #8955 from Bob-the-Kuhn/bugfix-2.0.x
[2.0.x] fix include in pins_RAMPS_FD_V2.h
2017-12-29 10:35:23 -06:00
Bob-the-Kuhn
cba44128d5 fix include 2017-12-29 10:08:30 -06:00
Scott Lahteine
427df8792d Fix Capabilities Report 2017-12-28 21:08:59 -06:00
Scott Lahteine
8274369522 Merge pull request #8945 from thinkyhead/bf2_better_char_lcd
[2.0.x] Display up to 3 extruders on char LCD
2017-12-28 20:48:14 -06:00
Scott Lahteine
2526ac6500 Display up to 3 extruders on char LCD
…and show bed level indicator at the position of the [H] icon, when a heated bed exists.
2017-12-28 20:17:42 -06:00
Scott Lahteine
db32c185ae Merge pull request #8860 from Bob-the-Kuhn/2.0.x-DUE-RRDFGSC
[2.0.x] DUE - update for Reprap Discount Full Graphic Smart Controller
2017-12-27 05:06:49 -06:00
Scott Lahteine
f8156d2d2c Merge pull request #8913 from thinkyhead/bf2_multitool_M600
[2.0.x] Multi extruder support for M600 / LCD
2017-12-27 04:40:50 -06:00
Scott Lahteine
9ecdd1f4c7 Multi extruder support for M600 and LCD 2017-12-27 04:33:25 -06:00
Scott Lahteine
a1ce6e8ff4 Clear lcd_clicked immediately on use 2017-12-26 22:26:04 -06:00
Scott Lahteine
5effe1590c Fix NO_VOLUMETRICS bug 2017-12-26 20:04:44 -06:00
Scott Lahteine
fb6966f2b5 Merge pull request #8912 from thinkyhead/bf2_no_vol_fix
[2.0.x] No sub-menu if NO_VOLUMETRICS
2017-12-26 18:46:39 -06:00
Scott Lahteine
f163eede78 No sub-menu if NO_VOLUMETRICS
For parity with #8911
2017-12-26 18:28:42 -06:00
Scott Lahteine
2c4e03d2cf Indentation of a SW SPI file 2017-12-25 09:34:43 -06:00
Scott Lahteine
1a827d5b68 Opening brace tweaks 2017-12-25 09:34:43 -06:00
Bob-the-Kuhn
a142fab155 Enable RRDFGSC on Due 2017-12-25 09:22:14 -06:00
Scott Lahteine
b259bb4670 Fix tmc_util global vars 2017-12-25 09:05:31 -06:00
Scott Lahteine
4ef965cc40 Fix compiler warnings 2017-12-25 08:53:01 -06:00
Scott Lahteine
95b82ae5e3 Merge pull request #8893 from thinkyhead/bf2_action_on_action
[2.0.x] Fixes for G29, esp. 3POINT
2017-12-25 08:45:53 -06:00
Scott Lahteine
9e8008c49c Fixes for G29, esp. 3POINT 2017-12-25 08:37:27 -06:00
Scott Lahteine
026e301307 lcd_map_control deps on ULTIPANEL 2017-12-25 07:46:25 -06:00
Scott Lahteine
68438b0d4e Merge pull request #8889 from thinkyhead/bf2_action_on_action
[2.0.x] //Actions on Pause / Resume (M600, M125, etc.)
2017-12-25 07:30:24 -06:00
Scott Lahteine
f2731c9f93 Allow consecutive uses of G29 2017-12-25 06:32:33 -06:00
Scott Lahteine
4b49ea1e92 General cleanup of config-store, reset_bed_level 2017-12-25 05:16:01 -06:00
Scott Lahteine
2925852244 Fix GT2560 A+ servo pin 2017-12-25 02:18:56 -06:00
Scott Lahteine
c6354fa153 Tweak M125 code 2017-12-25 01:39:55 -06:00
Scott Lahteine
3b51f5c67e Add pause/resume action to example configs 2017-12-25 01:39:18 -06:00
Scott Lahteine
f704f405af Add pause/resume actions on M600, M125 2017-12-25 01:39:18 -06:00
Thomas Moore
f0a8a1a853 [2.0.x] Use NOZZLE_PARK_FEATURE for ADVANCED_PAUSE_FEATURE (#8866)
* Use NOZZLE_PARK_FEATURE for ADVANCED_PAUSE_FEATURE
2017-12-25 01:38:06 -06:00
Scott Lahteine
705ea98fd3 Comment return false in motion functions 2017-12-24 22:57:15 -06:00
Scott Lahteine
f218eb0ddf Merge pull request #8887 from thinkyhead/bf2_reduce_jerk_default
[2.0.x] Reduce default jerk. XY by half. Z by 1/4
2017-12-24 21:48:35 -06:00
Scott Lahteine
50366b00d5 Tweak cleaning buffer / SD finished command 2017-12-24 20:35:05 -06:00
Scott Lahteine
28fc8741d6 Reduce default jerk. XY by half. Z by 1/4 2017-12-24 19:54:11 -06:00
Scott Lahteine
723da1d7a5 Merge pull request #8872 from Bob-the-Kuhn/2.0.x-deglitch
[2.0.x] remove SET_OUTPUT glitch - LPC1768 & DUE
2017-12-24 19:39:00 -06:00
Bob-the-Kuhn
1a948cbd93 Fix SET_OUTPUT glitch - LPC1768 & DUE 2017-12-24 19:25:32 -06:00
Scott Lahteine
869c89d83f Merge pull request #8865 from thinkyhead/bf2_more_scara_scaling
[2.0.x] SCARA Feedrate Scaling for G2/G3 - using HYPOT
2017-12-24 19:18:13 -06:00
Scott Lahteine
737561c1b3 Merge pull request #8876 from subdancer/bugfix-2.0.x
[2.0.x] RADDS LCD Display
2017-12-24 19:17:14 -06:00
Scott Lahteine
1cf1cf8759 Add RADDS_DISPLAY to example configs 2017-12-24 19:00:23 -06:00
Even
ea1a8d1223 add original RADDS LCD + Controller
adds setup for the original Radds Display+Controller+SD Card Reader PCB
http://doku.radds.org/dokumentation/lcd-display/
2017-12-24 19:00:23 -06:00
Scott Lahteine
4a8fd8ae92 Merge pull request #8853 from ejtagle/bugfix-2.0.x
USB Mass Storage Implementation / CDC with HW flow control and misc fixes and improvements for Arduino DUE/RE-ARM based boards
2017-12-24 18:50:28 -06:00
Scott Lahteine
2d75b540e2 Merge pull request #8867 from tcm0116/2.0.x_pio_errors
[2.0.x][PlatformIO] Stop compiling after first five errors
2017-12-24 18:49:43 -06:00
Scott Lahteine
aa97cd6e9b Merge pull request #8871 from petrzjunior/bugfix-2.0.x
[2.0.x][Language] Update Czech for Dec 2017
2017-12-24 18:48:59 -06:00
Scott Lahteine
2b0165e90c Merge pull request #8878 from tcm0116/2.0.x_revert
[2.0.x] Revert "Followup to #8698"
2017-12-24 18:46:02 -06:00
Thomas Moore
2917d1217d Revert "Followup to #8698"
This reverts commit 4e891e9fb7.
2017-12-23 17:00:33 -06:00
Petr Zahradník
69a51a426c Update Czech language Dec 2017 2017-12-22 19:35:09 +01:00
Thomas Moore
45e73b72a5 Stop compiling after first five errors 2017-12-21 22:44:56 -06:00
Scott Lahteine
caa5093498 General DELTA_IK macro 2017-12-21 22:41:57 -06:00
Scott Lahteine
c694608450 Apply SCARA_FEEDRATE_SCALING to G2/G3 2017-12-21 22:33:27 -06:00
Scott Lahteine
ca145643bd Merge pull request #8863 from thinkyhead/bf2_restore_position_float
[2.0.x] Restore position_float to LIN_ADVANCE
2017-12-21 17:12:28 -06:00
Scott Lahteine
97d509d4d2 Revert "Improved Core-compatible jerk code"
Reverting commit 3cd7659
2017-12-21 16:54:30 -06:00
Scott Lahteine
5bc2acc072 Restore position_float to fix LIN_ADVANCE 2017-12-21 16:45:46 -06:00
etagle
33a6fc70e4 Adding USB MSD implementation to the HAL: Now, when you plug the Native USB port of the Arduino DUE to your PC, it will be detected as a composite USB device: One of the devices is a USB CDC (Serial port over USB) with native USB handshake (no more overflows!!) (set SERIAL_PORT to -1 to use it as main serial port) and also, a MSD (USB Mass Storage Device) will be detected, and the SD card present on the socket will be reflected as a Removable disk on your PC) 2017-12-21 02:42:46 -03:00
etagle
d8a4db72ac Reimplemented SW SPI for DUE in assembler. This allows to reach 12Mhz as SPI Clock and improves 4x the transfer speed to the SD card. This is REQUIRED so access to SD from USB is usable (allows 600Kbytes/second transfer speeds) 2017-12-21 02:35:49 -03:00
etagle
99b2fc2066 Adjusted timings on the ST7290 u8glib so RE-ARM and RAMPS4DUE have no problems when writing to the graphics LCD. This fixes Issue #8787 - Special thanks to Bergerac56 for testinf this out !!! 2017-12-21 02:33:22 -03:00
etagle
498ea7512a Exposed SDCard interface to the public, to USB MSD is able to read/write sectors on the SD card 2017-12-21 02:30:18 -03:00
etagle
9aff55ed1f Backported latest improvements and fixes from the SdFat liibrary to our own version. This includes support for CRC7 validation on commands and also, made sure that even if using software SPI implementations, SD card speed is properly adjusted when transitioning from INITIALIZATION to DATA TRANSFER mode. ALL HALs implement spiInit, even in SW SPI mode, and we NEED this change to improve 25x the transfer speed of the SD card and allow implementations of USB MSD 2017-12-21 02:29:00 -03:00
etagle
7447979110 Fixed some warnings on the MakerParts configuration, when compiling using the AVR toolchain (integer overflow on the preprocessor calculations) 2017-12-21 02:23:24 -03:00
etagle
b6f9c333d4 Adding hooks into the idle loop so HALs can execute 2nd plane tasks, such as serving SD card read/writes requested from the USB MSD layer 2017-12-21 02:22:08 -03:00
victorpv
2ec4113cb2 Changes to STM32F1 HAL (#8833)
Some to correct missing files from previous PR to completely avoid
HardwareTimer Class (reduce overhead). Some changes to formatting.
Changes to DMA ADC to work correctly.
Change to F1 sanity check.
2017-12-20 16:16:36 -06:00
Scott Lahteine
913d9e9a59 Matching sign across filwidth vars 2017-12-20 00:17:19 -06:00
Scott Lahteine
3cde4c78b2 Use wildcard *.cpp in Makefile
Based on #8738
Addressing #8731
2017-12-19 23:44:46 -06:00
Scott Lahteine
63cc34f632 Merge pull request #8846 from thinkyhead/bf2_no_volumetrics
[2.0.x] One setting to validate filament width
2017-12-19 23:31:23 -06:00
Scott Lahteine
fdc5e72720 A single setting to validate filament width 2017-12-19 21:33:25 -06:00
Scott Lahteine
5a0f9605e3 Merge pull request #8842 from thinkyhead/bf2_no_volumetrics
[2.0.x] Add option for NO_VOLUMETRICS
2017-12-19 21:14:35 -06:00
Scott Lahteine
93a6a4e1a8 Add VOLUMETRIC capability item 2017-12-19 20:11:23 -06:00
Scott Lahteine
af1d6acb7e Travis test NO_VOLUMETRICS 2017-12-19 20:07:53 -06:00
Scott Lahteine
933f76fda3 Option to disable all volumetric extrusion 2017-12-19 19:51:25 -06:00
Scott Lahteine
31e33d2acd Add NO_VOLUMETRICS to example configs 2017-12-19 19:51:25 -06:00
Scott Lahteine
fc9ee1a4de Fix up serial sanity check 2017-12-19 19:11:43 -06:00
Scott Lahteine
de5ca96654 More parity with 1.1.x, plus whitespace 2017-12-19 18:36:16 -06:00
Scott Lahteine
a891d8d738 Merge pull request #8820 from thinkyhead/bf2_mks_sbase_spi
[2.0.x] Fix SDSUPPORT for MKS SBASE
2017-12-17 21:15:49 -06:00
Scott Lahteine
029333a8eb Merge pull request #8819 from thinkyhead/bf2_reverting_XXXX
[2.0.x] Revert "Initial step correction"
2017-12-17 20:59:41 -06:00
Scott Lahteine
097a26007f Fix SDSUPPORT for MKS SBASE
Fix supplied by @cjsoong in https://github.com/MarlinFirmware/Marlin/issues/8750#issuecomment-350779983
2017-12-17 03:05:33 -06:00
Scott Lahteine
8df5955da4 Revert "Reset timer count before first block step"
This reverts commit 5cf6a062e3.
2017-12-17 02:37:35 -06:00
Scott Lahteine
957bbab57f Update inc files for parity with 1.1.x 2017-12-16 20:20:06 -06:00
Scott Lahteine
f79026acc1 Apply MKS_12864OLED_SSD1306 to examples
Followup to #8814
2017-12-16 20:15:36 -06:00
Unknown
502258aa5f Validate example configs with CircleCI
Runs in parallel to TravisCI and runs *much* faster on same jobs.  Finishes all examples configs in <8 min on cache hit; <10 min on cache miss.  Cache miss is triggered on platformio.ini change. I'd suggest move to it entirely, but it is limited to just 1500 min of runtime per month and it isn't clear yet how much Marlin would need so suggest we implement in parallel like this, then observe.  If the example builds don't catch issues, and 1500 min turns out to be plenty, we can switch to implimenting standard arsenal of tests in CircleCI and ditch TravisCI to gain speed improvement (although I do like seeing the varied Travis avatars staring at me ;).

I agree that hand-crafted tests would be better, but until we have that, this can't hurt.

After merging, you'll need to add Marlin project to CircleCI at: https://circleci.com
Example results at: https://github.com/fiveangle/Marlin/commits/bf-circleci_config
2017-12-16 19:32:50 -06:00
Dan Delaney
b055d8c39c [2.0.x] Adding support for using the MKS_12864OLED with the SSD1306 controller (#8814)
* Adding support for using the MKS_12864OLED with the SSD1306 controller

* Update comment for correct controller type
2017-12-16 18:47:04 -06:00
Scott Lahteine
2690ce7a96 Fix use_example_configs to handle spaces in path 2017-12-16 17:29:35 -06:00
Scott Lahteine
1de7c75590 Merge pull request #8799 from thinkyhead/bf2_zonestar_tronxy
[2.0.x] Support for Tronxy and Zonestar LCD
2017-12-15 19:55:36 -06:00
Scott Lahteine
15d05748df Adding support for the Tronxy and Zonestar LCD 2017-12-15 19:13:52 -06:00
Scott Lahteine
9abbcc3ee0 Apply ZONESTAR_LCD to example configs 2017-12-15 19:11:02 -06:00
Scott Lahteine
20008b72a8 Merge pull request #8784 from fiveangle/bf2-travis_examples_squashed
[2.0.x] Fix example configs and add to TravisCI tests - squashed
2017-12-15 17:34:34 -06:00
Dave Johnson
aed0cfa3d1 Various fixes for 2.0.x configs 2017-12-15 17:09:46 -06:00
Scott Lahteine
f9aa1daa0d Merge pull request #8793 from robpower/NanoDLP_Sync_improvement_2
[2.0.x] V2 Extended NanoDLP_Z_Move_Sync to G4 & G28,Added all axis option.
2017-12-15 16:42:29 -06:00
Scott Lahteine
674deaf223 Add NANODLP_ALL_AXIS to config examples 2017-12-15 16:22:56 -06:00
robpower
5595098063 V2 Extended NanoDLP_Z_Move_Sync to G4 & G28,Added all axis option. 2017-12-15 16:22:55 -06:00
Scott Lahteine
2b7db90340 Bring Malyan M200 config up to date 2017-12-15 15:47:22 -06:00
Scott Lahteine
8b12371e45 Change some hex case 2017-12-15 15:47:22 -06:00
Scott Lahteine
4782acf60e Merge pull request #8780 from fiveangle/bf2-typo
[2.0.x] typo in Marlin.cpp
2017-12-15 15:25:41 -06:00
teemuatlut
0cd1e91056 [2.0.x] TMC driver update (#8769) 2017-12-15 15:03:14 -06:00
Scott Lahteine
09d13f186f Correct unskew, after all 2017-12-15 14:24:20 -06:00
Scott Lahteine
c5632bb91b Merge pull request #8792 from fiveangle/bf2-HAS_HEAT_BED_conditional
[2.0.x] Missing HAS_HEAT_BED conditional
2017-12-15 14:18:48 -06:00
Dave Johnson
0d531d9655 Missing HAS_HEAT_BED conditional
Fixes issue found in #8779
2017-12-15 11:33:37 -08:00
Dave Johnson
69efb87d19 typo in Marlin.cpp 2017-12-14 08:20:45 -08:00
Scott Lahteine
368c124de8 Fix Planner::unskew parity with skew 2017-12-13 17:46:48 -06:00
Scott Lahteine
21a7b4f26d Merge pull request #8773 from thinkyhead/bf2_filwidth_refinement
[2.0.x] Comment, fix filament width sensor
2017-12-13 16:26:11 -06:00
Scott Lahteine
cf2193c07f Comment, fix filament width sensor 2017-12-13 02:32:34 -06:00
Scott Lahteine
a641992c1d Merge pull request #8762 from victorpv/patch-2
[2.0.x] STM32F1 HAL: Fix issue #8585. Updates to readme.
2017-12-12 18:28:18 -06:00
Eduardo José Tagle
ac168a03c8 Fixes for the Arduino DUE HAL (Serial Port, Graphics Display, EEPROM emulation) (#8651)
* Fixing the DUE serial port assignments: Now -1 means the SAM3x USB Device emulating a serial port, and 0 means the USB to serial adapter included as a programming port

* Improving the Fast IO port access implementation on Arduino DUE

* Implemented EEPROM emulation on Due by storing data on the internal FLASH (with wear leveling)

* Implemented a Software SPI for the ST7920 graphics display for the Arduino RAMPS for DUE, as the default one in u8glib is clocking data too fast on ARM, and the display does not understand it.

* Fixing the case where the serial port selected is the USB device

* Adding configuration for the Makerparts 3D printer (www.makerparts.net)

* Tuned MakerParts acceleration on X and Y axis so it never loses steps. Also adjusted pulses per mm to match default hw configuration

* Fine tuned Maximum acceleration for MakerParts printer

* Style cleanup

* Style cleanup (2)

* Style fixes (3)

* Fixing the DUE serial port assignments: Now -1 means the SAM3x USB Device emulating a serial port, and 0 means the USB to serial adapter included as a programming port

* Improving the Fast IO port access implementation on Arduino DUE

* Implemented EEPROM emulation on Due by storing data on the internal FLASH (with wear leveling)

* Implemented a Software SPI for the ST7920 graphics display for the Arduino RAMPS for DUE, as the default one in u8glib is clocking data too fast on ARM, and the display does not understand it.

* Fixing the case where the serial port selected is the USB device

* Adding configuration for the Makerparts 3D printer (www.makerparts.net)

* Tuned MakerParts acceleration on X and Y axis so it never loses steps. Also adjusted pulses per mm to match default hw configuration

* Fine tuned Maximum acceleration for MakerParts printer

* Style cleanup

* Style changes to u8g_dev_st7920_128_64_sw_spi.cpp

* Even more improvements to the FastIO HAL for DUE. Now WRITE() is 2 ASM instructions, if value is constant, and 5 cycles if value is not constant. Previously, it was 7..8 cycles

* After some problems and debugging, seems we need to align the interrupt vector table to 256 bytes, otherwise, the program sometimes stops working

* Moved comments out of macro, otherwise, token pasting does not properly work sometimes

* Improved Software SPI implementation on DUE: Now it honors the selected speed passed to spiInit(). This allows much faster SDCARD access, improving SDCARD menus and reducing latency

* Update u8g_dev_st7920_128_64_sw_spi.cpp

* Disabling EEPROM over FLASH emulatiion if an I2C or SPI EEPROM is present
2017-12-12 17:51:36 -06:00
victorpv
084f2434a7 Update readme.md 2017-12-11 23:14:13 -06:00
victorpv
7c7ae5ebef Delete duplicated file. 2017-12-11 23:10:44 -06:00
victorpv
4feffca178 fix for issue #8585
As reported in this issue:
https://github.com/MarlinFirmware/Marlin/issues/8585
I have it working fine in my local copy like that change.
2017-12-11 23:07:39 -06:00
Scott Lahteine
c555a214d2 Merge pull request #8730 from thinkyhead/bf2_fixup_ubl
[2.0.x] UBL - Skew and Dual X Carriage
2017-12-11 03:37:13 -06:00
Scott Lahteine
d568e586b7 Fix up ubl_motion indentation 2017-12-11 03:08:45 -06:00
Scott Lahteine
24f9bec6f4 UBL + DUAL_X_CARRIAGE compatibility 2017-12-11 03:08:18 -06:00
Scott Lahteine
6d0678d963 Omit unused UBL motion code 2017-12-11 03:08:18 -06:00
Scott Lahteine
3255712343 Skew Correction for UBL
Also remove unused grid slicing function when using UBL segmented.
2017-12-11 03:08:15 -06:00
Scott Lahteine
3d796d8040 Move debug code 2017-12-11 00:27:06 -06:00
Scott Lahteine
3db5303bfe _buffer_line => buffer_segment 2017-12-11 00:27:06 -06:00
Scott Lahteine
a71d2f3f40 UBL_DELTA => UBL_SEGMENTED 2017-12-11 00:27:06 -06:00
Scott Lahteine
73e32925e4 References are better for array args 2017-12-11 00:27:06 -06:00
Scott Lahteine
125c572d97 Tweak M114 detail 2017-12-11 00:27:06 -06:00
victorpv
a5150c83a2 [2.0.x] Multiple updates to STM32F1 HAL (#8733)
* STM32F1 HAL

Adding files for STM32F1 HAL based on libmaple/stm32duino core.
Current persistent_store uses cardreader changes to be sent in separate
commit, but could be changed to use i2c eeprom.
There is another persistent_store implementation that uses the MCU flash memory
to emulate eeprom
Adding readme with some information about the stm32 HAL.

* Switch to Timer4 to avoid a hard reset on STM32F103C6 boards

On bluepill STM32F103C6 boards, using Timer5 results in a error() vector call. Switch to 4 since these are both general purpose, 16 bit timers.

* Add support for EEPROM emulation using Flash

Some low end machines doe not have EEPROM support. Simulate it using the last two pages of flash. Flash does not allow rewrite between erases, so skip writing the working version if that's enabled.

* Basic Pins for a malyan M200

This is a work in progress to go hand in hand with the STM32 work.

* Add support for ADC with DMA. This work has exposed a problem with the pin enumerations in STM boards vs what marlin expects (i.e, try defining PA0 as a temp pin). The hack can be removed with we go to fastio completely. To see this work, set something in adc_pins to a value like PA0 and connect your pullup resistor'd thermistor.

* Missing file - change HAL_adc_init to actually do something

We have an actual ADC init function now.

* Remove pinmode hack

Remove the pin mode hack that I was using to init PA0.

Updated Readme.md

* Several changes to timers and GPIO

Faster GPIO, and faster timer functions by accesing registers and
libmaple.
Still more changes pending for the Timer's code to skip using the
HardwareTimer class altogether.

Switch all enums to be within #defines

This change allows a user to have, for instance, TEMP_4 and TEMP_BED definied but nothing else. The enums which are not defined move "out", allowing the first ones to take the slots in the enum, and since the array is sized on ADC_PIN_COUNT, we always have the right size data and in order.

* Update Malyan M200 pins

Update Malyan M200 pins with correct fan values.

* Test all pins on actual hardware, update definitions

Some of the pin definitions were from knowlege base/pdfs. Now they've been tested against actual hardware. This should be very close to final.

* Update HAL_timers_Stm32f1.cpp

* Add sample configurations for Malyan M200

Add sample configuration for Malyan M200 without bed leveling, and move fan to auto cool E0 since this printer by default has only one fan.


Choose the timer based on MCU defintion. Timer5 is not valid on C8/CB class boards, so use Timer4 for the step timer.


readme.md update

* Updates to timers, and some stm32 boards definitiions

* Correct pin toggle macro.

* Remove duplicated Malyan M200 entry from pins.h

* Update configuration_store.cpp

* Formatting, indentation

* Formatting in HAL_Stm32f1.cpp
2017-12-10 23:12:45 -06:00
Scott Lahteine
204199e1ce Only compare XYZ to check motion 2017-12-10 23:00:00 -06:00
Scott Lahteine
f53e0702fc Merge pull request #8747 from thinkyhead/bf2_sync_M420_M852
[2.0.x] M852 changes position. Position change reporting.
2017-12-10 22:40:32 -06:00
Scott Lahteine
6686d937fb Always report position on config load/reset 2017-12-10 21:47:14 -06:00
Scott Lahteine
117fc872a7 Update current position in M852 2017-12-10 21:39:49 -06:00
Scott Lahteine
7d2e850577 Have M420 report a changed position 2017-12-10 21:39:49 -06:00
Scott Lahteine
03ba79f144 Sync and report changed position 2017-12-10 21:39:49 -06:00
Scott Lahteine
11f9c253e0 Merge pull request #8736 from thinkyhead/bf2_first_step_fix
[2.0.x] Reset timer count before first block step
2017-12-10 19:02:22 -06:00
Scott Lahteine
5cf6a062e3 Reset timer count before first block step 2017-12-10 18:38:53 -06:00
Scott Lahteine
6149b82119 Allow setting current timer counter 2017-12-10 18:38:53 -06:00
Scott Lahteine
82ef6b5242 Add an option to specify "pulse" timer 2017-12-10 18:38:53 -06:00
Scott Lahteine
b8bc965414 General cleanup HAL timers 2017-12-10 18:38:52 -06:00
Scott Lahteine
69d49a2438 Shorter segments may be better 2017-12-09 06:29:14 -06:00
Scott Lahteine
9b800b7fbe Merge pull request #8726 from thinkyhead/bf2_minirambo_10a
[2.0.x] Add board Mini RAMBo 1.0a
2017-12-09 00:06:05 -06:00
Scott Lahteine
d576f5408e Add MiniRAMBo 1.0a board 2017-12-08 23:42:16 -06:00
Scott Lahteine
c40cb52342 Use MB() for Megatronics 3.1 2017-12-08 23:42:16 -06:00
Scott Lahteine
a2ac452ef9 Merge pull request #8725 from thinkyhead/bf2_hal_timer_for_advance
[2.0.x] TCNT0 => HAL_timer_get_current_count
2017-12-08 23:05:06 -06:00
Scott Lahteine
4fa65a5c25 TCNT0 => HAL_timer_get_current_count
Fix #8710
2017-12-08 22:35:28 -06:00
AnHardt
b3daf6b5db [2.0.x] better reverse pass (#8722)
* repair reverse_pass()

And make it readeble.
This was broken a long time ago.
Not competely unfunctional but far from optimal.

* Minor speedup when calling calculate_trapezoid_for_block

2 float / to 1 foat / and 2 float *

* Various style changes
2017-12-08 21:38:45 -06:00
Roxy-3D
f58eb391aa [2.0.0] Better off mesh behavior for UBL (#8714)
* Better off mesh behaviour for UBL

* Suggested ubl.h changes
2017-12-08 19:00:59 -06:00
Jonathan Barchi
cffd052fee [2.0.x] Fix for #8604 (#8717)
* Nozzle.cpp: replace incorrect M_2_PI (2/pi) with 2.0 * M_PI

* Use RADIANS(360) instead of 2 * M_PI
2017-12-08 18:50:05 -06:00
Bob-the-Kuhn
79c402b052 Merge pull request #8719 from Bob-the-Kuhn/2.0.x-planner-speed-improvement
[bugfix-2.0.x] minor planner.cpp speed improvement (follow up to COREXY stutter changes PR #8698)
2017-12-08 18:40:36 -06:00
Bob-the-Kuhn
65d0f32f82 divide only when required 2017-12-08 18:14:27 -06:00
Scott Lahteine
728acf521c Followup to #8706 2017-12-08 03:49:33 -06:00
Scott Lahteine
206866ebb3 Merge pull request #8708 from thinkyhead/bf2_splits_are_expendable
[2.0.x] Discard "continued" blocks on interrupted move
2017-12-08 03:35:09 -06:00
Scott Lahteine
85c6ffbe0d Discard all "continued" blocks on interrupted move 2017-12-08 02:32:58 -06:00
Scott Lahteine
4e891e9fb7 Followup to #8698 2017-12-08 01:01:12 -06:00
Scott Lahteine
de3d3b9cb1 Put FORCE_INLINE before static 2017-12-08 00:46:22 -06:00
Scott Lahteine
43ea265b78 Merge pull request #8685 from MateuszKrawczuk/patch-3
Update TEMP_BED_PIN in MIGHTYBOARD_REVE
2017-12-07 21:50:35 -06:00
Scott Lahteine
9d65e61f39 Merge pull request #8706 from thinkyhead/bf2_multi_probe
[2.0.x] MULTIPLE_PROBING — Why stop at 2?
2017-12-07 21:21:38 -06:00
Scott Lahteine
ae663a4198 PROBE_DOUBLE_TOUCH => MULTIPLE_PROBING 2017-12-07 16:44:13 -06:00
Scott Lahteine
d7800e7975 Apply MULTIPLE_PROBING to example configs 2017-12-07 16:44:12 -06:00
Scott Lahteine
542efda7db Merge pull request #8698 from thinkyhead/bf2_replace_jerk_code
[2.0.x] Improved Core-compatible jerk code
2017-12-07 00:17:00 -06:00
Scott Lahteine
438c21ad5c Merge pull request #8693 from GMagician/2.x-address-#8644
[2.x] Address #8644
2017-12-07 00:05:02 -06:00
Scott Lahteine
3cd7659924 Improved Core-compatible jerk code 2017-12-06 23:57:57 -06:00
GMagician
99fcf60977 [2.x] addressing #8644
Removed missing include file
2017-12-06 23:49:30 -06:00
Scott Lahteine
81c0a918af feed_factor => inverse_secs 2017-12-06 23:03:33 -06:00
Scott Lahteine
f206b81cf7 Sanity check skew+UBL 2017-12-06 22:56:58 -06:00
Scott Lahteine
60e7951312 Merge pull request #8691 from thinkyhead/bf2_clean_blocks_on_trigger
[2.0.x] Purge blocks on endstop/probe hit
2017-12-06 22:39:43 -06:00
Scott Lahteine
9898b96992 No lcd_map_control flag in quick_stop 2017-12-06 22:23:34 -06:00
Scott Lahteine
840289e7cc Use block cleaning instead of split flag 2017-12-06 22:22:58 -06:00
Scott Lahteine
d163c4b530 Merge pull request #8695 from thinkyhead/bf2_fixes_DEC6
[2.0.x] Cleanup, bugfixes, parity with 1.1.x
2017-12-06 22:22:35 -06:00
Scott Lahteine
90cf6a06be Simplify G26 user_canceled 2017-12-06 22:02:54 -06:00
Scott Lahteine
cdfabbc507 Shorten error text in G29 2017-12-06 21:50:54 -06:00
Scott Lahteine
c846388a65 Standardize LCD interface code for UBL a little 2017-12-06 21:50:54 -06:00
Scott Lahteine
2fde60da12 Changes for parity with 1.1.x 2017-12-06 21:50:54 -06:00
Scott Lahteine
6040d4080e Cleanup stepper ISR. Allow cleaning for endstops. 2017-12-06 21:23:37 -06:00
Scott Lahteine
a4e1d83599 Fix M503 S parameter 2017-12-06 21:23:37 -06:00
Scott Lahteine
a3b098b4be Whitespace clean 2017-12-06 14:02:44 -06:00
Scott Lahteine
466f2761cb Merge pull request #8688 from AnHardt/2_first_move_probing_homing
[2.0.x] Don't split first_move while homing or probing
2017-12-06 11:52:50 -06:00
AnHardt
a993c5227d 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:13:05 +01:00
Mateusz Krawczuk
5320906b0b Update TEMP_BED_PIN in MIGHTYBOARD_REVE
Pin K7 number in fastio1280.h is 69, but it's also ADC15 pin. 
To get correct value from ADC reading it should be set as 15.
2017-12-06 12:07:20 +01:00
Scott Lahteine
aeb5c623c1 Show "Level Bed Corners" with UBL too
Addressing #8676
2017-12-05 21:58:43 -06:00
Scott Lahteine
5fbb2f121e Remove skew warning that could crash the planner 2017-12-05 20:27:20 -06:00
Scott Lahteine
1da2b2dd74 Merge pull request #8667 from Wackerbarth/PID_on_bed_only
[2.0.x] Compilation errors with PIDTEMPBED only
2017-12-05 20:15:05 -06:00
Richard Wackerbarth
c1184552ac Change K1 to required option PID_K1 2017-12-05 19:59:59 -06:00
revilor
9e3fbcf35c fix for #8669 (#8679)
* fix for #8669

* Update G28.cpp
2017-12-05 19:40:36 -06:00
Scott Lahteine
d8b444c144 Cleanup constextpr in planner.cpp 2017-12-05 18:55:57 -06:00
Scott Lahteine
a2372cfab5 Fix SKEW_CORRECTION without leveling 2017-12-05 18:48:34 -06:00
Scott Lahteine
4d3c3d0b73 Some ST7920 parity with 1.1.x
Possibly more should be brought over? Discussion at #8471
2017-12-05 02:22:36 -06:00
Scott Lahteine
3748c28924 Fix MBL G29 without LCD
Addressing https://github.com/MarlinFirmware/Marlin/pull/8575#discussion_r154536617
2017-12-05 01:57:45 -06:00
Scott Lahteine
772298257b Creality pins spacing, MINIPANEL CS pin 2017-12-05 01:57:45 -06:00
Scott Lahteine
b27bc67271 Set initial endstops state 2017-12-05 01:10:31 -06:00
Scott Lahteine
cb8b9950af Merge pull request #8663 from thinkyhead/bf2_rampsplus
[2.0.x] Support for RAMPS Plus (3DYMY)
2017-12-05 01:07:25 -06:00
Scott Lahteine
b6ba32ce75 Support for RAMPS Plus (3DYMY) 2017-12-05 00:42:21 -06:00
Scott Lahteine
53694ebaa1 Folllwup to planner splitting 2017-12-04 18:55:23 -06:00
Scott Lahteine
37fff608b0 Merge pull request #8652 from fiveangle/bf2_usbcon_xonxoff
[2.0.x] SERIAL_XON_XOFF not supported on USB-native AVR devices
2017-12-04 16:46:18 -06:00
Scott Lahteine
02dd621ac7 Merge pull request #8659 from thinkyhead/backup_2_split_first
[2.0.x] Split first move to planner for better chaining
2017-12-04 16:17:27 -06:00
Scott Lahteine
4b612f590c Split first move to planner for better chaining 2017-12-04 15:27:47 -06:00
Unknown
91b63f6d69 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 03:57:01 -08:00
Bob-the-Kuhn
cff886ba12 Merge pull request #8650 from Bob-the-Kuhn/2.0.x-comment
[2.0.x] LPC1768 - add explanations in spi_pins.h
2017-12-03 20:56:04 -06:00
Bob-the-Kuhn
57fac33a74 add explanations
1) add explanations as to why software SPIs are selected

2) remove unused flag/option
2017-12-03 20:32:22 -06:00
Bob-the-Kuhn
3e2a515d27 Merge pull request #8646 from Bob-the-Kuhn/2.0.x-RRDFGSC-&-MKS-Sbase
[2.0.x] MKS Sbase support for RepRap Discount Full Graphic Smart Controller
2017-12-03 20:16:51 -06:00
Bob-the-Kuhn
bb23286383 add README & modify spi_pins.h
still trying to fix file name
2017-12-03 20:00:56 -06:00
Scott Lahteine
f125ba7eb6 Merge pull request #8647 from thinkyhead/bf2_planner_split_first
[2.0.x] Revert PR #8611 — split first planner move
2017-12-03 18:15:01 -06:00
Scott Lahteine
dd8febca1a Revert "Merge pull request #8611 from thinkyhead/bf2_planner_split_first"
This reverts commit 824980e70e, reversing
changes made to aa7efb96bf.
2017-12-03 17:50:19 -06:00
Bob-the-Kuhn
fb44f8e50f Merge pull request #8616 from hg42/bugfix-2.0.x
[2.0.x][LPC1768][FIX] NUM_DIGITAL_PINS was negative, fixes PWM, arduino io functions, M42, M43, M226, probably also Servo, some LCD, soft spi, SoftwareSerial, ... may be others
2017-12-03 14:48:00 -06:00
Bob-the-Kuhn
4c5356f77a Merge pull request #8622 from hg42/implement-LPC1768-GET_TIMER
[2.0.x][LPC1768][fix] Implement GET_TIMER and other GET_xxx, fixes PWM
2017-12-03 14:46:22 -06:00
Harald Gutsche
f5b4e1ef4f as a workaround enable PWM for any pin, see PR #8622 2017-12-03 20:37:02 +01:00
Scott Lahteine
6e944a413c Merge pull request #8607 from benlye/patch-1
[2.0.x] Fix M49 so that it does not hang the terminal console
2017-12-03 03:41:33 -06:00
Scott Lahteine
967522b95e Merge pull request #8615 from dot-bob/Duplicator_6-2.0.x
[2.0.x] Example configurations for Wanhao Duplicator 6
2017-12-03 03:37:48 -06:00
Scott Lahteine
f4b16a3bac Update M49.cpp 2017-12-03 03:34:56 -06:00
Scott Lahteine
f9327534f8 Merge pull request #8634 from fiveangle/bf2_report_xonxoff
[2.0.x] Report SERIAL_XON_XOFF in M115
2017-12-03 02:18:50 -06:00
Scott Lahteine
da9f140829 Merge pull request #8637 from thinkyhead/bf2_ubl_uses_LSL
[2.0.x] Use custom segment length for UBL Cartesian
2017-12-03 01:57:49 -06:00
Scott Lahteine
824980e70e Merge pull request #8611 from thinkyhead/bf2_planner_split_first
[2.0.x] Split first planner move for better chaining
2017-12-03 01:50:46 -06:00
Scott Lahteine
3a97de52ef Split first move to planner for better chaining
Address #8573, #8595
2017-12-03 01:27:14 -06:00
Scott Lahteine
24437de591 Use custom segment length for UBL Cartesian 2017-12-03 00:10:54 -06:00
Unknown
4c5ffd2349 [2.0.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
-Update error message conditions
2017-12-02 21:08:06 -08:00
Scott Lahteine
aa7efb96bf Bring configurations up to date 2017-12-02 21:50:51 -06:00
Scott Lahteine
63a91cd37a Fix a homing comment 2017-12-02 21:02:37 -06:00
Scott Lahteine
8056120195 Rename inverse_mm_s => inverse_secs 2017-12-02 20:28:09 -06:00
Scott Lahteine
23557f8e77 Remove obsolete de_float 2017-12-02 20:23:10 -06:00
Jonathan Barchi
05f8e98c4a Fix for issue #8629 - mismatch between number of stored and loaded dummy items on non-delta machines. (#8631) 2017-12-02 19:04:58 -06:00
Roxy-3D
48fb4e0932 Get Bi-Linear to work with G26
More corrections to make that happen...
2017-12-02 14:14:24 -06:00
Roxy-3D
0850b38b45 Get Bi-Linear working 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:10:30 -06:00
Scott Lahteine
000b3b3117 Comment/cleanup of motion code 2017-12-02 01:09:55 -06:00
Scott Lahteine
046a1ad331 Merge pull request #8625 from tcm0116/2.0.x-G33
[2.0.x] Fix missing return values in G33_auto_tune
2017-12-02 00:51:19 -06:00
Scott Lahteine
98aba6a534 Merge pull request #8624 from thinkyhead/bf2_skew_correction
[2.0] Skew Correction
2017-12-02 00:43:48 -06:00
Thomas Moore
b35c3b5eb8 Fix missing return values in G33_auto_tune 2017-12-01 21:29:16 -06:00
Scott Lahteine
45c2388a58 Apply const to thermal_runaway_protection args 2017-12-01 19:42:44 -06:00
Scott Lahteine
0154e3480c New feature: BED_SKEW_CORRECTION 2017-12-01 19:39:49 -06:00
Scott Lahteine
082ab8fcab Add SKEW_CORRECTION to example configs 2017-12-01 19:22:27 -06:00
Unknown
d1f11e9c10 fix missing GET_TIMER (used by PWM for Ex_AUTO_FAN) 2017-12-01 22:28:55 +01:00
Harald Gutsche
dd1b503f64 fix NUM_DIGITAL_PINS being negative for more than 127 digital pins 2017-12-01 07:39:46 +01:00
dot-bob
bd45d0363d Add default configurations for the Wanhao Duplicator 6. 2017-11-30 23:24:33 -07:00
Scott Lahteine
91fb6231b2 Fix EEPROM V45 header, layout 2017-11-30 22:45:17 -06:00
Roxy-3D
94e6b2976e Restore correct G26 values for gMax 1.5+ printer 2017-11-30 18:12:17 -06:00
Scott Lahteine
e3948d8582 Merge pull request #8612 from thinkyhead/bf2_planner_parity
[2.0.x] Fix some planner bugs
2017-11-30 17:58:53 -06:00
Scott Lahteine
dd3ce40826 Drop Planner::position_float, use int types 2017-11-30 17:43:31 -06:00
Scott Lahteine
ec6ca37ed3 Fix (un)apply_leveling fade bug 2017-11-30 17:25:44 -06:00
Scott Lahteine
a52fec6ac4 Planner class parity with 1.1.x 2017-11-30 15:55:08 -06:00
Ben Lye
1f3ad461bc Update M49.cpp
Fix M49 so that it does not hang the terminal console.
2017-11-30 20:17:44 +00:00
Scott Lahteine
bee2b5eea4 Merge pull request #8388 from Tannoo/2.0.x-led_control_menu
[2.0] led_control_menu
2017-11-30 00:18:21 -06:00
Scott Lahteine
e37dd64548 Apply LEDColor, language fixes 2017-11-29 23:58:12 -06:00
Scott Lahteine
8f90642eea LED_CONTROL_MENU config changes 2017-11-29 21:02:56 -06:00
Tannoo
cf0f78336b New Feature: LED_CONTROL_MENU 2017-11-29 21:02:55 -06:00
Scott Lahteine
23e45fa3c4 Apply const to some planner vars 2017-11-29 21:02:55 -06:00
Scott Lahteine
fd78446b2b Merge pull request #8600 from thinkyhead/bf2_cartesian_segments
[2.0.x] Segmented mesh moves
2017-11-29 17:25:36 -06:00
Scott Lahteine
7c61bcb058 Apply SEGMENT_LEVELED_MOVES to example configs 2017-11-29 16:57:31 -06:00
Scott Lahteine
ef2531558c Add an option to segment leveled moves 2017-11-29 16:57:30 -06:00
Scott Lahteine
ca80564a78 Travis platformio hack no longer needed 2017-11-29 15:25:19 -06:00
Scott Lahteine
285b868e9b Tweak planner code style 2017-11-29 15:22:18 -06:00
Scott Lahteine
eede8679e7 Fix up git helper scripts 2017-11-28 19:01:47 -06:00
Scott Lahteine
1f2acc33bc Tweaks for check_axes_activity 2017-11-28 18:41:13 -06:00
Vitaliy Sapyanov
7f88334aa3 Done cleanup and removed duplicates in pins_RuRAMPS4D.h (#8582)
Remove duplicates, with followup fixes
2017-11-28 18:33:12 -06:00
Scott Lahteine
a038c10f66 #8588 followup 2017-11-28 17:59:58 -06:00
Scott Lahteine
4f32786cf7 Merge pull request #8588 from fiveangle/bf20_babystepping_travis_options
[2.0.x] Additional Travis BABYSTEPPING tests
2017-11-28 17:56:55 -06:00
Dave Johnson
f5f72b2009 Additional Travis BABYSTEPPING options for AVR 2017-11-28 17:46:40 -06:00
Scott Lahteine
a8aa43ce2d Merge pull request #8587 from AnHardt/2_Fix_WDTO_during_long_DELTA_moves
[2.0.x] Fix WDTO during long delta moves
2017-11-28 17:29:18 -06:00
Scott Lahteine
4793c34c53 Fix M290 boolval bug
Fix #8577
2017-11-28 17:21:33 -06:00
Scott Lahteine
16baa48699 Fix #8579
Fan speed code fell into a curly brace
2017-11-28 16:12:14 -06:00
AnHardt
02aa93a6ad 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:03:51 +01:00
Scott Lahteine
fadf9eb2d7 Simplify midpos calculation 2017-11-27 14:00:35 -06:00
Scott Lahteine
0880031e8e Satisfy M702 dependencies 2017-11-27 13:39:59 -06:00
Scott Lahteine
0786b61ce7 Followup to #8575 2017-11-27 12:58:40 -06:00
Scott Lahteine
47099af3ec Merge pull request #8575 from thinkyhead/kuru_to_upstream
[2.0.x] Make MBL work more like PROBE_MANUALLY
2017-11-27 12:55:05 -06:00
Scott Lahteine
276271e72f Make MBL work more like PROBE_MANUALLY 2017-11-27 02:12:29 -06:00
Scott Lahteine
94cb412e45 Allow override of probe bounds 2017-11-26 20:55:27 -06:00
Scott Lahteine
c8718aa111 Spacing, macros in LPC1768_PWM 2017-11-26 20:20:05 -06:00
Scott Lahteine
a67cf78c6b Clean up whitespace, spacing 2017-11-26 20:18:52 -06:00
Scott Lahteine
f0dd4e3fa0 Bootscreen parity with 1.1.x 2017-11-26 20:07:17 -06:00
Scott Lahteine
b634bfe1b1 Tweak to readDir code 2017-11-26 18:25:00 -06:00
Scott Lahteine
7be4857ab9 Tweak BLOCK_BUFFER_SIZE description 2017-11-26 17:36:40 -06:00
Bob-the-Kuhn
7d8b66e207 Merge pull request #8570 from Bob-the-Kuhn/Sbase-PWM
[2.0.x] MKS Sbase - add servo pin definitions and add directly controlled PWM
2017-11-26 09:36:18 -06:00
Bob-the-Kuhn
59b32c25b5 MKS Sbase changes 2017-11-26 07:47:06 -06:00
Scott Lahteine
f90c075d1f SD Menu patches 2017-11-26 01:14:18 -06:00
Scott Lahteine
9b64be0bc5 Fixes for leveling sub-menus 2017-11-26 00:05:36 -06:00
Scott Lahteine
25674da90c Tweaks to do_blocking_move 2017-11-25 23:31:16 -06:00
Scott Lahteine
22b897e77d Show M211 output with workspace offset 2017-11-25 20:48:20 -06:00
Scott Lahteine
d06e29846d Loosen HAS_BED_PROBE definition 2017-11-25 20:11:21 -06:00
Scott Lahteine
2f837ce9b7 Merge pull request #8565 from Roxy-3D/bugfix-2.0.x
Change G26 and G29 bit function names to avoid HAL name collision
2017-11-25 20:02:53 -06:00
Roxy-3D
e48fcad615 change G26 and G29 bit function names to avoid HAL collision 2017-11-25 19:58:45 -06:00
Scott Lahteine
41ec449960 Fix G26 error return 2017-11-25 19:53:14 -06:00
Scott Lahteine
9badf5dc0d Fix Micromake C1 config 2017-11-25 18:41:07 -06:00
Scott Lahteine
7576ad7fc2 Merge pull request #8554 from tcm0116/2.0.x-cleanup
[2.0.x] Fix for #8525 and other cleanup
2017-11-25 18:19:54 -06:00
Scott Lahteine
27c5692b13 Syntax tweaks 2017-11-25 18:13:36 -06:00
Scott Lahteine
a9adc2c2f6 Merge pull request #8558 from LVD-AC/2.0.x]-probe-error-handling
[2.0.x] G33 probe error handling
2017-11-25 17:16:58 -06:00
Scott Lahteine
d18d40e1d6 M290 report on change, P0 to leave Probe Z Offset alone 2017-11-25 16:47:39 -06:00
LVD-AC
65f365333f [2.0.x] G33 probe error handling 2017-11-25 16:19:10 -06:00
Scott Lahteine
d3ed0f53cd Merge pull request #8563 from thinkyhead/bf2_functools_lru_cache
Fix #8561. Fix #8562
2017-11-25 14:35:59 -06:00
Bob-the-Kuhn
8c69adba8b Merge pull request #8553 from Bob-the-Kuhn/2.0.x-U8Glib-follow-up
[2.0.X] U8Glib follow up
2017-11-25 14:26:32 -06:00
Scott Lahteine
ba5ff1a838 Try manual install of backports.functools_lru_cache 2017-11-25 14:14:36 -06:00
Scott Lahteine
be00e421a7 Patch up M290, M851 2017-11-25 14:11:57 -06:00
Bob-the-Kuhn
fc40d56131 fixed error, updated defaults, added notes
Travis fix - only allow ultralcd_st7920_u8glib_rrd_AVR.cpp to compile when ST7920 selected
2017-11-25 12:35:03 -06:00
Roxy-3D
d29cb646e3 Fix erroneous reference to temperature in time calculations
Travis is having problems at:  https://github.com/MarlinFirmware/Marlin/pull/8560   

So...   doing a direct commit to get things correct.   Bugfix_v1.1.x does not have this bug.  Nothing needs to be done to that branch.
2017-11-25 10:40:56 -06:00
Thomas Moore
7bb1721f35 Fix _BV already defined warnings for Teensy 2017-11-24 22:34:39 -06:00
Thomas Moore
5f9592a523 Cleanup narrowing warning in pin_is_protected 2017-11-24 22:15:56 -06:00
Thomas Moore
34eaaab5fb Fix _BV already defined warnings 2017-11-24 21:59:31 -06:00
Thomas Moore
2ea779e560 Allow bed probe sanity checks to run 2017-11-24 21:59:01 -06:00
Scott Lahteine
d24b1190bd Don't use Z_MIN_PROBE_ENDSTOP on DELTA 2017-11-24 18:24:22 -06:00
Scott Lahteine
e34c6827ea Init MIXING virtual tools as switching 2017-11-24 18:02:09 -06:00
Scott Lahteine
a9ecb975b2 Apply LINEAR_UNIT to M503 output for M200 2017-11-24 17:32:48 -06:00
Scott Lahteine
d95ee0f003 Merge pull request #8551 from revilor/bugfix-2.0.x
MK2_MULTIPLEXER does not require E2/E3 stepper pins
2017-11-24 17:16:23 -06:00
Scott Lahteine
80ada58818 One fewer function call in probe_pt 2017-11-24 17:10:38 -06:00
oliver
92a0dc552a MK2_MULTIPLEXER does not require E2/E3 stepper pins 2017-11-24 23:56:39 +01:00
Scott Lahteine
a81df268fd Merge pull request #8547 from thinkyhead/bf2_babystep_gfx_overlay
[2.0.x] Followup for MESH_EDIT_GFX_OVERLAY
2017-11-24 16:18:01 -06:00
Scott Lahteine
b49acce035 Tweaks for lcd_external_control 2017-11-24 15:53:25 -06:00
Scott Lahteine
1ef1052ae1 Phatter arrows for Z offset overlay 2017-11-24 15:53:25 -06:00
Scott Lahteine
5926c9c97b Followup for MESH_EDIT_GFX_OVERLAY 2017-11-24 15:53:25 -06:00
Scott Lahteine
ab03a31cc9 Patch G0/G1 for NANODLP_Z_SYNC 2017-11-24 14:11:12 -06:00
Scott Lahteine
a766dfb3b1 Merge pull request #8536 from thinkyhead/bf2_nanodlp_z_move_sync
[2.0.x] Implement NANODLP_Z_SYNC for 2.0.x
2017-11-24 13:11:14 -06:00
Scott Lahteine
fd13489a8a Combine some Travis tests 2017-11-24 13:10:54 -06:00
Scott Lahteine
01e207213f Fix MK2_MULTIPLEXER stepper indirection 2017-11-24 12:49:28 -06:00
Roxy-3D
ec04cf27d3 Fix the G26 out of scope identifiers in the v2.0.0 branch (#8543)
These changes may need to be warmed over.  I tried to fix things with
the least amount of disruption.   I just wanted to get the bugfix_v2.0.0
branch working for people again.
2017-11-24 10:39:56 -06:00
Scott Lahteine
dc82babe8e Implement NANODLP_Z_SYNC for 2.0.x 2017-11-24 00:28:06 -06:00
Scott Lahteine
4d517d169a Merge pull request #8535 from thinkyhead/bf2_more_mesh_G26
[2.0.x]  Adapt G26 to work for all meshes
2017-11-23 23:17:06 -06:00
Scott Lahteine
c6b0c104bb Adapt G26 to work for all meshes 2017-11-23 22:31:37 -06:00
Scott Lahteine
5ce7f23afa Config option G26_MESH_VALIDATION for all meshes 2017-11-23 21:43:23 -06:00
Scott Lahteine
c19eb33408 Move G26 to gcode sub-folder 2017-11-23 21:43:23 -06:00
Scott Lahteine
a03f93bab4 Fix fan kickstart 2017-11-23 21:42:45 -06:00
Scott Lahteine
9e3c41f9e8 Tweak fan kickstart / speed code 2017-11-23 15:20:35 -06:00
Scott Lahteine
8602461da8 Merge pull request #8523 from GMagician/2.0-Tool-change-bad-behaviour-fix
[2.0.x] Tool change bad behaviour fix
2017-11-22 21:29:33 -06:00
GMagician
118ac61e59 [2.0.x] Tool change bad behaviour fix
Previous fix did not work as expected when axeis not homed. It raise Z but never return to original position
2017-11-22 20:24:03 -06:00
Scott Lahteine
c35d27f77c Merge pull request #8299 from tcm0116/2.0.x-BIQU_BQ111-A4
[2.0.x] Add BIQU BQ111-A4 board
2017-11-22 19:16:04 -06:00
Scott Lahteine
1685cd193b Tweak char_mode init 2017-11-22 19:12:08 -06:00
Scott Lahteine
7533ccfa83 Merge pull request #8527 from thinkyhead/bf2_lcd_init_charset
[2.0.x] Fix up LCD init / charset
2017-11-22 19:06:29 -06:00
Scott Lahteine
9406c87a97 Fix up LCD init / charset 2017-11-22 18:22:55 -06:00
Thomas Moore
fa577392b2 Add BIQU BQ111-A4 board 2017-11-22 16:34:59 -06:00
Scott Lahteine
c2fc78c3a8 #ifndef => #if !PIN_EXISTS 2017-11-22 16:28:52 -06:00
Scott Lahteine
001ce7a2fd Merge pull request #8521 from teemuatlut/Ultratronics
[2.0.x] Add support for Ultratronics Pro v1.0 and fix compiling for Due HAL
2017-11-22 16:18:59 -06:00
Scott Lahteine
c613a1ed38 Fix indentation, stepper.h dependency, etc. 2017-11-22 14:55:30 -06:00
teemuatlut
f011a32771 Board definitions for Ultratronics Pro v1.0 2017-11-22 14:55:24 -06:00
Bob-the-Kuhn
0c95262b9e Merge pull request #8518 from Bob-the-Kuhn/temp-test-servo-2
[2.0.x] LP1768 - fix PWMs
2017-11-21 21:54:25 -06:00
Bob-the-Kuhn
9dad534f02 fixed 2017-11-21 21:37:20 -06:00
Scott Lahteine
4371345cbe Don't re-init graphical LCD after boot screen
Followup to 13a3fb1acc
2017-11-21 18:23:39 -06:00
Scott Lahteine
8d0a45f5d4 Merge pull request #8512 from thinkyhead/bf2_debouncer
[2.0.x] General code clean/comment
2017-11-21 17:46:20 -06:00
Scott Lahteine
56c02b7f59 Shift register buttons question
Can LCD shift registers keep up with faster MCUs?
2017-11-21 16:12:40 -06:00
Scott Lahteine
3994d3b935 General cosmetic LCD 2017-11-21 16:12:40 -06:00
Scott Lahteine
617993d0ea Patch for !!TEST (was _BV once?) 2017-11-21 16:12:08 -06:00
Scott Lahteine
3269d8dd62 Tweak M42 var 2017-11-21 16:12:08 -06:00
Scott Lahteine
cf2c5266ed Merge pull request #8514 from MateuszKrawczuk/patch-1
Remove pin count check for MIGHTYBOARD_REVE
2017-11-21 15:44:59 -06:00
Mateusz Krawczuk
bb1a6eea88 Remove pin count check for MIGTHYBOARD_REVE
Remove assert and unused code since it is implemented in pinsDebug_plus_70.h
2017-11-21 14:38:02 +01:00
Scott Lahteine
1ce0fb336b Patch Max7219_LED_Set input args 2017-11-20 21:15:15 -06:00
Scott Lahteine
63e135732c Merge pull request #8495 from GMagician/Tool-change-fix
[2.0.x] tool change bad behaviours
2017-11-20 20:36:46 -06:00
GMagician
a61127a421 [2.0.x] tool change bad behaviours
This will solve 2 issues on tool change.
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.
Since no move no bed level matrix should be applied
2) 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:34:55 -06:00
Scott Lahteine
5cfdb76186 Merge pull request #8425 from Vynt-1/bugfix-2.0.x
Update pins_RuRAMPS
2017-11-20 16:18:16 -06:00
Vitaliy Sapyanov
e2724c68ab Update pins_RURAMPS4D.h
Add and bugfix pins
2017-11-20 15:36:13 -06:00
Scott Lahteine
9770062309 Merge pull request #8463 from thinkyhead/bf2_32bit_M42
[2.0.x] Updates to Anet A8 configurations
2017-11-20 15:12:30 -06:00
Scott Lahteine
586c1e4e73 Merge pull request #8484 from Bob-the-Kuhn/P1.02-P1.20
2.0.x LPC1768 - M42 compatibility with Repetier Host
2017-11-20 15:03:00 -06:00
Scott Lahteine
37a8d0b809 Merge pull request #8464 from tcm0116/2.0.x-pio_lib_deps
[2.0.x] Update PlatformIO lib_deps
2017-11-20 15:02:27 -06:00
Scott Lahteine
3066655727 Try port*100+pin, fix config dependency 2017-11-20 13:58:23 -06:00
Scott Lahteine
ba8bc7ea80 Cosmetic tweaks 2017-11-20 13:58:02 -06:00
Scott Lahteine
f409147116 Fix P2_04, P2_05 2017-11-20 13:58:02 -06:00
Bob-the-Kuhn
a28ccabe2a M42 P1.20 fix 2017-11-20 13:58:02 -06:00
Bob-the-Kuhn
5060195e8a Merge pull request #8502 from fiveangle/bf_sync_tempurature_h
[2.0.x] Fix Temperature::setPwmFrequency() prototype to match source
2017-11-20 10:36:24 -06:00
Unknown
33912fa7e8 Update Temperature::setPwmFrequency prototype to match source
Introduced with #8446
2017-11-20 01:50:41 -08:00
Scott Lahteine
5a52cf6a71 Merge pull request #8499 from thinkyhead/bf2_workaround_sq
[2.0.x] Dependency adjustments (e.g., sq macro)
2017-11-19 16:08:09 -06:00
Scott Lahteine
b9327a4d16 Misc. general cleanup 2017-11-19 15:43:39 -06:00
Scott Lahteine
8836623e0f Fix sq/min/max macros after platform headers 2017-11-19 15:43:39 -06:00
Scott Lahteine
fe4f009fdd 32-bit unless… 2017-11-19 15:43:38 -06:00
Scott Lahteine
25af9decfe Remove enum.h include of MarlinConfig.h 2017-11-19 15:43:38 -06:00
Scott Lahteine
1d4571b88d Dependency adjustments 2017-11-19 15:43:38 -06:00
Scott Lahteine
550f1025f0 Try using <Arduino.h> everywhere 2017-11-19 14:23:02 -06:00
Scott Lahteine
c0000a0cdc Move servo code to modules/servo.* 2017-11-19 14:23:02 -06:00
Scott Lahteine
81bc428b48 Don't compile custom u8g without DOGLCD 2017-11-19 13:58:38 -06:00
Scott Lahteine
3af7fc07e7 Merge pull request #8446 from Bob-the-Kuhn/LPC1768-PWM-rewrite
2.0.x FAST_PWM_FAN updates & make LPC1768 PWM use fewer CPU cycles
2017-11-18 07:07:30 -06:00
Bob-the-Kuhn
c14000775b PWM fixes, slow down fan update
include LPC1768 syntax for M42

couple more pin_t changes

consistency

change M42 to R, P format

Revert "change M42 to R, P format"

This reverts commit 01f12f579ec9ccc1bb9126e68d2c86449e9b7edf.
2017-11-18 07:05:50 -06:00
Scott Lahteine
60adc6ff02 Display filwidth ratio in terms of E mm 2017-11-18 07:01:49 -06:00
Scott Lahteine
6e533748eb Fixes #8472 2017-11-18 05:15:55 -06:00
Scott Lahteine
485abb023b Merge pull request #8456 from thinkyhead/bf2_wednesday_tweaks
[2.0] No retroactive adjustment with M851 Z
2017-11-18 04:49:53 -06:00
Scott Lahteine
ca6d408549 Merge pull request #8477 from thinkyhead/bf2_some_formatting
[2.0.x] Apply some formatting
2017-11-18 03:45:51 -06:00
Scott Lahteine
3bba7d60f3 No retroactive changes with M851 Z
If using babystep to adjust the Z probe offset, the axis will move and the mesh will be updated at the same time, causing a doubling of the Z offset over the rest of the print.

To correct for this, the current Z position would need to be modified in the opposite direction, canceling out the additional Z offset added to the mesh. This would be confusing to users, and moreover it would not be accurate without also taking the current Z fade level and current Z height into account.

It might make sense to change the mesh in the case where no babystepping is taking place, but this could be considered an undesirable side-effect of changing the `zprobe_zoffset`.

One way to remedy this would be to return to storing the mesh with `zprobe_zoffset` included, then subtracting `zprobe_zoffset` from the returned Z value. Thus, a babystep moving the Z axis up 1mm would subtract 1 from `zprobe_zoffset` while adding 1 to all mesh Z values.

Without including the `zprobe_zoffset` in the `z_values` there is no safe way to alter the mesh in conjunction with babystepping, although it's fine without it.
2017-11-18 03:36:39 -06:00
Scott Lahteine
32512332df Apply some formatting 2017-11-18 03:12:30 -06:00
Scott Lahteine
7dacc999b9 Remove obsolete show_bootscreen var 2017-11-17 17:01:43 -06:00
Roxy-3D
9729528d13 Update UBL's Delta Probable locations
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:44:57 -06:00
Scott Lahteine
d48cb6bf41 Apply coding standards to Max7219 2017-11-17 15:32:21 -06:00
Thomas Moore
50a5bb77d2 Update PlatformIO lib_deps 2017-11-16 23:23:07 -06:00
Scott Lahteine
bd8bcf06e7 Updates to Anet A8 configurations
Based on #8426
2017-11-16 23:19:36 -06:00
Bob-the-Kuhn
1502b6ad8a Merge pull request #8460 from Bob-the-Kuhn/E0-autofan
2.0.x E0 auto fan fixes for LP1768
2017-11-16 18:44:56 -06:00
Bob-the-Kuhn
7eea000f4b E0 auto fan fixes 2017-11-16 18:42:56 -06:00
Scott Lahteine
a7ff4f5799 Merge pull request #8455 from thinkyhead/bf2_filwidth_fix
[2.0] Fix Filament Width Sensor LCD display
2017-11-16 17:58:42 -06:00
Scott Lahteine
b2dda096fe Fix FILAMENT_LCD_DISPLAY for disabled state 2017-11-16 16:57:48 -06:00
Scott Lahteine
1e8afb66b7 Fix a planner comment 2017-11-16 16:57:47 -06:00
Scott Lahteine
50f09cc029 Miscellaneous cleanup 2017-11-16 00:47:16 -06:00
Scott Lahteine
63257dc083 Fix M503 output for M145
Fixes #7978
2017-11-15 04:00:18 -06:00
Scott Lahteine
166dbada91 Merge pull request #8438 from thinkyhead/bf2_thermistor_ov
[2.0] Add OV() macro for use in thermistor tables
2017-11-15 03:50:50 -06:00
Scott Lahteine
0918dae66e Add OV() macro for use in thermistor tables 2017-11-15 03:15:18 -06:00
Scott Lahteine
24057270a3 Merge pull request #8420 from RowanMeara/rm-dithering-2.0.x
[2.0.x] Fix Software Fan PWM
2017-11-15 02:30:19 -06:00
Scott Lahteine
5079a02c90 Add HAL_SERVO_LIB to HAL_Due.h 2017-11-15 02:07:01 -06:00
Scott Lahteine
9c3761047e Merge pull request #8434 from thinkyhead/bf2_fix_M32_subroutines
[2.0] Fix 'M32 P' subroutines
2017-11-15 01:15:02 -06:00
Scott Lahteine
1c7b9f6d5d Merge pull request #8433 from thinkyhead/bf2_fix_parser_value
[2.0] Fix parser value handling
2017-11-15 00:49:47 -06:00
Scott Lahteine
e0d367f1fb Fix M32 P subroutine handling 2017-11-15 00:44:21 -06:00
Scott Lahteine
9f8b4c5ee8 Patch SD lib files for readability 2017-11-15 00:44:21 -06:00
Scott Lahteine
2c8c30437e Fix parser parameter value handling 2017-11-14 23:20:33 -06:00
RowanMeara
6131533157 Change dithering behavior to intended. 2017-11-14 00:47:07 -08:00
Scott Lahteine
e70b44dc0b Make sure leveled[] is defined for later use 2017-11-14 02:13:38 -06:00
Scott Lahteine
54774841ba Merge pull request #8416 from thinkyhead/bf2_M114_DETAIL
[2.0] Add M114_DETAIL to Configuration_adv.h
2017-11-14 00:28:55 -06:00
Scott Lahteine
009e3a7aa7 Add M114_DETAIL to Configuration_adv.h 2017-11-14 00:03:17 -06:00
Scott Lahteine
0c7a17a312 Merge pull request #8414 from thinkyhead/bf2_anet_cleanup
[2.0] Fix up REPRAPWORLD_KEYPAD defines
2017-11-13 22:44:43 -06:00
Scott Lahteine
6d6c3b1e97 Fix up REPRAPWORLD_KEYPAD defines 2017-11-13 22:14:54 -06:00
Scott Lahteine
d8199b5db9 Merge pull request #8410 from thinkyhead/bf2_fix_printrboard_pins
[2.0] Move test extrusion options under G26
2017-11-13 21:22:34 -06:00
Scott Lahteine
3f0a982b8c Move Filament Width Sensor to Configuration_adv.h 2017-11-13 21:05:57 -06:00
Scott Lahteine
b76e173205 Move test extrusion options under G26 2017-11-13 21:05:57 -06:00
Scott Lahteine
705801880b Merge pull request #8408 from thinkyhead/bf2_fix_printrboard_pins
[2.0] Support for Extrudrboard in Printrboard Rev.F
2017-11-13 16:07:58 -06:00
Scott Lahteine
14ebedca27 Drop unused LARGE_FLASH option 2017-11-13 15:44:24 -06:00
Scott Lahteine
b7feb53e8a Support for Extrudrboard in Printrboard Rev.F 2017-11-13 15:44:23 -06:00
Scott Lahteine
1b6c25a5e6 Merge pull request #8400 from thinkyhead/bf2_travis_tweaks
[2.0] Update Travis CI, fix compiler warnings
2017-11-13 05:39:14 -06:00
Scott Lahteine
202a9b06d9 Update Travis CI to match 1.1.x
As modified in #8395
2017-11-13 04:43:47 -06:00
Scott Lahteine
91baca6abb Patches for compiler warnings/errors 2017-11-13 04:43:47 -06:00
Scott Lahteine
98efc18f2c Merge pull request #8399 from thinkyhead/bf2_fix_M428
[2.0] Improve and clarify M428 code
2017-11-13 03:06:41 -06:00
Scott Lahteine
2f73dec077 Apply native workspace fixes for G92, G53-59 2017-11-13 02:09:12 -06:00
Scott Lahteine
04abd8d459 Improve and clarify M428 code 2017-11-13 02:09:11 -06:00
Dave Johnson
c009a990e4 [2.0.x] Fix some 8-bit Teensyduino compile warnings (#8385)
* Fix some 8-bit Teensyduino compile warnings

-Override Teensyduino legacy NOT_A_PIN 127 define
-some fixups for Printrboard_RevF pins

* Proper cleanup of Printrboard Rev.F pins

* Apply LCD fixes to Printrboard v1
2017-11-13 01:07:59 -06:00
Scott Lahteine
e8e92f8969 No leveling data in M114 if no leveling is enabled 2017-11-12 23:03:38 -06:00
Scott Lahteine
f5d210c35c Fix report_current_position 2017-11-12 23:02:53 -06:00
Roxy-3D
faaae7a1b2 Provide more clearance for BL-Touch probe 2017-11-12 13:11:22 -06:00
Scott Lahteine
e1e68e4c95 Merge pull request #8382 from thinkyhead/bf2_native_followup
[2.0] Remove offsets from soft endstops, tool change
2017-11-11 23:13:45 -06:00
Scott Lahteine
06ee6584fd Remove offsets from soft endstops, tool change 2017-11-11 22:47:38 -06:00
Scott Lahteine
c938273bd5 Coding standard patch of M290 2017-11-11 22:14:21 -06:00
Scott Lahteine
98c1265e3b Disable laser power when PWM goes to 0 2017-11-11 22:00:22 -06:00
Scott Lahteine
68f2d95f76 Merge pull request #8366 from thinkyhead/bf2_renormalize_pause_e_move
[2.0] Use do_blocking_move_to where possible
2017-11-10 21:26:26 -06:00
Scott Lahteine
d4a1154c25 Use do_blocking_move_to where possible 2017-11-10 20:55:23 -06:00
Scott Lahteine
36426af564 Merge pull request #8356 from tcm0116/2.0.x-M600
[2.0.x] Normalize load/unload length in M600
2017-11-10 19:44:08 -06:00
Scott Lahteine
c0fe6cc34d Merge pull request #8324 from LVD-AC/2.0.x-manual-probe
[2.0.x] PROBE_SELECTED etc.
2017-11-10 19:43:13 -06:00
Scott Lahteine
1ed86adf9c Cleanup around updatePID 2017-11-10 19:27:34 -06:00
Scott Lahteine
75a58ee4b8 Fix position_is_reachable bug in waiting 2017-11-10 19:27:33 -06:00
LVD-AC
e334efb2a7 PROBE_MANUALLY etc. 2017-11-10 19:27:33 -06:00
Bob-the-Kuhn
a886e98967 Merge pull request #8364 from Bob-the-Kuhn/temp-sd-card
2.0.x - LPC1768 - update file to new pin numbering system
2017-11-10 14:59:53 -06:00
Bob-the-Kuhn
b6415dc169 finish 2017-11-10 14:39:55 -06:00
Scott Lahteine
60153b0e3b Merge pull request #8359 from thinkyhead/bf2_chinese_update
[2.0.x] Updates to Traditional Chinese
2017-11-10 04:54:44 -06:00
Scott Lahteine
0efa66be0b Updates to Traditional Chinese
From @cheton at #8347
2017-11-10 04:52:20 -06:00
Scott Lahteine
cba9c1cf9e Add pre-calculated planner.e_factor 2017-11-10 03:14:24 -06:00
Thomas Moore
600c85226e Normalize load/unload length in M600 2017-11-10 02:31:46 -06:00
Scott Lahteine
81b91b3f9d Clean up some trailing white-space 2017-11-10 02:31:04 -06:00
Roxy-3D
2f9848ede3 Correct gMax 1.5+ example file
And...   Keep both branches in synchronization.
2017-11-09 23:44:14 -06:00
Scott Lahteine
450c5f0814 Merge pull request #8326 from Vynt-1/bugfix-2.0.x
[2.0] Add new board from Russia
2017-11-09 21:55:53 -06:00
Scott Lahteine
006dad4b52 Add pins_RURAMPS4D.h & change pins.h
http://3dtoday.ru/blogs/svs0724/ruramps4d-ramps-for-adruino-due-the-pilot-shipment-available-for-zack/
2017-11-09 21:51:06 -06:00
Scott Lahteine
00514857e9 SBASE serial port -1, RAMPS spacing 2017-11-09 21:41:07 -06:00
Scott Lahteine
c66696c507 Merge pull request #8344 from tcm0116/2.0.x-delta_height
[2.0.x] Add delta_height variable in lieu of using home_offset
2017-11-09 01:21:53 -06:00
Scott Lahteine
02e91ffa02 Merge pull request #8343 from thinkyhead/bf2_movement_fixes
[2.0] Fix PROBE_MANUALLY on kinematic bots
2017-11-08 23:20:15 -06:00
Scott Lahteine
22e18fe832 Patch _manual_goto_xy for kinematics 2017-11-08 22:21:38 -06:00
Scott Lahteine
0cfb936dd1 Clarify some motion code 2017-11-08 22:15:55 -06:00
Thomas Moore
f34c3597dc Add delta_height variable in lieu of using home_offset 2017-11-08 22:10:08 -06:00
Bob-the-Kuhn
10896b9431 Merge pull request #8341 from Bob-the-Kuhn/u8g-try-4-Arduino-IDE-compatibility
2.0.x - U8G HAL LCD support - Arduino IDE compatibility
2017-11-08 21:15:50 -06:00
Bob-the-Kuhn
d47fbf791b Arduini IDE compatibility changes
changed includes to make Arduino IDE happy
2017-11-08 20:49:49 -06:00
Scott Lahteine
95ea43bde4 Update XYZ dual stepper configurations 2017-11-08 20:31:43 -06:00
Scott Lahteine
b0b4a20930 Tweaks to core motion code 2017-11-08 20:09:09 -06:00
Scott Lahteine
8805e24cc7 Fix tilt_mesh_based_on_probed_grid output bug 2017-11-08 20:06:20 -06:00
Scott Lahteine
24437fbb13 Fix G26 Y argument bug 2017-11-08 19:20:10 -06:00
Bob-the-Kuhn
5a88e9bc4b Merge pull request #8338 from Bob-the-Kuhn/u8g-try-4-fix-platformio.ini
2.0.x - U8G HAL LCD support - platformio.ini correction
2017-11-08 15:44:26 -06:00
Bob-the-Kuhn
7c274d249b Revert "pins add old names"
This reverts commit 6f70e5618e.
2017-11-08 14:12:47 -06:00
Bob-the-Kuhn
c388dce2b5 move U8glib-HAL 2017-11-08 14:08:09 -06:00
Scott Lahteine
09b05c9d79 Merge pull request #8321 from Bob-the-Kuhn/pins_re-arm
2.0.x - pins_RAMPS_RE_ARM.h - add mega2560 pin numbers
2017-11-08 13:11:13 -06:00
Scott Lahteine
1e555dfcc2 Merge pull request #8336 from thinkyhead/bf2_fix_get_destination
[2.0] Fix get_destination_from_command for E
2017-11-08 13:06:40 -06:00
Scott Lahteine
e6788bb6ae Fix get_destination_from_command for E 2017-11-08 12:54:00 -06:00
Roxy-3D
967104e1ce Default Extrusion Settings were off a few lines in some of the example config files. (#8333) 2017-11-08 11:56:00 -06:00
Bob-the-Kuhn
8875885a15 pins add old names
fix typo

re-write PWM section, add "not on Re-ARM" list
2017-11-08 11:11:38 -06:00
Roxy-3D
1c6e83c137 if !HAS_MESH we still need to do some motion! (#8328)
* if !HAS_MESH we still need to do some motion!

Thank You MagoKimbra !

* Ooops....   need #else and not #elif
2017-11-08 09:42:21 -06:00
Scott Lahteine
004fc55eaf Merge pull request #8317 from thinkyhead/bf2_sprintf_p_fix
[2.0] Patch G33's use of the term PROBE_MANUALLY
2017-11-08 00:59:44 -06:00
Scott Lahteine
82f45c3e6a Patch G33 misuse of PROBE_MANUALLY 2017-11-08 00:36:06 -06:00
Bob-the-Kuhn
6f70e5618e pins add old names 2017-11-07 23:37:57 -06:00
Scott Lahteine
064e6fe60e Remove debugging pin toggle from LCD code 2017-11-07 23:00:54 -06:00
Bob-the-Kuhn
29fb48799d Merge pull request #8262 from Bob-the-Kuhn/u8g-try-4
2.0.x - U8G HAL LCD support
2017-11-07 19:57:00 -06:00
Bob-the-Kuhn
0483a7df91 AVR RRD works
LPC1768 VIKI2 & RRDFG are working

looks like all SPIs are working

library change

sh1106 locks up

fixed lockup, started I2C SW com

pretty

re-org

restore a few files

make library happy

switched HAL version of rrd

fix travis error

travis error fixes

another travis fix

cleanup

minor update

one more

correct spacing in platformio.ini
2017-11-07 18:40:29 -06:00
Scott Lahteine
a34b5a2bfa Merge pull request #8314 from thinkyhead/bf2_sprintf_p_fix
[2.0] Patch abuse of sprintf_P in G33
2017-11-07 17:50:55 -06:00
Scott Lahteine
96c9d715f3 Patch abuse of sprintf_P in G33 2017-11-07 17:33:50 -06:00
Roxy-3D
ed62c621d7 Fix G26 Circle Drawing. Add Default Extrusion Settings (#8313)
- Fix G26 Circle Drawing.
- Add default extrusion settings so machine can print lines on print bed
- Yet to be done: Get LCD Menu's to use these settings.
2017-11-07 17:13:53 -06:00
Scott Lahteine
efa8f20b2f Merge pull request #8312 from thinkyhead/bf2_thermal_docs
[2.0.x] Update Thermal Protection Documentation
2017-11-07 16:32:25 -06:00
Scott Lahteine
8fea26aa9d Fix PID_autotune watch temp increase value 2017-11-07 15:51:48 -06:00
Scott Lahteine
2c099fd4c2 Update Thermal Protection Documentation 2017-11-07 15:46:44 -06:00
Colten Edwards
a6160916b0 [2.0] Fix M48 for delta printers/ABL compile issue (#8286)
* fix M48 for delta printers

fix M48 for delta printers. home printer if not already homed.

* remove ENABLED(DELTA)

remove ENABLED(DELTA) as it is not needed.

* Update M48.cpp

* abl needs queue.h

without queue.h abl will not compile since there is a script that runs at the end of it and we need to queue it up.
2017-11-07 15:36:33 -06:00
Scott Lahteine
776cb52629 Merge pull request #8310 from thinkyhead/bf2_fixes_for_117
[2.0] Fix G92 for native workspace
2017-11-07 13:23:03 -06:00
Scott Lahteine
17ef0a513b Update G92 for native workspace 2017-11-07 13:07:16 -06:00
Scott Lahteine
b4bf8928aa German language updates
Corresponding to #8306
2017-11-07 12:10:29 -06:00
Scott Lahteine
e54881c408 Merge pull request #8304 from tcm0116/2.0.x-delta_eeprom
[2.0.x] Fix Delta EEPROM
2017-11-07 12:04:13 -06:00
Thomas Moore
73ca5345e1 Fix Delta EEPROM 2017-11-07 16:48:21 +00:00
Scott Lahteine
714d2b9bbc Merge pull request #8297 from thinkyhead/bf2_M118_and_others
[2.0] Fix M118, compiler warnings, etc.
2017-11-06 23:25:49 -06:00
Alexey Shvetsov
83555933aa Add platformio support for stm32 (#8246)
[2.0] Add platformio support for stm32
2017-11-06 23:03:59 -06:00
Scott Lahteine
85a62bbf46 Misc. fixes to compiler warnings, etc. 2017-11-06 22:57:05 -06:00
Scott Lahteine
e6aba99f16 Fix M118 parameters, with strict guideline 2017-11-06 22:57:01 -06:00
Scott Lahteine
6718579ccf Merge pull request #8294 from thinkyhead/bf2_fix_fallback_font
[2.0] Patch non-extended font option
2017-11-06 22:01:08 -06:00
Scott Lahteine
e9b1944a67 Patch non-extended font option 2017-11-06 21:42:21 -06:00
Roxy-3D
6324b09934 Revert "Fix EEPROM crc (#8284)" (#8292)
This reverts commit 172c36f517.
2017-11-06 19:52:05 -06:00
Rowan Meara
172c36f517 Fix EEPROM crc (#8284) 2017-11-06 19:19:30 -06:00
Scott Lahteine
cc4d28b73c Update bilinear for native workspace 2017-11-06 17:04:41 -06:00
Scott Lahteine
94c7205d64 Merge pull request #8281 from thinkyhead/bf2_alligator_dac
[2.0] Use fastio for Alligator dac084s085, etc.
2017-11-06 12:16:18 -06:00
Scott Lahteine
2246316605 Fix name collision. timer_t => hal_timer_t 2017-11-05 19:31:07 -06:00
Jason Hitesman
4efaef7039 [2.0.x] Fix archim2 SSDS define (#8278)
* Fix SSDS define

* Update pins_ARCHIM2.h
2017-11-05 19:23:19 -06:00
Scott Lahteine
c8dfa26bc8 Use fastio for STM32F1 endstop interrupts 2017-11-05 19:20:28 -06:00
Scott Lahteine
185dec800b Use fastio for HAL SPI EEPROM 2017-11-05 19:20:03 -06:00
Scott Lahteine
297666ea14 Use fastio for Alligator dac084s085 2017-11-05 19:14:42 -06:00
Scott Lahteine
c5d95d318b Merge pull request #8249 from thinkyhead/bf2_nozzle_cleanup
[2.0] Cleanup Nozzle class, fix XY vs Z move order
2017-11-05 18:51:11 -06:00
Scott Lahteine
7e2fee9d56 Merge pull request #8274 from tcm0116/2.0.x-re_arm_D8
[2.0.x] Correct RAMPS_D8_PIN for Re-ARM
2017-11-05 18:39:28 -06:00
Scott Lahteine
59c558d612 Merge pull request #8275 from GMagician/2.0.x-Typo-fix
[2.0.x] typo fix (removed spaces)
2017-11-05 18:39:04 -06:00
Scott Lahteine
be73d5cc08 Cleanup Nozzle class, fix XY vs Z move order 2017-11-05 18:31:07 -06:00
Scott Lahteine
2e33c3bdc2 Merge pull request #8270 from studiodyne/studiodyne-fw
fwretract bug/mistake + suggestion
2017-11-05 18:21:22 -06:00
GMagician
9e93b7ccbd [2.0.x] removed spaces
Removed spaces in array declaration
2017-11-05 20:42:48 +01:00
Thomas Moore
b91a822d7a Correct RAMPS_D8_PIN for Re-ARM 2017-11-05 13:03:42 -06:00
studiodyne
d295f984e3 Update fwretract.cpp 2017-11-05 15:42:30 +01:00
Scott Lahteine
7de8a66780 Merge pull request #8256 from thinkyhead/bf2_cnc_coordinate_sys
[2.0.x] CNC_COORDINATE_SYSTEMS
2017-11-04 22:49:31 -05:00
Scott Lahteine
1b40e9c464 Implement CNC_COORDINATE_SYSTEMS 2017-11-04 22:28:46 -05:00
Scott Lahteine
1b42fba39b Add CNC_COORDINATE_SYSTEMS to configs 2017-11-04 22:28:46 -05:00
Scott Lahteine
a22434508f Match tweaks to G33 from 1.1 2017-11-04 22:28:46 -05:00
Scott Lahteine
c07bbd4154 Prettify some EEPROM code 2017-11-04 22:28:46 -05:00
Scott Lahteine
d6aa127c76 Remove I2CPEM workspace offset 2017-11-04 22:28:46 -05:00
Scott Lahteine
79772219ae Fix Fan Multiplexer init 2017-11-04 22:28:46 -05:00
Scott Lahteine
47e0ee8eff Merge pull request #8260 from thinkyhead/bf2_anet_keypad_ramps
[2.0] RAMPS pins for ANET_KEYPAD_LCD
2017-11-04 21:49:13 -05:00
Scott Lahteine
ca7d36d9ed RAMPS pins for ANET_KEYPAD_LCD 2017-11-04 21:22:53 -05:00
Scott Lahteine
52aec32f3a Merge pull request #8258 from thinkyhead/bf2_git_scripts
[2.0] Update git helper scripts
2017-11-04 21:03:17 -05:00
Scott Lahteine
ca21367dde Update git helper scripts 2017-11-04 18:35:34 -05:00
Colten Edwards
e0a6ee8da5 [2.0] Fix up G33, LPC1768 + SDCARD_SORT_ALPHA (#8250)
* Update Conditionals_post.h

* Add a cast to round() to convert to a unsigned int

Add's a cast to round() so that it will compile properly. round() returns a float which must be cast to a integer for the following % operation. Use a unsigned int as a negative index to an array is wrong. Should never be more than 255 points allowing us to use a 8 bit cast.

* Update G33.cpp
2017-11-04 18:04:18 -05:00
Scott Lahteine
46c0b73578 Merge pull request #8252 from PaoloP74/patch-1
Update README.md
2017-11-04 15:12:23 -05:00
Scott Lahteine
dac1f6fe74 Tweaks to cubic_b_spline code style 2017-11-04 14:46:10 -05:00
Scott Lahteine
4df024d7b9 Merge pull request #8234 from thinkyhead/bf2_native_operation
[2.0.x] Operate in Native Machine Space
2017-11-04 14:31:44 -05:00
Scott Lahteine
601ccded89 Fix case-insensitive config issue 2017-11-04 14:10:13 -05:00
Paolo Paolucci
944b67b0b8 Update README.md 2017-11-04 16:23:12 +01:00
Scott Lahteine
f8393a0908 Operate in Native Machine Space 2017-11-04 00:05:38 -05:00
Scott Lahteine
d83a9a53e8 Merge pull request #8220 from thinkyhead/bf2_serial_port_-1
[2.0] Add SERIAL_PORT -1 option for configurators
2017-11-03 15:25:12 -05:00
Scott Lahteine
93ba72ea83 Add SERIAL_PORT -1, set on SBASE, STM32F103RET6 2017-11-03 15:22:45 -05:00
Scott Lahteine
b561ee2738 Merge pull request #8244 from thinkyhead/bf2_probes_link
[2.0] Fix probes configuration url
2017-11-03 13:45:53 -05:00
Scott Lahteine
7e43dd1d23 Fix probes configuration url
Based on #8241 by @machaj
2017-11-03 13:35:40 -05:00
Scott Lahteine
f606ebf8ee Merge pull request #8238 from AnHardt/2.0_boot/kill_screen_cleanup
[2.0] Some cleanup around 'lcd_bootscreen()' and 'lcd_kill_screen()'
2017-11-03 13:31:49 -05:00
AnHardt
ca0e4b4e96 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:02:48 +01:00
Scott Lahteine
84b93d941f Merge pull request #8178 from thinkyhead/bf2_config_tweak
[2.0.x] Faster menu navigation for Anet A8
2017-11-03 04:49:17 -05:00
teemuatlut
70be4d206e [2.0.x] UltiMachine Archim2 (#8190)
* UltiMachine Archim2 support

* SPI gets included by the library

* Invert TMC2130 diag pin state

* Clean up Archim2 pins

* Update Archim2 config

* FAN2 -> FAN1

* Cleanup

* Add brief Archim installation instructions

* Bring pins into compliance

* Update 1.0 SD Detect pin for 1.1

* Update Configuration.h

* Update pins_ARCHIM2.h
2017-11-03 04:48:15 -05:00
Scott Lahteine
f3deb37bdf Merge pull request #8236 from thinkyhead/bf2_protect_M303
[2.0.x] M303 thermal runaway protection
2017-11-03 04:42:14 -05:00
Scott Lahteine
31f112cf58 Cleanup trailing whitespace 2017-11-03 04:07:45 -05:00
Scott Lahteine
2f9e42feb9 M303 thermal runaway protection 2017-11-03 03:57:46 -05:00
Scott Lahteine
e5ae545647 Remove ADCKey steps acceleration 2017-11-03 03:41:55 -05:00
Luc Van Daele
6827e243a0 [2.0.x] G33 magic numbers (#8171)
* [2.0.x] G33 magic numbers

* oops

* Comments

* oops

* warning

* better comment section

* remarks

* extra grids
2017-11-03 03:36:16 -05:00
Scott Lahteine
8735ae984b Merge pull request #8227 from tcm0116/2.0.x-pin_mapping
LPC1768: updates to use the new pin_t typedef
2017-11-03 03:10:19 -05:00
Scott Lahteine
3749a746f1 Merge pull request #8231 from AnHardt/2.0_watchdog
[2.0] Fix watchdog in WATCHDOG_RESET_MANUAL mode AVR
2017-11-03 03:06:28 -05:00
AnHardt
c72a0610b4 Fix watchdog in WATCHDOG_RESET_MANUAL mode AVR 2017-11-03 04:43:00 +01:00
Thomas Moore
13d839795c LPC1768: updates to use the new pin_t typedef 2017-11-02 18:43:57 -05:00
Scott Lahteine
676a564610 Merge pull request #8225 from thinkyhead/bf2_mks_gen_l
[2.0.x] Add MKS Gen L board
2017-11-02 17:07:59 -05:00
Scott Lahteine
eb13b8d985 Add MKS Gen L board 2017-11-02 17:06:08 -05:00
Morten
063e957fc4 Update pins_MKS_SBASE.h (#8188)
* Update pins_MKS_SBASE.h

Deleted E_MUX2, not used.
Changed #define LCD_PINS_D4      P0_14  // EXP1.5 to #define LCD_PINS_D4      P0_15  // EXP1.5, wrong in MKS's pinout schematic.
Swapped TEMP_BED_PIN and TEMP_0_PIN port's, request from user, more logical...

* Update pins_MKS_SBASE.h

Moved MUX signals to J8 and re added MUX2, cleaner wiring..
2017-11-02 13:50:23 -05:00
Scott Lahteine
f7133e53fd Fix case light off
Addressing #8205
2017-11-01 21:22:15 -05:00
Alexey Shvetsov
fd8f433cc2 Add Azteeg X5 GT to supported list (#8185)
* Add Azteeg X5 GT to supported list

Signed-off-by: Alexey Shvetsov <alexxy@gentoo.org>

* Update README.md
2017-11-01 11:49:51 -05:00
Scott Lahteine
32a9db3e93 Merge pull request #8197 from thinkyhead/bf2_asterisk_not_special
Allow asterisks in G-Code commands
2017-10-31 21:53:43 -05:00
Scott Lahteine
0108d5181f Allow asterisks in G-Code commands
Addressing #6655
2017-10-31 21:20:41 -05:00
Scott Lahteine
3a81646c9a Merge pull request #8192 from thinkyhead/bf2_silver_gate
[2.0.x] Support for SilverGate Board
2017-10-31 16:30:14 -05:00
Scott Lahteine
34745b2183 Organize boards.h by architecture 2017-10-31 16:10:38 -05:00
android444
9cc1d8e312 [2.0.x] Support for SilverGate Board 2017-10-31 15:27:26 -05:00
Scott Lahteine
03e5369411 Faster menu navigation for Anet A8
Addressing #8166
2017-10-31 14:46:55 -05:00
Scott Lahteine
f1edf83720 Merge pull request #8187 from rafaljot/patch-5
Update InterruptVectors_Due.cpp
2017-10-31 14:14:08 -05:00
Scott Lahteine
b2bd77c40a Merge pull request #8191 from thinkyhead/bf2_rearm_more
[2.0.x] Add SDCARD_SORT_ALPHA options for LPC1768
2017-10-31 14:12:14 -05:00
Scott Lahteine
571ced712d Add SDCARD_SORT_ALPHA options for LPC1768 2017-10-31 14:05:40 -05:00
rafaljot
778e4e4c23 Update InterruptVectors_Due.cpp
const pfnISR_Handler *isrtab = get_relocated_table_addr();

What compiler do you use? Arduino 1.8.5 can't compile this "const".
2017-10-31 15:00:06 +01:00
Scott Lahteine
cae8703e0d Merge pull request #8181 from thinkyhead/bf2_fix_bootscreen_repeat
[2.0.x] Only show custom bootscreen once
2017-10-31 02:37:40 -05:00
Scott Lahteine
a516856df9 Only show custom bootscreen once 2017-10-31 01:47:30 -05:00
GMagician
727a403ba1 [2.0.x] Fix NO_MOTION_BEFORE_HOMING unwanted behaviour (#8176)
* [2.0.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 G0_G1.cpp

* Update G0_G1.cpp
2017-10-30 22:50:22 -05:00
Alexey Shvetsov
577659cacf Basic support for Azteeg_X5_GT (#8139)
* Basic support for Azteeg_X5_GT

Signed-off-by: Alexey Shvetsov <alexxy@gentoo.org>

* Add fan pins for AZTEEG X5 GT

Signed-off-by: Alexey Shvetsov <alexxy@gentoo.org>

* Fix endstop pins

* Add servo0 pin
2017-10-30 16:01:20 -05:00
Scott Lahteine
0b02f9cc33 Merge pull request #8168 from thinkyhead/bf2_config_tweak
[2.0.x] Apply Re-ARM SPI review items
2017-10-30 15:49:50 -05:00
Scott Lahteine
1f38761da2 Merge pull request #8169 from thinkyhead/bf2_kinematic_soft_endstops
[2.0.x] Kinematic clamp_to_software_endstops
2017-10-30 15:49:10 -05:00
Scott Lahteine
04c0d9f3c3 Implement kinematic software endstops 2017-10-30 15:16:30 -05:00
Scott Lahteine
9f89b5d876 Fix for MAX_VFAT_ENTRIES sanity check 2017-10-30 15:11:47 -05:00
Scott Lahteine
2cdde08339 Apply items specified in code review
Followup to #8122
2017-10-30 15:03:07 -05:00
Scott Lahteine
34be5d33c0 The plural of 'axis' is 'axes' 2017-10-30 14:21:43 -05:00
Bob-the-Kuhn
6e5f13a5c2 Merge pull request #8122 from Bob-the-Kuhn/2.0.x-restore-Re-ARM-RepRap-Discount-Full-Graphics-fix-(partial-solution)
2.0.x - Restore fix for garbaged display on Re-ARM with RepRap Full Graphics Smart Controller
2017-10-30 13:16:16 -05:00
Bob-the-Kuhn
b7a66742dd tested
add sort alpha section to other LPC1768 boards
2017-10-30 13:01:19 -05:00
Scott Lahteine
f505a04043 Merge pull request #8162 from jeffyl/fix_azsmz
[2.0.x] Fix AZSMZ Mini pins for new LPC1768 pinmapping
2017-10-30 12:47:21 -05:00
Jeffrey Li
bbc2e66634 Fix AZSMZ MINI pins for new LPC1768 pinmapping 2017-10-30 04:19:06 -07:00
Scott Lahteine
31e96935f7 Fix EXTRA_FAN_SPEED
Addressing #8158
2017-10-30 00:10:00 -05:00
Scott Lahteine
c94dce6b32 Merge pull request #8113 from thinkyhead/bf2_fixup_sd_reprint
[2.0.x] Cleanup after SD Print Again, whitespace, tabs
2017-10-29 23:57:51 -05:00
Scott Lahteine
ce1c9c0808 Tweak QUICK_HOME description 2017-10-29 23:48:13 -05:00
Scott Lahteine
12458cefc4 Remove 5s timer hack. Encoder pos is saved on print start! 2017-10-29 22:45:19 -05:00
Scott Lahteine
9a4cf11835 Remove return_to_status_ms hack, just use defer... 2017-10-29 22:45:18 -05:00
Scott Lahteine
8949c8c0a5 Move SD_REPRINT_LAST_SELECTED_FILE to ultralcd.cpp 2017-10-29 22:45:18 -05:00
Scott Lahteine
817175613a Merge pull request #8157 from thinkyhead/bf2_anet_10_servo
[2.0.x] Define a default SERVO0_PIN for Anet 1.0
2017-10-29 19:55:00 -05:00
Scott Lahteine
233ddf80da Merge pull request #8141 from thinkyhead/bf2_dual_xyz_endstops
[2.0.x] Dual endstops XYZ
2017-10-29 19:50:04 -05:00
Scott Lahteine
723f2a77f6 Implement support for Dual X and Y endstops 2017-10-29 18:56:04 -05:00
Scott Lahteine
7465ede058 Add scripts for .travis.yml to append config options 2017-10-29 18:56:04 -05:00
Scott Lahteine
e04425281d Add Dual Steppers / Endstops to configs 2017-10-29 18:56:04 -05:00
Scott Lahteine
edff2c917b Cleanup for DIGIPOTS settings 2017-10-29 18:56:03 -05:00
Scott Lahteine
3e8754a38a Add/correct time units on planner vars / M205 B 2017-10-29 18:47:21 -05:00
Scott Lahteine
b2a48f1a04 Provide a SERVO0_PIN for non-standard LCD 2017-10-29 18:36:16 -05:00
Scott Lahteine
10a1f07684 Add mfup to mfpub to get upstream changes 2017-10-29 18:36:16 -05:00
Scott Lahteine
b232f39341 AVR: Hidden option to use 8s watchdog 2017-10-29 18:36:16 -05:00
Scott Lahteine
9d4cfd2013 Merge pull request #8142 from thinkyhead/bf2_fix_m303
[2.0.x] Fix M303 thermal protection
2017-10-29 04:46:34 -05:00
Scott Lahteine
eae0aea1e0 Fix M303 thermal protection 2017-10-29 04:30:50 -05:00
Luc Van Daele
a1a4fc277e (2.0.x) serious bug G33 (#8136)
* (2.0.x) serious bug G33

* Revert config changes

This reverts commit 74b5a98223b7b7fb970d05b8541f4a079c3cfe56.
2017-10-29 04:12:33 -05:00
Thomas Moore
325233b454 Fix automatic stepper assignment for X/Y/Z dual stepper drivers (#8130) 2017-10-28 19:45:07 -05:00
Thomas Moore
50b4f9cbf7 LPC1768 Pin Mapping and M43 cleanup (#8119)
* LPC1768 M43 cleanup

* Update pinmapping.h to #define pins
2017-10-28 19:44:54 -05:00
Scott Lahteine
630677bec6 Merge pull request #8129 from thinkyhead/bf2_revert_babystep_mult
[2.0.x] Revert default BABYSTEP_MULTIPLICATOR to 1
2017-10-27 20:04:22 -05:00
Scott Lahteine
6b1d1a818b Revert default BABYSTEP_MULTIPLICATOR to 1 2017-10-27 19:45:44 -05:00
Scott Lahteine
c1c3ca6f8a Merge pull request #8082 from thinkyhead/bf2_xon_xoff_due
[2.0.x] Arduino Due XON/XOFF implementation
2017-10-27 19:23:35 -05:00
etagle
ba8dc678f5 Arduino Due XON/XOFF implementation
Alos includes emergency parser and configurable TX/RX buffers for Arduino Due.
2017-10-27 03:24:23 -05:00
etagle
8d9c3cc2b7 Add a module for Due SRAM-based Interrupt Vector Table
This is the ONLY way to be able to override ISRs stolen by the Arduino Runtime, such as Serial or USB device interrupts. This feature is needed so Arduino modules can be replaced and enhanced.
2017-10-27 03:24:23 -05:00
etagle
c9bbef6380 Cosmetic fix for HAL_AVR/MarlinSerial.cpp
Instead of using const char, it is better to use uint8_t
2017-10-27 03:24:23 -05:00
Scott Lahteine
203f2923a1 Cleanup, apply standards to debug_frmwrk.c
Although this is an external contribution, clean up anyway to stop seeing it in global searches for typical flaws.
2017-10-27 03:24:23 -05:00
Scott Lahteine
55653dce63 Merge pull request #8115 from thinkyhead/bf2_autotune_G33
[2.0.x] G33 Autotune calibration update
2017-10-27 02:42:17 -05:00
LVD-AC
dcfc2503c2 G33 Autotune calibration update #10 2017-10-27 02:11:24 -05:00
Scott Lahteine
b338cafc65 Merge pull request #8111 from thinkyhead/bf2_fwretract_fix_oct26
[2.0.x] Improved Firmware Retraction logic
2017-10-27 02:02:06 -05:00
Scott Lahteine
ada90f7335 Clean up trailing spaces 2017-10-26 23:33:43 -05:00
Scott Lahteine
7fad26549b Concise SD_REPRINT_LAST_SELECTED_FILE description 2017-10-26 23:33:02 -05:00
Scott Lahteine
33f379fe88 Add some Polish language
Thanks @SCiunczyk
2017-10-26 22:49:04 -05:00
Scott Lahteine
daeff5a11a Tweak neopixel self-test 2017-10-26 22:47:07 -05:00
Scott Lahteine
0ceec1f166 Fix leveling_active_at_z warning 2017-10-26 22:22:54 -05:00
studiodyne
eb02f8c719 Improve FWRETRACT logic, add common sense 2017-10-26 22:22:54 -05:00
Scott Lahteine
3f827758d7 Merge pull request #8047 from thinkyhead/bf2_babystepping_M290
[2.0.x] Add M290 Babystepping (extended)
2017-10-26 21:02:21 -05:00
Scott Lahteine
bd78ca0ee3 Add M290 Babystepping 2017-10-26 20:44:43 -05:00
Chris Pepper
636c3bbc4e LPC1768: Travis lpc1768 default config test (#8109)
Add a single default travis test for lpc1768 to catch build errors
2017-10-26 17:49:32 -05:00
Scott Lahteine
ce5f0ec85a Bring STM32 example config up to date 2017-10-26 17:25:44 -05:00
Scott Lahteine
46e9eae159 Tweak to M100 config comment 2017-10-26 17:25:44 -05:00
Scott Lahteine
c45514f811 Merge pull request #8094 from thinkyhead/bf2_neopixel_led_parity
[2.0.x] Bring NEOPIXEL_LED into parity with 1.1.x
2017-10-26 17:24:38 -05:00
Bob-the-Kuhn
cc72db2636 Merge pull request #8092 from Bob-the-Kuhn/2.0.x-reduce-font-size-
2.0.x - save 1400 bytes of FLASH by using reduced font for some languages
2017-10-26 16:35:53 -05:00
Bob-the-Kuhn
229a27a1c7 save FLASH by using reduced font for some languages 2017-10-26 16:08:17 -05:00
Roxy-3D
3f5f39576b Reprint option for last SD Memory card file (#8106)
* Re-Print of same SD Memory Card file with single click

* Re-Print of same SD Memory Card file with single click
* This is the bugfix-v2.0.0 version of  https://github.com/MarlinFirmware/Marlin/pull/8104
2017-10-26 15:50:18 -05:00
Thomas Moore
9e699811d2 Make LPC1768 pinmapping not specific to Re-ARM (#8063)
* Merging early because of build failures.  See #8105

* Make LPC1768 pinmapping not specific to Re-ARM

* Add HAL_PIN_TYPE and LPC1768 pin features

* M43 Updates

* Move pin map into pinsDebug_LPC1768.h

* Incorporate comments and M226

* Fix persistent store compilation issues

* Update pin features

* Update MKS SBASE pins

* Use native LPC1768 pin numbers in M42, M43, and M226
2017-10-26 13:37:26 -05:00
Scott Lahteine
3ac581eac9 Neopixel changes for parity with 1.1.x 2017-10-25 18:40:04 -05:00
Scott Lahteine
e4266d0fde Merge pull request #8093 from GMagician/gitignore-duplicate-entry-remove
Removed duplicate entry in gitignore
2017-10-25 18:36:00 -05:00
GMagician
49f8c8fd7b Removed duplicate entry in gitignore 2017-10-25 23:17:16 +02:00
Scott Lahteine
da2dc2bfa4 README: MKS SBASE to the "supported" list 2017-10-25 15:35:24 -05:00
jeffyl
7b3098bbd5 Add AZSMZ Mini (#8005)
* Add AZSMZ Mini

* Remove tabs, adjust spacing

* Renumber boards to group by family

* Patch up spacing

* Tweak
2017-10-25 01:16:54 -05:00
Scott Lahteine
e00ed10c4c GT2560 config MKS_MINI_12864 => SDSUPPORT 2017-10-25 01:12:48 -05:00
Scott Lahteine
10a5e4d80f Merge pull request #8078 from thinkyhead/bf2_mks_mini_lcd
[2.0.x] Add MKS MINI 12864 support to GT2560
2017-10-25 01:10:03 -05:00
Scott Lahteine
6b1eddda06 Merge pull request #8009 from GMagician/gitignore-update
gitignore update
2017-10-24 19:16:17 -05:00
Scott Lahteine
ee9b8bf0f1 Add MKS MINI 12864 support to GT2560 2017-10-24 19:15:41 -05:00
Scott Lahteine
f65fc7ffab Merge pull request #8044 from thinkyhead/bf2_mesh_consolidate
[2.0.x] Simplify mesh bounds config
2017-10-24 18:56:43 -05:00
Scott Lahteine
070cd34fe8 Merge pull request #8077 from thinkyhead/bf2_MKS_BASE_followup
Clean up HAL trailing spaces, MKS SBASE pins
2017-10-24 18:38:48 -05:00
Scott Lahteine
7f55d82fd1 Move UBL_SAVE_ACTIVE_ON_M500 to Configuration.h 2017-10-24 18:26:43 -05:00
Scott Lahteine
90a14b4f5b Clean up HAL trailing spaces, MKS SBASE pins 2017-10-24 18:20:23 -05:00
Thomas Moore
51fafccc16 [2.0.x] Enable hardware serial ports on LPC1768 (#8004)
* Enable hardware serial ports on LPC1768

* Fix compilation errors with other HALs

* FIx order of includes in LPC1768 HAL main.cpp

* Add support for RX_BUFFER_SIZE and TX_BUFFER_SIZE options in Configuration_adv.h
2017-10-24 17:28:33 -05:00
Scott Lahteine
580b6e9089 Apply physical limits to mesh bounds 2017-10-24 16:54:07 -05:00
Scott Lahteine
4e2baeb3e1 Update indentation, file-wrapping for Marlin 2.0.x 2017-10-24 16:54:06 -05:00
Scott Lahteine
60af705e6d Relocate SPI.h to the HAL folder 2017-10-24 16:54:06 -05:00
Scott Lahteine
46aae4c6e7 Merge pull request #8074 from thinkyhead/bf2_verbiage_like_8061
Fix some config verbiage
2017-10-24 15:25:12 -05:00
Scott Lahteine
3356d5a72d Merge pull request #8072 from thinkyhead/bf2_fix_M600
[2.0.x] Fix position sync in M600 pause/resume
2017-10-24 14:55:46 -05:00
Scott Lahteine
5f87324536 Fix some config verbiage 2017-10-24 14:53:42 -05:00
Scott Lahteine
272f9f65dc Fix some typos 2017-10-24 14:29:15 -05:00
studiodyne
8181220bfd Fix position sync in M600 pause/resume 2017-10-24 14:29:15 -05:00
cdedwards
6296ab2173 Add GFX overlay to UBL mesh edit (#8038)
* Add GFX overlay to UBL mesh edit

Fixed misplaced HAS_TEMP_BED in dogm_bitmaps.h

rename _lcd_babystep_zoffset_overlay to _lcd_zoffset_overlay_gfx and move it out of BABYSTEP_ZPROBE_OFFSET to we can use it for over things. Add this function into UBL mesh edit screen.

update all Configuration.h to add ENABLE_MESH_EDIT_GFX_OVERLAY

* Add Sanity to UBL  insanity

Need to check for DOGLCD  otherwise error out.
2017-10-24 14:14:03 -05:00
Roxy-3D
72156a2029 change to better (more clear) names (#8050)
set_destination_to_current() changed to set_destination_from_current()

set_current_to_destination() changed to set_current_from_destination()
2017-10-21 11:42:26 -05:00
Scott Lahteine
adf168e68f Merge pull request #8046 from thinkyhead/bf2_fix_micromake_endstops
[2.0.x] Add Makeboard MINI pins to fix Micromake C1
2017-10-21 01:04:29 -05:00
Scott Lahteine
0cb423b5b3 Apply consistency for other configs 2017-10-21 00:41:51 -05:00
Scott Lahteine
8c78f8f790 Add Makeboard MINI for Micromake C1 2017-10-21 00:41:51 -05:00
Scott Lahteine
1fbb307aaf Merge pull request #8021 from thinkyhead/bf2_scroll_longnames
[2.0.x] Add SCROLL_LONG_FILENAMES to reveal longer filenames
2017-10-20 21:33:54 -05:00
Scott Lahteine
3d2b2eb1ca Prevent SDCARD_SORT_ALPHA from exploding 2017-10-20 19:13:21 -05:00
Scott Lahteine
783ddf9691 Add SCROLL_LONG_FILENAMES option 2017-10-20 19:13:21 -05:00
Roxy-3D
5439358281 Basic UBL operations working on 32-bit platforms (#8024)
* 32-bit work for UBL

* Update FT i3-2020 reference file
2017-10-19 10:44:45 -05:00
Scott Lahteine
9e5cbf0198 BQ should set this in its config, and does 2017-10-18 22:56:03 -05:00
Scott Lahteine
348e5e3109 Simplify Cartesian probing boundaries
Followup to #8012
2017-10-18 17:14:32 -05:00
Luc Van Daele
3986a84f77 boolval revisited (#8016) 2017-10-18 14:03:17 -05:00
Roxy-3D
572cf0ec95 UBL able to generate mesh and save and load it on 32-bit platforms (#8015)
* Get UBL Mesh Generation, Mesh Save & Mesh Load working with 32-Bit platforms

* clean up read_data() and write_data() for non-LPC1768 HAL's

* Get read_data() and write_data() return codes consistent

All HAL's read_data() and write_data() return false if they succeed.

* Get read_data() and write_data() return codes to be consistent

Make read_data() and write_data() return true if an error happens.

* Say UBL is now checked out on machine types in default Configuration.h file.
2017-10-18 14:00:29 -05:00
Thomas Moore
67cc29cd3c Update UBL mesh boundaries to accomidate beds centered at 0, 0 (#8012) 2017-10-18 10:03:30 -05:00
GMagician
9736c962fe gitignore update
This is needed by thirdy part extension
This extension automatically regenerate filters to get a layout divided by folders and not by "sources" and "headers"
2017-10-17 23:43:22 +02:00
Roxy-3D
6cb26c98c8 Fix Baby Stepping on 32-Bit platforms (#8001)
Also, Max7219 debug code was used for this effort.   It has been
improved and hardened.
2017-10-16 16:29:37 -05:00
Scott Lahteine
3b7b0492f8 Merge pull request #7993 from jeffyl/bugfix-2.0.x
[2.0.x] Proper support for AZSMZ 12864 LCD on SmartRAMPS
2017-10-16 14:12:29 -05:00
Jeffrey Li
26531f2715 Add lcd to all sample configs 2017-10-16 03:24:25 -07:00
Scott Lahteine
02f2979760 Merge pull request #7992 from thinkyhead/bf2_M106_memorize
[2.0.x] Add EXTRA_FAN_SPEED feature
2017-10-16 05:19:40 -05:00
Scott Lahteine
ce48403a0b Add EXTRA_FAN_SPEED feature
Based on #7883 by @studiodyne
2017-10-16 02:34:13 -05:00
Jeffrey Li
eeb4611606 Add proper support for the AZSMZ 12864 LCD on a SMART RAMPS 2017-10-16 00:33:07 -07:00
Scott Lahteine
3e7b24278f Fix usage line in temperature table script 2017-10-16 00:17:32 -05:00
Scott Lahteine
bacea22a26 Update thermistor table script for current format 2017-10-16 00:15:48 -05:00
Scott Lahteine
c46189e429 Fix UBL+Delta segmented feedrate
Based on #7948
2017-10-15 16:31:09 -05:00
Scott Lahteine
a12ab611ae Merge pull request #7987 from thinkyhead/bf2_progress_percentage
[2.0.x] Add M73 (LCD_SET_PROGRESS_MANUALLY)
2017-10-15 16:13:23 -05:00
Scott Lahteine
5c4f3e0107 Add LCD_SET_PROGRESS_MANUALLY 2017-10-15 03:05:29 -05:00
Scott Lahteine
014a83fe09 Merge pull request #7984 from thinkyhead/bf2_micromake_c1
[2.0.x] Micromake C1 Configurations, Unaccented French
2017-10-14 21:19:32 -05:00
Scott Lahteine
bc7df0188e Add Micromake C1 configurations 2017-10-14 20:28:12 -05:00
Scott Lahteine
34a261416f Add unaccented French language 2017-10-14 20:28:12 -05:00
Scott Lahteine
af2397d581 Merge pull request #7979 from thinkyhead/bf2_granular_sw_endstops
[2.0.x] Software endstop options by axis
2017-10-14 19:57:16 -05:00
Scott Lahteine
e587f0893c Define AVR_ATmega2560_FAMILY_PLUS_70 in Conditionals 2017-10-14 19:05:32 -05:00
Scott Lahteine
fd128b3c93 Fix some AVR HAL code style 2017-10-14 19:05:10 -05:00
Scott Lahteine
799360c576 Enhance Teensy/RAMPS pins files 2017-10-14 18:44:20 -05:00
Scott Lahteine
d3e5a22a5d Add MIN_SOFTWARE_ENDSTOP_[XYZ] to example configs 2017-10-14 18:44:20 -05:00
Jeff Eberl
b206f70693 Split the software endstop capability by axis. 2017-10-14 18:44:20 -05:00
Scott Lahteine
ec69e97bda Merge pull request #7974 from jeffyl/bugfix-2.0.x
Fix include path for VIKI
2017-10-14 17:38:42 -05:00
Morten
91e28edda6 [2.0.x] Add new board: MKS Sbase (#7945)
* Add files via upload

* Add files via upload

* Add files via upload

* Checked LCD / edited / revised pins_MKS_BASE.h

As requested :)

* Delete Configuration_adv.h

* Delete Configuration.h

* Deleted /Marlin/Marlin/src/config/examples/MksSbase/*.* and moved them to /Marlin/Marlin/src/config/examples/Mks/Sbase/*.*

* Add files via upload
2017-10-14 09:44:18 -05:00
Jeffrey Li
3c8a3a02ba Fix include path for VIKI 2017-10-14 04:06:17 -07:00
Scott Lahteine
4586acad8c Merge pull request #7959 from alexxy/bugfix-2.0.x
Python isnt always python2
2017-10-14 05:02:07 -05:00
Scott Lahteine
497f86453e Merge pull request #7964 from gallynero/patch-2
fix 'axis_unhomed_error' not defined error
2017-10-14 05:00:58 -05:00
Scott Lahteine
85b2e7e764 Merge pull request #7966 from thinkyhead/bf2_ubl_remove_z_offset
[2.0.x] Unify Z fade factor
2017-10-14 03:15:16 -05:00
Scott Lahteine
c0dddd4233 Tweaks to tool_change, GcodeSuite::T() 2017-10-14 02:53:19 -05:00
Scott Lahteine
ca66574062 ADC sensor fix inspired by 'Evgen2' on Twitter 2017-10-14 02:28:13 -05:00
Scott Lahteine
1344ca4b2f UBL no longer needs ubl_state 2017-10-14 02:18:32 -05:00
Scott Lahteine
8dd08425fd Improve LCD leveling edits 2017-10-14 02:18:31 -05:00
Scott Lahteine
3e3911fb81 Use planner.leveling_active for all leveling systems 2017-10-14 02:18:31 -05:00
Scott Lahteine
32c607ffe2 Ensure fade factor is recalculated if fade height changes 2017-10-14 02:18:31 -05:00
Scott Lahteine
ca1e47375c Move fade_scaling_factor_for_z to Planner 2017-10-14 02:18:31 -05:00
Scott Lahteine
9a930ebec2 Make leveling_is_active a macro 2017-10-14 02:18:31 -05:00
Scott Lahteine
58abc66c1d Tweak bed leveling conditionals 2017-10-14 02:18:31 -05:00
Scott Lahteine
72ef508d55 Merge pull request #7962 from thinkyhead/bf2_ubl_remove_z_offset
[2.0.x] Remove obsolete UBL z_offset
2017-10-13 09:06:19 -05:00
Scott Lahteine
1adb5a6a48 Remove obsolete UBL z_offset 2017-10-13 08:22:46 -05:00
gallynero
3619a4cbea fix 'axis_unhomed_error' not defined error
Fix 'axis_unhomed_error' not defined error when pause with unhomed status
2017-10-13 09:08:02 +02:00
Alexey Shvetsov
12d212d1b4 Python isnt always python2
So now this script is compatible with both python versions 2 and 3

Signed-off-by: Alexey Shvetsov <alexxy@gentoo.org>
2017-10-13 01:39:06 +03:00
Scott Lahteine
cc01a36363 Merge pull request #7947 from thinkyhead/bf2_more_READMEs
[2.0.x] Add a README.h file for Arduino IDE users
2017-10-12 06:56:41 -05:00
Scott Lahteine
4764710b11 Add a README.h file for Arduino IDE users 2017-10-11 18:10:15 -05:00
Bob-the-Kuhn
4e3ee845b9 config_adv (#7941)
get rid of twi.h

move to board files
2017-10-11 15:42:24 -05:00
Roxy-3D
0e260c6c1d Get FolgerTech i3-2020 working again with 32-bit platforms (#7944)
Setup FolgerTech i3-2020 Configuration files as a reference platform for
32-Bit work.

Also fix MAX7219 debug lights on 32-bit platforms.
2017-10-11 15:23:04 -05:00
Bob-the-Kuhn
e9cf9ad3f3 Merge pull request #7935 from Bob-the-Kuhn/Digipot-MCP4451
2.0.x - MPC4451 I2C support
2017-10-11 00:36:51 -05:00
Bob-the-Kuhn
26bfae58d4 MPC4451 I2C support 2017-10-11 00:30:41 -05:00
Scott Lahteine
1f5c432e29 Merge pull request #7920 from thinkyhead/bf2_neopixel_full
[2.0.x] Move FILAMENT_RUNOUT_SENSOR to a feature
2017-10-10 03:05:00 -05:00
Scott Lahteine
732e87e83c Merge pull request #7892 from GMagician/Serial-double-echo-fix
[2.0.x] Serial double echo fix
2017-10-10 02:42:16 -05:00
Scott Lahteine
f8e8fcb978 Move FILAMENT_RUNOUT_SENSOR to a feature 2017-10-10 02:37:42 -05:00
Scott Lahteine
10124f39d9 Merge pull request #7919 from thinkyhead/bf2_neopixel_full
[2.0.x] Different NEOPIXEL types
2017-10-10 02:35:39 -05:00
Slawomir Ciunczyk
a11e6a1022 Different NEOPIXEL types
Same as #7728 but for 2.0.x,
Lot of cleanup and remove references in whole code to other "LED files" than leds.h. Now will be much easier to add next drivers/libraries. e.g. FastLED. But bad news, currently FastLED is suporting only RGB devices (no RGBW)
2017-10-10 02:17:36 -05:00
Scott Lahteine
b30b55307c Merge pull request #7909 from thinkyhead/bf2_goodbye_legacy_advance
[2.0.x] Remove legacy ADVANCE feature
2017-10-10 00:31:18 -05:00
Scott Lahteine
1d04197f2f Merge pull request #7916 from thinkyhead/bf2_probeless_ubl
[2.0.x] Allow UBL G29 and G26 to build without a probe
2017-10-10 00:30:27 -05:00
Scott Lahteine
1f05f10346 Merge pull request #7894 from tcm0116/2.0.x-lcd_segmented_moves
[2.0.x] Use segmented moves when moving axis from LCD
2017-10-10 00:28:34 -05:00
Thomas Moore
9b0ee53b12 Use segmented moves when moving axis from LCD 2017-10-09 23:25:43 -05:00
Scott Lahteine
442669d23c Allow UBL to build without a probe 2017-10-09 18:57:41 -05:00
Scott Lahteine
5ad8f5c306 Merge pull request #7914 from thinkyhead/bf2_add_some_lcds
[2.0.x] Add support for 4 new LCDs
2017-10-09 17:39:41 -05:00
Scott Lahteine
20ebe218c8 Tweaks to VIKI lcd support 2017-10-09 17:01:07 -05:00
Scott Lahteine
09fa34a9e1 Modernize configs 2017-10-09 16:18:10 -05:00
Scott Lahteine
560d366b80 Move VIKI SCK/MOSI pins fix to Conditionals_POST.h 2017-10-09 16:13:49 -05:00
Scott Lahteine
e9bcb9d048 Add 4 new LCD displays 2017-10-09 15:58:02 -05:00
Scott Lahteine
03f4891fb9 Remove legacy ADVANCE feature 2017-10-09 04:25:18 -05:00
Scott Lahteine
e31385ecf6 Merge pull request #7904 from GMagician/Addressing-#7896
[2.0.x] Addressing #7896
2017-10-08 19:35:45 -05:00
GMagician
546f02c6f4 [2.0.x] Addressing #7896
Compiler error, added char c variable
2017-10-08 23:16:35 +02:00
GMagician
eb96d37da0 Serial double echo fix
Fix double character sent when TX buffer size is 0 on mega2560
2017-10-07 22:20:00 +02:00
Scott Lahteine
deeea98d22 LCD filename already concatenated 2017-10-07 15:16:05 -05:00
Scott Lahteine
a058638d11 Merge pull request #7875 from thinkyhead/bf2_fill_eeprom_dat_ff
[2.0.x] Update LPC persistent store to initialize eeprom.dat with FF
2017-10-07 15:13:21 -05:00
Scott Lahteine
ae1a18d0a1 LCD filename already concatentated 2017-10-07 15:10:15 -05:00
Scott Lahteine
12aa1b999a Fix display issue with SD_SORT_ALPHA cached names 2017-10-07 15:08:08 -05:00
Dave Johnson
9d0e4ea3d5 [2.0.x] Auto-enable DISABLE_REDUCED_ACCURACY_WARNING if HOME_AFTER_DEACTIVATE enabled (#7879)
* 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 on AVR with U8g panel.

* Reduce lines used

* Reduce lines used
2017-10-07 15:02:55 -05:00
Scott Lahteine
f63e546b3e Merge pull request #7890 from thinkyhead/bf2_integer_HAL_TIMER_RATE
[2.0.x] Apply fixes for DUE
2017-10-07 14:52:41 -05:00
Scott Lahteine
8315a8a716 Apply fixes for DUE
Alternative to #7882. If F_CPU is greater than 1000 it can be evenly divided by 8. Over 10000, 16; over 100000, 32; over 1 million, 64; etc.
2017-10-07 14:31:18 -05:00
Scott Lahteine
4b36a542e0 Merge pull request #7876 from thinkyhead/bf2_hotend_messages
[2.0.x] Addressing #7612
2017-10-07 13:37:43 -05:00
Scott Lahteine
81a1e69a4a Merge pull request #7877 from fiveangle/bf2-controller_fan_includes
[2.0.x] Resolve USE_CONTROLLER_FAN compile errors
2017-10-07 13:08:55 -05:00
Unknown
12730c1303 [2.0.0] Resolve USE_CONTROLLER_FAN compile errors
Add to controllerfan.cpp:
#include "../module/stepper_indirection.h"
#include "../module/temperature.h"
2017-10-07 05:26:36 -07:00
Scott Lahteine
7fb3343bda [2.0.x] Addressing #7612
Change "extruder" to HOTEND in sanity error messages
2017-10-07 02:27:26 -05:00
victorpv
8998f31ee1 Update LPC persistent store to initialize eeprom.dat with FF
This change initialize any data in eeprom.dat beyond the current file size to FF.
That way if eeprom.dat is deleted and created again, it doesn't take the old values or random ones, but rather starts with FF in all positions as a real brand new or erased eeprom.dat
Currently if you delete eeprom.dat and restart the board, the new file is created in the same sector with the same content, since FAT does not actually delete the data, just marks the sector as free. I tested by deleting the file, and then rebooting the board, and checking the file content.
The change can be tested in the same way, deleting, rebooting the board, and then the new content should be all FF.

If an eeprom file already exist with data on it, but smaller than E2END, it will be padded with FF on first access, so it will not have random or old content appended.
2017-10-07 02:18:42 -05:00
Scott Lahteine
2aa22c5a5e Merge pull request #7874 from thinkyhead/bf2_anet_encoder_pulses
[2.0.x] Fixing ANET encoder pulses
2017-10-07 01:21:23 -05:00
Scott Lahteine
db8ded90c2 Merge pull request #7872 from thinkyhead/bf2_fix_sd_listing_bug
[2.0.x] Fix sd file list display bug
2017-10-07 00:13:20 -05:00
Scott Lahteine
f99d1dedae Fixing #7833
Derived from #7873
2017-10-07 00:10:05 -05:00
Scott Lahteine
de84f57a9c Patch SD file draw bug 2017-10-06 23:57:11 -05:00
Scott Lahteine
ef90b49fff Remove extra NEWPANEL settings in Conditionals_LCD.h 2017-10-06 23:56:58 -05:00
Scott Lahteine
67a7dd9792 Merge pull request #7866 from thinkyhead/bf2_finally_G33_is_done
[2.0.x] Apply G33 updates
2017-10-06 16:03:26 -05:00
Scott Lahteine
030c266811 Merge pull request #7863 from thinkyhead/bf2_mapper_c2c3c4_sk
[2.0.x] Add UTF-8 mapper for Slovak language
2017-10-06 16:00:30 -05:00
Scott Lahteine
b220bc7521 Apply G33 updates
Adapted from #7865
2017-10-06 15:47:51 -05:00
Scott Lahteine
9fe7f53216 Misc general spacing cleanup 2017-10-06 15:14:01 -05:00
Scott Lahteine
c0382cd8cd Add UTF-8 mapper for Slovak language
Based on #7862, #7846 by @rmoravcik
2017-10-06 15:14:01 -05:00
Scott Lahteine
c81843a414 Set TEMP_SENSOR_0 to 1 in CR-10 example config
As pointed out in #7692 by @totalitarian
2017-10-06 14:30:53 -05:00
android444
72693a7e87 [2.0.x] Fixed RAMPS FD V1 pins.h file (#7852)
* test only

test

* Fixed RAMPS FD V1 pins.h file

* Fix typo
2017-10-06 13:27:15 -05:00
Chris Pepper
aa51a02b8f LPC1768: fix serial buffer underrun (#7854)
When the buffer is empty index_write == index_read, but they needed constrained by buffer_mask
2017-10-05 17:19:43 -05:00
Chris Pepper
46b2773e13 General fixes for LPC1768 (#7834)
* fixed some include paths

* LPC1768: Fix Serial API

Add missing serial methods used if TX_BUFFER_SIZE is set
Change return value of HalSerial:read to match Arduino API

* LPC1768: add filters to ADC

This is to try and compensate for hardware issue and oversensitivity to noise

* LPC1768: remove the polling section of delayMicroseconds

* LPC1768: lock usb mass storage device while device accesses it.

Currently only applicable to persistent store,
The device always has priority and will unmount the sd card from the host, Windows then tries to automount again so it can look like the explorer window freezes. Linux Mint, by default, just closes the Nemo window.

* Add timeout to make sure if Serial never connects that Marlin still boots

* Remove unneeded ifdef CPU_32_BIT

In general the need for ifdef CPU_32_BIT blocks means that something is missing from the HAL API or a Platform, in this case HAL_TICKS_PER_US was missing from the AVR Platform

* LPC1768: relocate RE-ARM debug_extra_script.py
2017-10-04 15:40:54 -05:00
Scott Lahteine
7258218f89 Fix xon_xoff_state initialization 2017-10-04 12:11:56 -05:00
Scott Lahteine
bf596fb039 Merge pull request #7818 from thinkyhead/bf2_xon_xoff
[2.0.x] Add XON/XOFF serial handshaking
2017-10-02 23:52:30 -05:00
Scott Lahteine
ab4943e24c Merge pull request #7829 from thinkyhead/bf2_fix_dualx_manual
[2.0.x] Fix DUAL_X_CARRIAGE manual move
2017-10-02 23:50:00 -05:00
Scott Lahteine
ca3c9baf1b Fix DUAL_X_CARRIAGE manual moves, add T0/T1 menu item 2017-10-02 23:35:55 -05:00
Scott Lahteine
a8b8d4e85e Add a typedef for MENU_ITEM(function,…) functions 2017-10-02 23:33:57 -05:00
Scott Lahteine
6ea2cc0293 Make prepare_move_to_destination_dualx a proper move function 2017-10-02 23:32:28 -05:00
Scott Lahteine
e472a7569b Remove extra auto_current_control call 2017-10-02 23:32:05 -05:00
Scott Lahteine
200f971ef7 Reduce Teensy++ 2.0 to a single entry
Followup to #7750, #7826
2017-10-02 22:55:43 -05:00
Ralph Schmidt
1ae208395c Remove MOTHERBOARD from "due" entry
Also reformat and document
2017-10-02 22:21:51 -05:00
Scott Lahteine
508d764d63 Add serial XON/XOFF handshaking
From @ejtagle, originally #7459
2017-10-02 04:12:30 -05:00
Scott Lahteine
af15383578 Add XON/XOFF options to example configs 2017-10-02 04:05:49 -05:00
Scott Lahteine
33c4d45f2f Merge pull request #7812 from thinkyhead/bf2_fix_resume_print
[2.0.x] Fix broken M600 resume_print
2017-10-01 22:55:28 -05:00
Scott Lahteine
f3677e077c Merge pull request #7816 from thinkyhead/bf2_inhibit_option
[2.0.x] Option to disallow motion before homing
2017-10-01 22:52:54 -05:00
Scott Lahteine
a03e70d46c Fix M600 resume_print
Derived from #7811 and #7779
2017-10-01 21:59:42 -05:00
Scott Lahteine
2d41c59320 Tweak some spacing 2017-10-01 21:59:42 -05:00
Scott Lahteine
5ae390e240 Apply NO_MOTION_BEFORE_HOMING to examples 2017-10-01 21:58:50 -05:00
Scott Lahteine
90af1fe5ee Implement NO_MOTION_BEFORE_HOMING option 2017-10-01 21:58:50 -05:00
Scott Lahteine
965b0ab53e Spacing adjustments 2017-10-01 21:58:50 -05:00
Scott Lahteine
ac41eb5871 Merge pull request #7722 from tcm0116/2.0.x-warnings
Cleanup 2.0.x compiler warnings
2017-10-01 21:56:54 -05:00
Scott Lahteine
c0b365fdb4 Merge pull request #7775 from GMagician/Fix-gitignore-for-Visualstudio-&-platformio
gitignorefix
2017-10-01 18:15:12 -05:00
Scott Lahteine
26d4c01660 Merge pull request #7802 from thinkyhead/bf2_fwretract_fixes
Fix G10/G11 with synchronize
2017-09-30 17:50:38 -05:00
Thomas Moore
ae2173cd52 Synchronize retractions 2017-09-30 17:28:46 -05:00
Thomas Moore
0cb00f52d9 Cleanup warnings 2017-09-30 16:47:17 -05:00
Bob-the-Kuhn
f0d34ca4f5 Merge pull request #7799 from Bob-the-Kuhn/Marlin-2.0.x-fix-LPC1768-stepper-hang-and-limit-maximum-stepper-ISR-spacing
Marlin 2.0.x - fix LPC1768 stepper hang and limit maximum stepper ISR spacing
2017-09-30 10:47:15 -05:00
Bob-the-Kuhn
1beaef0452 fix 3S hang & enable SPLIT 2017-09-30 10:27:41 -05:00
Scott Lahteine
6904561fd5 Merge pull request #7793 from tcm0116/2.0.x-servo
[2.0.x] Fix Servo class compile errors
2017-09-29 17:51:21 -05:00
Scott Lahteine
92389e4236 Merge pull request #7794 from tcm0116/2.0.x-usb_interrupt
[2.0.x] Fix LPC1768 USB interrupt priority
2017-09-29 17:50:02 -05:00
Thomas Moore
f1b6b4bdaa Fix LPC1768 USB interrupt priority 2017-09-29 08:21:33 -05:00
Thomas Moore
020ce176c4 Fix Servo class compile errors 2017-09-29 08:17:30 -05:00
Bob-the-Kuhn
de05b2b309 Merge pull request #7786 from Bob-the-Kuhn/2.0-compile-issue-fix
2.0.x Re-ARM compile issues - work around
2017-09-28 10:41:26 -05:00
Bob-the-Kuhn
62054af6eb 2.0 compile issues 2017-09-28 10:16:25 -05:00
Bob-the-Kuhn
17dddda024 Merge pull request #7746 from Bob-the-Kuhn/M355-&-LCD
Marlin 2.0.x - M355 fixes & LCD improvements
2017-09-27 19:39:04 -05:00
Christopher Pepper
bea3ec2724 M355 S0, S1 fixes & faster LCD, SD card
fix Travis error
2017-09-27 19:26:00 -05:00
Scott Lahteine
8c622a59cf Merge pull request #7774 from thinkyhead/bf2_lcd_leveling_status
[2.0.x] Show leveling status on character LCD
2017-09-27 13:10:25 -05:00
GMagician
c47e2abefb gitignorefix 2017-09-27 19:49:05 +02:00
Scott Lahteine
56c05a7015 Show leveling status on character LCD 2017-09-27 12:21:15 -05:00
Scott Lahteine
2ee4eef25c Merge pull request #7748 from GMagician/Addressing-#7730
[bugfix-2.0.x] Fix compiler error (issue #7730)
2017-09-27 12:06:55 -05:00
Scott Lahteine
ffed785656 Merge pull request #7768 from thinkyhead/bf2_HAL_STM32F1
[2.0.x] HAL for STM32F1
2017-09-27 11:52:34 -05:00
Scott Lahteine
88f9194168 Merge pull request #7771 from thinkyhead/bf2_user_menu_return
[2.0.x] User menu return-to-status option
2017-09-27 11:51:57 -05:00
Scott Lahteine
604b804125 Add confirmation step to Init EEPROM 2017-09-27 11:31:38 -05:00
Tannoo
c869dc9745 User script return-to-status option 2017-09-27 11:31:38 -05:00
victorpv
e9acb63290 STM32F1 HAL
Adding files for STM32F1 HAL based on libmaple/stm32duino core.
Current persistent_store uses cardreader changes to be sent in separate
commit, but could be changed to use i2c eeprom.
2017-09-27 11:20:10 -05:00
Scott Lahteine
baf0bd2b24 Merge pull request #7770 from thinkyhead/bf2_HAL_cleanups_etc
Some HAL formatting cleanup
2017-09-27 11:11:12 -05:00
Scott Lahteine
c2b1d51f16 HAL whitespace and style cleanup 2017-09-27 10:55:36 -05:00
Scott Lahteine
c272f2c84e Cleanup pins spacing 2017-09-27 10:55:36 -05:00
Scott Lahteine
dff2904c0f Marlin code whitespace cleanup 2017-09-27 10:55:36 -05:00
Scott Lahteine
9dd5390d7d frameworks whitespace cleanup 2017-09-27 10:41:27 -05:00
Scott Lahteine
599f2ad983 Define pin accessors more like <Arduino.h> 2017-09-27 10:41:27 -05:00
Scott Lahteine
358656acc3 Tweak HAL_adc_start_conversion 2017-09-27 10:41:27 -05:00
Scott Lahteine
0cb4d25431 Tweaks to Servo classes 2017-09-27 10:41:27 -05:00
Scott Lahteine
f582f1bf4e Merge pull request #7769 from thinkyhead/bf2_GT2560
Fixes for GT2560, ANET A8
2017-09-27 10:32:50 -05:00
Phr3d13
10c1b442ca Fixes for Anet10 and gt2560
Fixes for 2 "... not declared in this scope" compiler errors.
2017-09-27 07:34:02 -05:00
Phr3d13
5a3a53379f Update pins for GT2560_Rev_A_Plus
For PR #7738
2017-09-27 06:34:51 -05:00
Scott Lahteine
afe77bd138 Merge pull request #7763 from thinkyhead/bf2_fixes_from_bf1
[2.0.x] Fix G3D_PANEL encoder steps, babystep label #7762
2017-09-27 03:20:47 -05:00
Scott Lahteine
fdf1b8a7b8 Fix sanity check for LCD_FOR_MELZI
Comes from #7760
2017-09-27 03:04:19 -05:00
Scott Lahteine
b93a55e15f Fix ST7920_DELAY_2 potentially being unset
Comes from #7760
2017-09-27 03:04:01 -05:00
Scott Lahteine
ce1638e32f Add Babystep Z graphic overlay
See PR #7593
2017-09-27 01:25:05 -05:00
Scott Lahteine
49c693c85b Tweak to serial macros 2017-09-27 01:25:05 -05:00
Scott Lahteine
46709ed7e0 More featureful CR-10 configurations
See #7725
2017-09-27 01:25:05 -05:00
Scott Lahteine
2b112143fa Update Sanguinololu config version 2017-09-27 00:48:59 -05:00
Scott Lahteine
7cd5eb6d42 Update LEVEL_BED_CORNERS config option 2017-09-27 00:48:59 -05:00
Scott Lahteine
981a610f75 Disable BABYSTEP_XY, add to SDSORT comment 2017-09-27 00:48:59 -05:00
Scott Lahteine
4c5be9bb05 Fix a PARKING_EXTRUDER comment 2017-09-27 00:48:58 -05:00
Scott Lahteine
494b0eba2d Config spacing fix 2017-09-27 00:48:47 -05:00
Scott Lahteine
2281154025 Increase BABYSTEP_MULTIPLICATOR to 100 2017-09-27 00:48:46 -05:00
Scott Lahteine
92dbf5f148 Fix babystep edit label, allowing translation 2017-09-26 23:43:05 -05:00
Scott Lahteine
37eb6d1732 Babystepping code tweak 2017-09-26 23:43:05 -05:00
Scott Lahteine
7a29f802d0 Fix ENCODER_PULSES_PER_STEP for G3D_PANEL 2017-09-26 23:43:05 -05:00
Scott Lahteine
5972251b17 No need for unused LCD_PINS_Dn 2017-09-26 23:27:53 -05:00
Scott Lahteine
7239ab231c Fix ADVANCED_PAUSE_FEATURE in .travis.yml 2017-09-26 17:12:46 -05:00
GMagician
c508e9adec Fix compiler error
Added missing include file,
called 'leveling_is_active()' with no prototipe defined.
2017-09-25 23:18:26 +02:00
Scott Lahteine
c4e4a0688c Fix bug in SD Autostart
As pointed out by @marcio-ao in #7638
2017-09-24 17:53:39 -05:00
Scott Lahteine
88407727ec Merge pull request #7727 from thinkyhead/apply_7697_from_1.1.x
G33 changes from 1.1.x
2017-09-24 17:48:16 -05:00
Scott Lahteine
6d5fcac54a G33 changes from 1.1.x 2017-09-24 14:16:23 -05:00
Scott Lahteine
1ab679b1d2 Merge pull request #7723 from fiveangle/bf20-improve_avr_arch_detection
[bf20ng] Improve AVR arch detection
2017-09-24 00:48:59 -05:00
Dave Johnson
f58ba3a64e Improve AVR arch detection
Replace ARDUINO_ARCH_AVR with __AVR__ to better detect architecture for non-Arduino dev environments.  Resolves compile failure in PIO for 8-bit Teensduino targets

More info:
https://forum.pjrc.com/threads/33234-Using-Teensyduino-Selecting-Teensy-3-2-3-1-board-has-incorrect-platform-define
http://www.atmel.com/webdoc/avrlibcreferencemanual/using_tools_1using_avr_gcc_mach_opt.html
2017-09-23 21:36:40 -07:00
Scott Lahteine
8089f73549 Merge pull request #7721 from thinkyhead/bugfix_refactor_work
Apply LCD changes from 1.1.x
2017-09-23 22:10:37 -05:00
Scott Lahteine
71d63fcafb Apply LCD changes from 1.1.x
Changes from #7720
2017-09-23 21:50:44 -05:00
Scott Lahteine
6da97ebdd1 Merge pull request #7719 from thinkyhead/bugfix_refactor_work
[2.0.x] Group G-codes to fix command-line overflow
2017-09-23 19:18:33 -05:00
Scott Lahteine
1587962547 Combine G-code files into fewer units
Addressing #7707
2017-09-23 18:12:04 -05:00
Scott Lahteine
bfd1e75c04 Patch for caselight + lcd compile issues 2017-09-23 18:12:04 -05:00
Scott Lahteine
ff1f211eb4 Merge pull request #7695 from tcm0116/move_framework
Move LPC1768 framework out of Marlin source folder
2017-09-23 17:12:48 -05:00
Thomas Moore
ddbd4b73e0 Move LPC1768 framework out of Marlin source folder 2017-09-23 16:59:31 -05:00
Scott Lahteine
9a03f758cd Merge pull request #7715 from GMagician/bugfix-2.0.x
[PR] [Marlin 2.0] Fix compiler warning message
2017-09-23 16:55:28 -05:00
GMagician
00b1b33816 Fix compiler warning 2017-09-23 15:31:51 +02:00
Scott Lahteine
f37ed314e0 Friendly layout for Arduino IDE 2017-09-21 16:27:13 -05:00
Scott Lahteine
06a02dd200 Workaround for SCK/MOSI pins on VIKI 2017-09-21 16:27:12 -05:00
Scott Lahteine
2f14eaf6a3 .gitignore: Workaround for Deviot/platformio 2017-09-21 16:27:12 -05:00
Scott Lahteine
f9ef446fb5 Clean up after refactor 2017-09-21 16:27:12 -05:00
Scott Lahteine
64dfb46461 Move z_endstop_adj to Endstops 2017-09-21 16:27:11 -05:00
Scott Lahteine
2e20c53c9d Move endstop debug to Endstops 2017-09-21 16:27:11 -05:00
Scott Lahteine
a10451ceed Move Volumetric methods to Planner 2017-09-21 16:27:11 -05:00
Scott Lahteine
6f92ab7eed Move Controller Fan to feature 2017-09-21 16:27:11 -05:00
Scott Lahteine
07cf75883f Move T (tool change) to cpp 2017-09-21 16:27:10 -05:00
Scott Lahteine
927524af6b Move M999 to cpp 2017-09-21 16:27:10 -05:00
Scott Lahteine
1a37ebc76d Move M163-M165 MIXING_EXTRUDER to cpp 2017-09-21 16:27:10 -05:00
Scott Lahteine
8ca0b2fd68 Move M355 caselight to cpp 2017-09-21 16:27:09 -05:00
Scott Lahteine
59608086e6 Move M350_M351 to cpp 2017-09-21 16:27:09 -05:00
Scott Lahteine
6e0503eab2 Move M907-M910 to cpp 2017-09-21 16:27:09 -05:00
Scott Lahteine
2e89685154 Move TMC2130 g-codes to cpp 2017-09-21 16:27:09 -05:00
Scott Lahteine
19dde5be03 Move M900 to cpp 2017-09-21 16:27:08 -05:00
Scott Lahteine
1b0acbff72 Move M605 to cpp 2017-09-21 16:27:08 -05:00
Scott Lahteine
75cf17d816 Move M702 MK2_MULTIPLEXER to cpp 2017-09-21 16:27:08 -05:00
Scott Lahteine
7ba2ab4fb3 Move M540 to cpp 2017-09-21 16:27:07 -05:00
Scott Lahteine
a90c7dbf64 Move M500-M503 to cpp 2017-09-21 16:27:07 -05:00
Scott Lahteine
aab5489962 Move M428 to cpp 2017-09-21 16:27:07 -05:00
Scott Lahteine
1fe25271e4 Move M401_M402 to cpp 2017-09-21 16:27:07 -05:00
Scott Lahteine
0589884d26 Move M400 to cpp 2017-09-21 16:27:06 -05:00
Scott Lahteine
4a220a8b79 Move M380_M381 to cpp, solenoid feature 2017-09-21 16:27:06 -05:00
Scott Lahteine
9be8cb0ac9 Move M360-M364 to cpp 2017-09-21 16:27:06 -05:00
Scott Lahteine
828405cac8 Move M302 to cpp 2017-09-21 16:27:06 -05:00
Scott Lahteine
8584f7e390 Move M250 to cpp 2017-09-21 16:27:05 -05:00
Scott Lahteine
ebb9bd5419 Move M240 to cpp 2017-09-21 16:27:05 -05:00
Scott Lahteine
d4aaa0f1c8 Move M304 to cpp 2017-09-21 16:27:05 -05:00
Scott Lahteine
609c4eea32 Move M301 to cpp 2017-09-21 16:27:04 -05:00
Scott Lahteine
4f14849675 Move M300 to cpp 2017-09-21 16:27:04 -05:00
Scott Lahteine
6ed5252884 Move M280 to cpp 2017-09-21 16:27:04 -05:00
Scott Lahteine
d4d3d92f8a Move M260_M261 to cpp 2017-09-21 16:27:04 -05:00
Scott Lahteine
3e761696a0 Move M226 to cpp 2017-09-21 16:27:03 -05:00
Scott Lahteine
0e319104c2 Move M220 to cpp 2017-09-21 16:27:03 -05:00
Scott Lahteine
234de3547c Move M211 to cpp 2017-09-21 16:27:03 -05:00
Scott Lahteine
6c7bad8bc3 Move M666 to cpp 2017-09-21 16:27:03 -05:00
Scott Lahteine
f5877aa93e Move M665 to cpp 2017-09-21 16:27:02 -05:00
Scott Lahteine
33861d4e04 Move M206 to cpp 2017-09-21 16:27:02 -05:00
Scott Lahteine
7aca9fe2f7 Move M203-M205 to cpp 2017-09-21 16:27:02 -05:00
Scott Lahteine
b3822b9242 M202 is unused 2017-09-21 16:27:02 -05:00
Scott Lahteine
5e63efc1d9 Move M201 to cpp 2017-09-21 16:27:01 -05:00
Scott Lahteine
92c15f5578 Move M150 to cpp 2017-09-21 16:27:01 -05:00
Scott Lahteine
eef4a54778 Move M119-M121 to cpp 2017-09-21 16:27:01 -05:00
Scott Lahteine
379f16558e Move M118 to cpp 2017-09-21 16:27:00 -05:00
Scott Lahteine
811c32b85a Move M117 to cpp 2017-09-21 16:27:00 -05:00
Scott Lahteine
1d2061c935 Move M115 to cpp 2017-09-21 16:27:00 -05:00
Scott Lahteine
81b8fbf4d6 Move M114 to cpp 2017-09-21 16:27:00 -05:00
Scott Lahteine
5d2681a105 Move M100 to cpp 2017-09-21 16:26:59 -05:00
Scott Lahteine
beb346e49f Move M92 to cpp 2017-09-21 16:26:59 -05:00
Scott Lahteine
381b17e6a9 Move M18_M84, M85 to cpp 2017-09-21 16:26:59 -05:00
Scott Lahteine
a911215b0e Move M82_M83 to cpp 2017-09-21 16:26:59 -05:00
Scott Lahteine
4b9d1b9f26 Move M80-M81 to cpp 2017-09-21 16:26:58 -05:00
Scott Lahteine
0c7ba52451 Move M149 to cpp 2017-09-21 16:26:58 -05:00
Scott Lahteine
cbf40f7ee9 Move M145 to cpp 2017-09-21 16:26:58 -05:00
Scott Lahteine
b464887ea1 Make BARICUDA a feature 2017-09-21 16:26:57 -05:00
Scott Lahteine
14a5d2a273 Move M113 to cpp 2017-09-21 16:26:57 -05:00
Scott Lahteine
06f3c8029e Move M111 to cpp 2017-09-21 16:26:57 -05:00
Scott Lahteine
a831977dee Move M110 to cpp 2017-09-21 16:26:57 -05:00
Scott Lahteine
7479ff98b7 Move M140, M190 to cpp 2017-09-21 16:26:56 -05:00
Scott Lahteine
5b3e49babd Move M108, M112, M410 to cpp 2017-09-21 16:26:56 -05:00
Scott Lahteine
df0432c7c8 Move M155 to cpp, auto-report to Temperature 2017-09-21 16:26:56 -05:00
Scott Lahteine
df031ab100 Move M106_M107 to cpp 2017-09-21 16:26:56 -05:00
Scott Lahteine
99c4b9050a Move M105 to cpp 2017-09-21 16:26:55 -05:00
Scott Lahteine
a41130f854 Temp stat LEDs 2017-09-21 16:26:55 -05:00
Scott Lahteine
2c1eda9e00 Move M75-M78 to cpp 2017-09-21 16:26:55 -05:00
Scott Lahteine
fc52fc72ac Move M48 to cpp 2017-09-21 16:26:54 -05:00
Scott Lahteine
be8d913484 Move M43 to cpp 2017-09-21 16:26:54 -05:00
Scott Lahteine
10fab24e50 Move M42 to cpp 2017-09-21 16:26:54 -05:00
Scott Lahteine
69b664b6fe Move M31 to cpp 2017-09-21 16:26:54 -05:00
Scott Lahteine
a442c34a1a Move SD commands to cpp 2017-09-21 16:26:53 -05:00
Scott Lahteine
be0e4a4ad0 Consolidate pause, apply to M125, M600, M24 2017-09-21 16:26:53 -05:00
Scott Lahteine
adca4a9b79 Move M17 to cpp 2017-09-21 16:26:53 -05:00
Scott Lahteine
33e00b6cd6 Move M3-M5 to cpp 2017-09-21 16:26:53 -05:00
Scott Lahteine
04583d46af Move M0_M1 to cpp 2017-09-21 16:26:52 -05:00
Scott Lahteine
04376975ce Move G92 to cpp 2017-09-21 16:26:52 -05:00
Scott Lahteine
931aa79d85 Move G42 to cpp 2017-09-21 16:26:52 -05:00
Scott Lahteine
84ddae56a8 Move G38 to cpp 2017-09-21 16:26:51 -05:00
Scott Lahteine
b8adae0785 Move G31_G32 to cpp 2017-09-21 16:26:51 -05:00
Scott Lahteine
9db5d21837 Move G30 to cpp 2017-09-21 16:26:51 -05:00
Scott Lahteine
13136376ee Move G27 to cpp 2017-09-21 16:26:51 -05:00
Scott Lahteine
a1ee1628e5 Move G20_G21 to cpp 2017-09-21 16:26:50 -05:00
Scott Lahteine
9b4aa5ea8b Move G17-G19 to cpp 2017-09-21 16:26:50 -05:00
Scott Lahteine
94d9def81c Move G12 to cpp 2017-09-21 16:26:50 -05:00
Scott Lahteine
56f4a43535 Move G5 to cpp 2017-09-21 16:26:50 -05:00
Scott Lahteine
760f29a88e Move G4 to cpp 2017-09-21 16:26:49 -05:00
Scott Lahteine
4007cbfe9e Move G2_G3 to cpp 2017-09-21 16:26:49 -05:00
Scott Lahteine
27f7e3fe6f Hide problem pins in pin debug list 2017-09-21 16:26:49 -05:00
Scott Lahteine
9c21191f74 Rename SPI class to avoid conflict (good?) 2017-09-21 16:26:49 -05:00
Scott Lahteine
51f195e698 Move dwell to gcode 2017-09-21 16:26:48 -05:00
Scott Lahteine
4f1eadf41f FILAMENT_WIDTH_SENSOR feature 2017-09-21 16:26:48 -05:00
Scott Lahteine
d5fe0fb02b Consolidate PrintCounter 2017-09-21 16:26:48 -05:00
Scott Lahteine
551752eac7 Consolidate "bedlevel" code 2017-09-21 16:26:47 -05:00
Scott Lahteine
71aefc2e22 Move heater output to Temperature class 2017-09-21 16:26:47 -05:00
Scott Lahteine
63228fc453 Move volumetric flag to GCodeParser 2017-09-21 16:26:47 -05:00
Scott Lahteine
bf7af95db3 Move flow_percentage to Planner 2017-09-21 16:26:46 -05:00
Scott Lahteine
8dc2838d98 Move host keepalive to GcodeSuite 2017-09-21 16:26:46 -05:00
Scott Lahteine
8fbb833de9 Encapsulate RGB(W) LEDs 2017-09-21 16:26:46 -05:00
Scott Lahteine
a98e9874db FWRETRACT as a feature 2017-09-21 16:26:46 -05:00
Scott Lahteine
722786966a Add gcode.cpp, motion.*, queue.* - Apply to some G-codes. 2017-09-21 16:26:45 -05:00
Scott Lahteine
4231faf779 Initial split-up of G-code handlers by category 2017-09-21 16:26:45 -05:00
Scott Lahteine
e0a189a481 Consolidate Buzzer 2017-09-21 16:26:45 -05:00
Scott Lahteine
bca67a5b79 Main controller updates 2017-09-21 16:26:44 -05:00
Scott Lahteine
142d8aae56 Move debugging to serial.* 2017-09-21 16:26:44 -05:00
Scott Lahteine
a1e2b5da70 Fix LCD_PINS_Dn tests in pinsDebug_list.h 2017-09-21 16:26:44 -05:00
Scott Lahteine
038f82cc38 Fix L6470 init and options 2017-09-21 16:26:43 -05:00
Scott Lahteine
42e2dd9251 Build file updates 2017-09-21 16:26:43 -05:00
Scott Lahteine
614a86a380 SD file updates 2017-09-21 16:26:43 -05:00
Scott Lahteine
82fff87e16 Pins updates 2017-09-21 16:26:43 -05:00
Scott Lahteine
3d8a0ab4b2 Module updates 2017-09-21 16:26:42 -05:00
Scott Lahteine
0fcec02db5 LCD updates 2017-09-21 16:26:42 -05:00
Scott Lahteine
7dd0a46732 Language updates 2017-09-21 16:26:41 -05:00
Scott Lahteine
4a82e95c3e Feature file updates 2017-09-21 16:26:41 -05:00
Scott Lahteine
d7ee81202f Libs updates 2017-09-21 16:26:41 -05:00
Scott Lahteine
34101224c4 Inc updates 2017-09-21 16:26:41 -05:00
Scott Lahteine
f52a31a275 Core updates 2017-09-21 16:26:40 -05:00
Scott Lahteine
479652073b Config updates 2017-09-21 15:52:17 -05:00
Scott Lahteine
54326fb06a HAL updates 2017-09-21 15:52:17 -05:00
Scott Lahteine
65996e4235 Support file updates 2017-09-20 19:48:21 -05:00
Scott Lahteine
7e42c7563c Move build files into place 2017-09-12 14:51:06 -05:00
Scott Lahteine
b66d65f865 Move 'sd' files 2017-09-12 14:51:05 -05:00
Scott Lahteine
0b9a88d6ce Move 'pins' files 2017-09-12 14:51:05 -05:00
Scott Lahteine
2b3b7d5d7f Move 'thermistor' files 2017-09-12 14:51:05 -05:00
Scott Lahteine
0c9231fd04 Move 'module' files 2017-09-12 14:51:05 -05:00
Scott Lahteine
efa578d6b0 Move 'libs' files 2017-09-12 14:51:04 -05:00
Scott Lahteine
cc92e544a5 Move 'lcd' files 2017-09-12 14:51:04 -05:00
Scott Lahteine
5be07b5db2 Move 'inc' files 2017-09-07 07:42:55 -05:00
Scott Lahteine
9ea2ff950a Move 'gcode' files 2017-09-07 07:42:55 -05:00
Scott Lahteine
4e4d16c92e Move 'core' files 2017-09-07 07:42:55 -05:00
Scott Lahteine
fa5f9c2aec Move 'feature' files 2017-09-07 07:42:54 -05:00
Scott Lahteine
f536c4dccb Move configs 2017-09-06 06:28:30 -05:00
Scott Lahteine
48351fd6d5 Move root sources 2017-09-06 06:28:29 -05:00
Scott Lahteine
27cbb939b2 Clean up some HAL code 2017-08-31 18:36:53 -05:00
Christopher Pepper
b29b66feda Temporary fix for odd stepper behaviour with servos 2017-08-31 18:33:07 -05:00
Christopher Pepper
8afe13b1a2 Fix compile issue when watchdog was disabled 2017-08-31 18:33:07 -05:00
Christopher Pepper
b908e38d08 Add needed platform defined gaurds to compile with Arduino IDE
Also removed explicit platform HAL directory inclusion from platformio.ini to make sure these errors are caught by Travis in the future
2017-08-31 18:33:07 -05:00
Scott Lahteine
a037ddbf7b Other spacing tweaks 2017-08-31 18:33:07 -05:00
Scott Lahteine
2af62a5d8d Apply spacing, const to some HAL code 2017-08-31 18:33:07 -05:00
kfazz
fa9ff6be6e try to fix LIN_ADVANCE for 32bit 2017-08-31 18:33:07 -05:00
kfazz
18f97c4013 add HardwareSerial and SoftwareSerial for Re-ARM.
HardwareSerial has been tested on Uart0 (debug header) and Uart3 (i2c connector)
Software Serial has been tested to work bi-directionally at 9600 and 115200
using pins 6 and 63 on J5, and unidirectionally (write only) at 250000.
The code used to test was Teemuatlut's tmc2208 patch, and a few small changes to main used to echo recieved chars back to a host pc.
2017-08-31 18:33:07 -05:00
Bob-the-Kuhn
01fb45b4f8 hybrid PWM system
Uses PWM1 to directly control pins 4, 6 & 11 (servo 0, 1 & 3) and PWM1
generated interrupts to control other pins.

Interupt control of the servo pins had too much jitter so switched all
that we could to PWM1 direct control.  The PWM1 direct control pins have
less than 1 microsecond pulse width jitter while the interrupt
controlled ones can have 20+ microseconds of jitter.

Also added insurance to the servo code in the "disable servo after move"
section.
2017-08-31 18:33:07 -05:00
Tannoo
94dd39b3b7 LCD_UBL_memory_slot_corrections (#7516)
* LCD_UBL_memory_slot_corrections

Changed the memory slot edit function to work with the
`settings.calc_num_meshes()`

* Add a little more safety margin...

* More corrections

Error handling when the EEPROM is not available.
2017-08-31 18:33:07 -05:00
Roxy-3D
8587c4e1ec Minor corrections to 32-bit branch (#7514)
Mostly...  clean up some compile time warnings for the 20x4 LCD Display.
2017-08-31 18:32:09 -05:00
Bob-the-Kuhn
7342d5c07a ST7565 2017-08-31 18:31:43 -05:00
Bob-the-Kuhn
97444391e0 Servo & PWM support for LPC1768 (#7500) 2017-08-31 18:31:43 -05:00
Tannoo
859fa35287 Re-Arm bugfixes (#7495)
* UBL_correction

* RGB Map function
2017-08-31 18:31:43 -05:00
Scott Lahteine
622b80974c Add VSCode to .gitignore 2017-08-31 18:31:43 -05:00
Bob-the-Kuhn
d80877d570 Set pinMode with every digitalWrite (legacy compatibility) 2017-08-31 18:31:07 -05:00
Chris Pepper
9a950e3a5a Update the delay functions and change the default pinmap for character displays (#7434) 2017-08-31 18:31:07 -05:00
Scott Lahteine
105324b85b Match the license headers in other files 2017-08-31 18:31:07 -05:00
Dave Johnson
d5e5735679 Support travis new "trusty" build environment
move from legacy precise to trusty build image
fix PATH not including buildroot/bin
remove symolic link to ~/bin as trusty travis image doesn't include it in PATH anyway
2017-08-31 18:31:07 -05:00
Dave Johnson
8f5a576b08 pristine != precise (#7424) 2017-08-31 18:31:07 -05:00
Dave Johnson
419e575808 Force legacy "pristine" build dist for TravisCI
TravisCI "trusty" build dist isn't picking up build path causing travis checks to fail.  Reverting to legacy "pristine" dist while we investigate
2017-08-31 18:31:07 -05:00
Bob-the-Kuhn
69704b93f2 ultralcd.cpp fix compile error - switch to int16_t 2017-08-31 18:31:07 -05:00
Chris Pepper
61c0a10efe Revert "SPI API platform implementation stubs" (#7416)
This reverts commit 2dfa6ca72a2e8d43caf4932ca0d35792f0638917.

Revert "Base HAL SPI Changes"

This reverts commit 2afc521b8b6a81b2281a038f1b99a69f4a008e64.

Revert "Initial HAL SPI API"

This reverts commit 58f7ffe09ab5bc034b6510f5204f8d342138abaa.
2017-08-31 18:31:07 -05:00
Chris Pepper
a5cf3a190c bugfix-2.0.x critical fix (#7401)
* Fix mistake in gitignore file and add in missing core files.

The missing leading slash on "lib" meant all folders names lib in the directory tree are ignored, rather than just the top level PlatformIO lib folder

* Add LiquidCrystal Library and associated headers modified to compile.
2017-08-31 18:23:44 -05:00
Bob-the-Kuhn
76da81c1de minimize SD card reads when using SDCARD_SORT_ALPHA (Re-ARM board)
Because of the Re-ARM card's pinout there is only one SPI connected to
the RepRap Discount Full Graphic LCD display.  The LCD responds to ANY
SCK transitions no matter if it's enable is inactive.  The result is
garbage (usually bars) on the LCD display whenever there is SD card
activity.

This code minimizes this by only accessing the SD card when changing
directory levels if :
SDCARD_SORT_ALPHA is enabled
SDSORT_USES_RAM is true
SDSORT_CACHE_NAMES is true

The code changes result in file names being pulled from the ALPHA SORT
memory array rather than the SD card.

The code also gives the file count and file index functions their own
variables.  When they shared a common variable the index function
sometimes resulted in the file count being short by 1.

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

cardreader.cpp & pins_RAMPS_RE_ARM.h changes

Added another condition to cardreader.cpp to enable getting file names
only from RAM.

pins_RAMPS_RE_ARM.h :
Added comments about the SD card accesses and the LCD display
Combined all versions into this one.
2017-08-31 18:23:44 -05:00
Bob-the-Kuhn
84a11cfedc HAL compatible pinsDebug & misc
Re-ARM has been tested.  AVR has not been tested.

1) moved all cpu specific items to files in the low level HAL directory
for that CPU (pinDebug_Re-ARM.h & pinsDebug_AVR_8_bit.h

2) added pinsDebug.h to the top level directory

3) modified HAL_pinsDebug.h to select the correct support file for the
selected CPU

4) Patched sanitycheck to stop throwing false errors.  A long term
solution will be done

5) misc changes & bug fixes
arduino.cpp - included macros.h to fix a missing definition
pinmap_re-arm.h - removed a duplicated line.
pinmapping.h - changed from "ENABLED" to "defined" to fix a compile
error

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

split SanityCheck up, improve pinsDebug system

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

switch to latest pins_RAMPS_RE_ARM.h
2017-08-31 18:23:44 -05:00
Christopher Pepper
32e759c928 SPI API platform implementation stubs 2017-08-31 18:23:44 -05:00
Christopher Pepper
4183a249b6 Moved CMSIS and other LPC1768 dependencies
Fixes Arduino IDE builds for 8-bit AVR,
misc: Adafruit NeoPixel currently incompatible with Teensy 3.5-6, blacklisted
2017-08-31 18:23:44 -05:00
Christopher Pepper
b55295ad33 Post merge fix
Add macros.h to allow Enabled macro, also need to reference include files directly
2017-08-31 18:23:44 -05:00
Christopher Pepper
d2fb3215da PlatformIO Travis test
spi.h renamed to avoid conflicts with base libraries
2017-08-31 18:23:44 -05:00
Christopher Pepper
c66d1ac651 Debug Pins Support 2017-08-31 18:21:38 -05:00
Christopher Pepper
a31e32969f Base HAL SPI Changes 2017-08-31 18:21:38 -05:00
Christopher Pepper
bcd050f33b Initial HAL SPI API 2017-08-31 18:21:38 -05:00
Christopher Pepper
44b0c186a6 HAL for Re:ARM (LPC1768) architecture 2017-08-31 18:21:38 -05:00
teemuatlut
f3e562e46e HAL for 32-bit Teensy (3.5, 3.6) architecture 2017-08-31 18:15:07 -05:00
Christopher Pepper
cfef925559 HAL for DUE architecture 2017-08-31 18:15:07 -05:00
Christopher Pepper
4b16fa3272 Implement HAL and apply macros across code-base
Implement AVR Platform
2017-08-31 18:14:31 -05:00
Christopher Pepper
fb04dfcda8 Apply Travis update workaround while a permanent solution is found 2017-08-31 17:56:08 -05:00
Scott Lahteine
e4fcf460e7 Marlin bugfix-2.0.x Version/README 2017-08-31 17:56:08 -05: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
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
1284 changed files with 1186416 additions and 92347 deletions

293
.circleci/config.yml Normal file
View File

@@ -0,0 +1,293 @@
# 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"
restore_configs
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 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
#
# Disabled due to compile failure on E0_AUTO_FAN_PIN PB8
#
# 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}
#
# Disabled due to compile failure on https://github.com/stawel/SlowSoftI2CMaster
#
# - Requires https://github.com/stawel/SlowSoftI2CMaster
# restore_configs
# use_example_configs wt150
# build_marlin_pio ./ ${TEST_PLATFORM}
echo testing anet10 targets...
export TEST_PLATFORM="-e anet10"
restore_configs
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}
echo testing rambo targets...
export TEST_PLATFORM="-e rambo"
restore_configs
echo use_example_configs AlephObjects/TAZ4
use_example_configs AlephObjects/TAZ4
build_marlin_pio ./ ${TEST_PLATFORM}
echo testing teensy20 targets...
export TEST_PLATFORM="-e teensy20"
#
# Disabled due to Z_MIN_PIN related compile failure
#
# restore_configs
# 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}
echo testing sanguino_atmega644p targets...
export TEST_PLATFORM="-e sanguino_atmega644p"
restore_configs
echo use_example_configs tvrrug/Round2
use_example_configs tvrrug/Round2
build_marlin_pio ./ ${TEST_PLATFORM}
echo testing LPC1768 targets...
export TEST_PLATFORM="-e LPC1768"
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 Mks/Sbase
use_example_configs Mks/Sbase
build_marlin_pio ./ ${TEST_PLATFORM}
#
# Disabled due to numerous compile failures
#
# echo testing STM32F1 targets...
# export TEST_PLATFORM="-e STM32F1"
# restore_configs
# use_example_configs STM32F10
# build_marlin_pio ./ ${TEST_PLATFORM}
# restore_configs
# use_example_configs stm32f103ret6
# build_marlin_pio ./ ${TEST_PLATFORM}
#
# Disabled due do pin related compile failures
#
# echo testing DUE targets...
# export TEST_PLATFORM="-e DUE"
# restore_configs
# use_example_configs UltiMachine/Archim2
# build_marlin_pio ./ ${TEST_PLATFORM}
#
# 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" }}

1
.gitattributes vendored
View File

@@ -17,4 +17,3 @@
*.png binary
*.jpg binary
*.fon binary

46
.github/code_of_conduct.md vendored Normal file
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
.github/contributing.md vendored Normal file
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
.github/issue_template.md vendored Normal file
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
.github/pull_request_template.md vendored Normal file
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. -->

49
.gitignore vendored
View File

@@ -29,7 +29,6 @@ _Version.h
applet/
*.DS_Store
#
# Misc
#
@@ -118,20 +117,56 @@ tags
# PlatformIO files/dirs
.pio*
lib/readme.txt
.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
Marlin/Release/
Marlin/Debug/
Marlin/__vm/
Marlin/.vs/
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
Marlin/CMakeLists.txt
src/CMakeLists.txt
CMakeListsPrivate.txt
#CLion

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="LPC1768"
- TEST_PLATFORM="DUE"
- TEST_PLATFORM="STM32F1"
- TEST_PLATFORM="teensy35"
before_install:
#
# Fetch the tag information for the current branch
@@ -11,415 +29,24 @@ 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
#
- export PATH=${TRAVIS_BUILD_DIR}/buildroot/bin/:${PATH}
- chmod +x ${TRAVIS_BUILD_DIR}/buildroot/share/tests/*
- export PATH=${TRAVIS_BUILD_DIR}/buildroot/share/tests/:${PATH}
install:
#
# Install arduino 1.6.10
- wget http://downloads-02.arduino.cc/arduino-1.6.10-linux64.tar.xz
- tar xf arduino-1.6.10-linux64.tar.xz
- sudo mv arduino-1.6.10 /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
- git clone https://github.com/olikraus/U8glib_Arduino.git
- sudo mv U8glib_Arduino /usr/local/share/arduino/libraries/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
#
# Install: TMC2130 Stepper Motor Controller library
- git clone https://github.com/teemuatlut/TMC2130Stepper.git
- sudo mv TMC2130Stepper /usr/local/share/arduino/libraries/TMC2130Stepper
#
#- 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 5 extruders on AZTEEG_X3_PRO (can use any board with >=5 extruders defined)
# Include a test for LIN_ADVANCE here also
#
- opt_set MOTHERBOARD BOARD_AZTEEG_X3_PRO
- opt_set EXTRUDERS 5
- opt_set TEMP_SENSOR_1 1
- opt_set TEMP_SENSOR_2 5
- opt_set TEMP_SENSOR_3 20
- opt_set TEMP_SENSOR_4 999
- opt_set TEMP_SENSOR_BED 1
- opt_enable_adv LIN_ADVANCE
- build_marlin
#
# Test PIDTEMPBED
#
- restore_configs
- opt_set TEMP_SENSOR_BED 1
- opt_enable PIDTEMPBED
- build_marlin
#
# Test MAX6675
#
- restore_configs
- opt_set TEMP_SENSOR_0 -2
- 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_LINEAR, Z_MIN_PROBE_REPEATABILITY_TEST, and DEBUG_LEVELING_FEATURE
#
- opt_enable AUTO_BED_LEVELING_LINEAR Z_MIN_PROBE_REPEATABILITY_TEST DEBUG_LEVELING_FEATURE
- opt_set ABL_GRID_POINTS_X 16
- opt_set ABL_GRID_POINTS_Y 16
- build_marlin
#
# Test a simple build of AUTO_BED_LEVELING_UBL
#
- restore_configs
- opt_enable AUTO_BED_LEVELING_UBL UBL_G26_MESH_EDITING ENABLE_LEVELING_FADE_HEIGHT FIX_MOUNTED_PROBE EEPROM_SETTINGS G3D_PANEL
- opt_enable_adv CUSTOM_USER_MENUS
- build_marlin
#
# Test a Sled Z Probe
# ...with AUTO_BED_LEVELING_LINEAR, DEBUG_LEVELING_FEATURE, EEPROM_SETTINGS, and EEPROM_CHITCHAT
#
- restore_configs
- opt_enable Z_PROBE_SLED AUTO_BED_LEVELING_LINEAR DEBUG_LEVELING_FEATURE EEPROM_SETTINGS EEPROM_CHITCHAT
- build_marlin
#
# Test a Servo Probe
# ...with AUTO_BED_LEVELING_3POINT, DEBUG_LEVELING_FEATURE, EEPROM_SETTINGS, EEPROM_CHITCHAT, EXTENDED_CAPABILITIES_REPORT, and AUTO_REPORT_TEMPERATURES
#
- restore_configs
- opt_enable NUM_SERVOS Z_ENDSTOP_SERVO_NR Z_SERVO_ANGLES DEACTIVATE_SERVOS_AFTER_MOVE
- opt_enable AUTO_BED_LEVELING_3POINT DEBUG_LEVELING_FEATURE EEPROM_SETTINGS EEPROM_CHITCHAT
- opt_enable_adv EXTENDED_CAPABILITIES_REPORT AUTO_REPORT_TEMPERATURES AUTOTEMP
- build_marlin
#
# Test MESH_BED_LEVELING feature, with LCD
#
- restore_configs
- opt_enable MESH_BED_LEVELING MESH_G28_REST_ORIGIN LCD_BED_LEVELING ULTIMAKERCONTROLLER
- build_marlin
#
# Test PROBE_MANUALLY feature, with LCD support
#
- restore_configs
- opt_enable PROBE_MANUALLY AUTO_BED_LEVELING_BILINEAR LCD_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 M100_FREE_MEMORY_DUMPER M100_FREE_MEMORY_CORRUPTOR INCH_MODE_SUPPORT TEMPERATURE_UNITS_SUPPORT
- build_marlin
#
# Mixing Extruder with 5 steppers
#
- restore_configs
- opt_set MOTHERBOARD BOARD_AZTEEG_X3_PRO
- opt_enable MIXING_EXTRUDER
- opt_set MIXING_STEPPERS 5
- 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, PARK_HEAD_ON_PAUSE, and LCD_INFO_MENU
#
- restore_configs
- opt_enable ULTIMAKERCONTROLLER
- opt_enable_adv FILAMENT_CHANGE_FEATURE PARK_HEAD_ON_PAUSE 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, EXPERIMENTAL_I2CBUS, and I2C_SLAVE_ADDRESS
#
- restore_configs
- opt_enable_adv BEZIER_CURVE_SUPPORT EXPERIMENTAL_I2CBUS
- opt_set_adv I2C_SLAVE_ADDRESS 63
- build_marlin
#
# Enable COREXY
#
- restore_configs
- opt_enable COREXY
- build_marlin
#
# Enable COREYX (swapped)
#
- restore_configs
- opt_enable COREYX
- 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
#
# Add SDCARD_SORT_ALPHA, test G3D_PANEL again
#
- opt_enable_adv SDCARD_SORT_ALPHA
- opt_set_adv SDSORT_GCODE true
- opt_set_adv SDSORT_USES_RAM true
- opt_set_adv SDSORT_USES_STACK true
- opt_set_adv SDSORT_CACHE_NAMES true
- 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 PINS_DEBUGGING
- 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) + ABL bilinear + PROBE_MANUALLY
- restore_configs
- use_example_configs delta/generic
- opt_enable REPRAP_DISCOUNT_SMART_CONTROLLER DELTA_CALIBRATION_MENU AUTO_BED_LEVELING_BILINEAR PROBE_MANUALLY
- build_marlin
#
# Delta Config (generic) + UBL + ALLEN_KEY + OLED_PANEL_TINYBOY2 + EEPROM_SETTINGS
#
- use_example_configs delta/generic
- opt_disable DISABLE_MIN_ENDSTOPS
- opt_enable AUTO_BED_LEVELING_UBL Z_PROBE_ALLEN_KEY EEPROM_SETTINGS EEPROM_CHITCHAT OLED_PANEL_TINYBOY2
- build_marlin
#
# Delta Config (FLSUN AC because it's complex)
#
- use_example_configs delta/FLSUN/auto_calibrate
- 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_BILINEAR FIX_MOUNTED_PROBE USE_ZMIN_PLUG EEPROM_SETTINGS EEPROM_CHITCHAT ULTIMAKERCONTROLLER
- build_marlin
#
# TMC2130 Config
#
- restore_configs
- opt_enable_adv HAVE_TMC2130 X_IS_TMC2130 Y_IS_TMC2130 Z_IS_TMC2130
- build_marlin
- opt_enable_adv AUTOMATIC_CURRENT_CONTROL STEALTHCHOP HYBRID_THRESHOLD SENSORLESS_HOMING
- 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
#
- start_tests ${TRAVIS_BUILD_DIR} ${TEST_PLATFORM}

View File

@@ -1,400 +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
* Conditionals that need to be set before Configuration_adv.h or pins.h
*/
#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
#endif
#if ENABLED(OLED_PANEL_TINYBOY2)
#define U8GLIB_SSD1306
#define ULTIPANEL
#define NEWPANEL
#define REVERSE_ENCODER_DIRECTION
#define REVERSE_MENU_DIRECTION
#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 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
#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
// Set encoder detents for well-known controllers
#if ENABLED(miniVIKI) || ENABLED(VIKI2) || ENABLED(ELB_FULL_GRAPHIC_CONTROLLER) || ENABLED(OLED_PANEL_TINYBOY2) \
|| ENABLED(BQ_LCD_SMART_CONTROLLER) || ENABLED(LCD_I2C_PANELOLU2) || ENABLED(REPRAP_DISCOUNT_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
#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.
// Symbol characters
#define LCD_STR_FILAM_DIA "\xf8"
#define LCD_STR_FILAM_MUL "\xa4"
#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
#define HAS_DEBUG_MENU ENABLED(LCD_PROGRESS_BAR_TEST)
/**
* 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) || ENABLED(MIXING_EXTRUDER) // One hotend, one thermistor, no XY offset
#define HOTENDS 1
#undef TEMP_SENSOR_1_AS_REDUNDANT
#undef HOTEND_OFFSET_X
#undef HOTEND_OFFSET_Y
#else // Two hotends
#define HOTENDS EXTRUDERS
#if ENABLED(SWITCHING_NOZZLE) && !defined(HOTEND_OFFSET_Z)
#define HOTEND_OFFSET_Z { 0 }
#endif
#endif
#if ENABLED(SWITCHING_EXTRUDER) || ENABLED(MIXING_EXTRUDER) // Unified E axis
#if ENABLED(MIXING_EXTRUDER)
#define E_STEPPERS MIXING_STEPPERS
#else
#define E_STEPPERS 1 // One E stepper
#endif
#define E_MANUAL 1
#define TOOL_E_INDEX 0
#else
#define E_STEPPERS EXTRUDERS
#define E_MANUAL EXTRUDERS
#define TOOL_E_INDEX current_block->active_extruder
#endif
/**
* DISTINCT_E_FACTORS affects how some E factors are accessed
*/
#if ENABLED(DISTINCT_E_FACTORS) && E_STEPPERS > 1
#define XYZE_N (XYZ + E_STEPPERS)
#define E_AXIS_N (E_AXIS + extruder)
#else
#undef DISTINCT_E_FACTORS
#define XYZE_N XYZE
#define E_AXIS_N E_AXIS
#endif
/**
* The BLTouch Probe emulates a servo probe
* and uses "special" angles for its state.
*/
#if ENABLED(BLTOUCH)
#ifndef Z_ENDSTOP_SERVO_NR
#define Z_ENDSTOP_SERVO_NR 0
#endif
#ifndef NUM_SERVOS
#define NUM_SERVOS (Z_ENDSTOP_SERVO_NR + 1)
#endif
#undef DEACTIVATE_SERVOS_AFTER_MOVE
#undef SERVO_DELAY
#define SERVO_DELAY 50
#ifndef BLTOUCH_DELAY
#define BLTOUCH_DELAY 375
#endif
#undef Z_SERVO_ANGLES
#define Z_SERVO_ANGLES { BLTOUCH_DEPLOY, BLTOUCH_STOW }
#define BLTOUCH_DEPLOY 10
#define BLTOUCH_STOW 90
#define BLTOUCH_SELFTEST 120
#define BLTOUCH_RESET 160
#define _TEST_BLTOUCH(P) (READ(P##_PIN) != P##_ENDSTOP_INVERTING)
// Always disable probe pin inverting for BLTouch
#undef Z_MIN_PROBE_ENDSTOP_INVERTING
#define Z_MIN_PROBE_ENDSTOP_INVERTING false
#if ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN)
#undef Z_MIN_ENDSTOP_INVERTING
#define Z_MIN_ENDSTOP_INVERTING false
#define TEST_BLTOUCH() _TEST_BLTOUCH(Z_MIN)
#else
#define TEST_BLTOUCH() _TEST_BLTOUCH(Z_MIN_PROBE)
#endif
#endif
/**
* Set a flag for a servo probe
*/
#define HAS_Z_SERVO_ENDSTOP (defined(Z_ENDSTOP_SERVO_NR) && Z_ENDSTOP_SERVO_NR >= 0)
/**
* UBL has its own manual probing, so this just causes trouble.
*/
#if ENABLED(AUTO_BED_LEVELING_UBL)
#undef PROBE_MANUALLY
#endif
/**
* Set a flag for any enabled probe
*/
#define PROBE_SELECTED (ENABLED(PROBE_MANUALLY) || ENABLED(FIX_MOUNTED_PROBE) || ENABLED(Z_PROBE_ALLEN_KEY) || HAS_Z_SERVO_ENDSTOP || ENABLED(Z_PROBE_SLED) || ENABLED(SOLENOID_PROBE))
/**
* Clear probe pin settings when no probe is selected
*/
#if !PROBE_SELECTED || ENABLED(PROBE_MANUALLY)
#undef Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
#undef Z_MIN_PROBE_ENDSTOP
#endif
#define HAS_SOFTWARE_ENDSTOPS (ENABLED(MIN_SOFTWARE_ENDSTOPS) || ENABLED(MAX_SOFTWARE_ENDSTOPS))
#define HAS_RESUME_CONTINUE (ENABLED(NEWPANEL) || ENABLED(EMERGENCY_PARSER))
#define HAS_COLOR_LEDS (ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED))
#endif // CONDITIONALS_LCD_H

View File

@@ -1,850 +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
/**
* Axis lengths and center
*/
#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))
#define X_CENTER float((X_MIN_POS + X_MAX_POS) * 0.5)
#define Y_CENTER float((Y_MIN_POS + Y_MAX_POS) * 0.5)
#define Z_CENTER float((Z_MIN_POS + Z_MAX_POS) * 0.5)
/**
* CoreXY, CoreXZ, and CoreYZ - and their reverse
*/
#define CORE_IS_XY (ENABLED(COREXY) || ENABLED(COREYX))
#define CORE_IS_XZ (ENABLED(COREXZ) || ENABLED(COREZX))
#define CORE_IS_YZ (ENABLED(COREYZ) || ENABLED(COREZY))
#define IS_CORE (CORE_IS_XY || CORE_IS_XZ || CORE_IS_YZ)
#if IS_CORE
#if CORE_IS_XY
#define CORE_AXIS_1 A_AXIS
#define CORE_AXIS_2 B_AXIS
#define NORMAL_AXIS Z_AXIS
#elif CORE_IS_XZ
#define CORE_AXIS_1 A_AXIS
#define NORMAL_AXIS Y_AXIS
#define CORE_AXIS_2 C_AXIS
#elif CORE_IS_YZ
#define NORMAL_AXIS X_AXIS
#define CORE_AXIS_1 B_AXIS
#define CORE_AXIS_2 C_AXIS
#endif
#if (ENABLED(COREYX) || ENABLED(COREZX) || ENABLED(COREZY))
#define CORESIGN(n) (-(n))
#else
#define CORESIGN(n) (n)
#endif
#endif
#define IS_SCARA (ENABLED(MORGAN_SCARA) || ENABLED(MAKERARM_SCARA))
#define IS_KINEMATIC (ENABLED(DELTA) || IS_SCARA)
#define IS_CARTESIAN !IS_KINEMATIC
/**
* SCARA cannot use SLOWDOWN and requires QUICKHOME
*/
#if IS_SCARA
#undef SLOWDOWN
#define QUICK_HOME
#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_MIN_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_MIN_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
/**
* If DELTA_HEIGHT isn't defined use the old setting
*/
#if ENABLED(DELTA) && !defined(DELTA_HEIGHT)
#define DELTA_HEIGHT Z_HOME_POS
#endif
/**
* Auto Bed Leveling and Z Probe Repeatability Test
*/
#define HOMING_Z_WITH_PROBE (HAS_BED_PROBE && Z_HOME_DIR < 0 && ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN))
/**
* Z Sled Probe requires Z_SAFE_HOMING
*/
#if ENABLED(Z_PROBE_SLED)
#define Z_SAFE_HOMING
#endif
/**
* DELTA should ignore Z_SAFE_HOMING and SLOWDOWN
*/
#if ENABLED(DELTA)
#undef Z_SAFE_HOMING
#undef SLOWDOWN
#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
#define X_TILT_FULCRUM Z_SAFE_HOMING_X_POINT
#define Y_TILT_FULCRUM Z_SAFE_HOMING_Y_POINT
#else
#define X_TILT_FULCRUM X_HOME_POS
#define Y_TILT_FULCRUM Y_HOME_POS
#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_N] / (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
#define MAX6675_TMIN -270
#define MAX6675_TMAX 1800
#elif TEMP_SENSOR_0 == -2
#define HEATER_0_USES_MAX6675
#define MAX6675_TMIN 0
#define MAX6675_TMAX 1024
#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_4 <= -2
#error "MAX6675 / MAX31855 Thermocouples not supported for TEMP_SENSOR_4"
#elif TEMP_SENSOR_4 == -1
#define HEATER_4_USES_AD595
#elif TEMP_SENSOR_4 == 0
#undef HEATER_4_MINTEMP
#undef HEATER_4_MAXTEMP
#elif TEMP_SENSOR_4 > 0
#define THERMISTORHEATER_4 TEMP_SENSOR_4
#define HEATER_4_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_NOZZLE))
#define HOTEND_OFFSET_Z { 0 }
#endif
#endif
/**
* ARRAY_BY_EXTRUDERS based on EXTRUDERS
*/
#define ARRAY_BY_EXTRUDERS(...) ARRAY_N(EXTRUDERS, __VA_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(...) ARRAY_N(HOTENDS, __VA_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 == _XMIN_
#define USE_XMIN_PLUG
#elif Z2_USE_ENDSTOP == _XMAX_
#define USE_XMAX_PLUG
#elif Z2_USE_ENDSTOP == _YMIN_
#define USE_YMIN_PLUG
#elif Z2_USE_ENDSTOP == _YMAX_
#define USE_YMAX_PLUG
#elif Z2_USE_ENDSTOP == _ZMIN_
#define USE_ZMIN_PLUG
#elif Z2_USE_ENDSTOP == _ZMAX_
#define USE_ZMAX_PLUG
#endif
#if Z_HOME_DIR > 0
#if Z2_USE_ENDSTOP == _XMIN_
#define Z2_MAX_ENDSTOP_INVERTING X_MIN_ENDSTOP_INVERTING
#define Z2_MAX_PIN X_MIN_PIN
#elif Z2_USE_ENDSTOP == _XMAX_
#define Z2_MAX_ENDSTOP_INVERTING X_MAX_ENDSTOP_INVERTING
#define Z2_MAX_PIN X_MAX_PIN
#elif Z2_USE_ENDSTOP == _YMIN_
#define Z2_MAX_ENDSTOP_INVERTING Y_MIN_ENDSTOP_INVERTING
#define Z2_MAX_PIN Y_MIN_PIN
#elif Z2_USE_ENDSTOP == _YMAX_
#define Z2_MAX_ENDSTOP_INVERTING Y_MAX_ENDSTOP_INVERTING
#define Z2_MAX_PIN Y_MAX_PIN
#elif Z2_USE_ENDSTOP == _ZMIN_
#define Z2_MAX_ENDSTOP_INVERTING Z_MIN_ENDSTOP_INVERTING
#define Z2_MAX_PIN Z_MIN_PIN
#elif Z2_USE_ENDSTOP == _ZMAX_
#define Z2_MAX_ENDSTOP_INVERTING Z_MAX_ENDSTOP_INVERTING
#define Z2_MAX_PIN Z_MAX_PIN
#else
#define Z2_MAX_ENDSTOP_INVERTING false
#endif
#else
#if Z2_USE_ENDSTOP == _XMIN_
#define Z2_MIN_ENDSTOP_INVERTING X_MIN_ENDSTOP_INVERTING
#define Z2_MIN_PIN X_MIN_PIN
#elif Z2_USE_ENDSTOP == _XMAX_
#define Z2_MIN_ENDSTOP_INVERTING X_MAX_ENDSTOP_INVERTING
#define Z2_MIN_PIN X_MAX_PIN
#elif Z2_USE_ENDSTOP == _YMIN_
#define Z2_MIN_ENDSTOP_INVERTING Y_MIN_ENDSTOP_INVERTING
#define Z2_MIN_PIN Y_MIN_PIN
#elif Z2_USE_ENDSTOP == _YMAX_
#define Z2_MIN_ENDSTOP_INVERTING Y_MAX_ENDSTOP_INVERTING
#define Z2_MIN_PIN Y_MAX_PIN
#elif Z2_USE_ENDSTOP == _ZMIN_
#define Z2_MIN_ENDSTOP_INVERTING Z_MIN_ENDSTOP_INVERTING
#define Z2_MIN_PIN Z_MIN_PIN
#elif Z2_USE_ENDSTOP == _ZMAX_
#define Z2_MIN_ENDSTOP_INVERTING Z_MAX_ENDSTOP_INVERTING
#define Z2_MIN_PIN Z_MAX_PIN
#else
#define Z2_MIN_ENDSTOP_INVERTING false
#endif
#endif
#endif
// Is an endstop plug used for the Z2 endstop or the bed probe?
#define IS_Z2_OR_PROBE(A,M) ( \
(ENABLED(Z_DUAL_ENDSTOPS) && Z2_USE_ENDSTOP == _##A##M##_) \
|| (ENABLED(Z_MIN_PROBE_ENDSTOP) && Z_MIN_PROBE_PIN == A##_##M##_PIN ) )
/**
* Set ENDSTOPPULLUPS for active 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
#endif
/**
* Shorthand for pin tests, used wherever needed
*/
// Steppers
#define HAS_X_ENABLE (PIN_EXISTS(X_ENABLE))
#define HAS_X_DIR (PIN_EXISTS(X_DIR))
#define HAS_X_STEP (PIN_EXISTS(X_STEP))
#define HAS_X_MICROSTEPS (PIN_EXISTS(X_MS1))
#define HAS_X2_ENABLE (PIN_EXISTS(X2_ENABLE))
#define HAS_X2_DIR (PIN_EXISTS(X2_DIR))
#define HAS_X2_STEP (PIN_EXISTS(X2_STEP))
#define HAS_Y_MICROSTEPS (PIN_EXISTS(Y_MS1))
#define HAS_Y_ENABLE (PIN_EXISTS(Y_ENABLE))
#define HAS_Y_DIR (PIN_EXISTS(Y_DIR))
#define HAS_Y_STEP (PIN_EXISTS(Y_STEP))
#define HAS_Z_MICROSTEPS (PIN_EXISTS(Z_MS1))
#define HAS_Y2_ENABLE (PIN_EXISTS(Y2_ENABLE))
#define HAS_Y2_DIR (PIN_EXISTS(Y2_DIR))
#define HAS_Y2_STEP (PIN_EXISTS(Y2_STEP))
#define HAS_Z_ENABLE (PIN_EXISTS(Z_ENABLE))
#define HAS_Z_DIR (PIN_EXISTS(Z_DIR))
#define HAS_Z_STEP (PIN_EXISTS(Z_STEP))
#define HAS_Z2_ENABLE (PIN_EXISTS(Z2_ENABLE))
#define HAS_Z2_DIR (PIN_EXISTS(Z2_DIR))
#define HAS_Z2_STEP (PIN_EXISTS(Z2_STEP))
// Extruder steppers and solenoids
#define HAS_E0_ENABLE (PIN_EXISTS(E0_ENABLE))
#define HAS_E0_DIR (PIN_EXISTS(E0_DIR))
#define HAS_E0_STEP (PIN_EXISTS(E0_STEP))
#define HAS_E0_MICROSTEPS (PIN_EXISTS(E0_MS1))
#define HAS_SOLENOID_0 (PIN_EXISTS(SOL0))
#define HAS_E1_ENABLE (PIN_EXISTS(E1_ENABLE))
#define HAS_E1_DIR (PIN_EXISTS(E1_DIR))
#define HAS_E1_STEP (PIN_EXISTS(E1_STEP))
#define HAS_E1_MICROSTEPS (PIN_EXISTS(E1_MS1))
#define HAS_SOLENOID_1 (PIN_EXISTS(SOL1))
#define HAS_E2_ENABLE (PIN_EXISTS(E2_ENABLE))
#define HAS_E2_DIR (PIN_EXISTS(E2_DIR))
#define HAS_E2_STEP (PIN_EXISTS(E2_STEP))
#define HAS_E2_MICROSTEPS (PIN_EXISTS(E2_MS1))
#define HAS_SOLENOID_2 (PIN_EXISTS(SOL2))
#define HAS_E3_ENABLE (PIN_EXISTS(E3_ENABLE))
#define HAS_E3_DIR (PIN_EXISTS(E3_DIR))
#define HAS_E3_STEP (PIN_EXISTS(E3_STEP))
#define HAS_E3_MICROSTEPS (PIN_EXISTS(E3_MS1))
#define HAS_SOLENOID_3 (PIN_EXISTS(SOL3))
#define HAS_E4_ENABLE (PIN_EXISTS(E4_ENABLE))
#define HAS_E4_DIR (PIN_EXISTS(E4_DIR))
#define HAS_E4_STEP (PIN_EXISTS(E4_STEP))
#define HAS_E4_MICROSTEPS (PIN_EXISTS(E4_MS1))
#define HAS_SOLENOID_4 (PIN_EXISTS(SOL4))
// Endstops and bed probe
#define HAS_X_MIN (PIN_EXISTS(X_MIN) && !IS_Z2_OR_PROBE(X,MIN))
#define HAS_X_MAX (PIN_EXISTS(X_MAX) && !IS_Z2_OR_PROBE(X,MAX))
#define HAS_Y_MIN (PIN_EXISTS(Y_MIN) && !IS_Z2_OR_PROBE(Y,MIN))
#define HAS_Y_MAX (PIN_EXISTS(Y_MAX) && !IS_Z2_OR_PROBE(Y,MAX))
#define HAS_Z_MIN (PIN_EXISTS(Z_MIN) && !IS_Z2_OR_PROBE(Z,MIN))
#define HAS_Z_MAX (PIN_EXISTS(Z_MAX) && !IS_Z2_OR_PROBE(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))
// Thermistors
#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_4 (PIN_EXISTS(TEMP_4) && TEMP_SENSOR_4 != 0 && TEMP_SENSOR_4 > -2)
#define HAS_TEMP_HOTEND (HAS_TEMP_0 || ENABLED(HEATER_0_USES_MAX6675))
#define HAS_TEMP_BED (PIN_EXISTS(TEMP_BED) && TEMP_SENSOR_BED != 0 && TEMP_SENSOR_BED > -2)
// Heaters
#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_4 (PIN_EXISTS(HEATER_4))
#define HAS_HEATER_BED (PIN_EXISTS(HEATER_BED))
// Thermal protection
#define HAS_THERMALLY_PROTECTED_BED (ENABLED(THERMAL_PROTECTION_BED) && HAS_TEMP_BED && HAS_HEATER_BED)
#define WATCH_HOTENDS (ENABLED(THERMAL_PROTECTION_HOTENDS) && WATCH_TEMP_PERIOD > 0)
#define WATCH_THE_BED (HAS_THERMALLY_PROTECTED_BED && WATCH_BED_TEMP_PERIOD > 0)
// Auto fans
#define HAS_AUTO_FAN_0 (PIN_EXISTS(E0_AUTO_FAN))
#define HAS_AUTO_FAN_1 (HOTENDS > 1 && PIN_EXISTS(E1_AUTO_FAN))
#define HAS_AUTO_FAN_2 (HOTENDS > 2 && PIN_EXISTS(E2_AUTO_FAN))
#define HAS_AUTO_FAN_3 (HOTENDS > 3 && PIN_EXISTS(E3_AUTO_FAN))
#define HAS_AUTO_FAN_4 (HOTENDS > 4 && PIN_EXISTS(E4_AUTO_FAN))
#define HAS_AUTO_FAN (HAS_AUTO_FAN_0 || HAS_AUTO_FAN_1 || HAS_AUTO_FAN_2 || HAS_AUTO_FAN_3)
#define AUTO_1_IS_0 (E1_AUTO_FAN_PIN == E0_AUTO_FAN_PIN)
#define AUTO_2_IS_0 (E2_AUTO_FAN_PIN == E0_AUTO_FAN_PIN)
#define AUTO_2_IS_1 (E2_AUTO_FAN_PIN == E1_AUTO_FAN_PIN)
#define AUTO_3_IS_0 (E3_AUTO_FAN_PIN == E0_AUTO_FAN_PIN)
#define AUTO_3_IS_1 (E3_AUTO_FAN_PIN == E1_AUTO_FAN_PIN)
#define AUTO_3_IS_2 (E3_AUTO_FAN_PIN == E2_AUTO_FAN_PIN)
#define AUTO_4_IS_0 (E4_AUTO_FAN_PIN == E0_AUTO_FAN_PIN)
#define AUTO_4_IS_1 (E4_AUTO_FAN_PIN == E1_AUTO_FAN_PIN)
#define AUTO_4_IS_2 (E4_AUTO_FAN_PIN == E2_AUTO_FAN_PIN)
#define AUTO_4_IS_3 (E4_AUTO_FAN_PIN == E3_AUTO_FAN_PIN)
// Other fans
#define HAS_FAN0 (PIN_EXISTS(FAN))
#define HAS_FAN1 (PIN_EXISTS(FAN1) && CONTROLLER_FAN_PIN != FAN1_PIN && E0_AUTO_FAN_PIN != FAN1_PIN && E1_AUTO_FAN_PIN != FAN1_PIN && E2_AUTO_FAN_PIN != FAN1_PIN && E3_AUTO_FAN_PIN != FAN1_PIN)
#define HAS_FAN2 (PIN_EXISTS(FAN2) && CONTROLLER_FAN_PIN != FAN2_PIN && E0_AUTO_FAN_PIN != FAN2_PIN && E1_AUTO_FAN_PIN != FAN2_PIN && E2_AUTO_FAN_PIN != FAN2_PIN && E3_AUTO_FAN_PIN != FAN2_PIN)
#define HAS_CONTROLLER_FAN (PIN_EXISTS(CONTROLLER_FAN))
// Servos
#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))
// Sensors
#define HAS_FILAMENT_WIDTH_SENSOR (PIN_EXISTS(FILWIDTH))
#define HAS_FIL_RUNOUT (PIN_EXISTS(FIL_RUNOUT))
// User Interface
#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_BUZZER (PIN_EXISTS(BEEPER) || ENABLED(LCD_USE_I2C_BUZZER))
#define HAS_CASE_LIGHT (PIN_EXISTS(CASE_LIGHT) && ENABLED(CASE_LIGHT_ENABLE))
// Digital control
#define HAS_MICROSTEPS (HAS_X_MICROSTEPS || HAS_Y_MICROSTEPS || HAS_Z_MICROSTEPS || HAS_E0_MICROSTEPS || HAS_E1_MICROSTEPS || HAS_E2_MICROSTEPS || HAS_E3_MICROSTEPS || HAS_E4_MICROSTEPS)
#define HAS_STEPPER_RESET (PIN_EXISTS(STEPPER_RESET))
#define HAS_DIGIPOTSS (PIN_EXISTS(DIGIPOTSS))
#define HAS_MOTOR_CURRENT_PWM (PIN_EXISTS(MOTOR_CURRENT_PWM_XY) || PIN_EXISTS(MOTOR_CURRENT_PWM_Z) || PIN_EXISTS(MOTOR_CURRENT_PWM_E))
/**
* This setting is also 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)
#if HOTENDS > 4
#define WRITE_HEATER_4(v) WRITE(HEATER_4_PIN, v)
#endif // HOTENDS > 4
#endif // HOTENDS > 3
#endif // HOTENDS > 2
#endif // HOTENDS > 1
#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)
/**
* Heater & Fan Pausing
*/
#if FAN_COUNT == 0
#undef PROBING_FANS_OFF
#endif
#define QUIET_PROBING (HAS_BED_PROBE && (ENABLED(PROBING_HEATERS_OFF) || ENABLED(PROBING_FANS_OFF)))
/**
* Servos and probes
*/
#if HAS_SERVOS
#ifndef Z_ENDSTOP_SERVO_NR
#define Z_ENDSTOP_SERVO_NR -1
#endif
#endif
#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 && DISABLED(PROBE_MANUALLY))
#if ENABLED(Z_PROBE_ALLEN_KEY)
#define PROBE_IS_TRIGGERED_WHEN_STOWED_TEST
#endif
/**
* Bed Probe dependencies
*/
#if HAS_BED_PROBE
#if ENABLED(ENDSTOPPULLUPS) && HAS_Z_MIN_PROBE_PIN
#define ENDSTOPPULLUP_ZMIN_PROBE
#endif
#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_CLEARANCE_BETWEEN_PROBES > Z_CLEARANCE_DEPLOY_PROBE
#define _Z_CLEARANCE_DEPLOY_PROBE Z_CLEARANCE_BETWEEN_PROBES
#else
#define _Z_CLEARANCE_DEPLOY_PROBE Z_CLEARANCE_DEPLOY_PROBE
#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/angle trimmers
*/
#if ENABLED(DELTA)
#ifndef DELTA_CALIBRATION_RADIUS
#define DELTA_CALIBRATION_RADIUS DELTA_PRINTABLE_RADIUS - 10
#endif
#ifndef DELTA_ENDSTOP_ADJ
#define DELTA_ENDSTOP_ADJ { 0, 0, 0 }
#endif
#ifndef DELTA_TOWER_ANGLE_TRIM
#define DELTA_TOWER_ANGLE_TRIM {0, 0, 0}
#endif
#ifndef DELTA_RADIUS_TRIM_TOWER
#define DELTA_RADIUS_TRIM_TOWER {0, 0, 0}
#endif
#ifndef DELTA_DIAGONAL_ROD_TRIM_TOWER
#define DELTA_DIAGONAL_ROD_TRIM_TOWER {0, 0, 0}
#endif
#endif
/**
* Set granular options based on the specific type of leveling
*/
#define UBL_DELTA (ENABLED(AUTO_BED_LEVELING_UBL) && (ENABLED(DELTA) || ENABLED(UBL_GRANULAR_SEGMENTATION_FOR_CARTESIAN)))
#define ABL_PLANAR (ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_3POINT))
#define ABL_GRID (ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR))
#define HAS_ABL (ABL_PLANAR || ABL_GRID || ENABLED(AUTO_BED_LEVELING_UBL))
#define HAS_LEVELING (HAS_ABL || ENABLED(MESH_BED_LEVELING))
#define PLANNER_LEVELING (ABL_PLANAR || ABL_GRID || ENABLED(MESH_BED_LEVELING) || UBL_DELTA)
#define HAS_PROBING_PROCEDURE (HAS_ABL || ENABLED(Z_MIN_PROBE_REPEATABILITY_TEST))
#if HAS_PROBING_PROCEDURE
#define PROBE_BED_WIDTH abs(RIGHT_PROBE_BED_POSITION - (LEFT_PROBE_BED_POSITION))
#define PROBE_BED_HEIGHT abs(BACK_PROBE_BED_POSITION - (FRONT_PROBE_BED_POSITION))
#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
#else
#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
#endif
/**
* Z_HOMING_HEIGHT / Z_CLEARANCE_BETWEEN_PROBES
*/
#ifndef Z_HOMING_HEIGHT
#ifndef Z_CLEARANCE_BETWEEN_PROBES
#define Z_HOMING_HEIGHT 0
#else
#define Z_HOMING_HEIGHT Z_CLEARANCE_BETWEEN_PROBES
#endif
#endif
#ifndef Z_CLEARANCE_BETWEEN_PROBES
#define Z_CLEARANCE_BETWEEN_PROBES Z_HOMING_HEIGHT
#endif
#if Z_CLEARANCE_BETWEEN_PROBES > Z_HOMING_HEIGHT
#define MANUAL_PROBE_HEIGHT Z_CLEARANCE_BETWEEN_PROBES
#else
#define MANUAL_PROBE_HEIGHT Z_HOMING_HEIGHT
#endif
#if ENABLED(DELTA)
// These will be further constrained in code, but UBL_PROBE_PT values
// cannot be compile-time verified within the radius.
#define MIN_PROBE_X (-DELTA_PRINTABLE_RADIUS)
#define MAX_PROBE_X ( DELTA_PRINTABLE_RADIUS)
#define MIN_PROBE_Y (-DELTA_PRINTABLE_RADIUS)
#define MAX_PROBE_Y ( DELTA_PRINTABLE_RADIUS)
#elif IS_SCARA
#define SCARA_PRINTABLE_RADIUS (SCARA_LINKAGE_1 + SCARA_LINKAGE_2)
#define MIN_PROBE_X (-SCARA_PRINTABLE_RADIUS)
#define MAX_PROBE_X ( SCARA_PRINTABLE_RADIUS)
#define MIN_PROBE_Y (-SCARA_PRINTABLE_RADIUS)
#define MAX_PROBE_Y ( SCARA_PRINTABLE_RADIUS)
#else
// 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))
#endif
// Stepper pulse duration, in cycles
#define STEP_PULSE_CYCLES ((MINIMUM_STEPPER_PULSE) * CYCLES_PER_MICROSECOND)
#if ENABLED(SDCARD_SORT_ALPHA)
#define HAS_FOLDER_SORTING (FOLDER_SORTING || ENABLED(SDSORT_GCODE))
#endif
// Updated G92 behavior shifts the workspace
#define HAS_POSITION_SHIFT DISABLED(NO_WORKSPACE_OFFSETS)
// The home offset also shifts the coordinate space
#define HAS_HOME_OFFSET (DISABLED(NO_WORKSPACE_OFFSETS) || ENABLED(DELTA))
// Either offset yields extra calculations on all moves
#define HAS_WORKSPACE_OFFSET (HAS_POSITION_SHIFT || HAS_HOME_OFFSET)
// M206 doesn't apply to DELTA
#define HAS_M206_COMMAND (HAS_HOME_OFFSET && DISABLED(DELTA))
// LCD timeout to status screen default is 15s
#ifndef LCD_TIMEOUT_TO_STATUS
#define LCD_TIMEOUT_TO_STATUS 15000
#endif
/**
* DELTA_SEGMENT_MIN_LENGTH and DELTA_PROBEABLE_RADIUS for UBL_DELTA
*/
#if UBL_DELTA
#ifndef DELTA_SEGMENT_MIN_LENGTH
#if IS_SCARA
#define DELTA_SEGMENT_MIN_LENGTH 0.25 // SCARA minimum segment size is 0.25mm
#elif ENABLED(DELTA)
#define DELTA_SEGMENT_MIN_LENGTH 0.10 // mm (still subject to DELTA_SEGMENTS_PER_SECOND)
#else // CARTESIAN
#define DELTA_SEGMENT_MIN_LENGTH 1.00 // mm (similar to G2/G3 arc segmentation)
#endif
#endif
#ifndef DELTA_PROBEABLE_RADIUS
#define DELTA_PROBEABLE_RADIUS DELTA_PRINTABLE_RADIUS
#endif
#endif
// Shorthand
#define GRID_MAX_POINTS ((GRID_MAX_POINTS_X) * (GRID_MAX_POINTS_Y))
// Add commands that need sub-codes to this list
#define USE_GCODE_SUBCODES ENABLED(G38_PROBE_TARGET)
#endif // CONDITIONALS_POST_H

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,843 +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/>.
*
*/
/**
* Marlin Firmware -- G26 - Mesh Validation Tool
*/
#include "MarlinConfig.h"
#if ENABLED(AUTO_BED_LEVELING_UBL) && ENABLED(UBL_G26_MESH_VALIDATION)
#include "ubl.h"
#include "Marlin.h"
#include "planner.h"
#include "stepper.h"
#include "temperature.h"
#include "ultralcd.h"
#include "gcode.h"
#define EXTRUSION_MULTIPLIER 1.0
#define RETRACTION_MULTIPLIER 1.0
#define NOZZLE 0.4
#define FILAMENT 1.75
#define LAYER_HEIGHT 0.2
#define PRIME_LENGTH 10.0
#define BED_TEMP 60.0
#define HOTEND_TEMP 205.0
#define OOZE_AMOUNT 0.3
#define SIZE_OF_INTERSECTION_CIRCLES 5
#define SIZE_OF_CROSSHAIRS 3
#if SIZE_OF_CROSSHAIRS >= SIZE_OF_INTERSECTION_CIRCLES
#error "SIZE_OF_CROSSHAIRS must be less than SIZE_OF_INTERSECTION_CIRCLES."
#endif
/**
* G26 Mesh Validation Tool
*
* G26 is a Mesh Validation Tool intended to provide support for the Marlin Unified Bed Leveling System.
* In order to fully utilize and benefit from the Marlin Unified Bed Leveling System an accurate Mesh must
* be defined. G29 is designed to allow the user to quickly validate the correctness of her Mesh. It will
* first heat the bed and nozzle. It will then print lines and circles along the Mesh Cell boundaries and
* the intersections of those lines (respectively).
*
* This action allows the user to immediately see where the Mesh is properly defined and where it needs to
* be edited. The command will generate the Mesh lines closest to the nozzle's starting position. Alternatively
* the user can specify the X and Y position of interest with command parameters. This allows the user to
* focus on a particular area of the Mesh where attention is needed.
*
* B # Bed Set the Bed Temperature. If not specified, a default of 60 C. will be assumed.
*
* C Current When searching for Mesh Intersection points to draw, use the current nozzle location
* as the base for any distance comparison.
*
* D Disable Disable the Unified Bed Leveling System. In the normal case the user is invoking this
* command to see how well a Mesh as been adjusted to match a print surface. In order to do
* this the Unified Bed Leveling System is turned on by the G26 command. The D parameter
* alters the command's normal behaviour and disables the Unified Bed Leveling System even if
* it is on.
*
* H # Hotend Set the Nozzle Temperature. If not specified, a default of 205 C. will be assumed.
*
* F # Filament Used to specify the diameter of the filament being used. If not specified
* 1.75mm filament is assumed. If you are not getting acceptable results by using the
* 'correct' numbers, you can scale this number up or down a little bit to change the amount
* of filament that is being extruded during the printing of the various lines on the bed.
*
* K Keep-On Keep the heaters turned on at the end of the command.
*
* L # Layer Layer height. (Height of nozzle above bed) If not specified .20mm will be used.
*
* O # Ooooze How much your nozzle will Ooooze filament while getting in position to print. This
* is over kill, but using this parameter will let you get the very first 'circle' perfect
* so you have a trophy to peel off of the bed and hang up to show how perfectly you have your
* Mesh calibrated. If not specified, a filament length of .3mm is assumed.
*
* P # Prime Prime the nozzle with specified length of filament. If this parameter is not
* given, no prime action will take place. If the parameter specifies an amount, that much
* will be purged before continuing. If no amount is specified the command will start
* purging filament until the user provides an LCD Click and then it will continue with
* printing the Mesh. You can carefully remove the spent filament with a needle nose
* pliers while holding the LCD Click wheel in a depressed state.
*
* Q # Multiplier Retraction Multiplier. Normally not needed. Retraction defaults to 1.0mm and
* un-retraction is at 1.2mm These numbers will be scaled by the specified amount
*
* R # Repeat Prints the number of patterns given as a parameter, starting at the current location.
* If a parameter isn't given, every point will be printed unless G26 is interrupted.
* This works the same way that the UBL G29 P4 R parameter works.
*
* S # Nozzle Used to control the size of nozzle diameter. If not specified, a .4mm nozzle is assumed.
*
* U # Random Randomize the order that the circles are drawn on the bed. The search for the closest
* undrawn cicle is still done. But the distance to the location for each circle has a
* random number of the size specified added to it. Specifying S50 will give an interesting
* deviation from the normal behaviour on a 10 x 10 Mesh.
*
* X # X Coord. Specify the starting location of the drawing activity.
*
* Y # Y Coord. Specify the starting location of the drawing activity.
*/
// External references
extern float feedrate_mm_s; // must set before calling prepare_move_to_destination
extern Planner planner;
#if ENABLED(ULTRA_LCD)
extern char lcd_status_message[];
#endif
extern float destination[XYZE];
void set_destination_to_current();
void set_current_to_destination();
void prepare_move_to_destination();
void lcd_setstatusPGM(const char* const message, const int8_t level);
void sync_plan_position_e();
void chirp_at_user();
// Private functions
static uint16_t circle_flags[16], horizontal_mesh_line_flags[16], vertical_mesh_line_flags[16];
float g26_e_axis_feedrate = 0.020,
random_deviation = 0.0;
static bool g26_retracted = false; // Track the retracted state of the nozzle so mismatched
// retracts/recovers won't result in a bad state.
float valid_trig_angle(float);
float unified_bed_leveling::g26_extrusion_multiplier,
unified_bed_leveling::g26_retraction_multiplier,
unified_bed_leveling::g26_nozzle,
unified_bed_leveling::g26_filament_diameter,
unified_bed_leveling::g26_layer_height,
unified_bed_leveling::g26_prime_length,
unified_bed_leveling::g26_x_pos,
unified_bed_leveling::g26_y_pos,
unified_bed_leveling::g26_ooze_amount;
int16_t unified_bed_leveling::g26_bed_temp,
unified_bed_leveling::g26_hotend_temp;
int8_t unified_bed_leveling::g26_prime_flag;
bool unified_bed_leveling::g26_continue_with_closest,
unified_bed_leveling::g26_keep_heaters_on;
int16_t unified_bed_leveling::g26_repeats;
void unified_bed_leveling::G26_line_to_destination(const float &feed_rate) {
const float save_feedrate = feedrate_mm_s;
feedrate_mm_s = feed_rate; // use specified feed rate
prepare_move_to_destination(); // will ultimately call ubl.line_to_destination_cartesian or ubl.prepare_linear_move_to for UBL_DELTA
feedrate_mm_s = save_feedrate; // restore global feed rate
}
/**
* Detect ubl_lcd_clicked, debounce it, and return true for cancel
*/
bool user_canceled() {
if (!ubl_lcd_clicked()) return false;
safe_delay(10); // Wait for click to settle
#if ENABLED(ULTRA_LCD)
lcd_setstatusPGM(PSTR("Mesh Validation Stopped."), 99);
lcd_quick_feedback();
#endif
while (!ubl_lcd_clicked()) idle(); // Wait for button release
// If the button is suddenly pressed again,
// ask the user to resolve the issue
lcd_setstatusPGM(PSTR("Release button"), 99); // will never appear...
while (ubl_lcd_clicked()) idle(); // unless this loop happens
lcd_reset_status();
return true;
}
/**
* G26: Mesh Validation Pattern generation.
*
* Used to interactively edit UBL's Mesh by placing the
* nozzle in a problem area and doing a G29 P4 R command.
*/
void unified_bed_leveling::G26() {
SERIAL_ECHOLNPGM("G26 command started. Waiting for heater(s).");
float tmp, start_angle, end_angle;
int i, xi, yi;
mesh_index_pair location;
// Don't allow Mesh Validation without homing first,
// or if the parameter parsing did not go OK, abort
if (axis_unhomed_error() || parse_G26_parameters()) return;
if (current_position[Z_AXIS] < Z_CLEARANCE_BETWEEN_PROBES) {
do_blocking_move_to_z(Z_CLEARANCE_BETWEEN_PROBES);
stepper.synchronize();
set_current_to_destination();
}
if (turn_on_heaters()) goto LEAVE;
current_position[E_AXIS] = 0.0;
sync_plan_position_e();
if (g26_prime_flag && prime_nozzle()) goto LEAVE;
/**
* Bed is preheated
*
* Nozzle is at temperature
*
* Filament is primed!
*
* It's "Show Time" !!!
*/
ZERO(circle_flags);
ZERO(horizontal_mesh_line_flags);
ZERO(vertical_mesh_line_flags);
// Move nozzle to the specified height for the first layer
set_destination_to_current();
destination[Z_AXIS] = g26_layer_height;
move_to(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], 0.0);
move_to(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], g26_ooze_amount);
has_control_of_lcd_panel = true;
//debug_current_and_destination(PSTR("Starting G26 Mesh Validation Pattern."));
/**
* Declare and generate a sin() & cos() table to be used during the circle drawing. This will lighten
* the CPU load and make the arc drawing faster and more smooth
*/
float sin_table[360 / 30 + 1], cos_table[360 / 30 + 1];
for (i = 0; i <= 360 / 30; i++) {
cos_table[i] = SIZE_OF_INTERSECTION_CIRCLES * cos(RADIANS(valid_trig_angle(i * 30.0)));
sin_table[i] = SIZE_OF_INTERSECTION_CIRCLES * sin(RADIANS(valid_trig_angle(i * 30.0)));
}
do {
location = g26_continue_with_closest
? find_closest_circle_to_print(current_position[X_AXIS], current_position[Y_AXIS])
: find_closest_circle_to_print(g26_x_pos, g26_y_pos); // Find the closest Mesh Intersection to where we are now.
if (location.x_index >= 0 && location.y_index >= 0) {
const float circle_x = mesh_index_to_xpos(location.x_index),
circle_y = mesh_index_to_ypos(location.y_index);
// If this mesh location is outside the printable_radius, skip it.
if (!position_is_reachable_raw_xy(circle_x, circle_y)) continue;
xi = location.x_index; // Just to shrink the next few lines and make them easier to understand
yi = location.y_index;
if (g26_debug_flag) {
SERIAL_ECHOPAIR(" Doing circle at: (xi=", xi);
SERIAL_ECHOPAIR(", yi=", yi);
SERIAL_CHAR(')');
SERIAL_EOL;
}
start_angle = 0.0; // assume it is going to be a full circle
end_angle = 360.0;
if (xi == 0) { // Check for bottom edge
start_angle = -90.0;
end_angle = 90.0;
if (yi == 0) // it is an edge, check for the two left corners
start_angle = 0.0;
else if (yi == GRID_MAX_POINTS_Y - 1)
end_angle = 0.0;
}
else if (xi == GRID_MAX_POINTS_X - 1) { // Check for top edge
start_angle = 90.0;
end_angle = 270.0;
if (yi == 0) // it is an edge, check for the two right corners
end_angle = 180.0;
else if (yi == GRID_MAX_POINTS_Y - 1)
start_angle = 180.0;
}
else if (yi == 0) {
start_angle = 0.0; // only do the top side of the cirlce
end_angle = 180.0;
}
else if (yi == GRID_MAX_POINTS_Y - 1) {
start_angle = 180.0; // only do the bottom side of the cirlce
end_angle = 360.0;
}
for (tmp = start_angle; tmp < end_angle - 0.1; tmp += 30.0) {
if (user_canceled()) goto LEAVE; // Check if the user wants to stop the Mesh Validation
int tmp_div_30 = tmp / 30.0;
if (tmp_div_30 < 0) tmp_div_30 += 360 / 30;
if (tmp_div_30 > 11) tmp_div_30 -= 360 / 30;
float x = circle_x + cos_table[tmp_div_30], // for speed, these are now a lookup table entry
y = circle_y + sin_table[tmp_div_30],
xe = circle_x + cos_table[tmp_div_30 + 1],
ye = circle_y + sin_table[tmp_div_30 + 1];
#if IS_KINEMATIC
// Check to make sure this segment is entirely on the bed, skip if not.
if (!position_is_reachable_raw_xy(x, y) || !position_is_reachable_raw_xy(xe, ye)) continue;
#else // not, we need to skip
x = constrain(x, X_MIN_POS + 1, X_MAX_POS - 1); // This keeps us from bumping the endstops
y = constrain(y, Y_MIN_POS + 1, Y_MAX_POS - 1);
xe = constrain(xe, X_MIN_POS + 1, X_MAX_POS - 1);
ye = constrain(ye, Y_MIN_POS + 1, Y_MAX_POS - 1);
#endif
//if (g26_debug_flag) {
// char ccc, *cptr, seg_msg[50], seg_num[10];
// strcpy(seg_msg, " segment: ");
// strcpy(seg_num, " \n");
// cptr = (char*) "01234567890ABCDEF????????";
// ccc = cptr[tmp_div_30];
// seg_num[1] = ccc;
// strcat(seg_msg, seg_num);
// debug_current_and_destination(seg_msg);
//}
print_line_from_here_to_there(LOGICAL_X_POSITION(x), LOGICAL_Y_POSITION(y), g26_layer_height, LOGICAL_X_POSITION(xe), LOGICAL_Y_POSITION(ye), g26_layer_height);
}
if (look_for_lines_to_connect())
goto LEAVE;
}
} while (--g26_repeats && location.x_index >= 0 && location.y_index >= 0);
LEAVE:
lcd_setstatusPGM(PSTR("Leaving G26"), -1);
retract_filament(destination);
destination[Z_AXIS] = Z_CLEARANCE_BETWEEN_PROBES;
//debug_current_and_destination(PSTR("ready to do Z-Raise."));
move_to(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], 0); // Raise the nozzle
//debug_current_and_destination(PSTR("done doing Z-Raise."));
destination[X_AXIS] = g26_x_pos; // Move back to the starting position
destination[Y_AXIS] = g26_y_pos;
//destination[Z_AXIS] = Z_CLEARANCE_BETWEEN_PROBES; // Keep the nozzle where it is
move_to(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], 0); // Move back to the starting position
//debug_current_and_destination(PSTR("done doing X/Y move."));
has_control_of_lcd_panel = false; // Give back control of the LCD Panel!
if (!g26_keep_heaters_on) {
#if HAS_TEMP_BED
thermalManager.setTargetBed(0);
#endif
thermalManager.setTargetHotend(0, 0);
}
}
float valid_trig_angle(float d) {
while (d > 360.0) d -= 360.0;
while (d < 0.0) d += 360.0;
return d;
}
mesh_index_pair unified_bed_leveling::find_closest_circle_to_print(const float &X, const float &Y) {
float closest = 99999.99;
mesh_index_pair return_val;
return_val.x_index = return_val.y_index = -1;
for (uint8_t i = 0; i < GRID_MAX_POINTS_X; i++) {
for (uint8_t j = 0; j < GRID_MAX_POINTS_Y; j++) {
if (!is_bit_set(circle_flags, i, j)) {
const float mx = mesh_index_to_xpos(i), // We found a circle that needs to be printed
my = mesh_index_to_ypos(j);
// Get the distance to this intersection
float f = HYPOT(X - mx, Y - my);
// It is possible that we are being called with the values
// to let us find the closest circle to the start position.
// But if this is not the case, add a small weighting to the
// distance calculation to help it choose a better place to continue.
f += HYPOT(g26_x_pos - mx, g26_y_pos - my) / 15.0;
// Add in the specified amount of Random Noise to our search
if (random_deviation > 1.0)
f += random(0.0, random_deviation);
if (f < closest) {
closest = f; // We found a closer location that is still
return_val.x_index = i; // un-printed --- save the data for it
return_val.y_index = j;
return_val.distance = closest;
}
}
}
}
bit_set(circle_flags, return_val.x_index, return_val.y_index); // Mark this location as done.
return return_val;
}
bool unified_bed_leveling::look_for_lines_to_connect() {
float sx, sy, ex, ey;
for (uint8_t i = 0; i < GRID_MAX_POINTS_X; i++) {
for (uint8_t j = 0; j < GRID_MAX_POINTS_Y; j++) {
if (user_canceled()) return true; // Check if the user wants to stop the Mesh Validation
if (i < GRID_MAX_POINTS_X) { // We can't connect to anything to the right than GRID_MAX_POINTS_X.
// This is already a half circle because we are at the edge of the bed.
if (is_bit_set(circle_flags, i, j) && is_bit_set(circle_flags, i + 1, j)) { // check if we can do a line to the left
if (!is_bit_set(horizontal_mesh_line_flags, i, j)) {
//
// We found two circles that need a horizontal line to connect them
// Print it!
//
sx = mesh_index_to_xpos( i ) + (SIZE_OF_INTERSECTION_CIRCLES - (SIZE_OF_CROSSHAIRS)); // right edge
ex = mesh_index_to_xpos(i + 1) - (SIZE_OF_INTERSECTION_CIRCLES - (SIZE_OF_CROSSHAIRS)); // left edge
sx = constrain(sx, X_MIN_POS + 1, X_MAX_POS - 1);
sy = ey = constrain(mesh_index_to_ypos(j), Y_MIN_POS + 1, Y_MAX_POS - 1);
ex = constrain(ex, X_MIN_POS + 1, X_MAX_POS - 1);
if (position_is_reachable_raw_xy(sx, sy) && position_is_reachable_raw_xy(ex, ey)) {
if (g26_debug_flag) {
SERIAL_ECHOPAIR(" Connecting with horizontal line (sx=", sx);
SERIAL_ECHOPAIR(", sy=", sy);
SERIAL_ECHOPAIR(") -> (ex=", ex);
SERIAL_ECHOPAIR(", ey=", ey);
SERIAL_CHAR(')');
SERIAL_EOL;
//debug_current_and_destination(PSTR("Connecting horizontal line."));
}
print_line_from_here_to_there(LOGICAL_X_POSITION(sx), LOGICAL_Y_POSITION(sy), g26_layer_height, LOGICAL_X_POSITION(ex), LOGICAL_Y_POSITION(ey), g26_layer_height);
}
bit_set(horizontal_mesh_line_flags, i, j); // Mark it as done so we don't do it again, even if we skipped it
}
}
if (j < GRID_MAX_POINTS_Y) { // We can't connect to anything further back than GRID_MAX_POINTS_Y.
// This is already a half circle because we are at the edge of the bed.
if (is_bit_set(circle_flags, i, j) && is_bit_set(circle_flags, i, j + 1)) { // check if we can do a line straight down
if (!is_bit_set( vertical_mesh_line_flags, i, j)) {
//
// We found two circles that need a vertical line to connect them
// Print it!
//
sy = mesh_index_to_ypos( j ) + (SIZE_OF_INTERSECTION_CIRCLES - (SIZE_OF_CROSSHAIRS)); // top edge
ey = mesh_index_to_ypos(j + 1) - (SIZE_OF_INTERSECTION_CIRCLES - (SIZE_OF_CROSSHAIRS)); // bottom edge
sx = ex = constrain(mesh_index_to_xpos(i), X_MIN_POS + 1, X_MAX_POS - 1);
sy = constrain(sy, Y_MIN_POS + 1, Y_MAX_POS - 1);
ey = constrain(ey, Y_MIN_POS + 1, Y_MAX_POS - 1);
if (position_is_reachable_raw_xy(sx, sy) && position_is_reachable_raw_xy(ex, ey)) {
if (g26_debug_flag) {
SERIAL_ECHOPAIR(" Connecting with vertical line (sx=", sx);
SERIAL_ECHOPAIR(", sy=", sy);
SERIAL_ECHOPAIR(") -> (ex=", ex);
SERIAL_ECHOPAIR(", ey=", ey);
SERIAL_CHAR(')');
SERIAL_EOL;
debug_current_and_destination(PSTR("Connecting vertical line."));
}
print_line_from_here_to_there(LOGICAL_X_POSITION(sx), LOGICAL_Y_POSITION(sy), g26_layer_height, LOGICAL_X_POSITION(ex), LOGICAL_Y_POSITION(ey), g26_layer_height);
}
bit_set(vertical_mesh_line_flags, i, j); // Mark it as done so we don't do it again, even if skipped
}
}
}
}
}
}
return false;
}
void unified_bed_leveling::move_to(const float &x, const float &y, const float &z, const float &e_delta) {
float feed_value;
static float last_z = -999.99;
bool has_xy_component = (x != current_position[X_AXIS] || y != current_position[Y_AXIS]); // Check if X or Y is involved in the movement.
if (z != last_z) {
last_z = z;
feed_value = planner.max_feedrate_mm_s[Z_AXIS]/(3.0); // Base the feed rate off of the configured Z_AXIS feed rate
destination[X_AXIS] = current_position[X_AXIS];
destination[Y_AXIS] = current_position[Y_AXIS];
destination[Z_AXIS] = z; // We know the last_z==z or we wouldn't be in this block of code.
destination[E_AXIS] = current_position[E_AXIS];
G26_line_to_destination(feed_value);
stepper.synchronize();
set_destination_to_current();
}
// Check if X or Y is involved in the movement.
// Yes: a 'normal' movement. No: a retract() or recover()
feed_value = has_xy_component ? PLANNER_XY_FEEDRATE() / 10.0 : planner.max_feedrate_mm_s[E_AXIS] / 1.5;
if (g26_debug_flag) SERIAL_ECHOLNPAIR("in move_to() feed_value for XY:", feed_value);
destination[X_AXIS] = x;
destination[Y_AXIS] = y;
destination[E_AXIS] += e_delta;
G26_line_to_destination(feed_value);
stepper.synchronize();
set_destination_to_current();
}
void unified_bed_leveling::retract_filament(float where[XYZE]) {
if (!g26_retracted) { // Only retract if we are not already retracted!
g26_retracted = true;
move_to(where[X_AXIS], where[Y_AXIS], where[Z_AXIS], -1.0 * g26_retraction_multiplier);
}
}
void unified_bed_leveling::recover_filament(float where[XYZE]) {
if (g26_retracted) { // Only un-retract if we are retracted.
move_to(where[X_AXIS], where[Y_AXIS], where[Z_AXIS], 1.2 * g26_retraction_multiplier);
g26_retracted = false;
}
}
/**
* print_line_from_here_to_there() takes two cartesian coordinates and draws a line from one
* to the other. But there are really three sets of coordinates involved. The first coordinate
* is the present location of the nozzle. We don't necessarily want to print from this location.
* We first need to move the nozzle to the start of line segment where we want to print. Once
* there, we can use the two coordinates supplied to draw the line.
*
* Note: Although we assume the first set of coordinates is the start of the line and the second
* set of coordinates is the end of the line, it does not always work out that way. This function
* optimizes the movement to minimize the travel distance before it can start printing. This saves
* a lot of time and eleminates a lot of non-sensical movement of the nozzle. However, it does
* cause a lot of very little short retracement of th nozzle when it draws the very first line
* segment of a 'circle'. The time this requires is very short and is easily saved by the other
* cases where the optimization comes into play.
*/
void unified_bed_leveling::print_line_from_here_to_there(const float &sx, const float &sy, const float &sz, const float &ex, const float &ey, const float &ez) {
const float dx_s = current_position[X_AXIS] - sx, // find our distance from the start of the actual line segment
dy_s = current_position[Y_AXIS] - sy,
dist_start = HYPOT2(dx_s, dy_s), // We don't need to do a sqrt(), we can compare the distance^2
// to save computation time
dx_e = current_position[X_AXIS] - ex, // find our distance from the end of the actual line segment
dy_e = current_position[Y_AXIS] - ey,
dist_end = HYPOT2(dx_e, dy_e),
line_length = HYPOT(ex - sx, ey - sy);
// If the end point of the line is closer to the nozzle, flip the direction,
// moving from the end to the start. On very small lines the optimization isn't worth it.
if (dist_end < dist_start && (SIZE_OF_INTERSECTION_CIRCLES) < abs(line_length)) {
return print_line_from_here_to_there(ex, ey, ez, sx, sy, sz);
}
// Decide whether to retract & bump
if (dist_start > 2.0) {
retract_filament(destination);
//todo: parameterize the bump height with a define
move_to(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS] + 0.500, 0.0); // Z bump to minimize scraping
move_to(sx, sy, sz + 0.500, 0.0); // Get to the starting point with no extrusion while bumped
}
move_to(sx, sy, sz, 0.0); // Get to the starting point with no extrusion / un-Z bump
const float e_pos_delta = line_length * g26_e_axis_feedrate * g26_extrusion_multiplier;
recover_filament(destination);
move_to(ex, ey, ez, e_pos_delta); // Get to the ending point with an appropriate amount of extrusion
}
/**
* This function used to be inline code in G26. But there are so many
* parameters it made sense to turn them into static globals and get
* this code out of sight of the main routine.
*/
bool unified_bed_leveling::parse_G26_parameters() {
g26_extrusion_multiplier = EXTRUSION_MULTIPLIER;
g26_retraction_multiplier = RETRACTION_MULTIPLIER;
g26_nozzle = NOZZLE;
g26_filament_diameter = FILAMENT;
g26_layer_height = LAYER_HEIGHT;
g26_prime_length = PRIME_LENGTH;
g26_bed_temp = BED_TEMP;
g26_hotend_temp = HOTEND_TEMP;
g26_prime_flag = 0;
g26_ooze_amount = parser.seen('O') && parser.has_value() ? parser.value_linear_units() : OOZE_AMOUNT;
g26_keep_heaters_on = parser.seen('K') && parser.value_bool();
g26_continue_with_closest = parser.seen('C') && parser.value_bool();
if (parser.seen('B')) {
g26_bed_temp = parser.value_celsius();
if (!WITHIN(g26_bed_temp, 15, 140)) {
SERIAL_PROTOCOLLNPGM("?Specified bed temperature not plausible.");
return UBL_ERR;
}
}
if (parser.seen('L')) {
g26_layer_height = parser.value_linear_units();
if (!WITHIN(g26_layer_height, 0.0, 2.0)) {
SERIAL_PROTOCOLLNPGM("?Specified layer height not plausible.");
return UBL_ERR;
}
}
if (parser.seen('Q')) {
if (parser.has_value()) {
g26_retraction_multiplier = parser.value_float();
if (!WITHIN(g26_retraction_multiplier, 0.05, 15.0)) {
SERIAL_PROTOCOLLNPGM("?Specified Retraction Multiplier not plausible.");
return UBL_ERR;
}
}
else {
SERIAL_PROTOCOLLNPGM("?Retraction Multiplier must be specified.");
return UBL_ERR;
}
}
if (parser.seen('S')) {
g26_nozzle = parser.value_float();
if (!WITHIN(g26_nozzle, 0.1, 1.0)) {
SERIAL_PROTOCOLLNPGM("?Specified nozzle size not plausible.");
return UBL_ERR;
}
}
if (parser.seen('P')) {
if (!parser.has_value())
g26_prime_flag = -1;
else {
g26_prime_flag++;
g26_prime_length = parser.value_linear_units();
if (!WITHIN(g26_prime_length, 0.0, 25.0)) {
SERIAL_PROTOCOLLNPGM("?Specified prime length not plausible.");
return UBL_ERR;
}
}
}
if (parser.seen('F')) {
g26_filament_diameter = parser.value_linear_units();
if (!WITHIN(g26_filament_diameter, 1.0, 4.0)) {
SERIAL_PROTOCOLLNPGM("?Specified filament size not plausible.");
return UBL_ERR;
}
}
g26_extrusion_multiplier *= sq(1.75) / sq(g26_filament_diameter); // If we aren't using 1.75mm filament, we need to
// scale up or down the length needed to get the
// same volume of filament
g26_extrusion_multiplier *= g26_filament_diameter * sq(g26_nozzle) / sq(0.3); // Scale up by nozzle size
if (parser.seen('H')) {
g26_hotend_temp = parser.value_celsius();
if (!WITHIN(g26_hotend_temp, 165, 280)) {
SERIAL_PROTOCOLLNPGM("?Specified nozzle temperature not plausible.");
return UBL_ERR;
}
}
if (parser.seen('U')) {
randomSeed(millis());
// This setting will persist for the next G26
random_deviation = parser.has_value() ? parser.value_float() : 50.0;
}
g26_repeats = parser.seen('R') ? (parser.has_value() ? parser.value_int() : GRID_MAX_POINTS + 1) : GRID_MAX_POINTS + 1;
if (g26_repeats < 1) {
SERIAL_PROTOCOLLNPGM("?(R)epeat value not plausible; must be at least 1.");
return UBL_ERR;
}
g26_x_pos = parser.seen('X') ? parser.value_linear_units() : current_position[X_AXIS];
g26_y_pos = parser.seen('Y') ? parser.value_linear_units() : current_position[Y_AXIS];
if (!position_is_reachable_xy(g26_x_pos, g26_y_pos)) {
SERIAL_PROTOCOLLNPGM("?Specified X,Y coordinate out of bounds.");
return UBL_ERR;
}
/**
* Wait until all parameters are verified before altering the state!
*/
state.active = !parser.seen('D');
return UBL_OK;
}
bool unified_bed_leveling::exit_from_g26() {
lcd_setstatusPGM(PSTR("Leaving G26"), -1);
while (ubl_lcd_clicked()) idle();
return UBL_ERR;
}
/**
* Turn on the bed and nozzle heat and
* wait for them to get up to temperature.
*/
bool unified_bed_leveling::turn_on_heaters() {
millis_t next;
#if HAS_TEMP_BED
#if ENABLED(ULTRA_LCD)
if (g26_bed_temp > 25) {
lcd_setstatusPGM(PSTR("G26 Heating Bed."), 99);
lcd_quick_feedback();
#endif
has_control_of_lcd_panel = true;
thermalManager.setTargetBed(g26_bed_temp);
next = millis() + 5000UL;
while (abs(thermalManager.degBed() - g26_bed_temp) > 3) {
if (ubl_lcd_clicked()) return exit_from_g26();
if (PENDING(millis(), next)) {
next = millis() + 5000UL;
print_heaterstates();
}
idle();
}
#if ENABLED(ULTRA_LCD)
}
lcd_setstatusPGM(PSTR("G26 Heating Nozzle."), 99);
lcd_quick_feedback();
#endif
#endif
// Start heating the nozzle and wait for it to reach temperature.
thermalManager.setTargetHotend(g26_hotend_temp, 0);
while (abs(thermalManager.degHotend(0) - g26_hotend_temp) > 3) {
if (ubl_lcd_clicked()) return exit_from_g26();
if (PENDING(millis(), next)) {
next = millis() + 5000UL;
print_heaterstates();
}
idle();
}
#if ENABLED(ULTRA_LCD)
lcd_reset_status();
lcd_quick_feedback();
#endif
return UBL_OK;
}
/**
* Prime the nozzle if needed. Return true on error.
*/
bool unified_bed_leveling::prime_nozzle() {
float Total_Prime = 0.0;
if (g26_prime_flag == -1) { // The user wants to control how much filament gets purged
has_control_of_lcd_panel = true;
lcd_setstatusPGM(PSTR("User-Controlled Prime"), 99);
chirp_at_user();
set_destination_to_current();
recover_filament(destination); // Make sure G26 doesn't think the filament is retracted().
while (!ubl_lcd_clicked()) {
chirp_at_user();
destination[E_AXIS] += 0.25;
#ifdef PREVENT_LENGTHY_EXTRUDE
Total_Prime += 0.25;
if (Total_Prime >= EXTRUDE_MAXLENGTH) return UBL_ERR;
#endif
G26_line_to_destination(planner.max_feedrate_mm_s[E_AXIS] / 15.0);
stepper.synchronize(); // Without this synchronize, the purge is more consistent,
// but because the planner has a buffer, we won't be able
// to stop as quickly. So we put up with the less smooth
// action to give the user a more responsive 'Stop'.
set_destination_to_current();
idle();
}
while (ubl_lcd_clicked()) idle(); // Debounce Encoder Wheel
#if ENABLED(ULTRA_LCD)
strcpy_P(lcd_status_message, PSTR("Done Priming")); // We can't do lcd_setstatusPGM() without having it continue;
// So... We cheat to get a message up.
lcd_setstatusPGM(PSTR("Done Priming"), 99);
lcd_quick_feedback();
#endif
has_control_of_lcd_panel = false;
}
else {
#if ENABLED(ULTRA_LCD)
lcd_setstatusPGM(PSTR("Fixed Length Prime."), 99);
lcd_quick_feedback();
#endif
set_destination_to_current();
destination[E_AXIS] += g26_prime_length;
G26_line_to_destination(planner.max_feedrate_mm_s[E_AXIS] / 15.0);
stepper.synchronize();
set_destination_to_current();
retract_filament(destination);
}
return UBL_OK;
}
#endif // AUTO_BED_LEVELING_UBL && UBL_G26_MESH_VALIDATION

View File

@@ -1,9 +1,10 @@
# Sprinter Arduino Project Makefile
# Marlin Firmware Arduino Project Makefile
#
# Makefile Based on:
# Arduino 0011 Makefile
# Arduino adaptation by mellis, eighthave, oli.keller
# Marlin adaption by Daid
# Marlin 2.0 support and RELOC_WORKAROUND by @marcio-ao
#
# This has been tested with Arduino 0022.
#
@@ -63,6 +64,9 @@ HARDWARE_MOTHERBOARD ?= 11
ARDUINO_INSTALL_DIR ?= ${HOME}/Arduino
ARDUINO_VERSION ?= 106
# The installed Libraries are in the User folder
ARDUINO_USER_DIR ?= ${HOME}/Arduino
# You can optionally set a path to the avr-gcc tools. Requires a trailing slash. (ex: /usr/local/avr-gcc/bin)
AVR_TOOLS_PATH ?=
@@ -82,6 +86,26 @@ LIQUID_TWI2 ?= 0
# this defines if Wire is needed
WIRE ?= 0
# this defines if U8GLIB is needed (may require RELOC_WORKAROUND)
U8GLIB ?= 1
# this defines whether to include the Trinamic TMC2630Stepper
TMC2630 ?= 1
############
# Try to automatically determine whether RELOC_WORKAROUND is needed based
# on GCC versions:
# http://www.avrfreaks.net/comment/1789106#comment-1789106
CC_MAJ:=$(shell $(CC) -dM -E - < /dev/null | grep __GNUC__ | cut -f3 -d\ )
CC_MIN:=$(shell $(CC) -dM -E - < /dev/null | grep __GNUC_MINOR__ | cut -f3 -d\ )
CC_PATCHLEVEL:=$(shell $(CC) -dM -E - < /dev/null | grep __GNUC_PATCHLEVEL__ | cut -f3 -d\ )
CC_VER:=$(shell echo $$(( $(CC_MAJ) * 10000 + $(CC_MIN) * 100 + $(CC_PATCHLEVEL) )))
ifeq ($(shell test $(CC_VER) -lt 40901 && echo 1),1)
@echo This version of GCC is likely broken. Enabling relocation workaround.
RELOC_WORKAROUND = 1
endif
############################################################################
# Below here nothing should be changed...
@@ -89,152 +113,296 @@ WIRE ?= 0
# HARDWARE_VARIANT = "arduino", "Sanguino", "Gen7", ...
# MCU = "atmega1280", "Mega2560", "atmega2560", "atmega644p", ...
#Gen7
ifeq ($(HARDWARE_MOTHERBOARD),10)
ifeq ($(HARDWARE_MOTHERBOARD),0)
# No motherboard selected
#
# RAMPS 1.3 / 1.4 - ATmega1280, ATmega2560
#
# MEGA/RAMPS up to 1.2
else ifeq ($(HARDWARE_MOTHERBOARD),3)
# RAMPS 1.3 (Power outputs: Hotend, Fan, Bed)
else ifeq ($(HARDWARE_MOTHERBOARD),33)
# RAMPS 1.3 (Power outputs: Hotend0, Hotend1, Bed)
else ifeq ($(HARDWARE_MOTHERBOARD),34)
# RAMPS 1.3 (Power outputs: Hotend, Fan0, Fan1)
else ifeq ($(HARDWARE_MOTHERBOARD),35)
# RAMPS 1.3 (Power outputs: Hotend0, Hotend1, Fan)
else ifeq ($(HARDWARE_MOTHERBOARD),36)
# RAMPS 1.3 (Power outputs: Spindle, Controller Fan)
else ifeq ($(HARDWARE_MOTHERBOARD),38)
# RAMPS 1.4 (Power outputs: Hotend, Fan, Bed)
else ifeq ($(HARDWARE_MOTHERBOARD),43)
# RAMPS 1.4 (Power outputs: Hotend0, Hotend1, Bed)
else ifeq ($(HARDWARE_MOTHERBOARD),44)
# RAMPS 1.4 (Power outputs: Hotend, Fan0, Fan1)
else ifeq ($(HARDWARE_MOTHERBOARD),45)
# RAMPS 1.4 (Power outputs: Hotend0, Hotend1, Fan)
else ifeq ($(HARDWARE_MOTHERBOARD),46)
# RAMPS 1.4 (Power outputs: Spindle, Controller Fan)
else ifeq ($(HARDWARE_MOTHERBOARD),48)
# RAMPS Plus 3DYMY (Power outputs: Hotend, Fan, Bed)
else ifeq ($(HARDWARE_MOTHERBOARD),143)
# RAMPS Plus 3DYMY (Power outputs: Hotend0, Hotend1, Bed)
else ifeq ($(HARDWARE_MOTHERBOARD),144)
# RAMPS Plus 3DYMY (Power outputs: Hotend, Fan0, Fan1)
else ifeq ($(HARDWARE_MOTHERBOARD),145)
# RAMPS Plus 3DYMY (Power outputs: Hotend0, Hotend1, Fan)
else ifeq ($(HARDWARE_MOTHERBOARD),146)
# RAMPS Plus 3DYMY (Power outputs: Spindle, Controller Fan)
else ifeq ($(HARDWARE_MOTHERBOARD),148)
#
# RAMPS Derivatives - ATmega1280, ATmega2560
#
# 3Drag Controller
else ifeq ($(HARDWARE_MOTHERBOARD),77)
# Velleman K8200 Controller (derived from 3Drag Controller)
else ifeq ($(HARDWARE_MOTHERBOARD),78)
# Velleman K8400 Controller (derived from 3Drag Controller)
else ifeq ($(HARDWARE_MOTHERBOARD),79)
# 2PrintBeta BAM&DICE with STK drivers
else ifeq ($(HARDWARE_MOTHERBOARD),401)
# 2PrintBeta BAM&DICE Due with STK drivers
else ifeq ($(HARDWARE_MOTHERBOARD),402)
# MKS BASE v1.0
else ifeq ($(HARDWARE_MOTHERBOARD),40)
# MKS v1.5 with Allegro A4982 stepper drivers
else ifeq ($(HARDWARE_MOTHERBOARD),405)
# MKS BASE 1.0 with Heroic HR4982 stepper drivers
else ifeq ($(HARDWARE_MOTHERBOARD),41)
# MKS GEN v1.3 or 1.4
else ifeq ($(HARDWARE_MOTHERBOARD),47)
# MKS GEN L
else ifeq ($(HARDWARE_MOTHERBOARD),53)
# zrib V2.0 control board (Chinese knock off RAMPS replica)
else ifeq ($(HARDWARE_MOTHERBOARD),504)
# Felix 2.0+ Electronics Board (RAMPS like)
else ifeq ($(HARDWARE_MOTHERBOARD),37)
# Invent-A-Part RigidBoard
else ifeq ($(HARDWARE_MOTHERBOARD),42)
# Invent-A-Part RigidBoard V2
else ifeq ($(HARDWARE_MOTHERBOARD),52)
# Sainsmart 2-in-1 board
else ifeq ($(HARDWARE_MOTHERBOARD),49)
# Ultimaker
else ifeq ($(HARDWARE_MOTHERBOARD),7)
# Ultimaker (Older electronics. Pre 1.5.4. This is rare)
else ifeq ($(HARDWARE_MOTHERBOARD),71)
MCU ?= atmega1280
# Azteeg X3
else ifeq ($(HARDWARE_MOTHERBOARD),67)
# Azteeg X3 Pro
else ifeq ($(HARDWARE_MOTHERBOARD),68)
# Ultimainboard 2.x (Uses TEMP_SENSOR 20)
else ifeq ($(HARDWARE_MOTHERBOARD),72)
# Rumba
else ifeq ($(HARDWARE_MOTHERBOARD),80)
# bq ZUM Mega 3D
else ifeq ($(HARDWARE_MOTHERBOARD),503)
# MakeBoard Mini v2.1.2 is a control board sold by MicroMake
else ifeq ($(HARDWARE_MOTHERBOARD),431)
# TriGorilla Anycubic version 1.3 based on RAMPS EFB
else ifeq ($(HARDWARE_MOTHERBOARD),343)
# TriGorilla Anycubic version 1.4 based on RAMPS EFB
else ifeq ($(HARDWARE_MOTHERBOARD),443)
# Creality: Ender-4, CR-8
else ifeq ($(HARDWARE_MOTHERBOARD),243)
#
# Other ATmega1280, ATmega2560
#
# Cartesio CN Controls V11
else ifeq ($(HARDWARE_MOTHERBOARD),111)
# Cartesio CN Controls V12
else ifeq ($(HARDWARE_MOTHERBOARD),112)
# Cheaptronic v1.0
else ifeq ($(HARDWARE_MOTHERBOARD),2)
# Cheaptronic v2.0
else ifeq ($(HARDWARE_MOTHERBOARD),21)
# Makerbot Mightyboard Revision E
else ifeq ($(HARDWARE_MOTHERBOARD),200)
# Megatronics
else ifeq ($(HARDWARE_MOTHERBOARD),70)
# Megatronics v2.0
else ifeq ($(HARDWARE_MOTHERBOARD),701)
# Megatronics v3.0
else ifeq ($(HARDWARE_MOTHERBOARD),703)
# Megatronics v3.1
else ifeq ($(HARDWARE_MOTHERBOARD),704)
# Rambo
else ifeq ($(HARDWARE_MOTHERBOARD),301)
# Mini-Rambo
else ifeq ($(HARDWARE_MOTHERBOARD),302)
# Mini-Rambo 1.0a
else ifeq ($(HARDWARE_MOTHERBOARD),303)
# Einsy Rambo
else ifeq ($(HARDWARE_MOTHERBOARD),304)
# Einsy Retro
else ifeq ($(HARDWARE_MOTHERBOARD),305)
# Elefu Ra Board (v3)
else ifeq ($(HARDWARE_MOTHERBOARD),21)
# Leapfrog
else ifeq ($(HARDWARE_MOTHERBOARD),999)
# Mega controller
else ifeq ($(HARDWARE_MOTHERBOARD),310)
# abee Scoovo X9H
else ifeq ($(HARDWARE_MOTHERBOARD),321)
# Geeetech GT2560 Rev. A
else ifeq ($(HARDWARE_MOTHERBOARD),74)
# Geeetech GT2560 Rev. A+ (with auto level probe)
else ifeq ($(HARDWARE_MOTHERBOARD),75)
#
# ATmega1281, ATmega2561
#
else ifeq ($(HARDWARE_MOTHERBOARD),702)
MCU ?= atmega1281
else ifeq ($(HARDWARE_MOTHERBOARD),25)
MCU ?= atmega1281
#
# Sanguinololu and Derivatives - ATmega644P, ATmega1284P
#
# Sanguinololu < 1.2
else ifeq ($(HARDWARE_MOTHERBOARD),6)
HARDWARE_VARIANT ?= Sanguino
MCU ?= atmega644p
# Sanguinololu 1.2 and above
else ifeq ($(HARDWARE_MOTHERBOARD),62)
HARDWARE_VARIANT ?= Sanguino
MCU ?= atmega644p
# Melzi
else ifeq ($(HARDWARE_MOTHERBOARD),63)
HARDWARE_VARIANT ?= Sanguino
MCU ?= atmega644p
# Melzi with ATmega1284 (MaKr3d version)
else ifeq ($(HARDWARE_MOTHERBOARD),66)
HARDWARE_VARIANT ?= Sanguino
MCU ?= atmega1284p
# Melzi Creality3D board (for CR-10 etc)
else ifeq ($(HARDWARE_MOTHERBOARD),89)
HARDWARE_VARIANT ?= Sanguino
MCU ?= atmega1284p
# Melzi Malyan M150 board
else ifeq ($(HARDWARE_MOTHERBOARD),92)
HARDWARE_VARIANT ?= Sanguino
MCU ?= atmega1284p
# Tronxy X5S
else ifeq ($(HARDWARE_MOTHERBOARD),505)
HARDWARE_VARIANT ?= Sanguino
MCU ?= atmega1284p
# STB V1.1
else ifeq ($(HARDWARE_MOTHERBOARD),64)
HARDWARE_VARIANT ?= Sanguino
MCU ?= atmega1284p
# Azteeg X1
else ifeq ($(HARDWARE_MOTHERBOARD),65)
HARDWARE_VARIANT ?= Sanguino
MCU ?= atmega1284p
# Anet 1.0 (Melzi clone)
else ifeq ($(HARDWARE_MOTHERBOARD),69)
HARDWARE_VARIANT ?= Sanguino
MCU ?= atmega1284p
#
# Other ATmega644P, ATmega644, ATmega1284P
#
# Gen3 Monolithic Electronics
else ifeq ($(HARDWARE_MOTHERBOARD),22)
HARDWARE_VARIANT ?= Sanguino
MCU ?= atmega644p
# Gen3+
else ifeq ($(HARDWARE_MOTHERBOARD),9)
HARDWARE_VARIANT ?= Sanguino
MCU ?= atmega644p
# Gen6
else ifeq ($(HARDWARE_MOTHERBOARD),5)
HARDWARE_VARIANT ?= Gen6
MCU ?= atmega644p
# Gen6 deluxe
else ifeq ($(HARDWARE_MOTHERBOARD),51)
HARDWARE_VARIANT ?= Gen6
MCU ?= atmega644p
# Gen7 custom (Alfons3 Version)
else ifeq ($(HARDWARE_MOTHERBOARD),10)
HARDWARE_VARIANT ?= Gen7
MCU ?= atmega644
F_CPU ?= 20000000
else ifeq ($(HARDWARE_MOTHERBOARD),11)
# Gen7 v1.1, v1.2
else ifeq ($(HARDWARE_MOTHERBOARD),11)
HARDWARE_VARIANT ?= Gen7
MCU ?= atmega644p
F_CPU ?= 20000000
else ifeq ($(HARDWARE_MOTHERBOARD),12)
# Gen7 v1.3
else ifeq ($(HARDWARE_MOTHERBOARD),12)
HARDWARE_VARIANT ?= Gen7
MCU ?= atmega644p
F_CPU ?= 20000000
else ifeq ($(HARDWARE_MOTHERBOARD),13)
# Gen7 v1.4
else ifeq ($(HARDWARE_MOTHERBOARD),13)
HARDWARE_VARIANT ?= Gen7
MCU ?= atmega1284p
F_CPU ?= 20000000
#RAMPS
else ifeq ($(HARDWARE_MOTHERBOARD),3)
HARDWARE_VARIANT ?= arduino
MCU ?= atmega2560
else ifeq ($(HARDWARE_MOTHERBOARD),33)
HARDWARE_VARIANT ?= arduino
MCU ?= atmega2560
else ifeq ($(HARDWARE_MOTHERBOARD),34)
HARDWARE_VARIANT ?= arduino
MCU ?= atmega2560
else ifeq ($(HARDWARE_MOTHERBOARD),35)
HARDWARE_VARIANT ?= arduino
MCU ?= atmega2560
else ifeq ($(HARDWARE_MOTHERBOARD),36)
HARDWARE_VARIANT ?= arduino
MCU ?= atmega2560
else ifeq ($(HARDWARE_MOTHERBOARD),38)
HARDWARE_VARIANT ?= arduino
MCU ?= atmega2560
else ifeq ($(HARDWARE_MOTHERBOARD),43)
HARDWARE_VARIANT ?= arduino
MCU ?= atmega2560
else ifeq ($(HARDWARE_MOTHERBOARD),44)
HARDWARE_VARIANT ?= arduino
MCU ?= atmega2560
else ifeq ($(HARDWARE_MOTHERBOARD),45)
HARDWARE_VARIANT ?= arduino
MCU ?= atmega2560
else ifeq ($(HARDWARE_MOTHERBOARD),46)
HARDWARE_VARIANT ?= arduino
MCU ?= atmega2560
else ifeq ($(HARDWARE_MOTHERBOARD),48)
HARDWARE_VARIANT ?= arduino
MCU ?= atmega2560
#Gen6
else ifeq ($(HARDWARE_MOTHERBOARD),5)
HARDWARE_VARIANT ?= Gen6
MCU ?= atmega644p
else ifeq ($(HARDWARE_MOTHERBOARD),51)
HARDWARE_VARIANT ?= Gen6
MCU ?= atmega644p
#Sanguinololu
else ifeq ($(HARDWARE_MOTHERBOARD),6)
HARDWARE_VARIANT ?= Sanguino
MCU ?= atmega644p
else ifeq ($(HARDWARE_MOTHERBOARD),62)
HARDWARE_VARIANT ?= Sanguino
MCU ?= atmega644p
else ifeq ($(HARDWARE_MOTHERBOARD),63)
HARDWARE_VARIANT ?= Sanguino
MCU ?= atmega644p
else ifeq ($(HARDWARE_MOTHERBOARD),65)
HARDWARE_VARIANT ?= Sanguino
MCU ?= atmega1284p
else ifeq ($(HARDWARE_MOTHERBOARD),66)
HARDWARE_VARIANT ?= Sanguino
MCU ?= atmega1284p
else ifeq ($(HARDWARE_MOTHERBOARD),69)
HARDWARE_VARIANT ?= Sanguino
MCU ?= atmega1284p
#Ultimaker
else ifeq ($(HARDWARE_MOTHERBOARD),7)
HARDWARE_VARIANT ?= arduino
MCU ?= atmega2560
else ifeq ($(HARDWARE_MOTHERBOARD),71)
HARDWARE_VARIANT ?= arduino
MCU ?= atmega1280
#Teensylu
else ifeq ($(HARDWARE_MOTHERBOARD),8)
HARDWARE_VARIANT ?= Teensy
MCU ?= at90usb1286
else ifeq ($(HARDWARE_MOTHERBOARD),81)
HARDWARE_VARIANT ?= Teensy
MCU ?= at90usb1286
else ifeq ($(HARDWARE_MOTHERBOARD),811)
HARDWARE_VARIANT ?= Teensy
MCU ?= at90usb1286
else ifeq ($(HARDWARE_MOTHERBOARD),82)
HARDWARE_VARIANT ?= Teensy
MCU ?= at90usb646
else ifeq ($(HARDWARE_MOTHERBOARD),83)
HARDWARE_VARIANT ?= Teensy
MCU ?= at90usb1286
else ifeq ($(HARDWARE_MOTHERBOARD),84)
HARDWARE_VARIANT ?= Teensy
MCU ?= at90usb1286
#Gen3+
else ifeq ($(HARDWARE_MOTHERBOARD),9)
HARDWARE_VARIANT ?= Sanguino
MCU ?= atmega644p
#Gen3 Monolithic Electronics
else ifeq ($(HARDWARE_MOTHERBOARD),22)
HARDWARE_VARIANT ?= Sanguino
MCU ?= atmega644p
#Megatronics
else ifeq ($(HARDWARE_MOTHERBOARD),70)
HARDWARE_VARIANT ?= arduino
MCU ?= atmega2560
#Alpha OMCA board
else ifeq ($(HARDWARE_MOTHERBOARD),90)
# Alpha OMCA board
else ifeq ($(HARDWARE_MOTHERBOARD),90)
HARDWARE_VARIANT ?= SanguinoA
MCU ?= atmega644
#Final OMCA board
else ifeq ($(HARDWARE_MOTHERBOARD),91)
# Final OMCA board
else ifeq ($(HARDWARE_MOTHERBOARD),91)
HARDWARE_VARIANT ?= Sanguino
MCU ?= atmega644p
# Sethi 3D_1
else ifeq ($(HARDWARE_MOTHERBOARD),20)
HARDWARE_VARIANT ?= Sanguino
MCU ?= atmega644p
#Rambo
else ifeq ($(HARDWARE_MOTHERBOARD),301)
HARDWARE_VARIANT ?= arduino
MCU ?= atmega2560
#
# Teensyduino - AT90USB1286, AT90USB1286P
#
# Azteeg
else ifeq ($(HARDWARE_MOTHERBOARD),67)
HARDWARE_VARIANT ?= arduino
MCU ?= atmega2560
else ifeq ($(HARDWARE_MOTHERBOARD),68)
HARDWARE_VARIANT ?= arduino
MCU ?= atmega2560
# Teensylu
else ifeq ($(HARDWARE_MOTHERBOARD),8)
HARDWARE_VARIANT ?= Teensy
MCU ?= at90usb1286
# Printrboard (AT90USB1286)
else ifeq ($(HARDWARE_MOTHERBOARD),81)
HARDWARE_VARIANT ?= Teensy
MCU ?= at90usb1286
# Printrboard Revision F (AT90USB1286)
else ifeq ($(HARDWARE_MOTHERBOARD),811)
HARDWARE_VARIANT ?= Teensy
MCU ?= at90usb1286
# Brainwave (AT90USB646)
else ifeq ($(HARDWARE_MOTHERBOARD),82)
HARDWARE_VARIANT ?= Teensy
MCU ?= at90usb646
# Brainwave Pro (AT90USB1286)
else ifeq ($(HARDWARE_MOTHERBOARD),83)
HARDWARE_VARIANT ?= Teensy
MCU ?= at90usb1286
# SAV Mk-I (AT90USB1286)
else ifeq ($(HARDWARE_MOTHERBOARD),84)
HARDWARE_VARIANT ?= Teensy
MCU ?= at90usb1286
# Teensy++2.0 (AT90USB1286)
else ifeq ($(HARDWARE_MOTHERBOARD),85)
HARDWARE_VARIANT ?= Teensy
MCU ?= at90usb1286
# 5DPrint D8 Driver Board
else ifeq ($(HARDWARE_MOTHERBOARD),88)
HARDWARE_VARIANT ?= Teensy
MCU ?= at90usb1286
endif
@@ -243,6 +411,10 @@ endif
# Set to 16Mhz if not yet set.
F_CPU ?= 16000000
# Set to arduino, ATmega2560 if not yet set.
HARDWARE_VARIANT ?= arduino
MCU ?= atmega2560
# Arduino contained the main source code for the Arduino
# Libraries, the "hardware variant" are for boards
# that derives from that, and their source are present in
@@ -254,8 +426,23 @@ TARGET = $(notdir $(CURDIR))
# there is no need to specify explicit pathnames as long as the
# directory is added here
# The Makefile for previous versions of Marlin used VPATH for all
# source files, but for Marlin 2.0, we use VPATH only for arduino
# library files.
VPATH = .
VPATH += $(BUILD_DIR)
VPATH += $(HARDWARE_SRC)
# U8glib
VPATH += $(ARDUINO_USER_DIR)/libraries/U8glib
VPATH += $(ARDUINO_USER_DIR)/libraries/U8glib/clib
ifeq ($(HARDWARE_VARIANT), $(filter $(HARDWARE_VARIANT),arduino Teensy Sanguino))
VPATH += $(ARDUINO_INSTALL_DIR)/hardware/marlin/avr/libraries/LiquidCrystal/src
VPATH += $(ARDUINO_INSTALL_DIR)/hardware/marlin/avr/libraries/SPI
endif
VPATH += $(ARDUINO_INSTALL_DIR)/hardware/arduino/avr/cores/arduino
VPATH += $(ARDUINO_INSTALL_DIR)/hardware/arduino/avr/libraries/SPI
@@ -270,50 +457,76 @@ ifeq ($(WIRE), 1)
VPATH += $(ARDUINO_INSTALL_DIR)/libraries/Wire
VPATH += $(ARDUINO_INSTALL_DIR)/libraries/Wire/utility
endif
ifeq ($(NEOPIXEL), 1)
VPATH += $(ARDUINO_INSTALL_DIR)/libraries/Adafruit_NeoPixel
endif
ifeq ($(U8GLIB), 1)
VPATH += $(ARDUINO_INSTALL_DIR)/libraries/U8glib
VPATH += $(ARDUINO_INSTALL_DIR)/libraries/U8glib/clib
endif
ifeq ($(TMC2630), 1)
VPATH += $(ARDUINO_INSTALL_DIR)/libraries/TMC2130Stepper/src
VPATH += $(ARDUINO_INSTALL_DIR)/libraries/TMC2130Stepper/src/source
endif
ifeq ($(HARDWARE_VARIANT), arduino)
HARDWARE_SUB_VARIANT ?= mega
VPATH += $(ARDUINO_INSTALL_DIR)/hardware/arduino/avr/variants/$(HARDWARE_SUB_VARIANT)
else
ifeq ($(HARDWARE_VARIANT), Sanguino)
VPATH += $(HARDWARE_DIR)/marlin/avr/variants/sanguino
VPATH += $(ARDUINO_INSTALL_DIR)/hardware/marlin/avr/variants/sanguino
else
HARDWARE_SUB_VARIANT ?= standard
VPATH += $(HARDWARE_DIR)/$(HARDWARE_VARIANT)/variants/$(HARDWARE_SUB_VARIANT)
VPATH += $(ARDUINO_INSTALL_DIR)/hardware/$(HARDWARE_VARIANT)/variants/$(HARDWARE_SUB_VARIANT)
endif
endif
SRC = wiring.c \
LIB_SRC = wiring.c \
wiring_analog.c wiring_digital.c \
wiring_pulse.c \
wiring_shift.c WInterrupts.c hooks.c
ifeq ($(HARDWARE_VARIANT), Teensy)
SRC = wiring.c
LIB_SRC = wiring.c
VPATH += $(ARDUINO_INSTALL_DIR)/hardware/teensy/cores/teensy
endif
CXXSRC = WMath.cpp WString.cpp Print.cpp Marlin_main.cpp \
MarlinSerial.cpp Sd2Card.cpp SdBaseFile.cpp SdFatUtil.cpp \
SdFile.cpp SdVolume.cpp planner.cpp stepper.cpp \
temperature.cpp cardreader.cpp configuration_store.cpp \
watchdog.cpp SPI.cpp servo.cpp Tone.cpp ultralcd.cpp digipot_mcp4451.cpp \
dac_mcp4728.cpp vector_3.cpp qr_solve.cpp endstops.cpp stopwatch.cpp utility.cpp \
printcounter.cpp nozzle.cpp serial.cpp
LIB_CXXSRC = WMath.cpp WString.cpp Print.cpp SPI.cpp Tone.cpp
ifeq ($(NEOPIXEL), 1)
LIB_CXXSRC += Adafruit_NeoPixel.cpp
endif
ifeq ($(LIQUID_TWI2), 0)
CXXSRC += LiquidCrystal.cpp
LIB_CXXSRC += LiquidCrystal.cpp
else
SRC += twi.c
CXXSRC += Wire.cpp LiquidTWI2.cpp
LIB_SRC += twi.c
LIB_CXXSRC += Wire.cpp LiquidTWI2.cpp
endif
ifeq ($(WIRE), 1)
SRC += twi.c
CXXSRC += Wire.cpp
LIB_SRC += twi.c
LIB_CXXSRC += Wire.cpp
endif
ifeq ($(U8GLIB), 1)
LIB_CXXSRC += U8glib.cpp
LIB_SRC += u8g_ll_api.c u8g_bitmap.c u8g_clip.c u8g_com_null.c u8g_delay.c u8g_page.c u8g_pb.c u8g_pb16h1.c u8g_rect.c u8g_state.c u8g_font.c u8g_font_data.c
endif
ifeq ($(TMC2630), 1)
LIB_CXXSRC += TMC2130Stepper.cpp TMC2130Stepper_COOLCONF.cpp TMC2130Stepper_DRV_STATUS.cpp TMC2130Stepper_IHOLD_IRUN.cpp TMC2130Stepper_CHOPCONF.cpp TMC2130Stepper_GCONF.cpp TMC2130Stepper_PWMCONF.cpp SW_SPI.cpp
endif
ifeq ($(RELOC_WORKAROUND), 1)
LD_PREFIX=-nodefaultlibs
LD_SUFFIX=-lm -lgcc -lc -lgcc
endif
#Check for Arduino 1.0.0 or higher and use the correct source files for that version
ifeq ($(shell [ $(ARDUINO_VERSION) -ge 100 ] && echo true), true)
CXXSRC += main.cpp
LIB_CXXSRC += main.cpp
else
SRC += pins_arduino.c main.c
LIB_SRC += pins_arduino.c main.c
endif
FORMAT = ihex
@@ -348,8 +561,8 @@ CXXDEFS = $(CDEFS)
ifeq ($(HARDWARE_VARIANT), Teensy)
CDEFS += -DUSB_SERIAL
SRC += usb.c pins_teensy.c
CXXSRC += usb_api.cpp
LIB_SRC += usb.c pins_teensy.c
LIB_CXXSRC += usb_api.cpp
endif
# Add all the source directories as include directories too
@@ -361,9 +574,8 @@ CSTANDARD = -std=gnu99
CXXSTANDARD = -std=gnu++11
CDEBUG = -g$(DEBUG)
CWARN = -Wall -Wstrict-prototypes
CTUNING = -funsigned-char -funsigned-bitfields -fpack-struct \
-fshort-enums -w -ffunction-sections -fdata-sections \
-flto \
CTUNING = -w -fsigned-char -funsigned-bitfields -fpack-struct \
-fshort-enums -ffunction-sections -fdata-sections -flto \
-DARDUINO=$(ARDUINO_VERSION)
ifneq ($(HARDWARE_MOTHERBOARD),)
CTUNING += -DMOTHERBOARD=${HARDWARE_MOTHERBOARD}
@@ -389,13 +601,21 @@ AVRDUDE_FLAGS = -D -C$(AVRDUDE_CONF) \
-p$(MCU) -P$(AVRDUDE_PORT) -c$(AVRDUDE_PROGRAMMER) \
-b$(UPLOAD_RATE)
# Since Marlin 2.0, the source files may be distributed into several
# different directories, so it is necessary to find them recursively
SRC = $(shell find src -name '*.c' -type f)
CXXSRC = $(shell find src -name '*.cpp' -type f)
# Define all object files.
OBJ = ${patsubst %.c, $(BUILD_DIR)/%.o, ${SRC}}
OBJ = ${patsubst %.c, $(BUILD_DIR)/arduino/%.o, ${LIB_SRC}}
OBJ += ${patsubst %.cpp, $(BUILD_DIR)/arduino/%.o, ${LIB_CXXSRC}}
OBJ += ${patsubst %.S, $(BUILD_DIR)/arduino/%.o, ${LIB_ASRC}}
OBJ += ${patsubst %.c, $(BUILD_DIR)/%.o, ${SRC}}
OBJ += ${patsubst %.cpp, $(BUILD_DIR)/%.o, ${CXXSRC}}
OBJ += ${patsubst %.S, $(BUILD_DIR)/%.o, ${ASRC}}
# Define all listing files.
LST = $(ASRC:.S=.lst) $(CXXSRC:.cpp=.lst) $(SRC:.c=.lst)
LST = $(LIB_ASRC:.S=.lst) $(LIB_CXXSRC:.cpp=.lst) $(LIB_SRC:.c=.lst)
# Combine all necessary flags and optional flags.
# Add target processor to flags.
@@ -412,14 +632,14 @@ else
P=
endif
# Create required build hierarchy if it does not exist
$(shell mkdir -p $(dir $(OBJ)))
# Default target.
all: sizeafter
build: $(BUILD_DIR) elf hex
# Creates the object directory
$(BUILD_DIR):
$P mkdir -p $(BUILD_DIR)
build: elf hex
elf: $(BUILD_DIR)/$(TARGET).elf
hex: $(BUILD_DIR)/$(TARGET).hex
@@ -485,29 +705,34 @@ extcoff: $(TARGET).elf
$(NM) -n $< > $@
# Link: create ELF output file from library.
$(BUILD_DIR)/$(TARGET).elf: $(OBJ) Configuration.h
$(Pecho) " CXX $@"
$P $(CC) $(ALL_CXXFLAGS) -Wl,--gc-sections,--relax -o $@ -L. $(OBJ) $(LDFLAGS)
$P $(CC) $(LD_PREFIX) $(ALL_CXXFLAGS) -Wl,--gc-sections,--relax -o $@ -L. $(OBJ) $(LDFLAGS) $(LD_SUFFIX)
# Object files that were found in "src" will be stored in $(BUILD_DIR)
# in directories that mirror the structure of "src"
$(BUILD_DIR)/%.o: %.c Configuration.h Configuration_adv.h $(MAKEFILE)
$(Pecho) " CC $<"
$P $(CC) -MMD -c $(ALL_CFLAGS) $< -o $@
$(BUILD_DIR)/%.o: $(BUILD_DIR)/%.cpp Configuration.h Configuration_adv.h $(MAKEFILE)
$(Pecho) " CXX $<"
$P $(CXX) -MMD -c $(ALL_CXXFLAGS) $< -o $@
$(BUILD_DIR)/%.o: %.cpp Configuration.h Configuration_adv.h $(MAKEFILE)
$(Pecho) " CXX $<"
$P $(CXX) -MMD -c $(ALL_CXXFLAGS) $< -o $@
# Object files for Arduino libs will be created in $(BUILD_DIR)/arduino
$(BUILD_DIR)/arduino/%.o: %.c Configuration.h Configuration_adv.h $(MAKEFILE)
$(Pecho) " CC $<"
$P $(CC) -MMD -c $(ALL_CFLAGS) $< -o $@
$(BUILD_DIR)/arduino/%.o: %.cpp Configuration.h Configuration_adv.h $(MAKEFILE)
$(Pecho) " CXX $<"
$P $(CXX) -MMD -c $(ALL_CXXFLAGS) $< -o $@
# Target: clean project.
clean:
$(Pecho) " RM $(BUILD_DIR)/*"
$P $(REMOVE) $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).eep $(BUILD_DIR)/$(TARGET).cof $(BUILD_DIR)/$(TARGET).elf \
$(BUILD_DIR)/$(TARGET).map $(BUILD_DIR)/$(TARGET).sym $(BUILD_DIR)/$(TARGET).lss $(BUILD_DIR)/$(TARGET).cpp \
$(OBJ) $(LST) $(SRC:.c=.s) $(SRC:.c=.d) $(CXXSRC:.cpp=.s) $(CXXSRC:.cpp=.d)
$(Pecho) " RMDIR $(BUILD_DIR)/"
$P rm -rf $(BUILD_DIR)
@@ -515,4 +740,4 @@ clean:
.PHONY: all build elf hex eep lss sym program coff extcoff clean depend sizebefore sizeafter
# Automaticaly include the dependency files created by gcc
-include ${wildcard $(BUILD_DIR)/*.d}
-include ${patsubst %.o, %.d, ${OBJ}}

View File

@@ -1,479 +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"
#include "serial.h"
#if ENABLED(PRINTCOUNTER)
#include "printcounter.h"
#else
#include "stopwatch.h"
#endif
void idle(
#if ENABLED(ADVANCED_PAUSE_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
#define enable_E4() NOOP
#define disable_E4() 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
#if E_STEPPERS > 4 && HAS_E4_ENABLE
#define enable_E4() E4_ENABLE_WRITE( E_ENABLE_ON)
#define disable_E4() E4_ENABLE_WRITE(!E_ENABLE_ON)
#else
#define enable_E4() NOOP
#define disable_E4() NOOP
#endif
#endif // !MIXING_EXTRUDER
#if ENABLED(G38_PROBE_TARGET)
extern bool G38_move, // flag to tell the interrupt handler that a G38 command is being run
G38_endstop_hit; // flag from the interrupt handler to indicate if the endstop went active
#endif
/**
* The axis order in all axis related arrays is X, Y, Z, E
*/
#define _AXIS(AXIS) AXIS ##_AXIS
void enable_all_steppers();
void disable_e_steppers();
void disable_all_steppers();
void FlushSerialRequestResend();
void ok_to_send();
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); // Add a single command to the end of the buffer. Return false on failure.
void enqueue_and_echo_commands_P(const char * const cmd); // Set one or more commands to be prioritized over the next Serial/SD command.
void clear_command_queue();
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 MMS_SCALED(MM_S) ((MM_S)*feedrate_percentage*0.01)
extern bool axis_relative_modes[];
extern bool volumetric_enabled;
extern int flow_percentage[EXTRUDERS]; // Extrusion factor for each extruder
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[XYZ];
extern bool axis_homed[XYZ];
extern volatile bool wait_for_heatup;
#if HAS_RESUME_CONTINUE
extern volatile bool wait_for_user;
#endif
extern float current_position[NUM_AXIS];
// Workspace offsets
#if HAS_WORKSPACE_OFFSET
#if HAS_HOME_OFFSET
extern float home_offset[XYZ];
#endif
#if HAS_POSITION_SHIFT
extern float position_shift[XYZ];
#endif
#endif
#if HAS_HOME_OFFSET && HAS_POSITION_SHIFT
extern float workspace_offset[XYZ];
#define WORKSPACE_OFFSET(AXIS) workspace_offset[AXIS]
#elif HAS_HOME_OFFSET
#define WORKSPACE_OFFSET(AXIS) home_offset[AXIS]
#elif HAS_POSITION_SHIFT
#define WORKSPACE_OFFSET(AXIS) position_shift[AXIS]
#else
#define WORKSPACE_OFFSET(AXIS) 0
#endif
#define LOGICAL_POSITION(POS, AXIS) ((POS) + WORKSPACE_OFFSET(AXIS))
#define RAW_POSITION(POS, AXIS) ((POS) - WORKSPACE_OFFSET(AXIS))
#if HAS_POSITION_SHIFT || DISABLED(DELTA)
#define LOGICAL_X_POSITION(POS) LOGICAL_POSITION(POS, X_AXIS)
#define LOGICAL_Y_POSITION(POS) LOGICAL_POSITION(POS, Y_AXIS)
#define RAW_X_POSITION(POS) RAW_POSITION(POS, X_AXIS)
#define RAW_Y_POSITION(POS) RAW_POSITION(POS, Y_AXIS)
#else
#define LOGICAL_X_POSITION(POS) (POS)
#define LOGICAL_Y_POSITION(POS) (POS)
#define RAW_X_POSITION(POS) (POS)
#define RAW_Y_POSITION(POS) (POS)
#endif
#define LOGICAL_Z_POSITION(POS) LOGICAL_POSITION(POS, Z_AXIS)
#define RAW_Z_POSITION(POS) RAW_POSITION(POS, Z_AXIS)
#define RAW_CURRENT_POSITION(A) RAW_##A##_POSITION(current_position[A##_AXIS])
// Hotend Offsets
#if HOTENDS > 1
extern float hotend_offset[XYZ][HOTENDS];
#endif
// Software Endstops
extern float soft_endstop_min[XYZ], soft_endstop_max[XYZ];
#if HAS_SOFTWARE_ENDSTOPS
extern bool soft_endstops_enabled;
void clamp_to_software_endstops(float target[XYZ]);
#else
#define soft_endstops_enabled false
#define clamp_to_software_endstops(x) NOOP
#endif
#if HAS_WORKSPACE_OFFSET || ENABLED(DUAL_X_CARRIAGE)
void update_software_endstops(const AxisEnum axis);
#endif
#if IS_KINEMATIC
extern float delta[ABC];
void inverse_kinematics(const float logical[XYZ]);
#endif
#if ENABLED(DELTA)
extern float endstop_adj[ABC],
delta_radius,
delta_diagonal_rod,
delta_calibration_radius,
delta_segments_per_second,
delta_tower_angle_trim[2],
delta_clip_start_height;
void recalc_delta_settings(float radius, float diagonal_rod);
#elif IS_SCARA
void forward_kinematics_SCARA(const float &a, const float &b);
#endif
#if ENABLED(AUTO_BED_LEVELING_BILINEAR)
extern int bilinear_grid_spacing[2], bilinear_start[2];
extern float bilinear_grid_factor[2],
z_values[GRID_MAX_POINTS_X][GRID_MAX_POINTS_Y];
float bilinear_z_offset(const float logical[XYZ]);
#endif
#if ENABLED(AUTO_BED_LEVELING_UBL)
typedef struct { double A, B, D; } linear_fit;
linear_fit* lsf_linear_fit(double x[], double y[], double z[], const int);
#endif
#if HAS_LEVELING
bool leveling_is_valid();
bool leveling_is_active();
void set_bed_leveling_enabled(const bool enable=true);
void reset_bed_level();
#endif
#if ENABLED(ENABLE_LEVELING_FADE_HEIGHT)
void set_z_fade_height(const float zfh);
#endif
#if ENABLED(Z_DUAL_ENDSTOPS)
extern float z_endstop_adj;
#endif
#if HAS_BED_PROBE
extern float zprobe_zoffset;
void refresh_zprobe_zoffset(const bool no_babystep=false);
#define DEPLOY_PROBE() set_probe_deployed(true)
#define STOW_PROBE() set_probe_deployed(false)
#else
#define DEPLOY_PROBE()
#define STOW_PROBE()
#endif
#if ENABLED(HOST_KEEPALIVE_FEATURE)
extern MarlinBusyState busy_state;
#define KEEPALIVE_STATE(n) do{ busy_state = n; }while(0)
#else
#define KEEPALIVE_STATE(n) NOOP
#endif
#if FAN_COUNT > 0
extern int16_t fanSpeeds[FAN_COUNT];
#if ENABLED(PROBING_FANS_OFF)
extern bool fans_paused;
extern int16_t paused_fanSpeeds[FAN_COUNT];
#endif
#endif
#if ENABLED(BARICUDA)
extern int baricuda_valve_pressure;
extern int baricuda_e_to_p_pressure;
#endif
#if ENABLED(FILAMENT_WIDTH_SENSOR)
extern bool filament_sensor; // Flag that filament sensor readings should control extrusion
extern float filament_width_nominal, // Theoretical filament diameter i.e., 3.00 or 1.75
filament_width_meas; // Measured filament diameter
extern int8_t measurement_delay[]; // Ring buffer to delay measurement
extern int filwidth_delay_index[2]; // Ring buffer indexes. Used by planner, temperature, and main code
extern int meas_delay_cm; // Delay distance
#endif
#if ENABLED(ADVANCED_PAUSE_FEATURE)
extern AdvancedPauseMenuResponse advanced_pause_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();
/**
* Blocking movement and shorthand functions
*/
void do_blocking_move_to(const float &x, const float &y, const float &z, const float &fr_mm_s=0.0);
void do_blocking_move_to_x(const float &x, const float &fr_mm_s=0.0);
void do_blocking_move_to_z(const float &z, const float &fr_mm_s=0.0);
void do_blocking_move_to_xy(const float &x, const float &y, const float &fr_mm_s=0.0);
#if ENABLED(Z_PROBE_ALLEN_KEY) || ENABLED(Z_PROBE_SLED) || HAS_PROBING_PROCEDURE || HOTENDS > 1 || ENABLED(NOZZLE_CLEAN_FEATURE) || ENABLED(NOZZLE_PARK_FEATURE)
bool axis_unhomed_error(const bool x=true, const bool y=true, const bool z=true);
#endif
/**
* position_is_reachable family of functions
*/
#if IS_KINEMATIC // (DELTA or SCARA)
#if IS_SCARA
extern const float L1, L2;
#endif
inline bool position_is_reachable_raw_xy(const float &rx, const float &ry) {
#if ENABLED(DELTA)
return HYPOT2(rx, ry) <= sq(DELTA_PRINTABLE_RADIUS);
#elif IS_SCARA
#if MIDDLE_DEAD_ZONE_R > 0
const float R2 = HYPOT2(rx - SCARA_OFFSET_X, ry - SCARA_OFFSET_Y);
return R2 >= sq(float(MIDDLE_DEAD_ZONE_R)) && R2 <= sq(L1 + L2);
#else
return HYPOT2(rx - SCARA_OFFSET_X, ry - SCARA_OFFSET_Y) <= sq(L1 + L2);
#endif
#else // CARTESIAN
// To be migrated from MakerArm branch in future
#endif
}
inline bool position_is_reachable_by_probe_raw_xy(const float &rx, const float &ry) {
// Both the nozzle and the probe must be able to reach the point.
// This won't work on SCARA since the probe offset rotates with the arm.
return position_is_reachable_raw_xy(rx, ry)
&& position_is_reachable_raw_xy(rx - X_PROBE_OFFSET_FROM_EXTRUDER, ry - Y_PROBE_OFFSET_FROM_EXTRUDER);
}
#else // CARTESIAN
inline bool position_is_reachable_raw_xy(const float &rx, const float &ry) {
// Add 0.001 margin to deal with float imprecision
return WITHIN(rx, X_MIN_POS - 0.001, X_MAX_POS + 0.001)
&& WITHIN(ry, Y_MIN_POS - 0.001, Y_MAX_POS + 0.001);
}
inline bool position_is_reachable_by_probe_raw_xy(const float &rx, const float &ry) {
// Add 0.001 margin to deal with float imprecision
return WITHIN(rx, MIN_PROBE_X - 0.001, MAX_PROBE_X + 0.001)
&& WITHIN(ry, MIN_PROBE_Y - 0.001, MAX_PROBE_Y + 0.001);
}
#endif // CARTESIAN
FORCE_INLINE bool position_is_reachable_by_probe_xy(const float &lx, const float &ly) {
return position_is_reachable_by_probe_raw_xy(RAW_X_POSITION(lx), RAW_Y_POSITION(ly));
}
FORCE_INLINE bool position_is_reachable_xy(const float &lx, const float &ly) {
return position_is_reachable_raw_xy(RAW_X_POSITION(lx), RAW_Y_POSITION(ly));
}
#endif // MARLIN_H

View File

@@ -1,72 +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
*/
Marlin Firmware
#include "MarlinConfig.h"
(c) 2011-2018 MarlinFirmware
Portions of Marlin are (c) by their respective authors.
All code complies with GPLv2 and/or GPLv3
#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
================================================================================
#if HAS_DIGIPOTSS
#include <SPI.h>
#endif
Greetings! Thank you for choosing Marlin 2 as your 3D printer firmware.
#if ENABLED(DIGIPOT_I2C)
#include <Wire.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(HAVE_TMCDRIVER)
#include <SPI.h>
#include <TMC26XStepper.h>
#endif
Before diving in, we recommend the following essential links:
#if ENABLED(HAVE_TMC2130)
#include <SPI.h>
#include <TMC2130Stepper.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.
*/

View File

@@ -1,516 +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 "Marlin.h"
// Disable HardwareSerial.cpp to support chips without a UART (Attiny, etc.)
#if !defined(USBCON) && (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
#if ENABLED(EMERGENCY_PARSER)
#include "stepper.h"
#include "language.h"
// 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(const 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_user = 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 // EMERGENCY_PARSER
FORCE_INLINE void store_char(unsigned char c) {
CRITICAL_SECTION_START;
const uint8_t h = rx_buffer.head,
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
const uint8_t t = tx_buffer.tail,
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);
}
}
#ifdef M_USARTx_UDRE_vect
ISR(M_USARTx_UDRE_vect) {
_tx_udr_empty_irq();
}
#endif
#endif // TX_BUFFER_SIZE
#ifdef M_USARTx_RX_vect
ISR(M_USARTx_RX_vect) {
const unsigned char c = M_UDRx;
store_char(c);
}
#endif
// Public Methods
void MarlinSerial::begin(const 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)) {
const uint8_t c = M_UDRx;
store_char(c);
}
}
int MarlinSerial::peek(void) {
CRITICAL_SECTION_START;
const int v = rx_buffer.head == rx_buffer.tail ? -1 : rx_buffer.buffer[rx_buffer.tail];
CRITICAL_SECTION_END;
return v;
}
int MarlinSerial::read(void) {
int v;
CRITICAL_SECTION_START;
const 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;
const uint8_t h = rx_buffer.head,
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;
const uint8_t h = tx_buffer.head,
t = tx_buffer.tail;
CRITICAL_SECTION_END;
return (uint8_t)(TX_BUFFER_SIZE + h - t) & (TX_BUFFER_SIZE - 1);
}
void MarlinSerial::write(const 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;
}
const 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) {
if (n) {
unsigned char buf[8 * sizeof(long)]; // Enough space for base 2
int8_t i = 0;
while (n) {
buf[i++] = n % base;
n /= base;
}
while (i--)
print((char)(buf[i] + (buf[i] < 10 ? '0' : 'A' - 10)));
}
else
print('0');
}
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 *= 0.1;
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) {
print('.');
// Extract digits from the remainder one at a time
while (digits--) {
remainder *= 10.0;
int toPrint = int(remainder);
print(toPrint);
remainder -= toPrint;
}
}
}
// Preinstantiate
MarlinSerial customizedSerial;
#endif // !USBCON && (UBRRH || UBRR0H || UBRR1H || UBRR2H || UBRR3H)
// For AT90USB targets use the UART for BT interfacing
#if defined(USBCON) && ENABLED(BLUETOOTH)
HardwareSerial bluetoothSerial;
#endif

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,729 +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 ENABLED(USE_WATCHDOG)
#include "watchdog.h"
#endif
//------------------------------------------------------------------------------
#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;
// If init takes more than 4s it could trigger
// watchdog leading to a reboot loop.
#if ENABLED(USE_WATCHDOG)
watchdog_reset();
#endif
// set pin modes
pinMode(chipSelectPin_, OUTPUT);
chipSelectHigh();
SET_INPUT(SPI_MISO_PIN);
SET_OUTPUT(SPI_MOSI_PIN);
SET_OUTPUT(SPI_SCK_PIN);
#if DISABLED(SOFTWARE_SPI)
// SS must be in output mode even it is not chip select
SET_OUTPUT(SS_PIN);
// set SS high - may be chip select for another SPI device
#if SET_SPI_SS_HIGH
WRITE(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

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

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

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

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

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

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

View File

@@ -1,101 +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_CHEAPTRONIC_V2 21 // Cheaptronic v2.0
#define BOARD_SETHI 20 // Sethi 3D_1
#define BOARD_MIGHTYBOARD_REVE 200 // Makerbot Mightyboard Revision E
#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_MEGATRONICS_31 704 // Megatronics v3.1
#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_SCOOVO_X9H 303 // abee Scoovo X9H
#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 MB(board) (MOTHERBOARD==BOARD_##board)
#endif // __BOARDS_H

File diff suppressed because it is too large Load Diff

View File

@@ -1,82 +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 CONFIGURATION_STORE_H
#define CONFIGURATION_STORE_H
#include "MarlinConfig.h"
class MarlinSettings {
public:
MarlinSettings() { }
static void reset();
static bool save();
#if ENABLED(EEPROM_SETTINGS)
static bool load();
#if ENABLED(AUTO_BED_LEVELING_UBL) // Eventually make these available if any leveling system
// That can store is enabled
FORCE_INLINE static int get_start_of_meshes() { return meshes_begin; }
FORCE_INLINE static int get_end_of_meshes() { return meshes_end; }
static int calc_num_meshes();
static void store_mesh(int8_t slot);
static void load_mesh(int8_t slot, void *into = 0);
//static void delete_mesh(); // necessary if we have a MAT
//static void defrag_meshes(); // "
#endif
#else
FORCE_INLINE
static bool load() { reset(); report(); return true; }
#endif
#if DISABLED(DISABLE_M503)
static void report(bool forReplay=false);
#else
FORCE_INLINE
static void report(bool forReplay=false) { }
#endif
private:
static void postprocess();
#if ENABLED(EEPROM_SETTINGS)
static bool eeprom_error;
#if ENABLED(AUTO_BED_LEVELING_UBL) // Eventually make these available if any leveling system
// That can store is enabled
static int meshes_begin;
const static int meshes_end = E2END - 128; // 128 is a placeholder for the size of the MAT; the MAT will always
// live at the very end of the eeprom
#endif
static void write_data(int &pos, const uint8_t *value, uint16_t size, uint16_t *crc);
static void read_data(int &pos, uint8_t *value, uint16_t size, uint16_t *crc);
#endif
};
extern MarlinSettings settings;
#endif // CONFIGURATION_STORE_H

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/>.
*
*/
#include "MarlinConfig.h"
#if ENABLED(DIGIPOT_I2C) && ENABLED(DIGIPOT_MCP4018)
#include "Stream.h"
#include "utility/twi.h"
#include <SlowSoftI2CMaster.h> //https://github.com/stawel/SlowSoftI2CMaster
// Settings for the I2C based DIGIPOT (MCP4018) based on WT150
#define DIGIPOT_I2C_ADDRESS 0x2F
#define DIGIPOT_A4988_Rsx 0.250
#define DIGIPOT_A4988_Vrefmax 5.0
#define DIGIPOT_A4988_MAX_VALUE 127
#define DIGIPOT_A4988_Itripmax(Vref) ((Vref)/(8.0*DIGIPOT_A4988_Rsx))
#define DIGIPOT_A4988_FACTOR (DIGIPOT_A4988_MAX_VALUE/DIGIPOT_A4988_Itripmax(DIGIPOT_A4988_Vrefmax))
//TODO: MAX_CURRENT -0.5A ?? (currently set to 2A, max possible current 2.5A)
#define DIGIPOT_A4988_MAX_CURRENT (DIGIPOT_A4988_Itripmax(DIGIPOT_A4988_Vrefmax) - 0.5)
static byte current_to_wiper(float current) {
return byte(ceil(float((DIGIPOT_A4988_FACTOR * current))));
}
static uint8_t sda_pins[DIGIPOT_I2C_NUM_CHANNELS] = {
DIGIPOTS_I2C_SDA_X,
DIGIPOTS_I2C_SDA_Y,
DIGIPOTS_I2C_SDA_Z,
DIGIPOTS_I2C_SDA_E0,
DIGIPOTS_I2C_SDA_E1,
};
static SlowSoftI2CMaster pots[DIGIPOT_I2C_NUM_CHANNELS] = {
SlowSoftI2CMaster { sda_pins[0], DIGIPOTS_I2C_SCL },
SlowSoftI2CMaster { sda_pins[1], DIGIPOTS_I2C_SCL },
SlowSoftI2CMaster { sda_pins[2], DIGIPOTS_I2C_SCL },
SlowSoftI2CMaster { sda_pins[3], DIGIPOTS_I2C_SCL },
SlowSoftI2CMaster { sda_pins[4], DIGIPOTS_I2C_SCL }
};
static void i2c_send(int channel, byte v) {
if (WITHIN(channel, 0, DIGIPOT_I2C_NUM_CHANNELS - 1)) {
pots[channel].i2c_start(((DIGIPOT_I2C_ADDRESS) << 1) | I2C_WRITE);
pots[channel].i2c_write(v);
pots[channel].i2c_stop();
}
}
// This is for the MCP4018 I2C based digipot
void digipot_i2c_set_current(int channel, float current) {
current = min(max(current, 0.0f), float(DIGIPOT_A4988_MAX_CURRENT));
i2c_send(channel, current_to_wiper(current));
}
void digipot_i2c_init() {
const float digipot_motor_current[] = DIGIPOT_I2C_MOTOR_CURRENTS;
for (uint8_t i = 0; i < DIGIPOT_I2C_NUM_CHANNELS; i++)
pots[i].i2c_init();
// setup initial currents as defined in Configuration_adv.h
for (uint8_t i = 0; i < COUNT(digipot_motor_current); i++)
digipot_i2c_set_current(i, digipot_motor_current[i]);
}
#endif // DIGIPOT_I2C && DIGIPOT_MCP4018

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

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
};

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
};

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
};

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
};

View File

@@ -1,184 +0,0 @@
/*
Fontname: ISO10646-1-PL
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=-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_1_PL_5x7[2732] U8G_FONT_SECTION(".progmem.ISO10646_1_PL_5x7") = {
0,6,9,0,254,7,1,146,3,33,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,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,5,9,9,6,0,
254,112,136,136,248,136,136,136,16,32,5,7,7,6,0,254,
112,8,120,136,120,16,32,5,8,8,6,0,0,16,32,112,
136,128,128,136,112,5,7,7,6,0,0,16,32,112,128,128,
136,112,5,9,9,6,0,254,248,128,128,240,128,128,248,8,
16,5,7,7,6,0,254,112,136,248,128,112,16,32,5,7,
7,6,0,0,128,144,160,192,128,128,248,5,7,7,6,0,
0,96,40,48,96,160,32,112,5,8,8,6,0,0,16,168,
136,200,168,152,136,136,5,8,8,6,0,0,8,16,0,176,
200,136,136,136,5,8,8,6,0,0,16,32,112,136,136,136,
136,112,5,8,8,6,0,0,16,32,0,112,136,136,136,112,
5,8,8,6,0,0,16,120,128,128,112,8,8,240,5,8,
8,6,0,0,16,32,0,112,128,112,8,240,5,8,8,6,
0,0,32,248,8,16,32,64,128,248,5,8,8,6,0,0,
16,32,0,248,16,32,64,248,5,7,7,6,0,0,248,8,
16,248,64,128,248,5,8,8,6,0,0,48,48,0,248,16,
32,64,248,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};

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/>.
*
*/
/*
Fontname: ISO10646-1-tr
Copyright: 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_TR[2591] U8G_SECTION(".progmem.ISO10646_TR") = {
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,9,9,6,0,255,80,32,112,136,128,184,136,136,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,1,7,7,6,2,0,128,0,128,128,128,
128,128,5,9,9,6,0,255,120,128,128,112,8,8,240,32,
96,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,7,
7,6,0,255,112,128,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,8,8,6,0,255,80,
32,112,136,136,120,8,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,1,5,5,6,2,0,128,
128,128,128,128,5,7,7,6,0,255,112,128,112,8,240,32,
96,5,8,8,6,0,255,80,0,136,136,136,120,8,112};

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
};

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
};

View File

@@ -1,205 +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= 9 x= 2 y= 6 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_Greek_5x7[2715] U8G_SECTION(".progmem.ISO10646_Greek_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,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,9,9,6,0,
255,32,64,0,112,136,136,136,136,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,6,6,6,0,255,96,144,240,144,224,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,8,8,6,0,255,128,112,64,128,128,112,8,112,5,
6,6,6,0,255,184,200,136,136,136,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,6,6,6,0,255,136,136,
136,216,168,128,5,5,5,6,0,0,136,136,80,96,32,5,
9,9,6,0,255,128,224,128,112,32,64,240,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,6,6,6,0,255,112,136,136,200,176,128,
5,7,7,6,0,255,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,7,
7,6,0,255,32,168,168,168,112,32,32,5,6,6,6,0,
255,136,80,32,32,80,136,5,6,6,6,0,255,168,168,168,
168,112,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,
255,8,8,112,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,7,7,6,0,255,168,168,168,168,88,8,112,5,6,6,
6,0,255,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,255,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,6,6,6,0,255,112,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,6,6,
6,0,255,136,216,168,136,136,128,5,8,8,6,0,255,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};

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
};

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
};

View File

@@ -1,458 +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
#if ENABLED(ENDSTOPPULLUP_XMIN)
SET_INPUT_PULLUP(X_MIN_PIN);
#else
SET_INPUT(X_MIN_PIN);
#endif
#endif
#if HAS_Y_MIN
#if ENABLED(ENDSTOPPULLUP_YMIN)
SET_INPUT_PULLUP(Y_MIN_PIN);
#else
SET_INPUT(Y_MIN_PIN);
#endif
#endif
#if HAS_Z_MIN
#if ENABLED(ENDSTOPPULLUP_ZMIN)
SET_INPUT_PULLUP(Z_MIN_PIN);
#else
SET_INPUT(Z_MIN_PIN);
#endif
#endif
#if HAS_Z2_MIN
#if ENABLED(ENDSTOPPULLUP_ZMIN)
SET_INPUT_PULLUP(Z2_MIN_PIN);
#else
SET_INPUT(Z2_MIN_PIN);
#endif
#endif
#if HAS_X_MAX
#if ENABLED(ENDSTOPPULLUP_XMAX)
SET_INPUT_PULLUP(X_MAX_PIN);
#else
SET_INPUT(X_MAX_PIN);
#endif
#endif
#if HAS_Y_MAX
#if ENABLED(ENDSTOPPULLUP_YMAX)
SET_INPUT_PULLUP(Y_MAX_PIN);
#else
SET_INPUT(Y_MAX_PIN);
#endif
#endif
#if HAS_Z_MAX
#if ENABLED(ENDSTOPPULLUP_ZMAX)
SET_INPUT_PULLUP(Z_MAX_PIN);
#else
SET_INPUT(Z_MAX_PIN);
#endif
#endif
#if HAS_Z2_MAX
#if ENABLED(ENDSTOPPULLUP_ZMAX)
SET_INPUT_PULLUP(Z2_MAX_PIN);
#else
SET_INPUT(Z2_MAX_PIN);
#endif
#endif
#if ENABLED(Z_MIN_PROBE_ENDSTOP)
#if ENABLED(ENDSTOPPULLUP_ZMIN_PROBE)
SET_INPUT_PULLUP(Z_MIN_PROBE_PIN);
#else
SET_INPUT(Z_MIN_PROBE_PIN);
#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)
#define ENDSTOP_HIT_TEST_X() _ENDSTOP_HIT_TEST(X,'X')
#define ENDSTOP_HIT_TEST_Y() _ENDSTOP_HIT_TEST(Y,'Y')
#define ENDSTOP_HIT_TEST_Z() _ENDSTOP_HIT_TEST(Z,'Z')
SERIAL_ECHO_START;
SERIAL_ECHOPGM(MSG_ENDSTOPS_HIT);
ENDSTOP_HIT_TEST_X();
ENDSTOP_HIT_TEST_Y();
ENDSTOP_HIT_TEST_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)
lcd_status_printf_P(0, PSTR(MSG_LCD_ENDSTOPS " %c %c %c %c"), chrX, chrY, chrZ, chrP);
#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_Z2_MIN
SERIAL_PROTOCOLPGM(MSG_Z2_MIN);
SERIAL_PROTOCOLLN(((READ(Z2_MIN_PIN)^Z2_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 ENABLED(Z_MIN_PROBE_ENDSTOP)
SERIAL_PROTOCOLPGM(MSG_Z_PROBE);
SERIAL_PROTOCOLLN(((READ(Z_MIN_PROBE_PIN)^Z_MIN_PROBE_ENDSTOP_INVERTING) ? MSG_ENDSTOP_HIT : MSG_ENDSTOP_OPEN));
#endif
#if ENABLED(FILAMENT_RUNOUT_SENSOR)
SERIAL_PROTOCOLPGM(MSG_FILAMENT_RUNOUT_SENSOR);
SERIAL_PROTOCOLLN(((READ(FIL_RUNOUT_PIN)^FIL_RUNOUT_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(const EndstopEnum es1, const EndstopEnum es2) {
byte z_test = TEST_ENDSTOP(es1) | (TEST_ENDSTOP(es2) << 1); // bit 0 for Z, bit 1 for Z2
if (z_test && stepper.current_block->steps[Z_AXIS] > 0) {
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(AXIS, MINMAX) AXIS ##_## MINMAX
#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))
// 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 SRC_BIT to DST_BIT in DST
#define COPY_BIT(DST, SRC_BIT, DST_BIT) SET_BIT(DST, DST_BIT, TEST(DST, SRC_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(G38_PROBE_TARGET) && PIN_EXISTS(Z_MIN_PROBE) && !(CORE_IS_XY || CORE_IS_XZ)
// If G38 command is active check Z_MIN_PROBE for ALL movement
if (G38_move) {
UPDATE_ENDSTOP_BIT(Z, MIN_PROBE);
if (TEST_ENDSTOP(_ENDSTOP(Z, MIN_PROBE))) {
if (stepper.current_block->steps[_AXIS(X)] > 0) { _ENDSTOP_HIT(X); stepper.endstop_triggered(_AXIS(X)); }
else if (stepper.current_block->steps[_AXIS(Y)] > 0) { _ENDSTOP_HIT(Y); stepper.endstop_triggered(_AXIS(Y)); }
else if (stepper.current_block->steps[_AXIS(Z)] > 0) { _ENDSTOP_HIT(Z); stepper.endstop_triggered(_AXIS(Z)); }
G38_endstop_hit = true;
}
}
#endif
/**
* Define conditions for checking endstops
*/
#if IS_CORE
#define S_(N) stepper.current_block->steps[CORE_AXIS_##N]
#define D_(N) stepper.motor_direction(CORE_AXIS_##N)
#endif
#if CORE_IS_XY || CORE_IS_XZ
/**
* Head direction in -X axis for CoreXY and CoreXZ bots.
*
* If steps differ, both axes are moving.
* If DeltaA == -DeltaB, the movement is only in the 2nd axis (Y or Z, handled below)
* If DeltaA == DeltaB, the movement is only in the 1st axis (X)
*/
#if ENABLED(COREXY) || ENABLED(COREXZ)
#define X_CMP ==
#else
#define X_CMP !=
#endif
#define X_MOVE_TEST ( S_(1) != S_(2) || (S_(1) > 0 && D_(1) X_CMP D_(2)) )
#define X_AXIS_HEAD X_HEAD
#else
#define X_MOVE_TEST stepper.current_block->steps[X_AXIS] > 0
#define X_AXIS_HEAD X_AXIS
#endif
#if CORE_IS_XY || CORE_IS_YZ
/**
* Head direction in -Y axis for CoreXY / CoreYZ bots.
*
* If steps differ, both axes are moving
* If DeltaA == DeltaB, the movement is only in the 1st axis (X or Y)
* If DeltaA == -DeltaB, the movement is only in the 2nd axis (Y or Z)
*/
#if ENABLED(COREYX) || ENABLED(COREYZ)
#define Y_CMP ==
#else
#define Y_CMP !=
#endif
#define Y_MOVE_TEST ( S_(1) != S_(2) || (S_(1) > 0 && D_(1) Y_CMP D_(2)) )
#define Y_AXIS_HEAD Y_HEAD
#else
#define Y_MOVE_TEST stepper.current_block->steps[Y_AXIS] > 0
#define Y_AXIS_HEAD Y_AXIS
#endif
#if CORE_IS_XZ || CORE_IS_YZ
/**
* Head direction in -Z axis for CoreXZ or CoreYZ bots.
*
* If steps differ, both axes are moving
* If DeltaA == DeltaB, the movement is only in the 1st axis (X or Y, already handled above)
* If DeltaA == -DeltaB, the movement is only in the 2nd axis (Z)
*/
#if ENABLED(COREZX) || ENABLED(COREZY)
#define Z_CMP ==
#else
#define Z_CMP !=
#endif
#define Z_MOVE_TEST ( S_(1) != S_(2) || (S_(1) > 0 && D_(1) Z_CMP D_(2)) )
#define Z_AXIS_HEAD Z_HEAD
#else
#define Z_MOVE_TEST stepper.current_block->steps[Z_AXIS] > 0
#define Z_AXIS_HEAD Z_AXIS
#endif
// With Dual X, endstops are only checked in the homing direction for the active extruder
#if ENABLED(DUAL_X_CARRIAGE)
#define E0_ACTIVE stepper.current_block->active_extruder == 0
#define X_MIN_TEST ((X_HOME_DIR < 0 && E0_ACTIVE) || (X2_HOME_DIR < 0 && !E0_ACTIVE))
#define X_MAX_TEST ((X_HOME_DIR > 0 && E0_ACTIVE) || (X2_HOME_DIR > 0 && !E0_ACTIVE))
#else
#define X_MIN_TEST true
#define X_MAX_TEST true
#endif
/**
* Check and update endstops according to conditions
*/
if (X_MOVE_TEST) {
if (stepper.motor_direction(X_AXIS_HEAD)) {
if (X_MIN_TEST) { // -direction
#if HAS_X_MIN
UPDATE_ENDSTOP(X, MIN);
#endif
}
}
else if (X_MAX_TEST) { // +direction
#if HAS_X_MAX
UPDATE_ENDSTOP(X, MAX);
#endif
}
}
if (Y_MOVE_TEST) {
if (stepper.motor_direction(Y_AXIS_HEAD)) { // -direction
#if HAS_Y_MIN
UPDATE_ENDSTOP(Y, MIN);
#endif
}
else { // +direction
#if HAS_Y_MAX
UPDATE_ENDSTOP(Y, MAX);
#endif
}
}
if (Z_MOVE_TEST) {
if (stepper.motor_direction(Z_AXIS_HEAD)) { // Z -direction. Gantry down, bed up.
#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 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
// When closing the gap check the enabled probe
#if ENABLED(Z_MIN_PROBE_ENDSTOP)
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. Gantry up, bed down.
#if HAS_Z_MAX
// Check both Z dual endstops
#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);
// If this pin is not hijacked for the bed probe
// then it belongs to the Z endstop
#elif DISABLED(Z_MIN_PROBE_ENDSTOP) || Z_MAX_PIN != Z_MIN_PROBE_PIN
UPDATE_ENDSTOP(Z, MAX);
#endif // !Z_MIN_PROBE_PIN...
#endif // Z_MAX_PIN
}
}
old_endstop_bits = current_endstop_bits;
} // Endstops::update()

View File

@@ -1,102 +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(const EndstopEnum es1, const EndstopEnum es2);
#endif
};
extern Endstops endstops;
#if HAS_BED_PROBE
#define ENDSTOPS_ENABLED (endstops.enabled || endstops.z_probe_enabled)
#else
#define ENDSTOPS_ENABLED endstops.enabled
#endif
#endif // ENDSTOPS_H

View File

@@ -1,172 +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__
#include "MarlinConfig.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,
ALL_AXES = 100
};
#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++)
#define LOOP_XYZE_N(VAR) for (uint8_t VAR=X_AXIS; VAR<XYZE_N; 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
DEBUG_MESH_ADJUST = _BV(6), ///< UBL bed leveling
DEBUG_ALL = 0xFF
};
enum EndstopEnum {
X_MIN,
Y_MIN,
Z_MIN,
Z_MIN_PROBE,
X_MAX,
Y_MAX,
Z_MAX,
Z2_MIN,
Z2_MAX
};
#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(ADVANCED_PAUSE_FEATURE)
enum AdvancedPauseMenuResponse {
ADVANCED_PAUSE_RESPONSE_WAIT_FOR,
ADVANCED_PAUSE_RESPONSE_EXTRUDE_MORE,
ADVANCED_PAUSE_RESPONSE_RESUME_PRINT
};
#if ENABLED(ULTIPANEL)
enum AdvancedPauseMessage {
ADVANCED_PAUSE_MESSAGE_INIT,
ADVANCED_PAUSE_MESSAGE_UNLOAD,
ADVANCED_PAUSE_MESSAGE_INSERT,
ADVANCED_PAUSE_MESSAGE_LOAD,
ADVANCED_PAUSE_MESSAGE_EXTRUDE,
ADVANCED_PAUSE_MESSAGE_OPTION,
ADVANCED_PAUSE_MESSAGE_RESUME,
ADVANCED_PAUSE_MESSAGE_STATUS,
ADVANCED_PAUSE_MESSAGE_CLICK_TO_HEAT_NOZZLE,
ADVANCED_PAUSE_MESSAGE_WAIT_FOR_NOZZLES_TO_HEAT
};
#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
/**
* 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
};
#if ENABLED(DUAL_X_CARRIAGE) || ENABLED(DUAL_NOZZLE_DUPLICATION_MODE)
enum DualXMode {
DXC_FULL_CONTROL_MODE,
DXC_AUTO_PARK_MODE,
DXC_DUPLICATION_MODE
};
#endif
#endif // __ENUM_H__

File diff suppressed because it is too large Load Diff

View File

@@ -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

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,15 +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`
* 2016/12/13 - Configuration updated.

View File

@@ -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

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

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

File diff suppressed because it is too large Load Diff

View File

@@ -1,108 +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
*/
//custom screen can be up to 112 wide and 64 high
#include <avr/pgmspace.h>
#define CUSTOM_BOOTSCREEN_TIMEOUT 2500
#define CUSTOM_BOOTSCREEN_BMPWIDTH 112
#define CUSTOM_BOOTSCREEN_BMPHEIGHT 64
// Width: 112, Height: 64
const unsigned char custom_start_bmp[896] PROGMEM = {
0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
0x80, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
0x80, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
0x80, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
0x80, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
0x80, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
0x80, 0x00, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
0x80, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
0x80, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x01, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x01,
0x80, 0x00, 0x00, 0x01, 0xf9, 0x00, 0x00, 0x03, 0xf8, 0x00, 0x00, 0x01, 0xc0, 0x01,
0x80, 0x00, 0x00, 0x06, 0x4d, 0x00, 0x00, 0x07, 0x38, 0x00, 0x00, 0x01, 0xc0, 0x01,
0x80, 0x00, 0x00, 0x0c, 0x26, 0x00, 0x0e, 0xe7, 0x39, 0xd3, 0xe1, 0xf3, 0xe7, 0xc1,
0x80, 0x00, 0x00, 0x19, 0x12, 0x00, 0x0f, 0xe7, 0x39, 0xf7, 0xf3, 0xfb, 0xef, 0xe1,
0x80, 0x00, 0x00, 0x37, 0xce, 0x00, 0x0e, 0xe7, 0x01, 0xf7, 0x73, 0xb9, 0xce, 0xe1,
0x80, 0x00, 0x00, 0x64, 0x66, 0x00, 0x0e, 0xe7, 0x01, 0xc7, 0xf3, 0xb9, 0xcf, 0xe1,
0x80, 0x00, 0x00, 0x4b, 0xa6, 0x00, 0x0e, 0xe7, 0x39, 0xc7, 0xf0, 0xf9, 0xcf, 0xe1,
0x80, 0x00, 0x00, 0xca, 0xb4, 0x00, 0x0f, 0xe7, 0x39, 0xc7, 0x03, 0xf9, 0xce, 0x01,
0x80, 0x00, 0x00, 0xcd, 0xa4, 0x00, 0x06, 0xe7, 0x39, 0xc7, 0x73, 0xb9, 0xce, 0xe1,
0x80, 0x00, 0x03, 0xa6, 0x6c, 0x00, 0x00, 0xe7, 0x39, 0xc7, 0x73, 0xb9, 0xce, 0xe1,
0x80, 0x00, 0xff, 0x13, 0xd8, 0x00, 0x0e, 0xe3, 0xf1, 0xc7, 0xf3, 0xf9, 0xef, 0xe1,
0x80, 0x01, 0x21, 0x88, 0x18, 0x00, 0x0f, 0xe1, 0xe1, 0xc3, 0xe1, 0xb9, 0xe7, 0xc1,
0x80, 0x06, 0x61, 0x16, 0x30, 0x00, 0x07, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
0x80, 0x04, 0x41, 0x23, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
0x80, 0x04, 0xfe, 0x41, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
0x80, 0x0b, 0x86, 0x8f, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x1f, 0x80, 0x00, 0x00, 0x01,
0x80, 0x1e, 0x01, 0x9a, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x1f, 0x80, 0x00, 0x00, 0x01,
0x80, 0x1c, 0x07, 0x22, 0x00, 0x00, 0x07, 0xbc, 0x3f, 0x9f, 0x81, 0xf8, 0xf1, 0xe1,
0x80, 0x08, 0x1f, 0xe2, 0x00, 0x00, 0x0f, 0xfc, 0x3f, 0xbf, 0x87, 0xfe, 0x71, 0xc1,
0x80, 0x00, 0x33, 0x62, 0x00, 0x00, 0x0f, 0x3c, 0x3d, 0xb7, 0x87, 0x9e, 0x7b, 0xc1,
0x80, 0x00, 0xc2, 0x22, 0x00, 0x00, 0x0f, 0x3c, 0x3d, 0xb7, 0x87, 0x9e, 0x7b, 0xc1,
0x80, 0x00, 0xc2, 0x3e, 0x00, 0x00, 0x0f, 0x3c, 0x3d, 0xf7, 0x80, 0x7e, 0x3b, 0x81,
0x80, 0x01, 0xe6, 0x1e, 0x00, 0x00, 0x0f, 0x3c, 0x3d, 0xf7, 0x83, 0xfe, 0x3f, 0x81,
0x80, 0x01, 0x3c, 0x12, 0x00, 0x00, 0x0f, 0x3c, 0x3d, 0xf7, 0x87, 0x9e, 0x3b, 0x81,
0x80, 0x01, 0x1c, 0x26, 0x00, 0x00, 0x0f, 0xfc, 0x3d, 0xf7, 0x87, 0x9e, 0x7b, 0xc1,
0x80, 0x01, 0x70, 0x64, 0x00, 0x00, 0x07, 0xbc, 0x3c, 0xe7, 0x87, 0x9e, 0x7b, 0xc1,
0x80, 0x03, 0xc0, 0x58, 0x00, 0x00, 0x00, 0x3c, 0x3c, 0xe7, 0x87, 0xfe, 0x71, 0xc1,
0x80, 0x0d, 0x80, 0xf0, 0x00, 0x00, 0x0f, 0x3c, 0x3c, 0xe7, 0x83, 0xde, 0xf1, 0xe1,
0x80, 0x1a, 0x00, 0xe0, 0x00, 0x00, 0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
0x80, 0x26, 0x00, 0x40, 0x00, 0x00, 0x03, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
0x80, 0x4c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
0x80, 0xb2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
0x81, 0x06, 0x00, 0x00, 0x00, 0x00, 0x07, 0x1c, 0x03, 0xc0, 0x20, 0x10, 0x00, 0x01,
0x83, 0x24, 0x00, 0x00, 0x00, 0x00, 0x08, 0x92, 0x02, 0x20, 0x00, 0x10, 0x00, 0x01,
0x02, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x91, 0x02, 0x23, 0x27, 0x39, 0x8c, 0xe1,
0x06, 0x38, 0x00, 0x00, 0x00, 0x00, 0x03, 0x11, 0x03, 0xc2, 0x24, 0x92, 0x49, 0x01,
0x04, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x91, 0x02, 0x02, 0x24, 0x93, 0xc8, 0xc1,
0x0d, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x08, 0x92, 0x02, 0x02, 0x24, 0x92, 0x08, 0x21,
0x08, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x07, 0x1c, 0x02, 0x02, 0x24, 0x99, 0xc9, 0xc1,
0x18, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
0x10, 0x30, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x0c, 0x18, 0x0f, 0xe0, 0x0f, 0x00, 0x01,
0x30, 0x20, 0x00, 0x37, 0x00, 0x00, 0x00, 0x12, 0x24, 0x08, 0x10, 0x09, 0x00, 0x01,
0x20, 0x30, 0x00, 0x6d, 0x80, 0x00, 0x00, 0x12, 0x24, 0x09, 0x88, 0x09, 0x00, 0x01,
0x10, 0x18, 0x1f, 0x60, 0xc0, 0x00, 0x00, 0x12, 0x24, 0x09, 0x48, 0x09, 0x00, 0x01,
0x30, 0x0c, 0x39, 0xe0, 0x60, 0x00, 0x00, 0x12, 0x24, 0x09, 0x90, 0x09, 0x00, 0x01,
0x30, 0x07, 0x90, 0x70, 0x60, 0x00, 0x00, 0x12, 0x24, 0x08, 0x60, 0x09, 0x00, 0x01,
0x10, 0x16, 0xf0, 0x18, 0x20, 0x00, 0x00, 0x12, 0x24, 0x08, 0x10, 0x09, 0x00, 0x01,
0x1a, 0x10, 0x60, 0x08, 0x30, 0x00, 0x00, 0x12, 0x24, 0x09, 0xc8, 0x09, 0x00, 0x01,
0x0b, 0x09, 0x80, 0x00, 0x30, 0x00, 0x00, 0x12, 0x24, 0x09, 0x24, 0x09, 0x00, 0x01,
0x0e, 0x07, 0x80, 0x00, 0x10, 0x00, 0x00, 0x13, 0xe4, 0x89, 0xc4, 0x89, 0xf9, 0x01,
0x06, 0x1e, 0x40, 0x10, 0x10, 0x00, 0x00, 0x10, 0x05, 0xc8, 0x09, 0xc8, 0x0b, 0x81,
0x06, 0x00, 0x40, 0x20, 0x10, 0x00, 0x00, 0x0f, 0xf8, 0x8f, 0xf0, 0x8f, 0xf9, 0x01,
0x03, 0x80, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
0x01, 0xff, 0xff, 0xff, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
};

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

View File

@@ -1,241 +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/>.
*
*/
/**
* Fast I/O Routines
* Use direct port manipulation to save scads of processor time.
* Contributed by Triffid_Hunter. Modified by Kliment and the Marlin team.
*/
#ifndef _FASTIO_ARDUINO_H
#define _FASTIO_ARDUINO_H
#include <avr/io.h>
/**
* Enable this option to use Teensy++ 2.0 assignments for AT90USB processors.
*/
//#define AT90USBxx_TEENSYPP_ASSIGNMENTS
/**
* Include Ports and Functions
*/
#if defined(__AVR_ATmega168__) || defined(__AVR_ATmega328__) || defined(__AVR_ATmega328P__)
#include "fastio_168.h"
#elif defined(__AVR_ATmega644__) || defined(__AVR_ATmega644P__) || defined(__AVR_ATmega644PA__) || defined(__AVR_ATmega1284P__)
#include "fastio_644.h"
#elif defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
#include "fastio_1280.h"
#elif defined(__AVR_AT90USB1287__) || defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB647__)
#ifdef AT90USBxx_TEENSYPP_ASSIGNMENTS
#include "fastio_AT90USB-Teensy.h"
#else
#include "fastio_AT90USB-Marlin.h"
#endif
#elif defined(__AVR_ATmega1281__) || defined(__AVR_ATmega2561__)
#include "fastio_1281.h"
#else
#error "Pins for this chip not defined in Arduino.h! If you have a working pins definition, please contribute!"
#endif
#ifndef _BV
#define _BV(PIN) (1UL << PIN)
#endif
/**
* Magic I/O routines
*
* Now you can simply SET_OUTPUT(PIN); WRITE(PIN, HIGH); WRITE(PIN, LOW);
*
* Why double up on these macros? see http://gcc.gnu.org/onlinedocs/cpp/Stringification.html
*/
#define _READ(IO) ((bool)(DIO ## IO ## _RPORT & _BV(DIO ## IO ## _PIN)))
// On some boards pins > 0x100 are used. These are not converted to atomic actions. A critical section is needed.
#define _WRITE_NC(IO, v) do { if (v) {DIO ## IO ## _WPORT |= _BV(DIO ## IO ## _PIN); } else {DIO ## IO ## _WPORT &= ~_BV(DIO ## IO ## _PIN); }; } while (0)
#define _WRITE_C(IO, v) do { if (v) { \
CRITICAL_SECTION_START; \
{DIO ## IO ## _WPORT |= _BV(DIO ## IO ## _PIN); } \
CRITICAL_SECTION_END; \
} \
else { \
CRITICAL_SECTION_START; \
{DIO ## IO ## _WPORT &= ~_BV(DIO ## IO ## _PIN); } \
CRITICAL_SECTION_END; \
} \
} \
while (0)
#define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)
#define _TOGGLE(IO) do {DIO ## IO ## _RPORT ^= _BV(DIO ## IO ## _PIN); } while (0)
#define _SET_INPUT(IO) do {DIO ## IO ## _DDR &= ~_BV(DIO ## IO ## _PIN); } while (0)
#define _SET_OUTPUT(IO) do {DIO ## IO ## _DDR |= _BV(DIO ## IO ## _PIN); } while (0)
#define _GET_INPUT(IO) ((DIO ## IO ## _DDR & _BV(DIO ## IO ## _PIN)) == 0)
#define _GET_OUTPUT(IO) ((DIO ## IO ## _DDR & _BV(DIO ## IO ## _PIN)) != 0)
#define _GET_TIMER(IO) (DIO ## IO ## _PWM)
#define READ(IO) _READ(IO)
#define WRITE(IO,V) _WRITE(IO,V)
#define TOGGLE(IO) _TOGGLE(IO)
#define SET_INPUT(IO) _SET_INPUT(IO)
#define SET_INPUT_PULLUP(IO) do{ _SET_INPUT(IO); _WRITE(IO, HIGH); }while(0)
#define SET_OUTPUT(IO) _SET_OUTPUT(IO)
#define GET_INPUT(IO) _GET_INPUT(IO)
#define GET_OUTPUT(IO) _GET_OUTPUT(IO)
#define GET_TIMER(IO) _GET_TIMER(IO)
#define OUT_WRITE(IO, v) do{ SET_OUTPUT(IO); WRITE(IO, v); }while(0)
/**
* Timer and Interrupt Control
*/
// Waveform Generation Modes
typedef enum {
WGM_NORMAL, // 0
WGM_PWM_PC_8, // 1
WGM_PWM_PC_9, // 2
WGM_PWM_PC_10, // 3
WGM_CTC_OCRnA, // 4 COM OCnx
WGM_FAST_PWM_8, // 5
WGM_FAST_PWM_9, // 6
WGM_FAST_PWM_10, // 7
WGM_PWM_PC_FC_ICRn, // 8
WGM_PWM_PC_FC_OCRnA, // 9 COM OCnA
WGM_PWM_PC_ICRn, // 10
WGM_PWM_PC_OCRnA, // 11 COM OCnA
WGM_CTC_ICRn, // 12 COM OCnx
WGM_reserved, // 13
WGM_FAST_PWM_ICRn, // 14 COM OCnA
WGM_FAST_PWM_OCRnA // 15 COM OCnA
} WaveGenMode;
// Compare Modes
typedef enum {
COM_NORMAL, // 0
COM_TOGGLE, // 1 Non-PWM: OCnx ... Both PWM (WGM 9,11,14,15): OCnA only ... else NORMAL
COM_CLEAR_SET, // 2 Non-PWM: OCnx ... Fast PWM: OCnx/Bottom ... PF-FC: OCnx Up/Down
COM_SET_CLEAR // 3 Non-PWM: OCnx ... Fast PWM: OCnx/Bottom ... PF-FC: OCnx Up/Down
} CompareMode;
// Clock Sources
typedef enum {
CS_NONE, // 0
CS_PRESCALER_1, // 1
CS_PRESCALER_8, // 2
CS_PRESCALER_64, // 3
CS_PRESCALER_256, // 4
CS_PRESCALER_1024, // 5
CS_EXT_FALLING, // 6
CS_EXT_RISING // 7
} ClockSource;
// Clock Sources (Timer 2 only)
typedef enum {
CS2_NONE, // 0
CS2_PRESCALER_1, // 1
CS2_PRESCALER_8, // 2
CS2_PRESCALER_32, // 3
CS2_PRESCALER_64, // 4
CS2_PRESCALER_128, // 5
CS2_PRESCALER_256, // 6
CS2_PRESCALER_1024 // 7
} ClockSource2;
// Get interrupt bits in an orderly way
#define GET_WGM(T) (((TCCR##T##A >> WGM##T##0) & 0x3) | ((TCCR##T##B >> WGM##T##2 << 2) & 0xC))
#define GET_CS(T) ((TCCR##T##B >> CS##T##0) & 0x7)
#define GET_COM(T,Q) ((TCCR##T##Q >> COM##T##Q##0) & 0x3)
#define GET_COMA(T) GET_COM(T,A)
#define GET_COMB(T) GET_COM(T,B)
#define GET_COMC(T) GET_COM(T,C)
#define GET_ICNC(T) (!!(TCCR##T##B & _BV(ICNC##T)))
#define GET_ICES(T) (!!(TCCR##T##B & _BV(ICES##T)))
#define GET_FOC(T,Q) (!!(TCCR##T##C & _BV(FOC##T##Q)))
#define GET_FOCA(T) GET_FOC(T,A)
#define GET_FOCB(T) GET_FOC(T,B)
#define GET_FOCC(T) GET_FOC(T,C)
// Set Wave Generation Mode bits
#define _SET_WGM(T,V) do{ \
TCCR##T##A = (TCCR##T##A & ~(0x3 << WGM##T##0)) | (( int(V) & 0x3) << WGM##T##0); \
TCCR##T##B = (TCCR##T##B & ~(0x3 << WGM##T##2)) | (((int(V) >> 2) & 0x3) << WGM##T##2); \
}while(0)
#define SET_WGM(T,V) _SET_WGM(T,WGM_##V)
// Set Clock Select bits
#define _SET_CS(T,V) (TCCR##T##B = (TCCR##T##B & ~(0x7 << CS##T##0)) | ((int(V) & 0x7) << CS##T##0))
#define _SET_CS0(V) _SET_CS(0,V)
#define _SET_CS1(V) _SET_CS(1,V)
#ifdef TCCR2
#define _SET_CS2(V) (TCCR2 = (TCCR2 & ~(0x7 << CS20)) | (int(V) << CS20))
#else
#define _SET_CS2(V) _SET_CS(2,V)
#endif
#define _SET_CS3(V) _SET_CS(3,V)
#define _SET_CS4(V) _SET_CS(4,V)
#define _SET_CS5(V) _SET_CS(5,V)
#define SET_CS0(V) _SET_CS0(CS_##V)
#define SET_CS1(V) _SET_CS1(CS_##V)
#ifdef TCCR2
#define SET_CS2(V) _SET_CS2(CS2_##V)
#else
#define SET_CS2(V) _SET_CS2(CS_##V)
#endif
#define SET_CS3(V) _SET_CS3(CS_##V)
#define SET_CS4(V) _SET_CS4(CS_##V)
#define SET_CS5(V) _SET_CS5(CS_##V)
#define SET_CS(T,V) SET_CS##T(V)
// Set Compare Mode bits
#define _SET_COM(T,Q,V) (TCCR##T##Q = (TCCR##T##Q & ~(0x3 << COM##T##Q##0)) | (int(V) << COM##T##Q##0))
#define _SET_COMA(T,V) _SET_COM(T,A,V)
#define _SET_COMB(T,V) _SET_COM(T,B,V)
#define _SET_COMC(T,V) _SET_COM(T,C,V)
#define _SET_COMS(T,V1,V2,V3) do{ _SET_COMA(T,V1); _SET_COMB(T,V2); _SET_COMC(T,V3); }while(0)
#define SET_COM(T,Q,V) _SET_COM(T,Q,COM_##V)
#define SET_COMA(T,V) SET_COM(T,A,V)
#define SET_COMB(T,V) SET_COM(T,B,V)
#define SET_COMC(T,V) SET_COM(T,C,V)
#define SET_COMS(T,V1,V2,V3) do{ SET_COMA(T,V1); SET_COMB(T,V2); SET_COMC(T,V3); }while(0)
// Set Noise Canceler bit
#define SET_ICNC(T,V) (TCCR##T##B = (V) ? TCCR##T##B | _BV(ICNC##T) : TCCR##T##B & ~_BV(ICNC##T))
// Set Input Capture Edge Select bit
#define SET_ICES(T,V) (TCCR##T##B = (V) ? TCCR##T##B | _BV(ICES##T) : TCCR##T##B & ~_BV(ICES##T))
// Set Force Output Compare bit
#define SET_FOC(T,Q,V) (TCCR##T##C = (V) ? TCCR##T##C | _BV(FOC##T##Q) : TCCR##T##C & ~_BV(FOC##T##Q))
#define SET_FOCA(T,V) SET_FOC(T,A,V)
#define SET_FOCB(T,V) SET_FOC(T,B,V)
#define SET_FOCC(T,V) SET_FOC(T,C,V)
#endif // _FASTIO_ARDUINO_H

View File

@@ -1,681 +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/>.
*
*/
/**
* Pin mapping (Marlin) for AT90USB646, 647, 1286, and 1287
*
* AT90USB 51 50 49 48 47 46 45 44 10 11 12 13 14 15 16 17 35 36 37 38 39 40 41 42 25 26 27 28 29 30 31 32 33 34 43 09 18 19 01 02 61 60 59 58 57 56 55 54
* Teensy 28 29 30 31 32 33 34 35 20 21 22 23 24 25 26 27 10 11 12 13 14 15 16 17 00 01 02 03 04 05 06 07 08 09(46*47)36 37 18 19 38 39 40 41 42 43 44 45
* Port A0 A1 A2 A3 A4 A5 A6 A7 B0 B1 B2 B3 B4 B5 B6 B7 C0 C1 C2 C3 C4 C5 C6 C7 D0 D1 D2 D3 D4 D5 D6 D7 E0 E1 E2 E3 E4 E5 E6 E7 F0 F1 F2 F3 F4 F5 F6 F7
* > Marlin 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
* The pins 46 and 47 are not supported by Teensyduino, but are supported below.
*/
#ifndef _FASTIO_AT90USB
#define _FASTIO_AT90USB
#include "fastio.h"
// change for your board
#define DEBUG_LED DIO31 /* led D5 red */
// SPI
#define SCK DIO9 // 21
#define MISO DIO11 // 23
#define MOSI DIO10 // 22
#define SS DIO8 // 20
// Digital I/O
#define DIO0_PIN PINA0
#define DIO0_RPORT PINA
#define DIO0_WPORT PORTA
#define DIO0_PWM NULL
#define DIO0_DDR DDRA
#define DIO1_PIN PINA1
#define DIO1_RPORT PINA
#define DIO1_WPORT PORTA
#define DIO1_PWM NULL
#define DIO1_DDR DDRA
#define DIO2_PIN PINA2
#define DIO2_RPORT PINA
#define DIO2_WPORT PORTA
#define DIO2_PWM NULL
#define DIO2_DDR DDRA
#define DIO3_PIN PINA3
#define DIO3_RPORT PINA
#define DIO3_WPORT PORTA
#define DIO3_PWM NULL
#define DIO3_DDR DDRA
#define DIO4_PIN PINA4
#define DIO4_RPORT PINA
#define DIO4_WPORT PORTA
#define DIO4_PWM NULL
#define DIO4_DDR DDRA
#define DIO5_PIN PINA5
#define DIO5_RPORT PINA
#define DIO5_WPORT PORTA
#define DIO5_PWM NULL
#define DIO5_DDR DDRA
#define DIO6_PIN PINA6
#define DIO6_RPORT PINA
#define DIO6_WPORT PORTA
#define DIO6_PWM NULL
#define DIO6_DDR DDRA
#define DIO7_PIN PINA7
#define DIO7_RPORT PINA
#define DIO7_WPORT PORTA
#define DIO7_PWM NULL
#define DIO7_DDR DDRA
#define DIO8_PIN PINB0
#define DIO8_RPORT PINB
#define DIO8_WPORT PORTB
#define DIO8_PWM NULL
#define DIO8_DDR DDRB
#define DIO9_PIN PINB1
#define DIO9_RPORT PINB
#define DIO9_WPORT PORTB
#define DIO9_PWM NULL
#define DIO9_DDR DDRB
#define DIO10_PIN PINB2
#define DIO10_RPORT PINB
#define DIO10_WPORT PORTB
#define DIO10_PWM NULL
#define DIO10_DDR DDRB
#define DIO11_PIN PINB3
#define DIO11_RPORT PINB
#define DIO11_WPORT PORTB
#define DIO11_PWM NULL
#define DIO11_DDR DDRB
#define DIO12_PIN PINB4
#define DIO12_RPORT PINB
#define DIO12_WPORT PORTB
#define DIO12_PWM NULL
#define DIO12_DDR DDRB
#define DIO13_PIN PINB5
#define DIO13_RPORT PINB
#define DIO13_WPORT PORTB
#define DIO13_PWM NULL
#define DIO13_DDR DDRB
#define DIO14_PIN PINB6
#define DIO14_RPORT PINB
#define DIO14_WPORT PORTB
#define DIO14_PWM NULL
#define DIO14_DDR DDRB
#define DIO15_PIN PINB7
#define DIO15_RPORT PINB
#define DIO15_WPORT PORTB
#define DIO15_PWM NULL
#define DIO15_DDR DDRB
#define DIO16_PIN PINC0
#define DIO16_RPORT PINC
#define DIO16_WPORT PORTC
#define DIO16_PWM NULL
#define DIO16_DDR DDRC
#define DIO17_PIN PINC1
#define DIO17_RPORT PINC
#define DIO17_WPORT PORTC
#define DIO17_PWM NULL
#define DIO17_DDR DDRC
#define DIO18_PIN PINC2
#define DIO18_RPORT PINC
#define DIO18_WPORT PORTC
#define DIO18_PWM NULL
#define DIO18_DDR DDRC
#define DIO19_PIN PINC3
#define DIO19_RPORT PINC
#define DIO19_WPORT PORTC
#define DIO19_PWM NULL
#define DIO19_DDR DDRC
#define DIO20_PIN PINC4
#define DIO20_RPORT PINC
#define DIO20_WPORT PORTC
#define DIO20_PWM NULL
#define DIO20_DDR DDRC
#define DIO21_PIN PINC5
#define DIO21_RPORT PINC
#define DIO21_WPORT PORTC
#define DIO21_PWM NULL
#define DIO21_DDR DDRC
#define DIO22_PIN PINC6
#define DIO22_RPORT PINC
#define DIO22_WPORT PORTC
#define DIO22_PWM NULL
#define DIO22_DDR DDRC
#define DIO23_PIN PINC7
#define DIO23_RPORT PINC
#define DIO23_WPORT PORTC
#define DIO23_PWM NULL
#define DIO23_DDR DDRC
#define DIO24_PIN PIND0
#define DIO24_RPORT PIND
#define DIO24_WPORT PORTD
#define DIO24_PWM NULL
#define DIO24_DDR DDRD
#define DIO25_PIN PIND1
#define DIO25_RPORT PIND
#define DIO25_WPORT PORTD
#define DIO25_PWM NULL
#define DIO25_DDR DDRD
#define DIO26_PIN PIND2
#define DIO26_RPORT PIND
#define DIO26_WPORT PORTD
#define DIO26_PWM NULL
#define DIO26_DDR DDRD
#define DIO27_PIN PIND3
#define DIO27_RPORT PIND
#define DIO27_WPORT PORTD
#define DIO27_PWM NULL
#define DIO27_DDR DDRD
#define DIO28_PIN PIND4
#define DIO28_RPORT PIND
#define DIO28_WPORT PORTD
#define DIO28_PWM NULL
#define DIO28_DDR DDRD
#define DIO29_PIN PIND5
#define DIO29_RPORT PIND
#define DIO29_WPORT PORTD
#define DIO29_PWM NULL
#define DIO29_DDR DDRD
#define DIO30_PIN PIND6
#define DIO30_RPORT PIND
#define DIO30_WPORT PORTD
#define DIO30_PWM NULL
#define DIO30_DDR DDRD
#define DIO31_PIN PIND7
#define DIO31_RPORT PIND
#define DIO31_WPORT PORTD
#define DIO31_PWM NULL
#define DIO31_DDR DDRD
#define DIO32_PIN PINE0
#define DIO32_RPORT PINE
#define DIO32_WPORT PORTE
#define DIO32_PWM NULL
#define DIO32_DDR DDRE
#define DIO33_PIN PINE1
#define DIO33_RPORT PINE
#define DIO33_WPORT PORTE
#define DIO33_PWM NULL
#define DIO33_DDR DDRE
#define DIO34_PIN PINE2
#define DIO34_RPORT PINE
#define DIO34_WPORT PORTE
#define DIO34_PWM NULL
#define DIO34_DDR DDRE
#define DIO35_PIN PINE3
#define DIO35_RPORT PINE
#define DIO35_WPORT PORTE
#define DIO35_PWM NULL
#define DIO35_DDR DDRE
#define DIO36_PIN PINE4
#define DIO36_RPORT PINE
#define DIO36_WPORT PORTE
#define DIO36_PWM NULL
#define DIO36_DDR DDRE
#define DIO37_PIN PINE5
#define DIO37_RPORT PINE
#define DIO37_WPORT PORTE
#define DIO37_PWM NULL
#define DIO37_DDR DDRE
#define DIO38_PIN PINE6
#define DIO38_RPORT PINE
#define DIO38_WPORT PORTE
#define DIO38_PWM NULL
#define DIO38_DDR DDRE
#define DIO39_PIN PINE7
#define DIO39_RPORT PINE
#define DIO39_WPORT PORTE
#define DIO39_PWM NULL
#define DIO39_DDR DDRE
#define AIO0_PIN PINF0
#define AIO0_RPORT PINF
#define AIO0_WPORT PORTF
#define AIO0_PWM NULL
#define AIO0_DDR DDRF
#define AIO1_PIN PINF1
#define AIO1_RPORT PINF
#define AIO1_WPORT PORTF
#define AIO1_PWM NULL
#define AIO1_DDR DDRF
#define AIO2_PIN PINF2
#define AIO2_RPORT PINF
#define AIO2_WPORT PORTF
#define AIO2_PWM NULL
#define AIO2_DDR DDRF
#define AIO3_PIN PINF3
#define AIO3_RPORT PINF
#define AIO3_WPORT PORTF
#define AIO3_PWM NULL
#define AIO3_DDR DDRF
#define AIO4_PIN PINF4
#define AIO4_RPORT PINF
#define AIO4_WPORT PORTF
#define AIO4_PWM NULL
#define AIO4_DDR DDRF
#define AIO5_PIN PINF5
#define AIO5_RPORT PINF
#define AIO5_WPORT PORTF
#define AIO5_PWM NULL
#define AIO5_DDR DDRF
#define AIO6_PIN PINF6
#define AIO6_RPORT PINF
#define AIO6_WPORT PORTF
#define AIO6_PWM NULL
#define AIO6_DDR DDRF
#define AIO7_PIN PINF7
#define AIO7_RPORT PINF
#define AIO7_WPORT PORTF
#define AIO7_PWM NULL
#define AIO7_DDR DDRF
#define DIO40_PIN PINF0
#define DIO40_RPORT PINF
#define DIO40_WPORT PORTF
#define DIO40_PWM NULL
#define DIO40_DDR DDRF
#define DIO41_PIN PINF1
#define DIO41_RPORT PINF
#define DIO41_WPORT PORTF
#define DIO41_PWM NULL
#define DIO41_DDR DDRF
#define DIO42_PIN PINF2
#define DIO42_RPORT PINF
#define DIO42_WPORT PORTF
#define DIO42_PWM NULL
#define DIO42_DDR DDRF
#define DIO43_PIN PINF3
#define DIO43_RPORT PINF
#define DIO43_WPORT PORTF
#define DIO43_PWM NULL
#define DIO43_DDR DDRF
#define DIO44_PIN PINF4
#define DIO44_RPORT PINF
#define DIO44_WPORT PORTF
#define DIO44_PWM NULL
#define DIO44_DDR DDRF
#define DIO45_PIN PINF5
#define DIO45_RPORT PINF
#define DIO45_WPORT PORTF
#define DIO45_PWM NULL
#define DIO45_DDR DDRF
#define DIO46_PIN PINF6
#define DIO46_RPORT PINF
#define DIO46_WPORT PORTF
#define DIO46_PWM NULL
#define DIO46_DDR DDRF
#define DIO47_PIN PINF7
#define DIO47_RPORT PINF
#define DIO47_WPORT PORTF
#define DIO47_PWM NULL
#define DIO47_DDR DDRF
// Analog Outputs
#undef PA0
#define PA0_PIN PINA0
#define PA0_RPORT PINA
#define PA0_WPORT PORTA
#define PA0_PWM NULL
#define PA0_DDR DDRA
#undef PA1
#define PA1_PIN PINA1
#define PA1_RPORT PINA
#define PA1_WPORT PORTA
#define PA1_PWM NULL
#define PA1_DDR DDRA
#undef PA2
#define PA2_PIN PINA2
#define PA2_RPORT PINA
#define PA2_WPORT PORTA
#define PA2_PWM NULL
#define PA2_DDR DDRA
#undef PA3
#define PA3_PIN PINA3
#define PA3_RPORT PINA
#define PA3_WPORT PORTA
#define PA3_PWM NULL
#define PA3_DDR DDRA
#undef PA4
#define PA4_PIN PINA4
#define PA4_RPORT PINA
#define PA4_WPORT PORTA
#define PA4_PWM NULL
#define PA4_DDR DDRA
#undef PA5
#define PA5_PIN PINA5
#define PA5_RPORT PINA
#define PA5_WPORT PORTA
#define PA5_PWM NULL
#define PA5_DDR DDRA
#undef PA6
#define PA6_PIN PINA6
#define PA6_RPORT PINA
#define PA6_WPORT PORTA
#define PA6_PWM NULL
#define PA6_DDR DDRA
#undef PA7
#define PA7_PIN PINA7
#define PA7_RPORT PINA
#define PA7_WPORT PORTA
#define PA7_PWM NULL
#define PA7_DDR DDRA
#undef PB0
#define PB0_PIN PINB0
#define PB0_RPORT PINB
#define PB0_WPORT PORTB
#define PB0_PWM NULL
#define PB0_DDR DDRB
#undef PB1
#define PB1_PIN PINB1
#define PB1_RPORT PINB
#define PB1_WPORT PORTB
#define PB1_PWM NULL
#define PB1_DDR DDRB
#undef PB2
#define PB2_PIN PINB2
#define PB2_RPORT PINB
#define PB2_WPORT PORTB
#define PB2_PWM NULL
#define PB2_DDR DDRB
#undef PB3
#define PB3_PIN PINB3
#define PB3_RPORT PINB
#define PB3_WPORT PORTB
#define PB3_PWM NULL
#define PB3_DDR DDRB
#undef PB4
#define PB4_PIN PINB4
#define PB4_RPORT PINB
#define PB4_WPORT PORTB
#define PB4_PWM NULL
#define PB4_DDR DDRB
#undef PB5
#define PB5_PIN PINB5
#define PB5_RPORT PINB
#define PB5_WPORT PORTB
#define PB5_PWM NULL
#define PB5_DDR DDRB
#undef PB6
#define PB6_PIN PINB6
#define PB6_RPORT PINB
#define PB6_WPORT PORTB
#define PB6_PWM NULL
#define PB6_DDR DDRB
#undef PB7
#define PB7_PIN PINB7
#define PB7_RPORT PINB
#define PB7_WPORT PORTB
#define PB7_PWM NULL
#define PB7_DDR DDRB
#undef PC0
#define PC0_PIN PINC0
#define PC0_RPORT PINC
#define PC0_WPORT PORTC
#define PC0_PWM NULL
#define PC0_DDR DDRC
#undef PC1
#define PC1_PIN PINC1
#define PC1_RPORT PINC
#define PC1_WPORT PORTC
#define PC1_PWM NULL
#define PC1_DDR DDRC
#undef PC2
#define PC2_PIN PINC2
#define PC2_RPORT PINC
#define PC2_WPORT PORTC
#define PC2_PWM NULL
#define PC2_DDR DDRC
#undef PC3
#define PC3_PIN PINC3
#define PC3_RPORT PINC
#define PC3_WPORT PORTC
#define PC3_PWM NULL
#define PC3_DDR DDRC
#undef PC4
#define PC4_PIN PINC4
#define PC4_RPORT PINC
#define PC4_WPORT PORTC
#define PC4_PWM NULL
#define PC4_DDR DDRC
#undef PC5
#define PC5_PIN PINC5
#define PC5_RPORT PINC
#define PC5_WPORT PORTC
#define PC5_PWM NULL
#define PC5_DDR DDRC
#undef PC6
#define PC6_PIN PINC6
#define PC6_RPORT PINC
#define PC6_WPORT PORTC
#define PC6_PWM NULL
#define PC6_DDR DDRC
#undef PC7
#define PC7_PIN PINC7
#define PC7_RPORT PINC
#define PC7_WPORT PORTC
#define PC7_PWM NULL
#define PC7_DDR DDRC
#undef PD0
#define PD0_PIN PIND0
#define PD0_RPORT PIND
#define PD0_WPORT PORTD
#define PD0_PWM NULL
#define PD0_DDR DDRD
#undef PD1
#define PD1_PIN PIND1
#define PD1_RPORT PIND
#define PD1_WPORT PORTD
#define PD1_PWM NULL
#define PD1_DDR DDRD
#undef PD2
#define PD2_PIN PIND2
#define PD2_RPORT PIND
#define PD2_WPORT PORTD
#define PD2_PWM NULL
#define PD2_DDR DDRD
#undef PD3
#define PD3_PIN PIND3
#define PD3_RPORT PIND
#define PD3_WPORT PORTD
#define PD3_PWM NULL
#define PD3_DDR DDRD
#undef PD4
#define PD4_PIN PIND4
#define PD4_RPORT PIND
#define PD4_WPORT PORTD
#define PD4_PWM NULL
#define PD4_DDR DDRD
#undef PD5
#define PD5_PIN PIND5
#define PD5_RPORT PIND
#define PD5_WPORT PORTD
#define PD5_PWM NULL
#define PD5_DDR DDRD
#undef PD6
#define PD6_PIN PIND6
#define PD6_RPORT PIND
#define PD6_WPORT PORTD
#define PD6_PWM NULL
#define PD6_DDR DDRD
#undef PD7
#define PD7_PIN PIND7
#define PD7_RPORT PIND
#define PD7_WPORT PORTD
#define PD7_PWM NULL
#define PD7_DDR DDRD
#undef PE0
#define PE0_PIN PINE0
#define PE0_RPORT PINE
#define PE0_WPORT PORTE
#define PE0_PWM NULL
#define PE0_DDR DDRE
#undef PE1
#define PE1_PIN PINE1
#define PE1_RPORT PINE
#define PE1_WPORT PORTE
#define PE1_PWM NULL
#define PE1_DDR DDRE
#undef PE2
#define PE2_PIN PINE2
#define PE2_RPORT PINE
#define PE2_WPORT PORTE
#define PE2_PWM NULL
#define PE2_DDR DDRE
#undef PE3
#define PE3_PIN PINE3
#define PE3_RPORT PINE
#define PE3_WPORT PORTE
#define PE3_PWM NULL
#define PE3_DDR DDRE
#undef PE4
#define PE4_PIN PINE4
#define PE4_RPORT PINE
#define PE4_WPORT PORTE
#define PE4_PWM NULL
#define PE4_DDR DDRE
#undef PE5
#define PE5_PIN PINE5
#define PE5_RPORT PINE
#define PE5_WPORT PORTE
#define PE5_PWM NULL
#define PE5_DDR DDRE
#undef PE6
#define PE6_PIN PINE6
#define PE6_RPORT PINE
#define PE6_WPORT PORTE
#define PE6_PWM NULL
#define PE6_DDR DDRE
#undef PE7
#define PE7_PIN PINE7
#define PE7_RPORT PINE
#define PE7_WPORT PORTE
#define PE7_PWM NULL
#define PE7_DDR DDRE
#undef PF0
#define PF0_PIN PINF0
#define PF0_RPORT PINF
#define PF0_WPORT PORTF
#define PF0_PWM NULL
#define PF0_DDR DDRF
#undef PF1
#define PF1_PIN PINF1
#define PF1_RPORT PINF
#define PF1_WPORT PORTF
#define PF1_PWM NULL
#define PF1_DDR DDRF
#undef PF2
#define PF2_PIN PINF2
#define PF2_RPORT PINF
#define PF2_WPORT PORTF
#define PF2_PWM NULL
#define PF2_DDR DDRF
#undef PF3
#define PF3_PIN PINF3
#define PF3_RPORT PINF
#define PF3_WPORT PORTF
#define PF3_PWM NULL
#define PF3_DDR DDRF
#undef PF4
#define PF4_PIN PINF4
#define PF4_RPORT PINF
#define PF4_WPORT PORTF
#define PF4_PWM NULL
#define PF4_DDR DDRF
#undef PF5
#define PF5_PIN PINF5
#define PF5_RPORT PINF
#define PF5_WPORT PORTF
#define PF5_PWM NULL
#define PF5_DDR DDRF
#undef PF6
#define PF6_PIN PINF6
#define PF6_RPORT PINF
#define PF6_WPORT PORTF
#define PF6_PWM NULL
#define PF6_DDR DDRF
#undef PF7
#define PF7_PIN PINF7
#define PF7_RPORT PINF
#define PF7_WPORT PORTF
#define PF7_PWM NULL
#define PF7_DDR DDRF
#endif // _FASTIO_AT90USB

View File

@@ -1,55 +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 "Marlin.h"
#include "gcode.h"
#if ENABLED(AUTO_BED_LEVELING_UBL) || ENABLED(M100_FREE_MEMORY_WATCHER) || ENABLED(DEBUG_GCODE_PARSER)
#include "hex_print_routines.h"
static char _hex[7] = "0x0000";
char* hex_byte(const uint8_t b) {
_hex[4] = hex_nybble(b >> 4);
_hex[5] = hex_nybble(b);
return &_hex[4];
}
char* hex_word(const uint16_t w) {
_hex[2] = hex_nybble(w >> 12);
_hex[3] = hex_nybble(w >> 8);
_hex[4] = hex_nybble(w >> 4);
_hex[5] = hex_nybble(w);
return &_hex[2];
}
char* hex_address(const void * const w) {
(void)hex_word((uint16_t)w);
return _hex;
}
void print_hex_nybble(const uint8_t n) { SERIAL_CHAR(hex_nybble(n)); }
void print_hex_byte(const uint8_t b) { SERIAL_ECHO(hex_byte(b)); }
void print_hex_word(const uint16_t w) { SERIAL_ECHO(hex_word(w)); }
void print_hex_address(const void * const w) { SERIAL_ECHO(hex_address(w)); }
#endif // AUTO_BED_LEVELING_UBL || M100_FREE_MEMORY_WATCHER || DEBUG_GCODE_PARSER

View File

@@ -1,167 +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_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_BED_LEVELING "\xcf\xe0\xc4\xc7"
#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_JERK "Jerk"
#define MSG_VX_JERK "Vx-jerk"
#define MSG_VY_JERK "Vy-jerk"
#define MSG_VZ_JERK "Vz-jerk"
#define MSG_VE_JERK "Ve-jerk"
#define MSG_VMAX "Vmax "
#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_STEPS_PER_MM "Steps/mm"
#define MSG_XSTEPS "Xsteps/mm"
#define MSG_YSTEPS "Ysteps/mm"
#define MSG_ZSTEPS "Zsteps/mm"
#define MSG_ESTEPS "Esteps/mm"
#define MSG_E1STEPS "E1steps/mm"
#define MSG_E2STEPS "E2steps/mm"
#define MSG_E3STEPS "E3steps/mm"
#define MSG_E4STEPS "E4steps/mm"
#define MSG_E5STEPS "E5steps/mm"
#define MSG_TEMPERATURE "\xc9\xd2"
#define MSG_MOTION "\xdf\xb2"
#define MSG_FILAMENT "Filament"
#define MSG_VOLUMETRIC_ENABLED "E in mm3"
#define MSG_FILAMENT_DIAM "Fil. Dia."
#define MSG_CONTRAST "LCD contrast"
#define MSG_STORE_EEPROM "Store memory"
#define MSG_LOAD_EEPROM "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

View File

@@ -1,273 +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 DISPLAY_CHARSET_ISO10646_1
#define WELCOME_MSG MACHINE_NAME _UxGT(" pripraven.")
#define MSG_BACK _UxGT("Zpet")
#define MSG_SD_INSERTED _UxGT("Karta vlozena")
#define MSG_SD_REMOVED _UxGT("Karta vyjmuta")
#define MSG_LCD_ENDSTOPS _UxGT("Endstopy") // maximalne 8 znaku
#define MSG_MAIN _UxGT("Hlavni nabidka")
#define MSG_AUTOSTART _UxGT("Autostart")
#define MSG_DISABLE_STEPPERS _UxGT("Uvolnit motory")
#define MSG_DEBUG_MENU _UxGT("Nabidka ladeni")
#define MSG_PROGRESS_BAR_TEST _UxGT("Test uk.prubehu")
#define MSG_AUTO_HOME _UxGT("Domovska pozice")
#define MSG_AUTO_HOME_X _UxGT("Domu osa X")
#define MSG_AUTO_HOME_Y _UxGT("Domu osa Y")
#define MSG_AUTO_HOME_Z _UxGT("Domu osa Z")
#define MSG_LEVEL_BED_HOMING _UxGT("Mereni podlozky")
#define MSG_LEVEL_BED_WAITING _UxGT("Kliknutim spustte")
#define MSG_LEVEL_BED_NEXT_POINT _UxGT("Dalsi bod")
#define MSG_LEVEL_BED_DONE _UxGT("Mereni hotovo!")
#define MSG_SET_HOME_OFFSETS _UxGT("Nastavit ofsety")
#define MSG_HOME_OFFSETS_APPLIED _UxGT("Ofsety nastaveny")
#define MSG_SET_ORIGIN _UxGT("Nastavit pocatek")
#define MSG_PREHEAT_1 _UxGT("Zahrat PLA")
#define MSG_PREHEAT_1_N MSG_PREHEAT_1 _UxGT(" ")
#define MSG_PREHEAT_1_ALL MSG_PREHEAT_1 _UxGT(" vse")
#define MSG_PREHEAT_1_END MSG_PREHEAT_1 _UxGT(" hotend")
#define MSG_PREHEAT_1_BEDONLY MSG_PREHEAT_1 _UxGT(" podloz")
#define MSG_PREHEAT_1_SETTINGS MSG_PREHEAT_1 _UxGT(" nast")
#define MSG_PREHEAT_2 _UxGT("Zahrat ABS")
#define MSG_PREHEAT_2_N MSG_PREHEAT_2 _UxGT(" ")
#define MSG_PREHEAT_2_ALL MSG_PREHEAT_2 _UxGT(" vse")
#define MSG_PREHEAT_2_END MSG_PREHEAT_2 _UxGT(" hotend")
#define MSG_PREHEAT_2_BEDONLY MSG_PREHEAT_2 _UxGT(" podloz")
#define MSG_PREHEAT_2_SETTINGS MSG_PREHEAT_2 _UxGT(" nast")
#define MSG_COOLDOWN _UxGT("Zchladit")
#define MSG_SWITCH_PS_ON _UxGT("Zapnout napajeni")
#define MSG_SWITCH_PS_OFF _UxGT("Vypnout napajeni")
#define MSG_EXTRUDE _UxGT("Vytlacit (extr.)")
#define MSG_RETRACT _UxGT("Zatlacit (retr.)")
#define MSG_MOVE_AXIS _UxGT("Posunout osy")
#define MSG_BED_LEVELING _UxGT("Vyrovnat podlozku")
#define MSG_LEVEL_BED _UxGT("Vyrovnat podlozku")
#define MSG_MOVING _UxGT("Posunování...")
#define MSG_FREE_XY _UxGT("Uvolnit XY")
#define MSG_MOVE_X _UxGT("Posunout X")
#define MSG_MOVE_Y _UxGT("Posunout Y")
#define MSG_MOVE_Z _UxGT("Posunout Z")
#define MSG_MOVE_E _UxGT("Extruder")
#define MSG_MOVE_01MM _UxGT("Posunout o 0,1mm")
#define MSG_MOVE_1MM _UxGT("Posunout o 1mm")
#define MSG_MOVE_10MM _UxGT("Posunout o 10mm")
#define MSG_SPEED _UxGT("Rychlost")
#define MSG_BED_Z _UxGT("Vyska podl.")
#define MSG_NOZZLE _UxGT("Tryska")
#define MSG_BED _UxGT("Podlozka")
#define MSG_FAN_SPEED _UxGT("Rychlost vent.")
#define MSG_FLOW _UxGT("Prutok")
#define MSG_CONTROL _UxGT("Ovladani")
#define MSG_MIN _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" Min")
#define MSG_MAX _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" Max")
#define MSG_FACTOR _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" Fakt")
#define MSG_AUTOTEMP _UxGT("Autoteplota")
#define MSG_ON _UxGT("Zap")
#define MSG_OFF _UxGT("Vyp")
#define MSG_PID_P _UxGT("PID-P")
#define MSG_PID_I _UxGT("PID-I")
#define MSG_PID_D _UxGT("PID-D")
#define MSG_PID_C _UxGT("PID-C")
#define MSG_SELECT _UxGT("Vybrat")
#define MSG_ACC _UxGT("Zrychl")
#define MSG_JERK _UxGT("Jerk")
#define MSG_VX_JERK _UxGT("Vx-jerk")
#define MSG_VY_JERK _UxGT("Vy-jerk")
#define MSG_VZ_JERK _UxGT("Vz-jerk")
#define MSG_VE_JERK _UxGT("Ve-jerk")
#define MSG_VMAX _UxGT("Vmax ")
#define MSG_VMIN _UxGT("Vmin")
#define MSG_VTRAV_MIN _UxGT("VTrav min")
#define MSG_AMAX _UxGT("Amax ")
#define MSG_A_RETRACT _UxGT("A-retrakt")
#define MSG_A_TRAVEL _UxGT("A-prejezd")
#define MSG_STEPS_PER_MM _UxGT("Kroku/mm")
#define MSG_XSTEPS _UxGT("Xkroku/mm")
#define MSG_YSTEPS _UxGT("Ykroku/mm")
#define MSG_ZSTEPS _UxGT("Zkroku/mm")
#define MSG_ESTEPS _UxGT("Ekroku/mm")
#define MSG_E1STEPS _UxGT("E1kroku/mm")
#define MSG_E2STEPS _UxGT("E2kroku/mm")
#define MSG_E3STEPS _UxGT("E3kroku/mm")
#define MSG_E4STEPS _UxGT("E4kroku/mm")
#define MSG_E5STEPS _UxGT("E5kroku/mm")
#define MSG_TEMPERATURE _UxGT("Teplota")
#define MSG_MOTION _UxGT("Pohyb")
#define MSG_FILAMENT _UxGT("Filament")
#define MSG_VOLUMETRIC_ENABLED _UxGT("E na mm3")
#define MSG_FILAMENT_DIAM _UxGT("Fil. Prum.")
#define MSG_ADVANCE_K _UxGT("K pro posun")
#define MSG_CONTRAST _UxGT("Kontrast LCD")
#define MSG_STORE_EEPROM _UxGT("Ulozit nastaveni")
#define MSG_LOAD_EEPROM _UxGT("Nacist nastaveni")
#define MSG_RESTORE_FAILSAFE _UxGT("Obnovit vychozi")
#define MSG_REFRESH _UxGT("Obnovit")
#define MSG_WATCH _UxGT("Info obrazovka")
#define MSG_PREPARE _UxGT("Priprava tisku")
#define MSG_TUNE _UxGT("Doladeni tisku")
#define MSG_PAUSE_PRINT _UxGT("Pozastavit tisk")
#define MSG_RESUME_PRINT _UxGT("Obnovit tisk")
#define MSG_STOP_PRINT _UxGT("Zastavit tisk")
#define MSG_CARD_MENU _UxGT("Tisknout z SD")
#define MSG_NO_CARD _UxGT("Zadna SD karta")
#define MSG_DWELL _UxGT("Uspano...")
#define MSG_USERWAIT _UxGT("Cekani na uziv...")
#define MSG_RESUMING _UxGT("Obnovovani tisku")
#define MSG_PRINT_ABORTED _UxGT("Tisk zrusen")
#define MSG_NO_MOVE _UxGT("Zadny pohyb.")
#define MSG_KILLED _UxGT("PRERUSENO. ")
#define MSG_STOPPED _UxGT("ZASTAVENO. ")
#define MSG_CONTROL_RETRACT _UxGT("Retrakt mm")
#define MSG_CONTROL_RETRACT_SWAP _UxGT("Vymena Re.mm")
#define MSG_CONTROL_RETRACTF _UxGT("Retraktovat V")
#define MSG_CONTROL_RETRACT_ZLIFT _UxGT("Zvednuti Z mm")
#define MSG_CONTROL_RETRACT_RECOVER _UxGT("UnRet mm")
#define MSG_CONTROL_RETRACT_RECOVER_SWAP _UxGT("S UnRet mm")
#define MSG_CONTROL_RETRACT_RECOVERF _UxGT("UnRet V")
#define MSG_AUTORETRACT _UxGT("AutoRetr.")
#define MSG_FILAMENTCHANGE _UxGT("Vymenit filament")
#define MSG_INIT_SDCARD _UxGT("Nacist SD kartu")
#define MSG_CNG_SDCARD _UxGT("Vymenit SD kartu")
#define MSG_ZPROBE_OUT _UxGT("Sonda Z mimo podl")
#define MSG_BLTOUCH_SELFTEST _UxGT("BLTouch Self-Test")
#define MSG_BLTOUCH_RESET _UxGT("BLTouch Reset")
#define MSG_HOME _UxGT("Domu") // Used as MSG_HOME " " MSG_X MSG_Y MSG_Z " " MSG_FIRST
#define MSG_FIRST _UxGT("prvni")
#define MSG_ZPROBE_ZOFFSET _UxGT("Z ofset")
#define MSG_BABYSTEP_X _UxGT("Babystep X")
#define MSG_BABYSTEP_Y _UxGT("Babystep Y")
#define MSG_BABYSTEP_Z _UxGT("Babystep Z")
#define MSG_ENDSTOP_ABORT _UxGT("Endstop abort")
#define MSG_HEATING_FAILED_LCD _UxGT("Chyba zahrivani")
#define MSG_ERR_REDUNDANT_TEMP _UxGT("REDUND. TEPLOTA")
#define MSG_THERMAL_RUNAWAY _UxGT("TEPLOTNI SKOK")
#define MSG_ERR_MAXTEMP _UxGT("VYSOKA TEPLOTA")
#define MSG_ERR_MINTEMP _UxGT("NIZKA TEPLOTA")
#define MSG_ERR_MAXTEMP_BED _UxGT("VYS. TEPL. PODL.")
#define MSG_ERR_MINTEMP_BED _UxGT("NIZ. TEPL. PODL.")
#define MSG_ERR_Z_HOMING _UxGT("G28 Z ZAKAZANO")
#define MSG_HALTED _UxGT("TISK. ZASTAVENA")
#define MSG_PLEASE_RESET _UxGT("Provedte reset")
#define MSG_SHORT_DAY _UxGT("d")
#define MSG_SHORT_HOUR _UxGT("h")
#define MSG_SHORT_MINUTE _UxGT("m")
#define MSG_HEATING _UxGT("Zahrivani...")
#define MSG_HEATING_COMPLETE _UxGT("Zahrati hotovo.")
#define MSG_BED_HEATING _UxGT("Zahrivani podl.")
#define MSG_BED_DONE _UxGT("Podlozka hotova.")
#define MSG_DELTA_CALIBRATE _UxGT("Delta Kalibrace")
#define MSG_DELTA_CALIBRATE_X _UxGT("Kalibrovat X")
#define MSG_DELTA_CALIBRATE_Y _UxGT("Kalibrovat Y")
#define MSG_DELTA_CALIBRATE_Z _UxGT("Kalibrovat Z")
#define MSG_DELTA_CALIBRATE_CENTER _UxGT("Kalibrovat Stred")
#define MSG_DELTA_AUTO_CALIBRATE _UxGT("Autokalibrace")
#define MSG_DELTA_HEIGHT_CALIBRATE _UxGT("Nast.vysku delty")
#define MSG_INFO_MENU _UxGT("O tiskarne")
#define MSG_INFO_PRINTER_MENU _UxGT("Info o tiskarne")
#define MSG_INFO_STATS_MENU _UxGT("Statistika")
#define MSG_INFO_BOARD_MENU _UxGT("Info o desce")
#define MSG_INFO_THERMISTOR_MENU _UxGT("Termistory")
#define MSG_INFO_EXTRUDERS _UxGT("Extrudery")
#define MSG_INFO_BAUDRATE _UxGT("Rychlost")
#define MSG_INFO_PROTOCOL _UxGT("Protokol")
#define MSG_CASE_LIGHT _UxGT("Osvetleni")
#if LCD_WIDTH >= 20
#define MSG_INFO_PRINT_COUNT _UxGT("Pocet tisku")
#define MSG_INFO_COMPLETED_PRINTS _UxGT("Dokonceno")
#define MSG_INFO_PRINT_TIME _UxGT("Celkovy cas")
#define MSG_INFO_PRINT_LONGEST _UxGT("Nejdelsi tisk")
#define MSG_INFO_PRINT_FILAMENT _UxGT("Celkem vytlaceno")
#else
#define MSG_INFO_PRINT_COUNT _UxGT("Tisky")
#define MSG_INFO_COMPLETED_PRINTS _UxGT("Hotovo")
#define MSG_INFO_PRINT_TIME _UxGT("Cas")
#define MSG_INFO_PRINT_LONGEST _UxGT("Nejdelsi")
#define MSG_INFO_PRINT_FILAMENT _UxGT("Vytlaceno")
#endif
#define MSG_INFO_MIN_TEMP _UxGT("Teplota min")
#define MSG_INFO_MAX_TEMP _UxGT("Teplota max")
#define MSG_INFO_PSU _UxGT("Nap. zdroj")
#define MSG_DRIVE_STRENGTH _UxGT("Buzeni motoru")
#define MSG_DAC_PERCENT _UxGT("Motor %")
#define MSG_DAC_EEPROM_WRITE _UxGT("Ulozit do EEPROM")
#define MSG_FILAMENT_CHANGE_HEADER _UxGT("PRINT PAUSED")
#define MSG_FILAMENT_CHANGE_OPTION_HEADER _UxGT("RESUME OPTIONS:")
#define MSG_FILAMENT_CHANGE_OPTION_EXTRUDE _UxGT("Jeste vytlacit")
#define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("Obnovit tisk")
#define MSG_FILAMENT_CHANGE_MINTEMP _UxGT("Min. teplota je ")
#define MSG_FILAMENT_CHANGE_NOZZLE _UxGT(" Tryska: ")
#if LCD_HEIGHT >= 4
// Up to 3 lines allowed
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Cekejte prosim")
#define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("na zahajeni")
#define MSG_FILAMENT_CHANGE_INIT_3 _UxGT("vymeny filamentu")
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Cekejte prosim")
#define MSG_FILAMENT_CHANGE_UNLOAD_2 _UxGT("na vysunuti")
#define MSG_FILAMENT_CHANGE_UNLOAD_3 _UxGT("filamentu")
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Vlozte filament")
#define MSG_FILAMENT_CHANGE_INSERT_2 _UxGT("a stisknete")
#define MSG_FILAMENT_CHANGE_INSERT_3 _UxGT("tlacitko...")
#define MSG_FILAMENT_CHANGE_HEAT_1 _UxGT("Kliknete pro")
#define MSG_FILAMENT_CHANGE_HEAT_2 _UxGT("nahrati trysky")
#define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Cekejte prosim")
#define MSG_FILAMENT_CHANGE_HEATING_2 _UxGT("na nahrati tr.")
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Cekejte prosim")
#define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("na zavedeni")
#define MSG_FILAMENT_CHANGE_LOAD_3 _UxGT("filamentu")
#define MSG_FILAMENT_CHANGE_EXTRUDE_1 _UxGT("Cekejte prosim")
#define MSG_FILAMENT_CHANGE_EXTRUDE_2 _UxGT("na vytlaceni")
#define MSG_FILAMENT_CHANGE_EXTRUDE_3 _UxGT("filamentu")
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Cekejte prosim")
#define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("na pokracovani")
#define MSG_FILAMENT_CHANGE_RESUME_3 _UxGT("tisku")
#else // LCD_HEIGHT < 4
// Up to 2 lines allowed
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Cekejte...")
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Vysouvani...")
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Vlozte, kliknete")
#define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Nahrivani...")
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Zavadeni...")
#define MSG_FILAMENT_CHANGE_EXTRUDE_1 _UxGT("Vytlacovani...")
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Pokracovani...")
#endif // LCD_HEIGHT < 4
#endif // LANGUAGE_CZ_H

View File

@@ -1,270 +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/>.
*
*/
/**
* French
*
* LCD Menu Messages
* See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
*
*/
#ifndef LANGUAGE_FR_H
#define LANGUAGE_FR_H
#define MAPPER_C2C3
#define DISPLAY_CHARSET_ISO10646_1
#define WELCOME_MSG MACHINE_NAME _UxGT(" prête.")
#define MSG_BACK _UxGT("Retour")
#define MSG_SD_INSERTED _UxGT("Carte insérée")
#define MSG_SD_REMOVED _UxGT("Carte retirée")
#define MSG_LCD_ENDSTOPS _UxGT("Butées") // Max length 8 characters
#define MSG_MAIN _UxGT("Menu principal")
#define MSG_AUTOSTART _UxGT("Demarrage auto")
#define MSG_DISABLE_STEPPERS _UxGT("Arrêter moteurs")
#define MSG_DEBUG_MENU _UxGT("Menu debug")
#define MSG_PROGRESS_BAR_TEST _UxGT("Test barre progression")
#define MSG_AUTO_HOME _UxGT("Origine auto.")
#define MSG_AUTO_HOME_X _UxGT("Origine X Auto.")
#define MSG_AUTO_HOME_Y _UxGT("Origine Y Auto.")
#define MSG_AUTO_HOME_Z _UxGT("Origine Z Auto.")
#define MSG_LEVEL_BED_HOMING _UxGT("Origine XYZ")
#define MSG_LEVEL_BED_WAITING _UxGT("Clic pour commencer")
#define MSG_LEVEL_BED_NEXT_POINT _UxGT("Point suivant")
#define MSG_LEVEL_BED_DONE _UxGT("Mise à niveau OK!")
#define MSG_SET_HOME_OFFSETS _UxGT("Regl. décal. origine")
#define MSG_HOME_OFFSETS_APPLIED _UxGT("Décalages appliqués")
#define MSG_SET_ORIGIN _UxGT("Régler origine")
#define MSG_PREHEAT_1 _UxGT("Préchauffage PLA")
#define MSG_PREHEAT_1_N _UxGT("Préchauff. PLA ")
#define MSG_PREHEAT_1_ALL _UxGT("Préch. PLA Tout")
#define MSG_PREHEAT_1_END MSG_PREHEAT_1 _UxGT(" fini")
#define MSG_PREHEAT_1_BEDONLY _UxGT("Préch. PLA lit")
#define MSG_PREHEAT_1_SETTINGS _UxGT("Regl. prech. PLA")
#define MSG_PREHEAT_2 _UxGT("Préchauffage ABS")
#define MSG_PREHEAT_2_N _UxGT("Préchauff. ABS ")
#define MSG_PREHEAT_2_ALL _UxGT("Préch. ABS Tout")
#define MSG_PREHEAT_2_END MSG_PREHEAT_2 _UxGT(" fini")
#define MSG_PREHEAT_2_BEDONLY _UxGT("Préch. ABS lit")
#define MSG_PREHEAT_2_SETTINGS _UxGT("Regl. prech. ABS")
#define MSG_COOLDOWN _UxGT("Refroidir")
#define MSG_SWITCH_PS_ON _UxGT("Allumer alim.")
#define MSG_SWITCH_PS_OFF _UxGT("Éteindre alim.")
#define MSG_EXTRUDE _UxGT("Éxtrusion")
#define MSG_RETRACT _UxGT("Rétraction")
#define MSG_MOVE_AXIS _UxGT("Déplacer un axe")
#define MSG_BED_LEVELING _UxGT("Règl. Niv. lit")
#define MSG_LEVEL_BED _UxGT("Règl. Niv. lit")
#define MSG_MOVING _UxGT("Déplacement...")
#define MSG_FREE_XY _UxGT("Débloquer XY")
#define MSG_MOVE_X _UxGT("Dépl. X")
#define MSG_MOVE_Y _UxGT("Dépl. Y")
#define MSG_MOVE_Z _UxGT("Dépl. Z")
#define MSG_MOVE_E _UxGT("Extruder")
#define MSG_MOVE_01MM _UxGT("Dépl. 0.1mm")
#define MSG_MOVE_1MM _UxGT("Dépl. 1mm")
#define MSG_MOVE_10MM _UxGT("Dépl. 10mm")
#define MSG_SPEED _UxGT(" Vitesse")
#define MSG_BED_Z _UxGT("Lit Z")
#define MSG_NOZZLE _UxGT("Buse")
#define MSG_BED _UxGT("Lit")
#define MSG_FAN_SPEED _UxGT("Vitesse ventil.")
#define MSG_FLOW _UxGT("Flux")
#define MSG_CONTROL _UxGT("Contrôler")
#define MSG_MIN LCD_STR_THERMOMETER _UxGT(" Min")
#define MSG_MAX LCD_STR_THERMOMETER _UxGT(" Max")
#define MSG_FACTOR LCD_STR_THERMOMETER _UxGT(" Facteur")
#define MSG_AUTOTEMP _UxGT("Temp. Auto.")
#define MSG_ON _UxGT("Marche ")
#define MSG_OFF _UxGT("Arrêt")
#define MSG_PID_P _UxGT("PID-P")
#define MSG_PID_I _UxGT("PID-I")
#define MSG_PID_D _UxGT("PID-D")
#define MSG_PID_C _UxGT("PID-C")
#define MSG_SELECT _UxGT("Sélectionner")
#define MSG_ACC _UxGT("Accélération")
#define MSG_JERK _UxGT("Jerk")
#define MSG_VX_JERK _UxGT("Vx-jerk")
#define MSG_VY_JERK _UxGT("Vy-jerk")
#define MSG_VZ_JERK _UxGT("Vz-jerk")
#define MSG_VE_JERK _UxGT("Ve-jerk")
#define MSG_VMAX _UxGT("Vmax")
#define MSG_VMIN _UxGT("Vmin")
#define MSG_VTRAV_MIN _UxGT("Vdepl min")
#define MSG_AMAX _UxGT("Amax ")
#define MSG_A_RETRACT _UxGT("A-retract")
#define MSG_A_TRAVEL _UxGT("A-Dépl.")
#define MSG_STEPS_PER_MM _UxGT("Pas/mm")
#define MSG_XSTEPS _UxGT("Xpas/mm")
#define MSG_YSTEPS _UxGT("Ypas/mm")
#define MSG_ZSTEPS _UxGT("Zpas/mm")
#define MSG_ESTEPS _UxGT("Epas/mm")
#define MSG_E1STEPS _UxGT("E1pas/mm")
#define MSG_E2STEPS _UxGT("E2pas/mm")
#define MSG_E3STEPS _UxGT("E3pas/mm")
#define MSG_E4STEPS _UxGT("E4pas/mm")
#define MSG_E5STEPS _UxGT("E5pas/mm")
#define MSG_TEMPERATURE _UxGT("Température")
#define MSG_MOTION _UxGT("Mouvement")
#define MSG_FILAMENT _UxGT("Filament")
#define MSG_VOLUMETRIC_ENABLED _UxGT("E en mm3")
#define MSG_FILAMENT_DIAM _UxGT("Diam. Fil.")
#define MSG_ADVANCE_K _UxGT("Advance K")
#define MSG_CONTRAST _UxGT("Contraste LCD")
#define MSG_STORE_EEPROM _UxGT("Sauver config")
#define MSG_LOAD_EEPROM _UxGT("Lire config")
#define MSG_RESTORE_FAILSAFE _UxGT("Restaurer défauts")
#define MSG_REFRESH _UxGT("Actualiser")
#define MSG_WATCH _UxGT("Surveiller")
#define MSG_PREPARE _UxGT("Préparer")
#define MSG_TUNE _UxGT("Régler")
#define MSG_PAUSE_PRINT _UxGT("Interrompre impr.")
#define MSG_RESUME_PRINT _UxGT("Reprendre impr.")
#define MSG_STOP_PRINT _UxGT("Arrêter impr.")
#define MSG_CARD_MENU _UxGT("Impr. depuis SD")
#define MSG_NO_CARD _UxGT("Pas de carte")
#define MSG_DWELL _UxGT("Repos...")
#define MSG_USERWAIT _UxGT("Atten. de l'util.")
#define MSG_RESUMING _UxGT("Repri. de l'impr.")
#define MSG_PRINT_ABORTED _UxGT("Impr. Annulée")
#define MSG_NO_MOVE _UxGT("Moteurs bloqués.")
#define MSG_KILLED _UxGT("MORT.")
#define MSG_STOPPED _UxGT("STOPPÉ.")
#define MSG_CONTROL_RETRACT _UxGT("Retraction mm")
#define MSG_CONTROL_RETRACT_SWAP _UxGT("Ech. Retr. mm")
#define MSG_CONTROL_RETRACTF _UxGT("Rétraction V")
#define MSG_CONTROL_RETRACT_ZLIFT _UxGT("Saut Z mm")
#define MSG_CONTROL_RETRACT_RECOVER _UxGT("UnRet mm")
#define MSG_CONTROL_RETRACT_RECOVER_SWAP _UxGT("Ech. UnRet mm")
#define MSG_CONTROL_RETRACT_RECOVERF _UxGT("UnRet V")
#define MSG_AUTORETRACT _UxGT("Rétract. Auto.")
#define MSG_FILAMENTCHANGE _UxGT("Changer filament")
#define MSG_INIT_SDCARD _UxGT("Init. la carte SD")
#define MSG_CNG_SDCARD _UxGT("Changer de carte")
#define MSG_ZPROBE_OUT _UxGT("Z sonde extè. lit")
#define MSG_BLTOUCH_SELFTEST _UxGT("Autotest BLTouch")
#define MSG_BLTOUCH_RESET _UxGT("RaZ BLTouch")
#define MSG_BLTOUCH_DEPLOY _UxGT("Déployer BLTouch")
#define MSG_BLTOUCH_STOW _UxGT("Ranger BLTouch")
#define MSG_HOME _UxGT("Origine") // Used as MSG_HOME " " MSG_X MSG_Y MSG_Z " " MSG_FIRST
#define MSG_FIRST _UxGT("Premier")
#define MSG_ZPROBE_ZOFFSET _UxGT("Décalage Z")
#define MSG_BABYSTEP_X _UxGT("Babystep X")
#define MSG_BABYSTEP_Y _UxGT("Babystep Y")
#define MSG_BABYSTEP_Z _UxGT("Babystep Z")
#define MSG_ENDSTOP_ABORT _UxGT("Butée abandon")
#define MSG_HEATING_FAILED_LCD _UxGT("Erreur de chauffe")
#define MSG_ERR_REDUNDANT_TEMP _UxGT("Err: TEMP. REDONDANT")
#define MSG_THERMAL_RUNAWAY _UxGT("EMBALLEMENT THERM.")
#define MSG_ERR_MAXTEMP _UxGT("Err: TEMP. MAX")
#define MSG_ERR_MINTEMP _UxGT("Err: TEMP. MIN")
#define MSG_ERR_MAXTEMP_BED _UxGT("Err: TEMP. MAX LIT")
#define MSG_ERR_MINTEMP_BED _UxGT("Err: TEMP. MIN LIT")
#define MSG_ERR_Z_HOMING _UxGT("G28 Z interdit")
#define MSG_HALTED _UxGT("IMPR. STOPPÉE")
#define MSG_PLEASE_RESET _UxGT("RaZ. SVP")
#define MSG_SHORT_DAY _UxGT("j") // One character only
#define MSG_SHORT_HOUR _UxGT("h") // One character only
#define MSG_SHORT_MINUTE _UxGT("m") // One character only
#define MSG_HEATING _UxGT("En chauffe...")
#define MSG_HEATING_COMPLETE _UxGT("Chauffe terminée")
#define MSG_BED_HEATING _UxGT("Lit en chauffe..")
#define MSG_BED_DONE _UxGT("Chauffe lit terminée")
#define MSG_DELTA_CALIBRATE _UxGT("Calibration Delta")
#define MSG_DELTA_CALIBRATE_X _UxGT("Calibrer X")
#define MSG_DELTA_CALIBRATE_Y _UxGT("Calibrer Y")
#define MSG_DELTA_CALIBRATE_Z _UxGT("Calibrer Z")
#define MSG_DELTA_CALIBRATE_CENTER _UxGT("Calibrer centre")
#define MSG_DELTA_AUTO_CALIBRATE _UxGT("Calibration Auto")
#define MSG_DELTA_HEIGHT_CALIBRATE _UxGT("Hauteur Delta")
#define MSG_INFO_MENU _UxGT("Infos imprimante")
#define MSG_INFO_PRINTER_MENU _UxGT("Infos imprimante")
#define MSG_INFO_STATS_MENU _UxGT("Stats. imprimante")
#define MSG_INFO_BOARD_MENU _UxGT("Infos carte")
#define MSG_INFO_THERMISTOR_MENU _UxGT("Thermistors")
#define MSG_INFO_EXTRUDERS _UxGT("Extrudeurs")
#define MSG_INFO_BAUDRATE _UxGT("Baud")
#define MSG_INFO_PROTOCOL _UxGT("Protocole")
#define MSG_CASE_LIGHT _UxGT("Lumière")
#if LCD_WIDTH >= 20
#define MSG_INFO_PRINT_COUNT _UxGT("Nbre impressions")
#define MSG_INFO_COMPLETED_PRINTS _UxGT("Terminées")
#define MSG_INFO_PRINT_TIME _UxGT("Tps impr. total")
#define MSG_INFO_PRINT_LONGEST _UxGT("Impr. la + longue")
#define MSG_INFO_PRINT_FILAMENT _UxGT("Total filament")
#else
#define MSG_INFO_PRINT_COUNT _UxGT("Impressions")
#define MSG_INFO_COMPLETED_PRINTS _UxGT("Terminées")
#define MSG_INFO_PRINT_TIME _UxGT("Total")
#define MSG_INFO_PRINT_LONGEST _UxGT("+ long")
#define MSG_INFO_PRINT_FILAMENT _UxGT("Filament")
#endif
#define MSG_INFO_MIN_TEMP _UxGT("Temp Min")
#define MSG_INFO_MAX_TEMP _UxGT("Temp Max")
#define MSG_INFO_PSU _UxGT("Alimentation")
#define MSG_DRIVE_STRENGTH _UxGT("Puiss. moteur ")
#define MSG_DAC_PERCENT _UxGT("Driver %")
#define MSG_DAC_EEPROM_WRITE _UxGT("DAC EEPROM sauv.")
#define MSG_FILAMENT_CHANGE_HEADER _UxGT("PRINT PAUSED")
#define MSG_FILAMENT_CHANGE_OPTION_HEADER _UxGT("RESUME OPTIONS:")
#define MSG_FILAMENT_CHANGE_OPTION_EXTRUDE _UxGT("+ extrusion")
#define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("Reprendre impr.")
#define MSG_FILAMENT_CHANGE_MINTEMP _UxGT("La temp. minimum est ")
#define MSG_FILAMENT_CHANGE_NOZZLE _UxGT(" Buse: ")
#if LCD_HEIGHT >= 4
// Up to 3 lines allowed
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Attente Démarrage")
#define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("du filament")
#define MSG_FILAMENT_CHANGE_INIT_3 _UxGT("changer")
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("attente de")
#define MSG_FILAMENT_CHANGE_UNLOAD_2 _UxGT("décharger filament")
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("insérer filament")
#define MSG_FILAMENT_CHANGE_INSERT_2 _UxGT("et app. bouton")
#define MSG_FILAMENT_CHANGE_INSERT_3 _UxGT("pour continuer...")
#define MSG_FILAMENT_CHANGE_HEAT_1 _UxGT("Appuyer sur le bouton...")
#define MSG_FILAMENT_CHANGE_HEAT_2 _UxGT("Pour chauffer la buse.")
#define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Buse en chauffe")
#define MSG_FILAMENT_CHANGE_HEATING_2 _UxGT("Patientez SVP...")
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("attente de")
#define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("chargement filament")
#define MSG_FILAMENT_CHANGE_EXTRUDE_1 _UxGT("attente de")
#define MSG_FILAMENT_CHANGE_EXTRUDE_2 _UxGT("extrusion filament")
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("attente impression")
#define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("pour reprendre")
#else // LCD_HEIGHT < 4
// Up to 2 lines allowed
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Patientez...")
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Ejection...")
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Insérer et clic")
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Chargement...")
#define MSG_FILAMENT_CHANGE_EXTRUDE_1 _UxGT("Extrusion...")
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Reprise...")
#endif // LCD_HEIGHT < 4
#endif // LANGUAGE_FR_H

View File

@@ -1,289 +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/>.
*
*/
/**
* Italian
*
* LCD Menu Messages
* See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
*
*/
#ifndef LANGUAGE_IT_H
#define LANGUAGE_IT_H
#define DISPLAY_CHARSET_ISO10646_1
#define WELCOME_MSG MACHINE_NAME _UxGT(" pronto.")
#define MSG_BACK _UxGT("Indietro")
#define MSG_SD_INSERTED _UxGT("SD Card inserita")
#define MSG_SD_REMOVED _UxGT("SD Card rimossa")
#define MSG_LCD_ENDSTOPS _UxGT("Endstop")
#define MSG_MAIN _UxGT("Menu principale")
#define MSG_AUTOSTART _UxGT("Autostart")
#define MSG_DISABLE_STEPPERS _UxGT("Disabilita Motori")
#define MSG_DEBUG_MENU _UxGT("Menu di debug")
#define MSG_PROGRESS_BAR_TEST _UxGT("Test barra avanzamento")
#define MSG_AUTO_HOME _UxGT("Auto Home")
#define MSG_AUTO_HOME_X _UxGT("Home asse X")
#define MSG_AUTO_HOME_Y _UxGT("Home asse Y")
#define MSG_AUTO_HOME_Z _UxGT("Home asse Z")
#define MSG_LEVEL_BED_HOMING _UxGT("Home assi XYZ")
#define MSG_LEVEL_BED_WAITING _UxGT("Premi per iniziare")
#define MSG_LEVEL_BED_NEXT_POINT _UxGT("Punto successivo")
#define MSG_LEVEL_BED_DONE _UxGT("Livel. terminato!")
#define MSG_SET_HOME_OFFSETS _UxGT("Imp. offset home")
#define MSG_HOME_OFFSETS_APPLIED _UxGT("Offset applicato")
#define MSG_SET_ORIGIN _UxGT("Imposta Origine")
#define MSG_PREHEAT_1 _UxGT("Preriscalda PLA")
#define MSG_PREHEAT_1_N MSG_PREHEAT_1 _UxGT(" ")
#define MSG_PREHEAT_1_ALL MSG_PREHEAT_1 _UxGT(" Tutto")
#define MSG_PREHEAT_1_END MSG_PREHEAT_1 _UxGT(" Fine")
#define MSG_PREHEAT_1_BEDONLY MSG_PREHEAT_1 _UxGT(" Piatto")
#define MSG_PREHEAT_1_SETTINGS MSG_PREHEAT_1 _UxGT(" conf")
#define MSG_PREHEAT_2 _UxGT("Preriscalda ABS")
#define MSG_PREHEAT_2_N MSG_PREHEAT_2 _UxGT(" ")
#define MSG_PREHEAT_2_ALL MSG_PREHEAT_2 _UxGT(" Tutto")
#define MSG_PREHEAT_2_END MSG_PREHEAT_2 _UxGT(" Fine")
#define MSG_PREHEAT_2_BEDONLY MSG_PREHEAT_2 _UxGT(" Piatto")
#define MSG_PREHEAT_2_SETTINGS MSG_PREHEAT_2 _UxGT(" conf")
#define MSG_COOLDOWN _UxGT("Raffredda")
#define MSG_SWITCH_PS_ON _UxGT("Accendi aliment.")
#define MSG_SWITCH_PS_OFF _UxGT("Spegni aliment.")
#define MSG_EXTRUDE _UxGT("Estrudi")
#define MSG_RETRACT _UxGT("Ritrai")
#define MSG_MOVE_AXIS _UxGT("Muovi Asse")
#define MSG_BED_LEVELING _UxGT("Livella piano")
#define MSG_LEVEL_BED _UxGT("Livella piano")
#define MSG_MOVING _UxGT("In movimento...")
#define MSG_FREE_XY _UxGT("XY liberi")
#define MSG_MOVE_X _UxGT("Muovi X")
#define MSG_MOVE_Y _UxGT("Muovi Y")
#define MSG_MOVE_Z _UxGT("Muovi Z")
#define MSG_MOVE_E _UxGT("Estrusore")
#define MSG_MOVE_01MM _UxGT("Muovi di 0.1mm")
#define MSG_MOVE_1MM _UxGT("Muovi di 1mm")
#define MSG_MOVE_10MM _UxGT("Muovi di 10mm")
#if ENABLED(DOGLCD)
#define MSG_SPEED _UxGT("Velocità")
#else
#define MSG_SPEED _UxGT("Velocita")
#endif
#define MSG_BED_Z _UxGT("piatto Z")
#define MSG_NOZZLE _UxGT("Ugello")
#define MSG_BED _UxGT("Piatto")
#if ENABLED(DOGLCD)
#define MSG_FAN_SPEED _UxGT("Velocità ventola")
#else
#define MSG_FAN_SPEED _UxGT("Velocita ventola")
#endif
#define MSG_FLOW _UxGT("Flusso")
#define MSG_CONTROL _UxGT("Controllo")
#define MSG_MIN LCD_STR_THERMOMETER _UxGT(" Min")
#define MSG_MAX LCD_STR_THERMOMETER _UxGT(" Max")
#define MSG_FACTOR LCD_STR_THERMOMETER _UxGT(" Fact")
#define MSG_AUTOTEMP _UxGT("Autotemp")
#define MSG_ON _UxGT("On ")
#define MSG_OFF _UxGT("Off")
#define MSG_PID_P _UxGT("PID-P")
#define MSG_PID_I _UxGT("PID-I")
#define MSG_PID_D _UxGT("PID-D")
#define MSG_PID_C _UxGT("PID-C")
#define MSG_SELECT _UxGT("Seleziona")
#define MSG_ACC _UxGT("Accel")
#define MSG_JERK _UxGT("Jerk")
#define MSG_VX_JERK _UxGT("Vx-jerk")
#define MSG_VY_JERK _UxGT("Vy-jerk")
#define MSG_VZ_JERK _UxGT("Vz-jerk")
#define MSG_VE_JERK _UxGT("Ve-jerk")
#define MSG_VMAX _UxGT("Vmax ")
#define MSG_VMIN _UxGT("Vmin")
#define MSG_VTRAV_MIN _UxGT("VTrav min")
#define MSG_AMAX _UxGT("Amax ")
#define MSG_A_RETRACT _UxGT("A-retract")
#define MSG_A_TRAVEL _UxGT("A-Spostamento")
#define MSG_STEPS_PER_MM _UxGT("Passi/mm")
#define MSG_XSTEPS _UxGT("Xpassi/mm")
#define MSG_YSTEPS _UxGT("Ypassi/mm")
#define MSG_ZSTEPS _UxGT("Zpassi/mm")
#define MSG_ESTEPS _UxGT("Epassi/mm")
#define MSG_E1STEPS _UxGT("E1passi/mm")
#define MSG_E2STEPS _UxGT("E2passi/mm")
#define MSG_E3STEPS _UxGT("E3passi/mm")
#define MSG_E4STEPS _UxGT("E4passi/mm")
#define MSG_E5STEPS _UxGT("E5passi/mm")
#define MSG_TEMPERATURE _UxGT("Temperatura")
#define MSG_MOTION _UxGT("Movimento")
#define MSG_FILAMENT _UxGT("Filamento")
#define MSG_VOLUMETRIC_ENABLED _UxGT("E in mm3")
#define MSG_FILAMENT_DIAM _UxGT("Diam. filo")
#define MSG_ADVANCE_K _UxGT("K avanzato")
#define MSG_CONTRAST _UxGT("Contrasto LCD")
#define MSG_STORE_EEPROM _UxGT("Salva in memoria")
#define MSG_LOAD_EEPROM _UxGT("Carica da memoria")
#define MSG_RESTORE_FAILSAFE _UxGT("Ripristina imp.")
#define MSG_REFRESH _UxGT("Aggiorna")
#define MSG_WATCH _UxGT("Guarda")
#define MSG_PREPARE _UxGT("Prepara")
#define MSG_TUNE _UxGT("Regola")
#define MSG_PAUSE_PRINT _UxGT("Pausa")
#define MSG_RESUME_PRINT _UxGT("Riprendi stampa")
#define MSG_STOP_PRINT _UxGT("Arresta stampa")
#define MSG_CARD_MENU _UxGT("Stampa da SD")
#define MSG_NO_CARD _UxGT("SD non presente")
#define MSG_DWELL _UxGT("Sospensione...")
#define MSG_USERWAIT _UxGT("Attendi Utente..")
#define MSG_RESUMING _UxGT("Riprendi Stampa")
#define MSG_PRINT_ABORTED _UxGT("Stampa annullata")
#define MSG_NO_MOVE _UxGT("Nessun Movimento")
#define MSG_KILLED _UxGT("UCCISO. ")
#define MSG_STOPPED _UxGT("ARRESTATO. ")
#define MSG_CONTROL_RETRACT _UxGT("Ritrai mm")
#define MSG_CONTROL_RETRACT_SWAP _UxGT("Scamb. Ritrai mm")
#define MSG_CONTROL_RETRACTF _UxGT("Ritrai V")
#define MSG_CONTROL_RETRACT_ZLIFT _UxGT("Salta mm")
#define MSG_CONTROL_RETRACT_RECOVER _UxGT("UnRet mm")
#define MSG_CONTROL_RETRACT_RECOVER_SWAP _UxGT("Scamb. UnRet mm")
#define MSG_CONTROL_RETRACT_RECOVERF _UxGT("UnRet V")
#define MSG_AUTORETRACT _UxGT("AutoRitrai")
#define MSG_FILAMENTCHANGE _UxGT("Cambia filamento")
#define MSG_INIT_SDCARD _UxGT("Iniz. SD-Card")
#define MSG_CNG_SDCARD _UxGT("Cambia SD-Card")
#define MSG_ZPROBE_OUT _UxGT("Z probe out. bed")
#define MSG_BLTOUCH_SELFTEST _UxGT("Autotest BLTouch")
#define MSG_BLTOUCH_RESET _UxGT("Resetta BLTouch")
#define MSG_HOME _UxGT("Home") // Used as MSG_HOME " " MSG_X MSG_Y MSG_Z " " MSG_FIRST
#define MSG_FIRST _UxGT("prima")
#define MSG_ZPROBE_ZOFFSET _UxGT("Z Offset")
#define MSG_BABYSTEP_X _UxGT("Babystep X")
#define MSG_BABYSTEP_Y _UxGT("Babystep Y")
#define MSG_BABYSTEP_Z _UxGT("Babystep Z")
#define MSG_ENDSTOP_ABORT _UxGT("Finecorsa abort")
#define MSG_HEATING_FAILED_LCD _UxGT("Riscald. Fallito")
#define MSG_ERR_REDUNDANT_TEMP _UxGT("Err: TEMP RIDONDANTI")
#define MSG_THERMAL_RUNAWAY _UxGT("TEMP FUORI CONTROLLO")
#define MSG_ERR_MAXTEMP _UxGT("Err: TEMP MASSIMA")
#define MSG_ERR_MINTEMP _UxGT("Err: TEMP MINIMA")
#define MSG_ERR_MAXTEMP_BED _UxGT("Err: TEMP MASSIMA PIATTO")
#define MSG_ERR_MINTEMP_BED _UxGT("Err: TEMP MINIMA PIATTO")
#define MSG_ERR_Z_HOMING _UxGT("G28 Z Vietato")
#define MSG_HALTED _UxGT("STAMPANTE FERMATA")
#define MSG_PLEASE_RESET _UxGT("Riavviare prego")
#define MSG_SHORT_DAY _UxGT("g") // One character only
#define MSG_SHORT_HOUR _UxGT("h") // One character only
#define MSG_SHORT_MINUTE _UxGT("m") // One character only
#define MSG_HEATING _UxGT("Riscaldamento..")
#define MSG_HEATING_COMPLETE _UxGT("Risc. completato")
#define MSG_BED_HEATING _UxGT("Risc. Piatto..")
#define MSG_BED_DONE _UxGT("Piatto Pronto")
#define MSG_DELTA_CALIBRATE _UxGT("Calibraz. Delta")
#define MSG_DELTA_CALIBRATE_X _UxGT("Calibra X")
#define MSG_DELTA_CALIBRATE_Y _UxGT("Calibra Y")
#define MSG_DELTA_CALIBRATE_Z _UxGT("Calibra Z")
#define MSG_DELTA_CALIBRATE_CENTER _UxGT("Calibra Center")
#define MSG_DELTA_AUTO_CALIBRATE _UxGT("Auto calibrazione")
#define MSG_DELTA_HEIGHT_CALIBRATE _UxGT("Imp. altezza Delta")
#define MSG_INFO_MENU _UxGT("Riguardo stampante")
#define MSG_INFO_PRINTER_MENU _UxGT("Info. stampante")
#define MSG_INFO_STATS_MENU _UxGT("Statistiche")
#define MSG_INFO_BOARD_MENU _UxGT("Info. scheda")
#define MSG_INFO_THERMISTOR_MENU _UxGT("Termistori")
#define MSG_INFO_EXTRUDERS _UxGT("Estrusori")
#define MSG_INFO_BAUDRATE _UxGT("Baud")
#define MSG_INFO_PROTOCOL _UxGT("Protocollo")
#define MSG_CASE_LIGHT _UxGT("Luci Case")
#if LCD_WIDTH >= 20
#define MSG_INFO_PRINT_COUNT _UxGT("Contat. stampa")
#define MSG_INFO_COMPLETED_PRINTS _UxGT("Completati")
#define MSG_INFO_PRINT_TIME _UxGT("Tempo totale")
#if ENABLED(DOGLCD)
#define MSG_INFO_PRINT_LONGEST _UxGT("Lavoro più lungo")
#else
#define MSG_INFO_PRINT_LONGEST _UxGT("Lavoro piu lungo")
#endif
#define MSG_INFO_PRINT_FILAMENT _UxGT("Totale estruso")
#else
#define MSG_INFO_PRINT_COUNT _UxGT("Stampe")
#define MSG_INFO_COMPLETED_PRINTS _UxGT("Completati")
#define MSG_INFO_PRINT_TIME _UxGT("Durata")
#if ENABLED(DOGLCD)
#define MSG_INFO_PRINT_LONGEST _UxGT("Più lungo")
#else
#define MSG_INFO_PRINT_LONGEST _UxGT("Piu lungo")
#endif
#define MSG_INFO_PRINT_FILAMENT _UxGT("Estruso")
#endif
#define MSG_INFO_MIN_TEMP _UxGT("Temp min")
#define MSG_INFO_MAX_TEMP _UxGT("Temp max")
#define MSG_INFO_PSU _UxGT("Alimentatore")
#define MSG_DRIVE_STRENGTH _UxGT("Potenza Drive")
#define MSG_DAC_PERCENT _UxGT("Driver %")
#define MSG_DAC_EEPROM_WRITE _UxGT("Scrivi DAC EEPROM")
#define MSG_FILAMENT_CHANGE_HEADER _UxGT("PRINT PAUSED")
#define MSG_FILAMENT_CHANGE_OPTION_HEADER _UxGT("RESUME OPTIONS:")
#define MSG_FILAMENT_CHANGE_OPTION_EXTRUDE _UxGT("Estrusione")
#define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("Riprendi stampa")
#if ENABLED(DOGLCD)
#define MSG_FILAMENT_CHANGE_MINTEMP _UxGT("Temp minima è ")
#else
#define MSG_FILAMENT_CHANGE_MINTEMP _UxGT("Temp minima e ")
#endif
#define MSG_FILAMENT_CHANGE_NOZZLE _UxGT(" Ugello: ")
#if LCD_HEIGHT >= 4
// Up to 3 lines allowed
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Attendere avvio")
#define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("del cambio")
#define MSG_FILAMENT_CHANGE_INIT_3 _UxGT("di filamento")
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Attendere")
#define MSG_FILAMENT_CHANGE_UNLOAD_2 _UxGT("l'espulsione")
#define MSG_FILAMENT_CHANGE_UNLOAD_3 _UxGT("del filamento")
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Inserisci il")
#define MSG_FILAMENT_CHANGE_INSERT_2 _UxGT("filamento e")
#define MSG_FILAMENT_CHANGE_INSERT_3 _UxGT("premi per cont")
#define MSG_FILAMENT_CHANGE_HEAT_1 _UxGT("Premi per")
#define MSG_FILAMENT_CHANGE_HEAT_2 _UxGT("riscald ugello.")
#define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Riscald. ugello")
#define MSG_FILAMENT_CHANGE_HEATING_2 _UxGT("Attendere...")
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Attendere")
#define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("il caricamento")
#define MSG_FILAMENT_CHANGE_LOAD_3 _UxGT("del filamento")
#define MSG_FILAMENT_CHANGE_EXTRUDE_1 _UxGT("Attendere")
#define MSG_FILAMENT_CHANGE_EXTRUDE_2 _UxGT("l'estrusione")
#define MSG_FILAMENT_CHANGE_EXTRUDE_3 _UxGT("del filamento")
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Attendere")
#define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("la ripresa")
#define MSG_FILAMENT_CHANGE_RESUME_3 _UxGT("della stampa")
#else // LCD_HEIGHT < 4
// Up to 2 lines allowed
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Attendere...")
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Espulsione...")
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Inserisci e premi")
#define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Riscaldamento...")
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Caricamento...")
#define MSG_FILAMENT_CHANGE_EXTRUDE_1 _UxGT("Estrusione...")
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Ripresa...")
#endif // LCD_HEIGHT < 4
#endif // LANGUAGE_IT_H

View File

@@ -1,322 +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/>.
*
*/
/**
* Japanese (Kana)
*
* LCD Menu Messages
* See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
*
*/
#ifndef LANGUAGE_KANA_H
#define LANGUAGE_KANA_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_KANA
// 片仮名表示定義
#define WELCOME_MSG MACHINE_NAME " ready."
#define MSG_SD_INSERTED "\xb6\xb0\xc4\xde\xb6\xde\xbf\xb3\xc6\xad\xb3\xbb\xda\xcf\xbc\xc0" // "カードガソウニュウサレマシタ" ("Card inserted")
#define MSG_SD_REMOVED "\xb6\xb0\xc4\xde\xb6\xde\xb1\xd8\xcf\xbe\xdd" // "カードガアリマセン" ("Card removed")
#define MSG_LCD_ENDSTOPS "Endstops" // Max length 8 characters
#define MSG_MAIN "\xd2\xb2\xdd" // "メイン" ("Main")
#define MSG_AUTOSTART "\xbc\xde\xc4\xde\xb3\xb6\xb2\xbc" // "ジドウカイシ" ("Autostart")
#define MSG_DISABLE_STEPPERS "\xd3\xb0\xc0\xb0\xc3\xde\xdd\xb9\xde\xdd\x20\xb5\xcc" // "モーターデンゲン オフ" ("Disable steppers")
#define MSG_DEBUG_MENU "\xc3\xde\xca\xde\xaf\xb8\xde\xd2\xc6\xad\xb0" // "デバッグメニュー" ("Debug Menu")
#define MSG_PROGRESS_BAR_TEST "\xcc\xdf\xdb\xb8\xde\xda\xbd\xca\xde\xb0\x20\xc3\xbd\xc4" // "プログレスバー テスト" ("Progress Bar Test")
#define MSG_AUTO_HOME "\xb9\xde\xdd\xc3\xdd\xcc\xaf\xb7" // "ゲンテンフッキ" ("Auto home")
#define MSG_AUTO_HOME_X "X\xbc\xde\xb8\x20\xb9\xde\xdd\xc3\xdd\xcc\xaf\xb7" // "Xジク ゲンテンフッキ" ("Home X")
#define MSG_AUTO_HOME_Y "Y\xbc\xde\xb8\x20\xb9\xde\xdd\xc3\xdd\xcc\xaf\xb7" // "Yジク ゲンテンフッキ" ("Home Y")
#define MSG_AUTO_HOME_Z "Z\xbc\xde\xb8\x20\xb9\xde\xdd\xc3\xdd\xcc\xaf\xb7" // "Zジク ゲンテンフッキ" ("Home Z")
#define MSG_LEVEL_BED_HOMING "\xb9\xde\xdd\xc3\xdd\xcc\xaf\xb7\xc1\xad\xb3" // "ゲンテンフッキチュウ" ("Homing XYZ")
#define MSG_LEVEL_BED_WAITING "\xda\xcd\xde\xd8\xdd\xb8\xde\xb6\xb2\xbc" // "レベリングカイシ" ("Click to Begin")
#define MSG_LEVEL_BED_NEXT_POINT "\xc2\xb7\xde\xc9\xbf\xb8\xc3\xb2\xc3\xdd\xcd" // "ツギノソクテイテンヘ" ("Next Point")
#define MSG_LEVEL_BED_DONE "\xda\xcd\xde\xd8\xdd\xb8\xde\xb6\xdd\xd8\xae\xb3" // "レベリングカンリョウ" ("Leveling Done!")
#define MSG_SET_HOME_OFFSETS "\xb7\xbc\xde\xad\xdd\xb5\xcc\xbe\xaf\xc4\xbe\xaf\xc3\xb2" // "キジュンオフセットセッテイ" ("Set home offsets")
#define MSG_HOME_OFFSETS_APPLIED "\xb5\xcc\xbe\xaf\xc4\xb6\xde\xc3\xb7\xd6\xb3\xbb\xda\xcf\xbc\xc0" // "オフセットガテキヨウサレマシタ" ("Offsets applied")
#define MSG_SET_ORIGIN "\xb7\xbc\xde\xad\xdd\xbe\xaf\xc4" // "キジュンセット" ("Set origin")
#define MSG_PREHEAT_1 "PLA \xd6\xc8\xc2" // "PLA ヨネツ" ("Preheat PLA")
#define MSG_PREHEAT_1_N MSG_PREHEAT_1 " "
#define MSG_PREHEAT_1_ALL "PLA \xbd\xcd\xde\xc3\xd6\xc8\xc2" // "PLA スベテヨネツ" (" All")
#define MSG_PREHEAT_1_BEDONLY "PLA \xcd\xde\xaf\xc4\xde\xd6\xc8\xc2" // "PLA ベッドヨネツ" (" Bed")
#define MSG_PREHEAT_1_SETTINGS MSG_PREHEAT_1 "\xbe\xaf\xc3\xb2" // "セッテイ" (" conf")
#define MSG_PREHEAT_2 "ABS \xd6\xc8\xc2" // "ABS ヨネツ" ("Preheat ABS")
#define MSG_PREHEAT_2_N MSG_PREHEAT_2 " "
#define MSG_PREHEAT_2_ALL "ABS \xbd\xcd\xde\xc3\xd6\xc8\xc2" // "ABS スベテヨネツ" (" All")
#define MSG_PREHEAT_2_BEDONLY "ABS \xcd\xde\xaf\xc4\xde\xd6\xc8\xc2" // "ABS ベッドヨネツ" (" Bed")
#define MSG_PREHEAT_2_SETTINGS MSG_PREHEAT_2 "\xbe\xaf\xc3\xb2" // "セッテイ" (" conf")
#define MSG_COOLDOWN "\xb6\xc8\xc2\xc3\xb2\xbc" // "カネツテイシ" ("Cooldown")
#define MSG_SWITCH_PS_ON "\xc3\xde\xdd\xb9\xde\xdd\x20\xb5\xdd" // "デンゲン オン" ("Switch power on")
#define MSG_SWITCH_PS_OFF "\xc3\xde\xdd\xb9\xde\xdd\x20\xb5\xcc" // "デンゲン オフ" ("Switch power off")
#define MSG_EXTRUDE "\xb5\xbc\xc0\xde\xbc" // "オシダシ" ("Extrude")
#define MSG_RETRACT "\xcb\xb7\xba\xd0\xbe\xaf\xc3\xb2" // "ヒキコミセッテイ" ("Retract")
#define MSG_MOVE_AXIS "\xbc\xde\xb8\xb2\xc4\xde\xb3" // "ジクイドウ" ("Move axis")
#define MSG_BED_LEVELING "\xcd\xde\xaf\xc4\xde\xda\xcd\xde\xd8\xdd\xb8\xde" // "ベッドレベリング" ("Bed Leveling")
#define MSG_LEVEL_BED "\xcd\xde\xaf\xc4\xde\xda\xcd\xde\xd8\xdd\xb8\xde" // "ベッドレベリング" ("Level bed")
#define MSG_MOVING "\xb2\xc4\xde\xb3\xc1\xad\xb3" // "イドウチュウ" ("Moving...")
#define MSG_FREE_XY "XY\xbc\xde\xb8\x20\xb6\xb2\xce\xb3" // "XYジク カイホウ" ("Free XY")
#define MSG_MOVE_X "X\xbc\xde\xb8\x20\xb2\xc4\xde\xb3" // "Xジク イドウ" ("Move X")
#define MSG_MOVE_Y "Y\xbc\xde\xb8\x20\xb2\xc4\xde\xb3" // "Yジク イドウ" ("Move Y")
#define MSG_MOVE_Z "Z\xbc\xde\xb8\x20\xb2\xc4\xde\xb3" // "Zジク イドウ" ("Move Z")
#define MSG_MOVE_E "\xb4\xb8\xbd\xc4\xd9\xb0\xc0\xde\xb0" // "エクストルーダー" ("Extruder")
#define MSG_MOVE_01MM "0.1mm \xb2\xc4\xde\xb3" // "0.1mm イドウ" ("Move 0.1mm")
#define MSG_MOVE_1MM " 1mm \xb2\xc4\xde\xb3" // " 1mm イドウ" ("Move 1mm")
#define MSG_MOVE_10MM " 10mm \xb2\xc4\xde\xb3" // " 10mm イドウ" ("Move 10mm")
#define MSG_SPEED "\xbf\xb8\xc4\xde" // "ソクド" ("Speed")
#define MSG_BED_Z "Z\xb5\xcc\xbe\xaf\xc4" // "Zオフセット" ("Bed Z")
#define MSG_NOZZLE "\xc9\xbd\xde\xd9" // "ノズル" ("Nozzle")
#define MSG_BED "\xcd\xde\xaf\xc4\xde" // "ベッド" ("Bed")
#define MSG_FAN_SPEED "\xcc\xa7\xdd\xbf\xb8\xc4\xde" // "ファンソクド" ("Fan speed")
#define MSG_FLOW "\xc4\xbc\xad\xc2\xd8\xae\xb3" // "トシュツリョウ" ("Flow")
#define MSG_CONTROL "\xbe\xb2\xb7\xde\xae" // "セイギョ" ("Control")
#define MSG_MIN LCD_STR_THERMOMETER " \xbb\xb2\xc3\xb2" // " サイテイ" (" Min")
#define MSG_MAX LCD_STR_THERMOMETER " \xbb\xb2\xba\xb3" // " サイコウ" (" Max")
#define MSG_FACTOR LCD_STR_THERMOMETER " \xcc\xa7\xb8\xc0\xb0" // " ファクター" (" Fact")
#if LCD_WIDTH >= 20
#define MSG_AUTOTEMP "\xbc\xde\xc4\xde\xb3\xb5\xdd\xc4\xde\xbe\xb2\xb7\xde\xae" // "ジドウオンドセイギョ" ("Autotemp")
#else
#define MSG_AUTOTEMP "\xbc\xde\xc4\xde\xb3\xb5\xdd\xc4\xde" // "ジドウオンド" ("Autotemp")
#endif
#define MSG_ON "\xb5\xdd " // "オン " ("On ")
#define MSG_OFF "\xb5\xcc " // "オフ " ("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_SELECT "\xbe\xdd\xc0\xb8" // "センタク" ("Select")
#if LCD_WIDTH >= 20
#define MSG_ACC "\xb6\xbf\xb8\xc4\xde mm/s2" // "カソクド mm/s2" ("Accel")
#define MSG_VX_JERK "X\xbc\xde\xb8\x20\xd4\xb8\xc4\xde mm/s" // "Xジク ヤクド mm/s" ("Vx-jerk")
#define MSG_VY_JERK "Y\xbc\xde\xb8\x20\xd4\xb8\xc4\xde mm/s" // "Yジク ヤクド mm/s" ("Vy-jerk")
#define MSG_VZ_JERK "Z\xbc\xde\xb8\x20\xd4\xb8\xc4\xde mm/s" // "Zジク ヤクド mm/s" ("Vz-jerk")
#define MSG_VE_JERK "\xb4\xb8\xbd\xc4\xd9\xb0\xc0\xde\xb0\x20\xd4\xb8\xc4\xde" // "エクストルーダー ヤクド" ("Ve-jerk")
#define MSG_VMAX "\xbb\xb2\xc0\xde\xb2\xb5\xb8\xd8\xbf\xb8\xc4\xde " // "サイダイオクリソクド " ("Vmax ")
#define MSG_VMIN "\xbb\xb2\xbc\xae\xb3\xb5\xb8\xd8\xbf\xb8\xc4\xde" // "サイショウオクリソクド" ("Vmin")
#define MSG_VTRAV_MIN "\xbb\xb2\xbc\xae\xb3\xb2\xc4\xde\xb3\xbf\xb8\xc4\xde" // "サイショウイドウソクド" ("VTrav min")
#define MSG_AMAX "\xbb\xb2\xc0\xde\xb2\xb6\xbf\xb8\xc4\xde " // "サイダイカソクド " ("Amax ")
#else
#define MSG_ACC "\xb6\xbf\xb8\xc4\xde" // "カソクド" ("Accel")
#define MSG_VX_JERK "X\xbc\xde\xb8\x20\xd4\xb8\xc4\xde" // "XYジク ヤクド" ("Vx-jerk")
#define MSG_VY_JERK "Y\xbc\xde\xb8\x20\xd4\xb8\xc4\xde" // "XYジク ヤクド" ("Vy-jerk")
#define MSG_VZ_JERK "Z\xbc\xde\xb8\x20\xd4\xb8\xc4\xde" // "Zジク ヤクド" ("Vz-jerk")
#define MSG_VE_JERK "E\x20\xd4\xb8\xc4\xde" // "E ヤクド" ("Ve-jerk")
#define MSG_VMAX "max\xb5\xb8\xd8\xbf\xb8\xc4\xde " // "maxオクリソクド" ("Vmax ")
#define MSG_VMIN "min\xb5\xb8\xd8\xbf\xb8\xc4\xde" // "minオクリソクド" ("Vmin")
#define MSG_VTRAV_MIN "min\xb2\xc4\xde\xb3\xbf\xb8\xc4\xde" // "minイドウソクド" ("VTrav min")
#define MSG_AMAX "max\xb6\xbf\xb8 " // "maxカソク " ("Amax ")
#endif
#define MSG_A_RETRACT "\xcb\xb7\xba\xd0\xb6\xbf\xb8\xc4\xde" // "ヒキコミカソクド" ("A-retract")
#define MSG_A_TRAVEL "\xb2\xc4\xde\xb3\xb6\xbf\xb8\xc4\xde" // "イドウカソクド" ("A-travel")
#if LCD_WIDTH >= 20
#define MSG_STEPS_PER_MM "Steps/mm"
#define MSG_XSTEPS "Xsteps/mm"
#define MSG_YSTEPS "Ysteps/mm"
#define MSG_ZSTEPS "Zsteps/mm"
#define MSG_ESTEPS "Esteps/mm"
#define MSG_E1STEPS "E1steps/mm"
#define MSG_E2STEPS "E2steps/mm"
#define MSG_E3STEPS "E3steps/mm"
#define MSG_E4STEPS "E4steps/mm"
#define MSG_E5STEPS "E5steps/mm"
#else
#define MSG_STEPS_PER_MM "Steps"
#define MSG_XSTEPS "Xsteps"
#define MSG_YSTEPS "Ysteps"
#define MSG_ZSTEPS "Zsteps"
#define MSG_ESTEPS "Esteps"
#define MSG_E1STEPS "E1steps"
#define MSG_E2STEPS "E2steps"
#define MSG_E3STEPS "E3steps"
#define MSG_E4STEPS "E4steps"
#define MSG_E5STEPS "E5steps"
#endif
#define MSG_TEMPERATURE "\xb5\xdd\xc4\xde" // "オンド" ("Temperature")
#define MSG_MOTION "\xb3\xba\xde\xb7\xbe\xaf\xc3\xb2" // "ウゴキセッテイ" ("Motion")
#define MSG_FILAMENT "\xcc\xa8\xd7\xd2\xdd\xc4" // "フィラメント" ("Filament")
#define MSG_VOLUMETRIC_ENABLED "E in mm3"
#if LCD_WIDTH >= 20
#define MSG_FILAMENT_DIAM "\xcc\xa8\xd7\xd2\xdd\xc4\xc1\xae\xaf\xb9\xb2" // "フィラメントチョッケイ" ("Fil. Dia.")
#else
#define MSG_FILAMENT_DIAM "\xcc\xa8\xd7\xd2\xdd\xc4\xb9\xb2" // "フィラメントケイ" ("Fil. Dia.")
#endif
#define MSG_CONTRAST "LCD\xba\xdd\xc4\xd7\xbd\xc4" // "LCDコントラスト" ("LCD contrast")
#define MSG_STORE_EEPROM "\xd2\xd3\xd8\xcd\xb6\xb8\xc9\xb3" // "メモリヘカクノウ" ("Store memory")
#define MSG_LOAD_EEPROM "\xd2\xd3\xd8\xb6\xd7\xd6\xd0\xba\xd0" // "メモリカラヨミコミ" ("Load memory")
#define MSG_RESTORE_FAILSAFE "\xbe\xaf\xc3\xb2\xd8\xbe\xaf\xc4" // "セッテイリセット" ("Restore failsafe")
#define MSG_REFRESH "\xd8\xcc\xda\xaf\xbc\xad" // "リフレッシュ" ("Refresh")
#define MSG_WATCH "\xbc\xde\xae\xb3\xce\xb3\xb6\xde\xd2\xdd" // "ジョウホウガメン" ("Info screen")
#define MSG_PREPARE "\xbc\xde\xad\xdd\xcb\xde\xbe\xaf\xc3\xb2" // "ジュンビセッテイ" ("Prepare")
#define MSG_TUNE "\xc1\xae\xb3\xbe\xb2" // "チョウセイ" ("Tune")
#define MSG_PAUSE_PRINT "\xb2\xc1\xbc\xde\xc3\xb2\xbc" // "イチジテイシ" ("Pause print")
#define MSG_RESUME_PRINT "\xcc\xdf\xd8\xdd\xc4\xbb\xb2\xb6\xb2" // "プリントサイカイ" ("Resume print")
#define MSG_STOP_PRINT "\xcc\xdf\xd8\xdd\xc4\xc3\xb2\xbc" // "プリントテイシ" ("Stop print")
#define MSG_CARD_MENU "SD\xb6\xb0\xc4\xde\xb6\xd7\xcc\xdf\xd8\xdd\xc4" // "SDカードカラプリント" ("Print from SD")
#define MSG_NO_CARD "SD\xb6\xb0\xc4\xde\xb6\xde\xb1\xd8\xcf\xbe\xdd" // "SDカードガアリマセン" ("No SD card")
#define MSG_DWELL "\xb7\xad\xb3\xbc" // "キュウシ" ("Sleep...")
#define MSG_USERWAIT "\xbc\xca\xde\xd7\xb8\xb5\xcf\xc1\xb8\xc0\xde\xbb\xb2" // "シバラクオマチクダサイ" ("Wait for user...")
#define MSG_RESUMING "\xcc\xdf\xd8\xdd\xc4\xbb\xb2\xb6\xb2" // "プリントサイカイ" ("Resuming print")
#define MSG_PRINT_ABORTED "\xcc\xdf\xd8\xdd\xc4\xb6\xde\xc1\xad\xb3\xbc\xbb\xda\xcf\xbc\xc0" // "プリントガチュウシサレマシタ" ("Print aborted")
#define MSG_NO_MOVE "\xb3\xba\xde\xb7\xcf\xbe\xdd" // "ウゴキマセン" ("No move.")
#define MSG_KILLED "\xcb\xbc\xde\xae\xb3\xc3\xb2\xbc" // "ヒジョウテイシ" ("KILLED. ")
#define MSG_STOPPED "\xc3\xb2\xbc\xbc\xcf\xbc\xc0" // "テイシシマシタ" ("STOPPED. ")
#if LCD_WIDTH >= 20
#define MSG_CONTROL_RETRACT "\xcb\xb7\xba\xd0\xd8\xae\xb3 mm" // "ヒキコミリョウ mm" ("Retract mm")
#define MSG_CONTROL_RETRACT_SWAP "\xcb\xb7\xba\xd0\xd8\xae\xb3S mm" // "ヒキコミリョウS mm" ("Swap Re.mm")
#define MSG_CONTROL_RETRACTF "\xcb\xb7\xba\xd0\xbf\xb8\xc4\xde mm/s" // "ヒキコミソクド mm/s" ("Retract V")
#define MSG_CONTROL_RETRACT_ZLIFT "\xc9\xbd\xde\xd9\xc0\xb2\xcb mm" // "ノズルタイヒ mm" ("Hop mm")
#define MSG_CONTROL_RETRACT_RECOVER "\xce\xbc\xae\xb3\xd8\xae\xb3 mm" // "ホショウリョウ mm" ("UnRet mm")
#define MSG_CONTROL_RETRACT_RECOVER_SWAP "\xce\xbc\xae\xb3\xd8\xae\xb3S mm" // "ホショウリョウS mm" ("S UnRet mm")
#define MSG_CONTROL_RETRACT_RECOVERF "\xce\xbc\xae\xb3\xbf\xb8\xc4\xde mm/s" // "ホショウソクド mm/s" ("UnRet V")
#else
#define MSG_CONTROL_RETRACT "\xcb\xb7\xba\xd0\xd8\xae\xb3" // "ヒキコミリョウ" ("Retract mm")
#define MSG_CONTROL_RETRACT_SWAP "\xcb\xb7\xba\xd0\xd8\xae\xb3S" // "ヒキコミリョウS" ("Swap Re.mm")
#define MSG_CONTROL_RETRACTF "\xcb\xb7\xba\xd0\xbf\xb8\xc4\xde" // "ヒキコミソクド" ("Retract V")
#define MSG_CONTROL_RETRACT_ZLIFT "\xc9\xbd\xde\xd9\xc0\xb2\xcb" // "ノズルタイヒ" ("Hop mm")
#define MSG_CONTROL_RETRACT_RECOVER "\xce\xbc\xae\xb3\xd8\xae\xb3" // "ホショウリョウ" ("UnRet mm")
#define MSG_CONTROL_RETRACT_RECOVER_SWAP "\xce\xbc\xae\xb3\xd8\xae\xb3S" // "ホショウリョウS" ("S UnRet mm")
#define MSG_CONTROL_RETRACT_RECOVERF "\xce\xbc\xae\xb3\xbf\xb8\xc4\xde" // "ホショウソクド" ("UnRet V")
#endif
#define MSG_AUTORETRACT "\xbc\xde\xc4\xde\xb3\xcb\xb7\xba\xd0" // "ジドウヒキコミ" ("AutoRetr.")
#define MSG_FILAMENTCHANGE "\xcc\xa8\xd7\xd2\xdd\xc4\xba\xb3\xb6\xdd" // "フィラメントコウカン" ("Change filament")
#define MSG_INIT_SDCARD "SD\xb6\xb0\xc4\xde\xbb\xb2\xd6\xd0\xba\xd0" // "SDカードサイヨミコミ" ("Init. SD card")
#define MSG_CNG_SDCARD "SD\xb6\xb0\xc4\xde\xba\xb3\xb6\xdd" // "SDカードコウカン" ("Change SD card")
#define MSG_ZPROBE_OUT "Z\xcc\xdf\xdb\xb0\xcc\xde\x20\xcd\xde\xaf\xc4\xde\xb6\xde\xb2" // "Zプローブ ベッドガイ" ("Z probe out. bed")
#if LCD_WIDTH >= 20
#define MSG_BLTOUCH_SELFTEST "BLTouch \xbc\xde\xba\xbc\xdd\xc0\xde\xdd" // "BLTouch ジコシンダン" ("BLTouch Self-Test")
#else
#define MSG_BLTOUCH_SELFTEST "BLTouch \xbe\xd9\xcc\xc3\xbd\xc4" // "BLTouch セルフテスト" ("BLTouch Self-Test")
#endif
#define MSG_BLTOUCH_RESET "BLTouch \xd8\xbe\xaf\xc4" // "BLTouch リセット" ("Reset BLTouch")
#define MSG_HOME "\xbb\xb7\xc6" // "サキニ" ("Home") // Used as MSG_HOME " " MSG_X MSG_Y MSG_Z " " MSG_FIRST
#if LCD_WIDTH >= 20
#define MSG_FIRST "\xa6\xcc\xaf\xb7\xbb\xbe\xc3\xb8\xc0\xde\xbb\xb2" // "ヲフッキサセテクダサイ" ("first")
#else
#define MSG_FIRST "\xa6\xcc\xaf\xb7\xbb\xbe\xd6" // "ヲフッキサセヨ" ("first")
#endif
#define MSG_ZPROBE_ZOFFSET "Z\xb5\xcc\xbe\xaf\xc4" // "Zオフセット" ("Z Offset")
#define MSG_BABYSTEP_X "X\xbc\xde\xb8\x20\xcb\xde\xc4\xde\xb3" // "Xジク ビドウ" ("Babystep X")
#define MSG_BABYSTEP_Y "Y\xbc\xde\xb8\x20\xcb\xde\xc4\xde\xb3" // "Yジク ビドウ" ("Babystep Y")
#define MSG_BABYSTEP_Z "Z\xbc\xde\xb8\x20\xcb\xde\xc4\xde\xb3" // "Zジク ビドウ" ("Babystep Z")
#if LCD_WIDTH >= 20
#define MSG_ENDSTOP_ABORT "\xb2\xc4\xde\xb3\xb9\xde\xdd\xb6\xb2\xb9\xdd\xc1\xb7\xc9\xb3" // "イドウゲンカイケンチキノウ" ("Endstop abort")
#else
#define MSG_ENDSTOP_ABORT "\xb2\xc4\xde\xb3\xb9\xde\xdd\xb6\xb2\xb9\xdd\xc1" // "イドウゲンカイケンチ" ("Endstop abort")
#endif
#define MSG_HEATING_FAILED_LCD "\xb6\xc8\xc2\xbc\xaf\xca\xdf\xb2" // "カネツシッパイ" ("Heating failed")
#if LCD_WIDTH >= 20
#define MSG_ERR_REDUNDANT_TEMP "\xb4\xd7\xb0:\xbc\xde\xae\xb3\xc1\xae\xb3\xbb\xb0\xd0\xbd\xc0\xb0\xb7\xc9\xb3" // "エラー:ジョウチョウサーミスターキノウ" ("Err: REDUNDANT TEMP")
#else
#define MSG_ERR_REDUNDANT_TEMP "\xb4\xd7\xb0:\xbc\xde\xae\xb3\xc1\xae\xb3\xbb\xb0\xd0\xbd\xc0" // "エラー:ジョウチョウサーミスタ" ("Err: REDUNDANT TEMP")
#endif
#define MSG_THERMAL_RUNAWAY "\xc8\xc2\xce\xde\xb3\xbf\xb3" // "ネツボウソウ" ("THERMAL RUNAWAY")
#define MSG_ERR_MAXTEMP "\xb4\xd7\xb0:\xbb\xb2\xba\xb3\xb5\xdd\xc1\xae\xb3\xb6" // "エラー:サイコウオンチョウカ" ("Err: MAXTEMP")
#define MSG_ERR_MINTEMP "\xb4\xd7\xb0:\xbb\xb2\xc3\xb2\xb5\xdd\xd0\xcf\xdd" // "エラー:サイテイオンミマン" ("Err: MINTEMP")
#if LCD_WIDTH >= 20
#define MSG_ERR_MAXTEMP_BED "\xb4\xd7\xb0:\xcd\xde\xaf\xc4\xde\x20\xbb\xb2\xba\xb3\xb5\xdd\xc1\xae\xb3\xb6" // "エラー:ベッド サイコウオンチョウカ" ("Err: MAXTEMP BED")
#define MSG_ERR_MINTEMP_BED "\xb4\xd7\xb0:\xcd\xde\xaf\xc4\xde\x20\xbb\xb2\xc3\xb2\xb5\xdd\xd0\xcf\xdd" // "エラー:ベッド サイテイオンミマン" ("Err: MINTEMP BED")
#else
#define MSG_ERR_MAXTEMP_BED "\xb4\xd7\xb0:\xcd\xde\xaf\xc4\xde\x20\xbb\xb2\xba\xb3\xb5\xdd" // "エラー:ベッド サイコウオン" ("Err: MAXTEMP BED")
#define MSG_ERR_MINTEMP_BED "\xb4\xd7\xb0:\xcd\xde\xaf\xc4\xde\x20\xbb\xb2\xc3\xb2\xb5\xdd" // "エラー:ベッド サイテイオン" ("Err: MINTEMP BED")
#endif
#define MSG_ERR_Z_HOMING MSG_HOME " " MSG_X MSG_Y " " MSG_FIRST // "サキニ XY ヲフッキサセテクダサイ" or "サキニ XY ヲフッキサセヨ" ("G28 Z Forbidden")
#define MSG_HALTED "\xcc\xdf\xd8\xdd\xc0\xb0\xca\xc3\xb2\xbc\xbc\xcf\xbc\xc0" // "プリンターハテイシシマシタ" ("PRINTER HALTED")
#define MSG_PLEASE_RESET "\xd8\xbe\xaf\xc4\xbc\xc3\xb8\xc0\xde\xbb\xb2" // "リセットシテクダサイ" ("Please reset")
#define MSG_SHORT_DAY "d" // One character only
#define MSG_SHORT_HOUR "h" // One character only
#define MSG_SHORT_MINUTE "m" // One character only
#define MSG_HEATING "\xb6\xc8\xc2\xc1\xad\xb3" // "カネツチュウ" ("Heating...")
#define MSG_HEATING_COMPLETE "\xb6\xc8\xc2\xb6\xdd\xd8\xae\xb3" // "カネツカンリョウ" ("Heating done.")
#define MSG_BED_HEATING "\xcd\xde\xaf\xc4\xde\x20\xb6\xc8\xc2\xc1\xad\xb3" // "ベッド カネツチュウ" ("Bed Heating.")
#define MSG_BED_DONE "\xcd\xde\xaf\xc4\xde\x20\xb6\xc8\xc2\xb6\xdd\xd8\xae\xb3" // "ベッド カネツカンリョウ" ("Bed done.")
#define MSG_DELTA_CALIBRATE "\xc3\xde\xd9\xc0\x20\xba\xb3\xbe\xb2" // "デルタ コウセイ" ("Delta Calibration")
#define MSG_DELTA_CALIBRATE_X "X\xbc\xde\xb8\x20\xba\xb3\xbe\xb2" // "Xジク コウセイ" ("Calibrate X")
#define MSG_DELTA_CALIBRATE_Y "Y\xbc\xde\xb8\x20\xba\xb3\xbe\xb2" // "Yジク コウセイ" ("Calibrate Y")
#define MSG_DELTA_CALIBRATE_Z "Z\xbc\xde\xb8\x20\xba\xb3\xbe\xb2" // "Zジク コウセイ" ("Calibrate Z")
#define MSG_DELTA_CALIBRATE_CENTER "\xc1\xad\xb3\xbc\xdd\x20\xba\xb3\xbe\xb2" // "チュウシン コウセイ" ("Calibrate Center")
#define MSG_INFO_MENU "\xba\xc9\xcc\xdf\xd8\xdd\xc0\xb0\xc6\xc2\xb2\xc3" // "コノプリンターニツイテ" ("About Printer")
#define MSG_INFO_PRINTER_MENU "\xcc\xdf\xd8\xdd\xc0\xb0\xbc\xde\xae\xb3\xce\xb3" // "プリンタージョウホウ" ("Printer Info")
#define MSG_INFO_STATS_MENU "\xcc\xdf\xd8\xdd\xc4\xbc\xde\xae\xb3\xb7\xae\xb3" // "プリントジョウキョウ" ("Printer Stats")
#define MSG_INFO_BOARD_MENU "\xbe\xb2\xb7\xde\xae\xb9\xb2\xbc\xde\xae\xb3\xce\xb3" // "セイギョケイジョウホウ" ("Board Info")
#define MSG_INFO_THERMISTOR_MENU "\xbb\xb0\xd0\xbd\xc0\xb0" // "サーミスター" ("Thermistors")
#define MSG_INFO_EXTRUDERS "\xb4\xb8\xbd\xc4\xd9\xb0\xc0\xde\xb0\xbd\xb3" // "エクストルーダースウ" ("Extruders")
#define MSG_INFO_BAUDRATE "\xce\xde\xb0\xda\xb0\xc4" // "ボーレート" ("Baud")
#define MSG_INFO_PROTOCOL "\xcc\xdf\xdb\xc4\xba\xd9" // "プロトコル" ("Protocol")
#define MSG_CASE_LIGHT "\xb7\xae\xb3\xc0\xb2\xc5\xb2\xbc\xae\xb3\xd2\xb2" // "キョウタイナイショウメイ" ("Case light")
#define MSG_INFO_PRINT_COUNT "\xcc\xdf\xd8\xdd\xc4\xbd\xb3" // "プリントスウ" ("Print Count")
#define MSG_INFO_COMPLETED_PRINTS "\xb6\xdd\xd8\xae\xb3\xbd\xb3" // "カンリョウスウ" ("Completed")
#define MSG_INFO_PRINT_TIME "\xcc\xdf\xd8\xdd\xc4\xbc\xde\xb6\xdd\xd9\xb2\xb9\xb2" // "プリントジカンルイケイ" ("Total print time")
#define MSG_INFO_PRINT_LONGEST "\xbb\xb2\xc1\xae\xb3\xcc\xdf\xd8\xdd\xc4\xbc\xde\xb6\xdd" // "サイチョウプリントジカン" ("Longest job time")
#if LCD_WIDTH >= 20
#define MSG_INFO_PRINT_FILAMENT "\xcc\xa8\xd7\xd2\xdd\xc4\xbc\xd6\xb3\xd8\xae\xb3\xd9\xb2\xb9\xb2" // "フィラメントシヨウリョウルイケイ" ("Extruded total")
#else
#define MSG_INFO_PRINT_FILAMENT "\xcc\xa8\xd7\xd2\xdd\xc4\xbf\xb3\xbc\xd6\xb3\xd8\xae\xb3" // "フィラメントソウシヨウリョウ" ("Extruded")
#endif
#define MSG_INFO_MIN_TEMP "\xbe\xaf\xc3\xb2\xbb\xb2\xc3\xb2\xb5\xdd" // "セッテイサイテイオン" ("Min Temp")
#define MSG_INFO_MAX_TEMP "\xbe\xaf\xc3\xb2\xbb\xb2\xba\xb3\xb5\xdd" // "セッテイサイコウオン" ("Max Temp")
#if LCD_WIDTH >= 20
#define MSG_INFO_PSU "\xc3\xde\xdd\xb9\xde\xdd\xbc\xad\xcd\xde\xc2" // "デンゲンシュベツ" ("Power Supply")
#else
#define MSG_INFO_PSU "\xc3\xde\xdd\xb9\xde\xdd" // "デンゲン" ("Power Supply")
#endif
#define MSG_DRIVE_STRENGTH "\xd3\xb0\xc0\xb0\xb8\xc4\xde\xb3\xd8\xae\xb8" // "モータークドウリョク" ("Drive Strength")
#if LCD_WIDTH >= 20
#define MSG_DAC_PERCENT "DAC\xbc\xad\xc2\xd8\xae\xb8 %" // "DACシュツリョク %" ("Driver %")
#else
#define MSG_DAC_PERCENT "DAC\xbc\xad\xc2\xd8\xae\xb8" // "DACシュツリョク" ("Driver %")
#endif
#define MSG_DAC_EEPROM_WRITE MSG_STORE_EPROM // "メモリヘカクノウ" ("DAC EEPROM Write")
#define MSG_FILAMENT_CHANGE_HEADER "PRINT PAUSED"
#define MSG_FILAMENT_CHANGE_OPTION_HEADER "RESUME OPTIONS:"
#define MSG_FILAMENT_CHANGE_OPTION_EXTRUDE "\xbb\xd7\xc6\xb5\xbc\xc0\xde\xbd" // "サラニオシダス" ("Extrude more")
#define MSG_FILAMENT_CHANGE_OPTION_RESUME "\xcc\xdf\xd8\xdd\xc4\xbb\xb2\xb6\xb2" // "プリントサイカイ" ("Resume print")
#if LCD_HEIGHT >= 4
// Up to 3 lines allowed
#define MSG_FILAMENT_CHANGE_INIT_1 "\xba\xb3\xb6\xdd\xa6\xb6\xb2\xbc\xbc\xcf\xbd" // "コウカンヲカイシシマス" ("Wait for start")
#define MSG_FILAMENT_CHANGE_INIT_2 "\xbc\xca\xde\xd7\xb8\xb5\xcf\xc1\xb8\xc0\xde\xbb\xb2" // "シバラクオマチクダサイ" ("of the filament")
#define MSG_FILAMENT_CHANGE_UNLOAD_1 "\xcc\xa8\xd7\xd2\xdd\xc4\xc7\xb7\xc0\xde\xbc\xc1\xad\xb3" // "フィラメントヌキダシチュウ" ("Wait for")
#define MSG_FILAMENT_CHANGE_UNLOAD_2 "\xbc\xca\xde\xd7\xb8\xb5\xcf\xc1\xb8\xc0\xde\xbb\xb2" // "シバラクオマチクダサイ" ("filament unload")
#define MSG_FILAMENT_CHANGE_INSERT_1 "\xcc\xa8\xd7\xd2\xdd\xc4\xa6\xbf\xb3\xc6\xad\xb3\xbc," // "フィラメントヲソウニュウシ," ("Insert filament")
#define MSG_FILAMENT_CHANGE_INSERT_2 "\xb8\xd8\xaf\xb8\xbd\xd9\xc4\xbf\xde\xaf\xba\xb3\xbc\xcf\xbd" // "クリックスルトゾッコウシマス" ("and press button")
#define MSG_FILAMENT_CHANGE_LOAD_1 "\xcc\xa8\xd7\xd2\xdd\xc4\xbf\xb3\xc3\xdd\xc1\xad\xb3" // "フィラメントソウテンチュウ" ("Wait for")
#define MSG_FILAMENT_CHANGE_LOAD_2 "\xbc\xca\xde\xd7\xb8\xb5\xcf\xc1\xb8\xc0\xde\xbb\xb2" // "シバラクオマチクダサイ" ("filament load")
#define MSG_FILAMENT_CHANGE_EXTRUDE_1 "\xcc\xa8\xd7\xd2\xdd\xc4\xb5\xbc\xc0\xde\xbc\xc1\xad\xb3" // "フィラメントオシダシチュウ" ("Wait for")
#define MSG_FILAMENT_CHANGE_EXTRUDE_2 "\xbc\xca\xde\xd7\xb8\xb5\xcf\xc1\xb8\xc0\xde\xbb\xb2" // "シバラクオマチクダサイ" ("filament extrude")
#define MSG_FILAMENT_CHANGE_RESUME_1 "\xcc\xdf\xd8\xdd\xc4\xa6\xbb\xb2\xb6\xb2\xbc\xcf\xbd" // "プリントヲサイカイシマス" ("Wait for print")
#define MSG_FILAMENT_CHANGE_RESUME_2 "\xbc\xca\xde\xd7\xb8\xb5\xcf\xc1\xb8\xc0\xde\xbb\xb2" // "シバラクオマチクダサイ" ("to resume")
#else // LCD_HEIGHT < 4
// Up to 2 lines allowed
#define MSG_FILAMENT_CHANGE_INIT_1 "\xba\xb3\xb6\xdd\xa6\xb6\xb2\xbc\xbc\xcf\xbd" // "コウカンヲカイシシマス" ("Please wait...")
#define MSG_FILAMENT_CHANGE_UNLOAD_1 "\xcc\xa8\xd7\xd2\xdd\xc4\xc7\xb7\xc0\xde\xbc\xc1\xad\xb3" // "フィラメントヌキダシチュウ" ("Ejecting...")
#if LCD_WIDTH >= 20
#define MSG_FILAMENT_CHANGE_INSERT_1 "\xbf\xb3\xc6\xad\xb3\xbc\x2c\xb8\xd8\xaf\xb8\xbc\xc3\xb8\xc0\xde\xbb\xb2" // "ソウニュウシ,クリックシテクダサイ" ("Insert and Click")
#else
#define MSG_FILAMENT_CHANGE_INSERT_1 "\xbf\xb3\xc6\xad\xb3\xbc\x2c\xb8\xd8\xaf\xb8\xbe\xd6" // "ソウニュウシ,クリックセヨ" ("Insert and Click")
#endif
#define MSG_FILAMENT_CHANGE_LOAD_1 "\xcc\xa8\xd7\xd2\xdd\xc4\xbf\xb3\xc3\xdd\xc1\xad\xb3" // "フィラメントソウテンチュウ" ("Loading...")
#define MSG_FILAMENT_CHANGE_EXTRUDE_1 "\xcc\xa8\xd7\xd2\xdd\xc4\xb5\xbc\xc0\xde\xbc\xc1\xad\xb3" // "フィラメントオシダシチュウ" ("Extruding...")
#define MSG_FILAMENT_CHANGE_RESUME_1 "\xcc\xdf\xd8\xdd\xc4\xa6\xbb\xb2\xb6\xb2\xbc\xcf\xbd" // "プリントヲサイカイシマス" ("Resuming...")
#endif // LCD_HEIGHT < 4
#endif // LANGUAGE_KANA_H

View File

@@ -1,265 +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/>.
*
*/
/**
* Polish for HD44780 display - no accented characters
*/
#define WELCOME_MSG MACHINE_NAME _UxGT(" gotowy.")
#define MSG_SD_INSERTED _UxGT("Karta wlozona")
#define MSG_SD_REMOVED _UxGT("Karta usunieta")
#define MSG_LCD_ENDSTOPS _UxGT("Krancow.") // Max length 8 characters
#define MSG_MAIN _UxGT("Menu glowne")
#define MSG_AUTOSTART _UxGT("Autostart")
#define MSG_DISABLE_STEPPERS _UxGT("Wylacz silniki")
#define MSG_AUTO_HOME _UxGT("Pozycja zerowa")
#define MSG_AUTO_HOME_X _UxGT("Zeruj X")
#define MSG_AUTO_HOME_Y _UxGT("Zeruj Y")
#define MSG_AUTO_HOME_Z _UxGT("Zeruj Z")
#define MSG_LEVEL_BED _UxGT("Poziom. stolu")
#define MSG_LEVEL_BED_HOMING _UxGT("Pozycja zerowa")
#define MSG_LEVEL_BED_WAITING _UxGT("Kliknij by rozp.")
#define MSG_LEVEL_BED_NEXT_POINT _UxGT("Nastepny punkt")
#define MSG_LEVEL_BED_DONE _UxGT("Wypoziomowano!")
#define MSG_SET_HOME_OFFSETS _UxGT("Ust. poz. zer.")
#define MSG_HOME_OFFSETS_APPLIED _UxGT("Poz. zerowa ust.")
#define MSG_SET_ORIGIN _UxGT("Ustaw punkt zero")
#define MSG_PREHEAT_1 _UxGT("Rozgrzej PLA")
#define MSG_PREHEAT_1_N MSG_PREHEAT_1 _UxGT(" ")
#define MSG_PREHEAT_1_ALL MSG_PREHEAT_1 _UxGT(" wsz.")
#define MSG_PREHEAT_1_BEDONLY _UxGT("Rozgrzej stol PLA")
#define MSG_PREHEAT_1_SETTINGS _UxGT("Ustaw. rozg. PLA")
#define MSG_PREHEAT_2 _UxGT("Rozgrzej ABS")
#define MSG_PREHEAT_2_N MSG_PREHEAT_2 _UxGT(" ")
#define MSG_PREHEAT_2_ALL MSG_PREHEAT_2 _UxGT(" wsz.")
#define MSG_PREHEAT_2_BEDONLY _UxGT("Rozgrzej stol ABS")
#define MSG_PREHEAT_2_SETTINGS _UxGT("Ustaw. rozg. ABS")
#define MSG_COOLDOWN _UxGT("Chlodzenie")
#define MSG_SWITCH_PS_ON _UxGT("Wlacz zasilacz")
#define MSG_SWITCH_PS_OFF _UxGT("Wylacz zasilacz")
#define MSG_EXTRUDE _UxGT("Ekstruzja")
#define MSG_RETRACT _UxGT("Wycofanie")
#define MSG_MOVE_AXIS _UxGT("Ruch osi")
#define MSG_BED_LEVELING _UxGT("Poziom. stolu")
#define MSG_MOVE_X _UxGT("Przesun w X")
#define MSG_MOVE_Y _UxGT("Przesun w Y")
#define MSG_MOVE_Z _UxGT("Przesun w Z")
#define MSG_MOVE_E _UxGT("Ekstruzja (os E)")
#define MSG_MOVE_01MM _UxGT("Przesun co .1mm")
#define MSG_MOVE_1MM _UxGT("Przesun co 1mm")
#define MSG_MOVE_10MM _UxGT("Przesun co 10mm")
#define MSG_SPEED _UxGT("Predkosc")
#define MSG_BED_Z _UxGT("Stol Z")
#define MSG_NOZZLE _UxGT("Dysza")
#define MSG_BED _UxGT("Stol")
#define MSG_FAN_SPEED _UxGT("Obroty wiatraka")
#define MSG_FLOW _UxGT("Przeplyw")
#define MSG_CONTROL _UxGT("Ustawienia")
#define MSG_MIN LCD_STR_THERMOMETER _UxGT(" Min")
#define MSG_MAX LCD_STR_THERMOMETER _UxGT(" Max")
#define MSG_FACTOR LCD_STR_THERMOMETER _UxGT(" Mnoznik")
#define MSG_AUTOTEMP _UxGT("Auto. temperatura")
#define MSG_ON _UxGT("Wl. ")
#define MSG_OFF _UxGT("Wyl.")
#define MSG_PID_P _UxGT("PID-P")
#define MSG_PID_I _UxGT("PID-I")
#define MSG_PID_D _UxGT("PID-D")
#define MSG_PID_C _UxGT("PID-C")
#define MSG_SELECT _UxGT("Select")
#define MSG_ACC _UxGT("Przyspieszenie")
#define MSG_JERK _UxGT("Zryw")
#define MSG_VX_JERK _UxGT("Zryw Vx")
#define MSG_VY_JERK _UxGT("Zryw Vy")
#define MSG_VZ_JERK _UxGT("Zryw Vz")
#define MSG_VE_JERK _UxGT("Zryw Ve")
#define MSG_VMAX _UxGT("Vmax ")
#define MSG_VMIN _UxGT("Vmin")
#define MSG_VTRAV_MIN _UxGT("Vskok min")
#define MSG_ACCELERATION MSG_ACC
#define MSG_AMAX _UxGT("Amax")
#define MSG_A_RETRACT _UxGT("A-wycofanie")
#define MSG_A_TRAVEL _UxGT("A-przesun.")
#define MSG_STEPS_PER_MM _UxGT("kroki/mm")
#define MSG_XSTEPS _UxGT("krokiX/mm")
#define MSG_YSTEPS _UxGT("krokiY/mm")
#define MSG_ZSTEPS _UxGT("krokiZ/mm")
#define MSG_ESTEPS _UxGT("krokiE/mm")
#define MSG_E1STEPS _UxGT("krokiE1/mm")
#define MSG_E2STEPS _UxGT("krokiE2/mm")
#define MSG_E3STEPS _UxGT("krokiE3/mm")
#define MSG_E4STEPS _UxGT("krokiE4/mm")
#define MSG_E5STEPS _UxGT("krokiE5/mm")
#define MSG_TEMPERATURE _UxGT("Temperatura")
#define MSG_MOTION _UxGT("Ruch")
#define MSG_FILAMENT _UxGT("Filament")
#define MSG_VOLUMETRIC_ENABLED _UxGT("E w mm3")
#define MSG_FILAMENT_DIAM _UxGT("Sr. fil.")
#define MSG_CONTRAST _UxGT("Kontrast LCD")
#define MSG_STORE_EEPROM _UxGT("Zapisz w pamieci")
#define MSG_LOAD_EEPROM _UxGT("Wczytaj z pamieci")
#define MSG_RESTORE_FAILSAFE _UxGT("Ustaw. fabryczne")
#define MSG_REFRESH _UxGT("Odswiez")
#define MSG_WATCH _UxGT("Ekran glowny")
#define MSG_PREPARE _UxGT("Przygotuj")
#define MSG_TUNE _UxGT("Strojenie")
#define MSG_PAUSE_PRINT _UxGT("Pauza")
#define MSG_RESUME_PRINT _UxGT("Wznowienie")
#define MSG_STOP_PRINT _UxGT("Stop")
#define MSG_CARD_MENU _UxGT("Karta SD")
#define MSG_NO_CARD _UxGT("Brak karty")
#define MSG_DWELL _UxGT("Uspij...")
#define MSG_USERWAIT _UxGT("Oczekiwanie...")
#define MSG_RESUMING _UxGT("Wznawianie druku")
#define MSG_PRINT_ABORTED _UxGT("Druk przerwany")
#define MSG_NO_MOVE _UxGT("Brak ruchu")
#define MSG_KILLED _UxGT("Ubity. ")
#define MSG_STOPPED _UxGT("Zatrzymany. ")
#define MSG_CONTROL_RETRACT _UxGT("Wycofaj mm")
#define MSG_CONTROL_RETRACT_SWAP _UxGT("Z Wycof. mm")
#define MSG_CONTROL_RETRACTF _UxGT("Wycofaj V")
#define MSG_CONTROL_RETRACT_ZLIFT _UxGT("Skok Z mm")
#define MSG_CONTROL_RETRACT_RECOVER _UxGT("Cof. wycof. mm")
#define MSG_CONTROL_RETRACT_RECOVER_SWAP _UxGT("Z Cof. wyc. mm")
#define MSG_CONTROL_RETRACT_RECOVERF _UxGT("Cof. wycof. V")
#define MSG_AUTORETRACT _UxGT("Auto. wycofanie")
#define MSG_FILAMENTCHANGE _UxGT("Zmien filament")
#define MSG_INIT_SDCARD _UxGT("Inicjal. karty SD")
#define MSG_CNG_SDCARD _UxGT("Zmiana karty SD")
#define MSG_ZPROBE_OUT _UxGT("Sonda Z za stolem")
#define MSG_BLTOUCH_SELFTEST _UxGT("BLTouch Self-Test")
#define MSG_BLTOUCH_RESET _UxGT("Reset BLTouch")
#define MSG_HOME _UxGT("Home") // Used as MSG_HOME " " MSG_X MSG_Y MSG_Z " " MSG_FIRST
#define MSG_FIRST _UxGT("first")
#define MSG_ZPROBE_ZOFFSET _UxGT("Offset Z")
#define MSG_BABYSTEP_X _UxGT("Babystep X")
#define MSG_BABYSTEP_Y _UxGT("Babystep Y")
#define MSG_BABYSTEP_Z _UxGT("Babystep Z")
#define MSG_ENDSTOP_ABORT _UxGT("Blad krancowki")
#define MSG_HEATING_FAILED_LCD _UxGT("Rozgrz. nieudane")
#define MSG_ERR_REDUNDANT_TEMP _UxGT("Blad temperatury")
#define MSG_THERMAL_RUNAWAY _UxGT("Zanik temp.")
#define MSG_ERR_MAXTEMP _UxGT("Err max temp")
#define MSG_ERR_MINTEMP _UxGT("Err min temp")
#define MSG_ERR_MAXTEMP_BED _UxGT("Err max temp stolu")
#define MSG_ERR_MINTEMP_BED _UxGT("Err min temp stolu")
#define MSG_ERR_Z_HOMING _UxGT("G28 Z Forbidden")
#define MSG_HALTED _UxGT("Drukarka zatrzym.")
#define MSG_PLEASE_RESET _UxGT("Prosze zresetowac")
#define MSG_SHORT_DAY _UxGT("d") // One character only
#define MSG_SHORT_HOUR _UxGT("g") // One character only
#define MSG_SHORT_MINUTE _UxGT("m") // One character only
#define MSG_HEATING _UxGT("Rozgrzewanie...")
#define MSG_HEATING_COMPLETE _UxGT("Rozgrzano")
#define MSG_BED_HEATING _UxGT("Rozgrzewanie stolu...")
#define MSG_BED_DONE _UxGT("Rozgrzano stol")
#define MSG_DELTA_CALIBRATE _UxGT("Kalibrowanie Delty")
#define MSG_DELTA_CALIBRATE_X _UxGT("Kalibruj X")
#define MSG_DELTA_CALIBRATE_Y _UxGT("Kalibruj Y")
#define MSG_DELTA_CALIBRATE_Z _UxGT("Kalibruj Z")
#define MSG_DELTA_CALIBRATE_CENTER _UxGT("Kalibruj srodek")
#define MSG_INFO_MENU _UxGT("O drukarce")
#define MSG_INFO_PRINTER_MENU _UxGT("Info drukarki")
#define MSG_INFO_STATS_MENU _UxGT("Statystyki")
#define MSG_INFO_BOARD_MENU _UxGT("Board Info")
#define MSG_INFO_THERMISTOR_MENU _UxGT("Thermistory")
#define MSG_INFO_EXTRUDERS _UxGT("Ekstrudery")
#define MSG_INFO_BAUDRATE _UxGT("Predkosc USB")
#define MSG_INFO_PROTOCOL _UxGT("Protokol")
#define MSG_CASE_LIGHT _UxGT("Oswietlenie")
#if LCD_WIDTH >= 20
#define MSG_INFO_PRINT_COUNT _UxGT("Wydrukowano")
#define MSG_INFO_COMPLETED_PRINTS _UxGT("Ukonczono")
#define MSG_INFO_PRINT_TIME _UxGT("Czas druku")
#define MSG_INFO_PRINT_LONGEST _UxGT("Najdl. druk")
#define MSG_INFO_PRINT_FILAMENT _UxGT("Uzyty fil.")
#else
#define MSG_INFO_PRINT_COUNT _UxGT("Wydrukowano")
#define MSG_INFO_COMPLETED_PRINTS _UxGT("Ukonczono")
#define MSG_INFO_PRINT_TIME _UxGT("Razem")
#define MSG_INFO_PRINT_LONGEST _UxGT("Najdl. druk")
#define MSG_INFO_PRINT_FILAMENT _UxGT("Uzyty fil.")
#endif
#define MSG_INFO_MIN_TEMP _UxGT("Min Temp")
#define MSG_INFO_MAX_TEMP _UxGT("Max Temp")
#define MSG_INFO_PSU _UxGT("Zasilacz")
#define MSG_DRIVE_STRENGTH _UxGT("Sila silnika")
#define MSG_DAC_PERCENT _UxGT("Sila %")
#define MSG_DAC_EEPROM_WRITE _UxGT("Zapisz DAC EEPROM")
#define MSG_FILAMENT_CHANGE_HEADER _UxGT("ZMIEN FILAMENT")
#define MSG_FILAMENT_CHANGE_OPTION_HEADER _UxGT("ZMIEN OPCJE:")
#define MSG_FILAMENT_CHANGE_OPTION_EXTRUDE _UxGT("Ekstruduj wiecej")
#define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("Wznow drukowanie")
#if LCD_HEIGHT >= 4
// Up to 3 lines allowed
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Czekam na ")
#define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("zmiane filamentu")
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Czekam na")
#define MSG_FILAMENT_CHANGE_UNLOAD_2 _UxGT("wyjecie filamentu")
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Wloz filament")
#define MSG_FILAMENT_CHANGE_INSERT_2 _UxGT("i nacisnij przycisk")
#define MSG_FILAMENT_CHANGE_INSERT_3 _UxGT("aby kontynuowac...")
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Czekam na")
#define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("wlozenie filamentu")
#define MSG_FILAMENT_CHANGE_EXTRUDE_1 _UxGT("Czekam na")
#define MSG_FILAMENT_CHANGE_EXTRUDE_2 _UxGT("ekstruzje filamentu")
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Czekam na")
#define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("wznowienie druku")
#else // LCD_HEIGHT < 4
// Up to 2 lines allowed
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Prosze czekac...")
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Wysuwanie...")
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Wloz i nacisnij prz.")
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Ladowanie...")
#define MSG_FILAMENT_CHANGE_EXTRUDE_1 _UxGT("Ekstruzja...")
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Wznowienie...")
#endif // LCD_HEIGHT < 4
#if LCD_HEIGHT >= 4
// Up to 3 lines allowed
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Czekam na ")
#define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("zmiane filamentu")
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Czekam na")
#define MSG_FILAMENT_CHANGE_UNLOAD_2 _UxGT("wyjecie filamentu")
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Wloz filament")
#define MSG_FILAMENT_CHANGE_INSERT_2 _UxGT("i nacisnij przycisk")
#define MSG_FILAMENT_CHANGE_INSERT_3 _UxGT("aby kontynuowac...")
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Czekam na")
#define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("wlozenie filamentu")
#define MSG_FILAMENT_CHANGE_EXTRUDE_1 _UxGT("Czekam na")
#define MSG_FILAMENT_CHANGE_EXTRUDE_2 _UxGT("ekstruzje filamentu")
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Czekam na")
#define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("wznowienie druku")
#else // LCD_HEIGHT < 4
// Up to 2 lines allowed
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Prosze czekac...")
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Wysuwanie...")
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Wloz i nacisnij prz.")
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Ladowanie...")
#define MSG_FILAMENT_CHANGE_EXTRUDE_1 _UxGT("Ekstruzja...")
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Wznowienie...")
#endif // LCD_HEIGHT < 4

View File

@@ -1,171 +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/>.
*
*/
/**
* Portuguese (Brazil)
*
* LCD Menu Messages
* See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
*
*/
#ifndef LANGUAGE_PT_BR_H
#define LANGUAGE_PT_BR_H
#define DISPLAY_CHARSET_ISO10646_1
#define WELCOME_MSG MACHINE_NAME " pronto."
#define MSG_SD_INSERTED "Cartao inserido"
#define MSG_SD_REMOVED "Cartao removido"
#define MSG_MAIN "Menu principal"
#define MSG_AUTOSTART "Autostart"
#define MSG_DISABLE_STEPPERS "Desabi. motores"
#define MSG_AUTO_HOME "Ir para origen"
#define MSG_LEVEL_BED_HOMING "Homing XYZ"
#define MSG_LEVEL_BED_WAITING "Click to Begin"
#define MSG_LEVEL_BED_DONE "Leveling Done!"
#define MSG_SET_HOME_OFFSETS "Ajustar Jogo"
#define MSG_HOME_OFFSETS_APPLIED "Offsets applied"
#define MSG_SET_ORIGIN "Ajustar orig."
#define MSG_PREHEAT_1 "Pre-aquecer PLA"
#define MSG_PREHEAT_1_N "Pre-aquecer PLA"
#define MSG_PREHEAT_1_ALL "Pre-aq.Todo PLA"
#define MSG_PREHEAT_1_BEDONLY "Pre-aq. PLA " LCD_STR_THERMOMETER "Base"
#define MSG_PREHEAT_1_SETTINGS "Ajustar PLA"
#define MSG_PREHEAT_2 "Pre-aquecer ABS"
#define MSG_PREHEAT_2_N "Pre-aquecer ABS"
#define MSG_PREHEAT_2_ALL "Pre-aq.Todo ABS"
#define MSG_PREHEAT_2_BEDONLY "Pre-aq. ABS " LCD_STR_THERMOMETER "Base"
#define MSG_PREHEAT_2_SETTINGS "Ajustar ABS"
#define MSG_COOLDOWN "Esfriar"
#define MSG_SWITCH_PS_ON "Ligar"
#define MSG_SWITCH_PS_OFF "Desligar"
#define MSG_EXTRUDE "Extrudar"
#define MSG_RETRACT "Retrair"
#define MSG_MOVE_AXIS "Mover eixo"
#define MSG_MOVE_X "Mover X"
#define MSG_MOVE_Y "Mover Y"
#define MSG_MOVE_Z "Mover Z"
#define MSG_MOVE_E "Mover Extrusor"
#define MSG_MOVE_01MM "Mover 0.1mm"
#define MSG_MOVE_1MM "Mover 1mm"
#define MSG_MOVE_10MM "Mover 10mm"
#define MSG_SPEED "Velocidade"
#define MSG_BED_Z "Base Z"
#define MSG_NOZZLE LCD_STR_THERMOMETER " Bocal"
#define MSG_BED LCD_STR_THERMOMETER " Base"
#define MSG_FAN_SPEED "Vel. Ventoinha"
#define MSG_FLOW "Fluxo"
#define MSG_CONTROL "Controle"
#define MSG_MIN LCD_STR_THERMOMETER " Min"
#define MSG_MAX LCD_STR_THERMOMETER " Max"
#define MSG_FACTOR LCD_STR_THERMOMETER " Fact"
#define MSG_AUTOTEMP "Temp. Automatica"
#define MSG_ON "Ligado "
#define MSG_OFF "Desligado"
#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_JERK "Jogo"
#define MSG_VX_JERK "jogo VX"
#define MSG_VY_JERK "jogo VY"
#define MSG_VZ_JERK "jogo VZ"
#define MSG_VE_JERK "jogo VE"
#define MSG_VMAX " Vmax "
#define MSG_VMIN "Vmin"
#define MSG_VTRAV_MIN "VTrav min"
#define MSG_AMAX "Amax "
#define MSG_A_RETRACT "Retrair A"
#define MSG_A_TRAVEL "A-movimento"
#define MSG_STEPS_PER_MM "Passo/mm"
#define MSG_XSTEPS "Passo X/mm"
#define MSG_YSTEPS "Passo Y/mm"
#define MSG_ZSTEPS "Passo Z/mm"
#define MSG_ESTEPS "E/mm"
#define MSG_E1STEPS "E1/mm"
#define MSG_E2STEPS "E2/mm"
#define MSG_E3STEPS "E3/mm"
#define MSG_E4STEPS "E4/mm"
#define MSG_E5STEPS "E5/mm"
#define MSG_TEMPERATURE "Temperatura"
#define MSG_MOTION "Movimento"
#define MSG_FILAMENT "Filamento"
#define MSG_VOLUMETRIC_ENABLED "Extr. em mm3"
#define MSG_FILAMENT_DIAM "Diametro Fil."
#define MSG_CONTRAST "Contraste"
#define MSG_STORE_EEPROM "Salvar"
#define MSG_LOAD_EEPROM "Ler"
#define MSG_RESTORE_FAILSAFE "Rest. de emerg."
#define MSG_REFRESH LCD_STR_REFRESH " Restaurar"
#define MSG_WATCH "Monitorar"
#define MSG_PREPARE "Preparar"
#define MSG_TUNE "Afinar"
#define MSG_PAUSE_PRINT "Pausar impressao"
#define MSG_RESUME_PRINT "Resumir impressao"
#define MSG_STOP_PRINT "Parar impressao"
#define MSG_CARD_MENU "Imprimir do SD"
#define MSG_NO_CARD "Sem cartao SD"
#define MSG_DWELL "Repouso..."
#define MSG_USERWAIT "Esperando ordem"
#define MSG_RESUMING "Resumindo Impres."
#define MSG_PRINT_ABORTED "Impres. Abortada."
#define MSG_NO_MOVE "Sem movimento"
#define MSG_KILLED "PARADA DE EMERG."
#define MSG_STOPPED "PARADA. "
#define MSG_CONTROL_RETRACT "Retrair mm"
#define MSG_CONTROL_RETRACT_SWAP "Retrair Troca mm"
#define MSG_CONTROL_RETRACTF "Retrair V"
#define MSG_CONTROL_RETRACT_ZLIFT "Levantar mm"
#define MSG_CONTROL_RETRACT_RECOVER "Des Retrair mm"
#define MSG_CONTROL_RETRACT_RECOVER_SWAP "Des RetTroca mm"
#define MSG_CONTROL_RETRACT_RECOVERF "Des Retrair V"
#define MSG_AUTORETRACT "Retracao Autom."
#define MSG_FILAMENTCHANGE "Trocar Filamento"
#define MSG_INIT_SDCARD "Iniciar SD"
#define MSG_CNG_SDCARD "Trocar SD"
#define MSG_ZPROBE_OUT "Son. fora da mesa"
#define MSG_HOME "Home" // Used as MSG_HOME " " MSG_X MSG_Y MSG_Z " " MSG_FIRST
#define MSG_FIRST "first"
#define MSG_ZPROBE_ZOFFSET "Deslocamento no Z"
#define MSG_BABYSTEP_X "Passinho X"
#define MSG_BABYSTEP_Y "Passinho Y"
#define MSG_BABYSTEP_Z "Passinho Z"
#define MSG_ENDSTOP_ABORT "Fim de Curso"
#define MSG_HEATING_FAILED_LCD "Aquecimento falhou"
#define MSG_ERR_REDUNDANT_TEMP "Err: REDUNDANT TEMP"
#define MSG_THERMAL_RUNAWAY "THERMAL RUNAWAY"
#define MSG_ERR_MAXTEMP "Err: T Maxima"
#define MSG_ERR_MINTEMP "Err: T Minima"
#define MSG_ERR_MAXTEMP_BED "Err: T Base Maxima"
#define MSG_ERR_MINTEMP_BED "Err: T Base Minima"
#define MSG_HEATING "Aquecendo..."
#define MSG_HEATING_COMPLETE "Aquecida."
#define MSG_BED_HEATING "Aquecendo base.."
#define MSG_BED_DONE "Base aquecida."
#define MSG_DELTA_CALIBRATE "Calibrar 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_PT_BR_H

View File

@@ -1,171 +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/>.
*
*/
/**
* Portuguese (Brazil)
*
* LCD Menu Messages
* See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
*
*/
#ifndef LANGUAGE_PT_BR_UTF_H
#define LANGUAGE_PT_BR_UTF_H
#define DISPLAY_CHARSET_ISO10646_1
#define WELCOME_MSG MACHINE_NAME _UxGT(" pronto.")
#define MSG_SD_INSERTED _UxGT("Cartão inserido")
#define MSG_SD_REMOVED _UxGT("Cartão removido")
#define MSG_MAIN _UxGT("Menu principal")
#define MSG_AUTOSTART _UxGT("Autostart")
#define MSG_DISABLE_STEPPERS _UxGT("Desabi. motores")
#define MSG_AUTO_HOME _UxGT("Ir para origen")
#define MSG_LEVEL_BED_HOMING _UxGT("Indo para origem")
#define MSG_LEVEL_BED_WAITING _UxGT("Click to Begin")
#define MSG_LEVEL_BED_DONE _UxGT("Leveling Done!")
#define MSG_SET_HOME_OFFSETS _UxGT("Ajustar Jogo")
#define MSG_HOME_OFFSETS_APPLIED _UxGT("Offsets applied")
#define MSG_SET_ORIGIN _UxGT("Ajustar orig.")
#define MSG_PREHEAT_1 _UxGT("Pre-aquecer PLA")
#define MSG_PREHEAT_1_N _UxGT("Pre-aquecer PLA")
#define MSG_PREHEAT_1_ALL _UxGT("Pre-aq.Todo PLA")
#define MSG_PREHEAT_1_BEDONLY _UxGT("Pre-aq. PLA ") LCD_STR_THERMOMETER _UxGT("Base")
#define MSG_PREHEAT_1_SETTINGS _UxGT("Ajustar PLA")
#define MSG_PREHEAT_2 _UxGT("Pre-aquecer ABS")
#define MSG_PREHEAT_2_N _UxGT("Pre-aquecer ABS")
#define MSG_PREHEAT_2_ALL _UxGT("Pre-aq.Todo ABS")
#define MSG_PREHEAT_2_BEDONLY _UxGT("Pre-aq. ABS ") LCD_STR_THERMOMETER _UxGT("Base")
#define MSG_PREHEAT_2_SETTINGS _UxGT("Ajustar ABS")
#define MSG_COOLDOWN _UxGT("Esfriar")
#define MSG_SWITCH_PS_ON _UxGT("Ligar")
#define MSG_SWITCH_PS_OFF _UxGT("Desligar")
#define MSG_EXTRUDE _UxGT("Extrudar")
#define MSG_RETRACT _UxGT("Retrair")
#define MSG_MOVE_AXIS _UxGT("Mover eixo")
#define MSG_MOVE_X _UxGT("Mover X")
#define MSG_MOVE_Y _UxGT("Mover Y")
#define MSG_MOVE_Z _UxGT("Mover Z")
#define MSG_MOVE_E _UxGT("Mover Extrusor")
#define MSG_MOVE_01MM _UxGT("Mover 0.1mm")
#define MSG_MOVE_1MM _UxGT("Mover 1mm")
#define MSG_MOVE_10MM _UxGT("Mover 10mm")
#define MSG_SPEED _UxGT("Velocidade")
#define MSG_BED_Z _UxGT("Base Z")
#define MSG_NOZZLE LCD_STR_THERMOMETER _UxGT(" Bocal")
#define MSG_BED LCD_STR_THERMOMETER _UxGT(" Base")
#define MSG_FAN_SPEED _UxGT("Vel. Ventoinha")
#define MSG_FLOW _UxGT("Fluxo")
#define MSG_CONTROL _UxGT("Controle")
#define MSG_MIN LCD_STR_THERMOMETER _UxGT(" Min")
#define MSG_MAX LCD_STR_THERMOMETER _UxGT(" Max")
#define MSG_FACTOR LCD_STR_THERMOMETER _UxGT(" Fact")
#define MSG_AUTOTEMP _UxGT("Temp. Automática")
#define MSG_ON _UxGT("Ligado ")
#define MSG_OFF _UxGT("Desligado")
#define MSG_PID_P _UxGT("PID-P")
#define MSG_PID_I _UxGT("PID-I")
#define MSG_PID_D _UxGT("PID-D")
#define MSG_PID_C _UxGT("PID-C")
#define MSG_ACC _UxGT("Acc")
#define MSG_JERK _UxGT("Jogo")
#define MSG_VX_JERK _UxGT("jogo VX")
#define MSG_VY_JERK _UxGT("jogo VY")
#define MSG_VZ_JERK _UxGT("jogo VZ")
#define MSG_VE_JERK _UxGT("jogo VE")
#define MSG_VMAX _UxGT(" Vmax ")
#define MSG_VMIN _UxGT("Vmin")
#define MSG_VTRAV_MIN _UxGT("VTrav min")
#define MSG_AMAX _UxGT("Amax ")
#define MSG_A_RETRACT _UxGT("Retrair A")
#define MSG_A_TRAVEL _UxGT("A-movimento")
#define MSG_STEPS_PER_MM _UxGT("Passo/mm")
#define MSG_XSTEPS _UxGT("Passo X/mm")
#define MSG_YSTEPS _UxGT("Passo Y/mm")
#define MSG_ZSTEPS _UxGT("Passo Z/mm")
#define MSG_ESTEPS _UxGT("E/mm")
#define MSG_E1STEPS _UxGT("E1/mm")
#define MSG_E2STEPS _UxGT("E2/mm")
#define MSG_E3STEPS _UxGT("E3/mm")
#define MSG_E4STEPS _UxGT("E4/mm")
#define MSG_E5STEPS _UxGT("E5/mm")
#define MSG_TEMPERATURE _UxGT("Temperatura")
#define MSG_MOTION _UxGT("Movimento")
#define MSG_FILAMENT _UxGT("Filamento")
#define MSG_VOLUMETRIC_ENABLED _UxGT("Extr. em mm3")
#define MSG_FILAMENT_DIAM _UxGT("Diametro Fil.")
#define MSG_CONTRAST _UxGT("Contraste")
#define MSG_STORE_EEPROM _UxGT("Salvar")
#define MSG_LOAD_EEPROM _UxGT("Ler")
#define MSG_RESTORE_FAILSAFE _UxGT("Rest. de emerg.")
#define MSG_REFRESH LCD_STR_REFRESH _UxGT(" Restaurar")
#define MSG_WATCH _UxGT("Monitorar")
#define MSG_PREPARE _UxGT("Preparar")
#define MSG_TUNE _UxGT("Afinar")
#define MSG_PAUSE_PRINT _UxGT("Pausar impressão")
#define MSG_RESUME_PRINT _UxGT("Resumir impressão")
#define MSG_STOP_PRINT _UxGT("Parar impressão")
#define MSG_CARD_MENU _UxGT("Imprimir do SD")
#define MSG_NO_CARD _UxGT("Sem cartão SD")
#define MSG_DWELL _UxGT("Repouso...")
#define MSG_USERWAIT _UxGT("Esperando ordem")
#define MSG_RESUMING _UxGT("Resumindo Impres.")
#define MSG_PRINT_ABORTED _UxGT("Impres. Abortada.")
#define MSG_NO_MOVE _UxGT("Sem movimento")
#define MSG_KILLED _UxGT("PARADA DE EMERG.")
#define MSG_STOPPED _UxGT("PARADA. ")
#define MSG_CONTROL_RETRACT _UxGT("Retrair mm")
#define MSG_CONTROL_RETRACT_SWAP _UxGT("Retrair Troca mm")
#define MSG_CONTROL_RETRACTF _UxGT("Retrair V")
#define MSG_CONTROL_RETRACT_ZLIFT _UxGT("Levantar mm")
#define MSG_CONTROL_RETRACT_RECOVER _UxGT("Des Retrair mm")
#define MSG_CONTROL_RETRACT_RECOVER_SWAP _UxGT("Des RetTroca mm")
#define MSG_CONTROL_RETRACT_RECOVERF _UxGT("Des Retrair V")
#define MSG_AUTORETRACT _UxGT("Retração Autom.")
#define MSG_FILAMENTCHANGE _UxGT("Trocar Filamento")
#define MSG_INIT_SDCARD _UxGT("Iniciar SD")
#define MSG_CNG_SDCARD _UxGT("Trocar SD")
#define MSG_ZPROBE_OUT _UxGT("Son. fora da mesa")
#define MSG_HOME _UxGT("Home") // Used as MSG_HOME " " MSG_X MSG_Y MSG_Z " " MSG_FIRST
#define MSG_FIRST _UxGT("first")
#define MSG_ZPROBE_ZOFFSET _UxGT("Deslocamento no Z")
#define MSG_BABYSTEP_X _UxGT("Passinho X")
#define MSG_BABYSTEP_Y _UxGT("Passinho Y")
#define MSG_BABYSTEP_Z _UxGT("Passinho Z")
#define MSG_ENDSTOP_ABORT _UxGT("Fim de Curso")
#define MSG_HEATING_FAILED_LCD _UxGT("Aquecimento falhou")
#define MSG_ERR_REDUNDANT_TEMP _UxGT("Err: REDUNDANT TEMP")
#define MSG_THERMAL_RUNAWAY _UxGT("THERMAL RUNAWAY")
#define MSG_ERR_MAXTEMP _UxGT("Err: T Máxima")
#define MSG_ERR_MINTEMP _UxGT("Err: T Mínima")
#define MSG_ERR_MAXTEMP_BED _UxGT("Err: T Base Máxima")
#define MSG_ERR_MINTEMP_BED _UxGT("Err: T Base Mínima")
#define MSG_HEATING _UxGT("Aquecendo...")
#define MSG_HEATING_COMPLETE _UxGT("Aquecida.")
#define MSG_BED_HEATING _UxGT("Aquecendo base..")
#define MSG_BED_DONE _UxGT("Base aquecida.")
#define MSG_DELTA_CALIBRATE _UxGT("Calibrar Delta")
#define MSG_DELTA_CALIBRATE_X _UxGT("Calibrar X")
#define MSG_DELTA_CALIBRATE_Y _UxGT("Calibrar Y")
#define MSG_DELTA_CALIBRATE_Z _UxGT("Calibrar Z")
#define MSG_DELTA_CALIBRATE_CENTER _UxGT("Calibrar Centro")
#endif // LANGUAGE_PT_BR_UTF_H

View File

@@ -1,177 +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/>.
*
*/
/**
* Portuguese
*
* LCD Menu Messages
* See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
*
*/
#ifndef LANGUAGE_PT_H
#define LANGUAGE_PT_H
#define DISPLAY_CHARSET_ISO10646_1
#define WELCOME_MSG MACHINE_NAME " pronto."
#define MSG_SD_INSERTED "Cartao inserido"
#define MSG_SD_REMOVED "Cartao removido"
#define MSG_MAIN "Menu principal"
#define MSG_AUTOSTART "Autostart"
#define MSG_DISABLE_STEPPERS "Desactivar motores"
#define MSG_AUTO_HOME "Ir para origem"
#define MSG_AUTO_HOME_X "Ir para origem X"
#define MSG_AUTO_HOME_Y "Ir para origem Y"
#define MSG_AUTO_HOME_Z "Ir para origem Z"
#define MSG_LEVEL_BED_HOMING "Indo para origem"
#define MSG_LEVEL_BED_WAITING "Click para iniciar"
#define MSG_LEVEL_BED_NEXT_POINT "Proximo ponto"
#define MSG_LEVEL_BED_DONE "Pronto !"
#define MSG_SET_HOME_OFFSETS "Definir desvio"
#define MSG_HOME_OFFSETS_APPLIED "Offsets applied"
#define MSG_SET_ORIGIN "Definir origem"
#define MSG_PREHEAT_1 "Pre-aquecer PLA"
#define MSG_PREHEAT_1_N "Pre-aquecer PLA"
#define MSG_PREHEAT_1_ALL "Pre-aq. PLA Tudo"
#define MSG_PREHEAT_1_BEDONLY "Pre-aq. PLA " LCD_STR_THERMOMETER "Base"
#define MSG_PREHEAT_1_SETTINGS "Definicoes PLA"
#define MSG_PREHEAT_2 "Pre-aquecer ABS"
#define MSG_PREHEAT_2_N "Pre-aquecer ABS "
#define MSG_PREHEAT_2_ALL "Pre-aq. ABS Tudo"
#define MSG_PREHEAT_2_BEDONLY "Pre-aq. ABS " LCD_STR_THERMOMETER "Base"
#define MSG_PREHEAT_2_SETTINGS "Definicoes ABS"
#define MSG_COOLDOWN "Arrefecer"
#define MSG_SWITCH_PS_ON "Ligar"
#define MSG_SWITCH_PS_OFF "Desligar"
#define MSG_EXTRUDE "Extrudir"
#define MSG_RETRACT "Retrair"
#define MSG_MOVE_AXIS "Mover eixo"
#define MSG_MOVE_X "Mover X"
#define MSG_MOVE_Y "Mover Y"
#define MSG_MOVE_Z "Mover Z"
#define MSG_MOVE_E "Mover Extrusor"
#define MSG_MOVE_01MM "Mover 0.1mm"
#define MSG_MOVE_1MM "Mover 1mm"
#define MSG_MOVE_10MM "Mover 10mm"
#define MSG_SPEED "Velocidade"
#define MSG_BED_Z "Base Z"
#define MSG_NOZZLE LCD_STR_THERMOMETER " Bico"
#define MSG_BED LCD_STR_THERMOMETER " Base"
#define MSG_FAN_SPEED "Vel. ventoinha"
#define MSG_FLOW "Fluxo"
#define MSG_CONTROL "Controlo"
#define MSG_MIN LCD_STR_THERMOMETER " Min"
#define MSG_MAX LCD_STR_THERMOMETER " Max"
#define MSG_FACTOR LCD_STR_THERMOMETER " Fact"
#define MSG_AUTOTEMP "Temp. Automatica"
#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 "Acc"
#define MSG_JERK _UxGT("Jerk")
#define MSG_VX_JERK "Vx-jerk"
#define MSG_VY_JERK "Vy-jerk"
#define MSG_VZ_JERK "Vz-jerk"
#define MSG_VE_JERK "Ve-jerk"
#define MSG_VMAX " Vmax "
#define MSG_VMIN "Vmin"
#define MSG_VTRAV_MIN "VTrav min"
#define MSG_AMAX "Amax "
#define MSG_A_RETRACT "A-retraccao"
#define MSG_A_TRAVEL "A-movimento"
#define MSG_STEPS_PER_MM "Passo/mm"
#define MSG_XSTEPS "X passo/mm"
#define MSG_YSTEPS "Y passo/mm"
#define MSG_ZSTEPS "Z passo/mm"
#define MSG_ESTEPS "E passo/mm"
#define MSG_E1STEPS "E1 passo/mm"
#define MSG_E2STEPS "E2 passo/mm"
#define MSG_E3STEPS "E3 passo/mm"
#define MSG_E4STEPS "E4 passo/mm"
#define MSG_E5STEPS "E5 passo/mm"
#define MSG_TEMPERATURE "Temperatura"
#define MSG_MOTION "Movimento"
#define MSG_FILAMENT "Filamento"
#define MSG_VOLUMETRIC_ENABLED "E em mm3"
#define MSG_FILAMENT_DIAM "Fil. Diam."
#define MSG_CONTRAST "Contraste"
#define MSG_STORE_EEPROM "Guardar na memoria"
#define MSG_LOAD_EEPROM "Carregar da memoria"
#define MSG_RESTORE_FAILSAFE "Rest. de emergen."
#define MSG_REFRESH LCD_STR_REFRESH " Recarregar"
#define MSG_WATCH "Monitorizar"
#define MSG_PREPARE "Preparar"
#define MSG_TUNE "Afinar"
#define MSG_PAUSE_PRINT "Pausar impressao"
#define MSG_RESUME_PRINT "Retomar impressao"
#define MSG_STOP_PRINT "Parar impressao"
#define MSG_CARD_MENU "Imprimir do SD"
#define MSG_NO_CARD "Sem cartao SD"
#define MSG_DWELL "Em espera..."
#define MSG_USERWAIT "A espera de ordem"
#define MSG_RESUMING "Retomando impressao"
#define MSG_PRINT_ABORTED "Impressao cancelada"
#define MSG_NO_MOVE "Sem movimento"
#define MSG_KILLED "EMERGENCIA. "
#define MSG_STOPPED "PARADO. "
#define MSG_CONTROL_RETRACT " Retrair mm"
#define MSG_CONTROL_RETRACT_SWAP "Troca Retrair mm"
#define MSG_CONTROL_RETRACTF " Retrair V"
#define MSG_CONTROL_RETRACT_ZLIFT " Levantar mm"
#define MSG_CONTROL_RETRACT_RECOVER " DesRet mm"
#define MSG_CONTROL_RETRACT_RECOVER_SWAP "Troca DesRet mm"
#define MSG_CONTROL_RETRACT_RECOVERF " DesRet V"
#define MSG_AUTORETRACT " AutoRetr."
#define MSG_FILAMENTCHANGE "Trocar filamento"
#define MSG_INIT_SDCARD "Inici. cartao SD"
#define MSG_CNG_SDCARD "Trocar cartao SD"
#define MSG_ZPROBE_OUT "Sensor fora/base"
#define MSG_HOME "Home" // Used as MSG_HOME " " MSG_X MSG_Y MSG_Z " " MSG_FIRST
#define MSG_FIRST "first"
#define MSG_ZPROBE_ZOFFSET "Desvio Z"
#define MSG_BABYSTEP_X "Babystep X"
#define MSG_BABYSTEP_Y "Babystep Y"
#define MSG_BABYSTEP_Z "Babystep Z"
#define MSG_ENDSTOP_ABORT "Fim de curso"
#define MSG_HEATING_FAILED_LCD "Aquecimento falhou"
#define MSG_ERR_REDUNDANT_TEMP "Err: REDUNDANT TEMP"
#define MSG_THERMAL_RUNAWAY "THERMAL RUNAWAY"
#define MSG_ERR_MAXTEMP "Err: T Maxima"
#define MSG_ERR_MINTEMP "Err: T Minima"
#define MSG_ERR_MAXTEMP_BED "Err: T Base Maxima"
#define MSG_ERR_MINTEMP_BED "Err: T Base Minima"
#define MSG_HEATING "Aquecendo..."
#define MSG_HEATING_COMPLETE "Aquecida."
#define MSG_BED_HEATING "Aquecendo base.."
#define MSG_BED_DONE "Base aquecida."
#define MSG_DELTA_CALIBRATE "Calibracao 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"
#define MSG_LCD_ENDSTOPS "Fim de curso"
#endif // LANGUAGE_PT_H

View File

@@ -1,175 +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/>.
*
*/
/**
* Russian
*
* LCD Menu Messages
* See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
*
*/
#ifndef LANGUAGE_RU_H
#define LANGUAGE_RU_H
#define MAPPER_D0D1 // For Cyrillic
#define DISPLAY_CHARSET_ISO10646_5
#define WELCOME_MSG MACHINE_NAME _UxGT(" Готов.")
#define MSG_SD_INSERTED _UxGT("Карта вставлена")
#define MSG_SD_REMOVED _UxGT("Карта извлечена")
#define MSG_MAIN _UxGT("Меню")
#define MSG_LCD_ENDSTOPS _UxGT("концевик")
#define MSG_AUTOSTART _UxGT("Автостарт")
#define MSG_DISABLE_STEPPERS _UxGT("Выкл. двигатели")
#define MSG_AUTO_HOME _UxGT("Парковка")
#define MSG_LEVEL_BED_HOMING _UxGT("Нулевое полож")
#define MSG_LEVEL_BED_WAITING _UxGT("Нажмите начать")
#define MSG_LEVEL_BED_NEXT_POINT _UxGT("Следующая точка")
#define MSG_LEVEL_BED_DONE _UxGT("Уровень!")
#define MSG_SET_HOME_OFFSETS _UxGT("Запомнить парковку")
#define MSG_HOME_OFFSETS_APPLIED _UxGT("Коррекции примен")
#define MSG_SET_ORIGIN _UxGT("Запомнить ноль")
#define MSG_PREHEAT_1 _UxGT("Преднагрев PLA")
#define MSG_PREHEAT_1_N _UxGT("Греть PLA Сопло ")
#define MSG_PREHEAT_1_ALL _UxGT("Греть PLA Все")
#define MSG_PREHEAT_1_BEDONLY _UxGT("Греть PLA Стол")
#define MSG_PREHEAT_1_SETTINGS _UxGT("Настройки PLA")
#define MSG_PREHEAT_2 _UxGT("Преднагрев ABS")
#define MSG_PREHEAT_2_N _UxGT("Греть ABS Сопло ")
#define MSG_PREHEAT_2_ALL _UxGT("Греть ABS Все")
#define MSG_PREHEAT_2_BEDONLY _UxGT("Греть ABS Стол")
#define MSG_PREHEAT_2_SETTINGS _UxGT("Настройки ABS")
#define MSG_COOLDOWN _UxGT("Охлаждение")
#define MSG_SWITCH_PS_ON _UxGT("Включить Питание")
#define MSG_SWITCH_PS_OFF _UxGT("Отключить Питание")
#define MSG_EXTRUDE _UxGT("Экструзия")
#define MSG_RETRACT _UxGT("Втягивание")
#define MSG_MOVE_AXIS _UxGT("Движение по осям")
#define MSG_BED_LEVELING _UxGT("Калибровать стол")
#define MSG_LEVEL_BED _UxGT("Калибровать стол")
#define MSG_MOVE_X _UxGT("Движение по X")
#define MSG_MOVE_Y _UxGT("Движение по Y")
#define MSG_MOVE_Z _UxGT("Движение по Z")
#define MSG_MOVE_E _UxGT("Экструдер")
#define MSG_MOVE_01MM _UxGT("Движение XYZ 0.1mm")
#define MSG_MOVE_1MM _UxGT("Движение XYZ 1mm")
#define MSG_MOVE_10MM _UxGT("Движение XY 10mm")
#define MSG_SPEED _UxGT("Скорость")
#define MSG_BED_Z _UxGT("Z стола")
#define MSG_NOZZLE LCD_STR_THERMOMETER _UxGT(" Сопло")
#define MSG_BED LCD_STR_THERMOMETER _UxGT(" Стол")
#define MSG_FAN_SPEED _UxGT("Кулер")
#define MSG_FLOW _UxGT("Поток")
#define MSG_CONTROL _UxGT("Настройки")
#define MSG_MIN LCD_STR_THERMOMETER _UxGT(" Минимум")
#define MSG_MAX LCD_STR_THERMOMETER _UxGT(" Максимум")
#define MSG_FACTOR LCD_STR_THERMOMETER _UxGT(" Фактор")
#define MSG_AUTOTEMP _UxGT("Автотемпература")
#define MSG_ON _UxGT("Вкл. ")
#define MSG_OFF _UxGT("Откл. ")
#define MSG_PID_P _UxGT("PID-P")
#define MSG_PID_I _UxGT("PID-I")
#define MSG_PID_D _UxGT("PID-D")
#define MSG_PID_C _UxGT("PID-C")
#define MSG_ACC _UxGT("Acc")
#define MSG_JERK _UxGT("Рывок")
#define MSG_VX_JERK _UxGT("Vx-рывок")
#define MSG_VY_JERK _UxGT("Vy-рывок")
#define MSG_VZ_JERK _UxGT("Vz-рывок")
#define MSG_VE_JERK _UxGT("Ve-рывок")
#define MSG_VMAX _UxGT("Vмакс ")
#define MSG_VMIN _UxGT("Vмин")
#define MSG_VTRAV_MIN _UxGT("Vпутеш. мин")
#define MSG_AMAX _UxGT("Aмакс")
#define MSG_A_RETRACT _UxGT("A-втягивание")
#define MSG_A_TRAVEL _UxGT("A-путеш.")
#define MSG_STEPS_PER_MM _UxGT("Шаг/мм")
#define MSG_XSTEPS _UxGT("X шаг/мм")
#define MSG_YSTEPS _UxGT("Y шаг/мм")
#define MSG_ZSTEPS _UxGT("Z шаг/мм")
#define MSG_ESTEPS _UxGT("E шаг/мм")
#define MSG_E1STEPS _UxGT("E1 шаг/мм")
#define MSG_E2STEPS _UxGT("E2 шаг/мм")
#define MSG_E3STEPS _UxGT("E3 шаг/мм")
#define MSG_E4STEPS _UxGT("E4 шаг/мм")
#define MSG_TEMPERATURE _UxGT("Температура")
#define MSG_MOTION _UxGT("Механика")
#define MSG_FILAMENT _UxGT("Пруток")
#define MSG_VOLUMETRIC_ENABLED _UxGT("E в mm3")
#define MSG_FILAMENT_DIAM _UxGT("Диаметр прутка")
#define MSG_CONTRAST _UxGT("Контраст LCD")
#define MSG_STORE_EEPROM _UxGT("Сохранить в EEPROM")
#define MSG_LOAD_EEPROM _UxGT("Считать из EEPROM")
#define MSG_RESTORE_FAILSAFE _UxGT("Сброс EEPROM")
#define MSG_REFRESH _UxGT("Обновить")
#define MSG_WATCH _UxGT("Обзор")
#define MSG_PREPARE _UxGT("Действия")
#define MSG_TUNE _UxGT("Настройки")
#define MSG_PAUSE_PRINT _UxGT("Пауза печати")
#define MSG_RESUME_PRINT _UxGT("Продолжить печать")
#define MSG_STOP_PRINT _UxGT("Остановить печать")
#define MSG_CARD_MENU _UxGT("Обзор карты")
#define MSG_NO_CARD _UxGT("Нет карты")
#define MSG_DWELL _UxGT("Сон...")
#define MSG_USERWAIT _UxGT("Ожиданиие")
#define MSG_RESUMING _UxGT("Возобновление...")
#define MSG_PRINT_ABORTED _UxGT("Отмена печати")
#define MSG_NO_MOVE _UxGT("Нет движения.")
#define MSG_KILLED _UxGT("УБИТО.")
#define MSG_STOPPED _UxGT("ОСТАНОВЛЕНО.")
#define MSG_CONTROL_RETRACT _UxGT("Втягивание mm")
#define MSG_CONTROL_RETRACT_SWAP _UxGT("Втяг. смены mm")
#define MSG_CONTROL_RETRACTF _UxGT("Втягивание V")
#define MSG_CONTROL_RETRACT_ZLIFT _UxGT("Втяг. прыжка mm")
#define MSG_CONTROL_RETRACT_RECOVER _UxGT("Возврат mm")
#define MSG_CONTROL_RETRACT_RECOVER_SWAP _UxGT("Возврат смены mm")
#define MSG_CONTROL_RETRACT_RECOVERF _UxGT("Возврат V")
#define MSG_AUTORETRACT _UxGT("Авто Втягивание")
#define MSG_FILAMENTCHANGE _UxGT("Смена прутка")
#define MSG_INIT_SDCARD _UxGT("Иниц. карту")
#define MSG_CNG_SDCARD _UxGT("Сменить карту")
#define MSG_ZPROBE_OUT _UxGT("Z датчик вне стола")
#define MSG_HOME _UxGT("Паркуй X/Y перед Z")
#define MSG_FIRST _UxGT("первый")
#define MSG_ZPROBE_ZOFFSET _UxGT("Смещение Z")
#define MSG_BABYSTEP_X _UxGT("Микрошаг X")
#define MSG_BABYSTEP_Y _UxGT("Микрошаг Y")
#define MSG_BABYSTEP_Z _UxGT("Микрошаг Z")
#define MSG_ENDSTOP_ABORT _UxGT("Сработал концевик")
#define MSG_HEATING_FAILED_LCD _UxGT("Разогрев не удался")
#define MSG_ERR_REDUNDANT_TEMP _UxGT("Ошибка:Слишком горячо")
#define MSG_THERMAL_RUNAWAY _UxGT("ТЕПЛО УБЕГАНИЯ!")
#define MSG_ERR_MAXTEMP _UxGT("Ошибка: Т макс.")
#define MSG_ERR_MINTEMP _UxGT("Ошибка: Т мин.")
#define MSG_ERR_MAXTEMP_BED _UxGT("Ошибка:Т макс.стол")
#define MSG_ERR_MINTEMP_BED _UxGT("Ошибка:Т мин.стол")
#define MSG_HEATING _UxGT("Нагреваю сопло...")
#define MSG_HEATING_COMPLETE _UxGT("Нагрев выполнен")
#define MSG_BED_HEATING _UxGT("Нагреваю стол")
#define MSG_BED_DONE _UxGT("Стол разогрет")
#define MSG_DELTA_CALIBRATE _UxGT("Калибровка Delta")
#define MSG_DELTA_CALIBRATE_X _UxGT("Калибровать X")
#define MSG_DELTA_CALIBRATE_Y _UxGT("Калибровать Y")
#define MSG_DELTA_CALIBRATE_Z _UxGT("Калибровать Z")
#define MSG_DELTA_CALIBRATE_CENTER _UxGT("Калибровать центр")
#endif // LANGUAGE_RU_H

View File

@@ -1,238 +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/>.
*
*/
/**
* Traditional Chinese
*
* LCD Menu Messages
* See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
*
*/
#ifndef LANGUAGE_ZH_TW_H
#define LANGUAGE_ZH_TW_H
#define WELCOME_MSG MACHINE_NAME _UxGT("已就緒.") //" ready."
#define MSG_SD_INSERTED _UxGT("記憶卡已插入") //"Card inserted"
#define MSG_SD_REMOVED _UxGT("記憶卡被拔出") //"Card removed"
#define MSG_LCD_ENDSTOPS _UxGT("擋塊") //"Endstops" // Max length 8 characters
#define MSG_MAIN _UxGT("主選單") //"Main"
#define MSG_AUTOSTART _UxGT("自動開始") //"Autostart"
#define MSG_DISABLE_STEPPERS _UxGT("關閉步進驅動") //"Disable steppers"
#define MSG_AUTO_HOME _UxGT("自動回原點") //"Auto home"
#define MSG_AUTO_HOME_X _UxGT("回X原位") //"Home X"
#define MSG_AUTO_HOME_Y _UxGT("回Y原位") //"Home Y"
#define MSG_AUTO_HOME_Z _UxGT("回Z原位") //"Home Z"
#define MSG_LEVEL_BED_HOMING _UxGT("平台調平XYZ歸原位") //"Homing XYZ"
#define MSG_LEVEL_BED_WAITING _UxGT("單擊開始熱床調平") //"Click to Begin"
#define MSG_LEVEL_BED_NEXT_POINT _UxGT("下個熱床調平點") //"Next Point"
#define MSG_LEVEL_BED_DONE _UxGT("完成熱床調平") //"Leveling Done!"
#define MSG_SET_HOME_OFFSETS _UxGT("設置原點偏移") //"Set home offsets"
#define MSG_HOME_OFFSETS_APPLIED _UxGT("偏移已啟用") //"Offsets applied"
#define MSG_SET_ORIGIN _UxGT("設置原點") //"Set origin"
#define MSG_PREHEAT_1 _UxGT("預熱PLA") //"Preheat PLA"
#define MSG_PREHEAT_1_N MSG_PREHEAT_1 _UxGT(" ") //MSG_PREHEAT_1 " "
#define MSG_PREHEAT_1_ALL MSG_PREHEAT_1 _UxGT(" 全部") //MSG_PREHEAT_1 " All"
#define MSG_PREHEAT_1_BEDONLY MSG_PREHEAT_1 _UxGT(" 熱床") //MSG_PREHEAT_1 " Bed"
#define MSG_PREHEAT_1_SETTINGS MSG_PREHEAT_1 _UxGT(" 設置") //MSG_PREHEAT_1 " conf"
#define MSG_PREHEAT_2 _UxGT("預熱ABS") //"Preheat ABS"
#define MSG_PREHEAT_2_N MSG_PREHEAT_2 _UxGT(" ") //MSG_PREHEAT_2 " "
#define MSG_PREHEAT_2_ALL MSG_PREHEAT_2 _UxGT(" 全部") //MSG_PREHEAT_2 " All"
#define MSG_PREHEAT_2_BEDONLY MSG_PREHEAT_2 _UxGT(" 熱床") //MSG_PREHEAT_2 " Bed"
#define MSG_PREHEAT_2_SETTINGS MSG_PREHEAT_2 _UxGT(" 設置") //MSG_PREHEAT_2 " conf"
#define MSG_COOLDOWN _UxGT("降溫") //"Cooldown"
#define MSG_SWITCH_PS_ON _UxGT("電源打開") //"Switch power on"
#define MSG_SWITCH_PS_OFF _UxGT("電源關閉") //"Switch power off"
#define MSG_EXTRUDE _UxGT("擠出") //"Extrude"
#define MSG_RETRACT _UxGT("回抽") //"Retract"
#define MSG_MOVE_AXIS _UxGT("移動軸") //"Move axis"
#define MSG_BED_LEVELING _UxGT("調平熱床") //"Bed leveling"
#define MSG_LEVEL_BED _UxGT("調平熱床") //"Level bed"
#define MSG_MOVE_X _UxGT("移動X") //"Move X"
#define MSG_MOVE_Y _UxGT("移動Y") //"Move Y"
#define MSG_MOVE_Z _UxGT("移動Z") //"Move Z"
#define MSG_MOVE_E _UxGT("擠出機") //"Extruder"
#define MSG_MOVE_01MM _UxGT("移動 0.1 mm") //"Move 0.1mm"
#define MSG_MOVE_1MM _UxGT("移動 1 mm") //"Move 1mm"
#define MSG_MOVE_10MM _UxGT("移動 10 mm") //"Move 10mm"
#define MSG_SPEED _UxGT("速率") //"Speed"
#define MSG_BED_Z _UxGT("熱床Z") //"Bed Z"
#define MSG_NOZZLE _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" 噴嘴") //"Nozzle" 噴嘴
#define MSG_BED _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" 熱床") //"Bed"
#define MSG_FAN_SPEED _UxGT("風扇速率") //"Fan speed"
#define MSG_FLOW _UxGT("擠出速率") //"Flow"
#define MSG_CONTROL _UxGT("控制") //"Control"
#define MSG_MIN _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" 最小") //" " LCD_STR_THERMOMETER " Min"
#define MSG_MAX _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" 最大") //" " LCD_STR_THERMOMETER " Max"
#define MSG_FACTOR _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" 系數") //" " LCD_STR_THERMOMETER " Fact"
#define MSG_AUTOTEMP _UxGT("自動控溫") //"Autotemp"
#define MSG_ON _UxGT("開 ") //"On "
#define MSG_OFF _UxGT("關 ") //"Off"
#define MSG_PID_P _UxGT("PID-P") //"PID-P"
#define MSG_PID_I _UxGT("PID-I") //"PID-I"
#define MSG_PID_D _UxGT("PID-D") //"PID-D"
#define MSG_PID_C _UxGT("PID-C") //"PID-C"
#define MSG_SELECT _UxGT("選擇") //"Select"
#define MSG_ACC _UxGT("加速度") //"Accel" acceleration
#define MSG_JERK _UxGT("抖動速率") //"Jerk"
#define MSG_VX_JERK _UxGT("X軸抖動速率") //"Vx-jerk"
#define MSG_VY_JERK _UxGT("Y軸抖動速率") //"Vy-jerk"
#define MSG_VZ_JERK _UxGT("Z軸抖動速率") //"Vz-jerk"
#define MSG_VE_JERK _UxGT("擠出機抖動速率") //"Ve-jerk"
#define MSG_VMAX _UxGT("最大進料速率") //"Vmax " max_feedrate_mm_s
#define MSG_VMIN _UxGT("最小進料速率") //"Vmin" min_feedrate_mm_s
#define MSG_VTRAV_MIN _UxGT("最小移動速率") //"VTrav min" min_travel_feedrate_mm_s, (target) speed of the move
#define MSG_AMAX _UxGT("最大列印加速度") //"Amax " max_acceleration_mm_per_s2, acceleration in units/s^2 for print moves
#define MSG_A_RETRACT _UxGT("收進加速度") //"A-retract" retract_acceleration, E acceleration in mm/s^2 for retracts
#define MSG_A_TRAVEL _UxGT("非列印移動加速度") //"A-travel" travel_acceleration, X, Y, Z acceleration in mm/s^2 for travel (non printing) moves
#define MSG_STEPS_PER_MM _UxGT("軸步數/mm") //"Steps/mm" axis_steps_per_mm, axis steps-per-unit G92
#define MSG_XSTEPS _UxGT("X軸步數/mm") //"Xsteps/mm" axis_steps_per_mm, axis steps-per-unit G92
#define MSG_YSTEPS _UxGT("Y軸步數/mm") //"Ysteps/mm"
#define MSG_ZSTEPS _UxGT("Z軸步數/mm") //"Zsteps/mm"
#define MSG_ESTEPS _UxGT("擠出機步數/mm") //"Esteps/mm"
#define MSG_TEMPERATURE _UxGT("溫度") //"Temperature"
#define MSG_MOTION _UxGT("運動") //"Motion"
#define MSG_FILAMENT _UxGT("絲料測容") //"Filament" lcd_control_volumetric_menu
#define MSG_VOLUMETRIC_ENABLED _UxGT("測容積mm³") //"E in mm3" volumetric_enabled
#define MSG_FILAMENT_DIAM _UxGT("絲料直徑") //"Fil. Dia."
#define MSG_CONTRAST _UxGT("LCD對比度") //"LCD contrast"
#define MSG_STORE_EEPROM _UxGT("保存設置") //"Store memory"
#define MSG_LOAD_EEPROM _UxGT("裝載設置") //"Load memory"
#define MSG_RESTORE_FAILSAFE _UxGT("恢複安全值") //"Restore failsafe"
#define MSG_REFRESH _UxGT("刷新") //"Refresh"
#define MSG_WATCH _UxGT("資訊界面") //"Info screen"
#define MSG_PREPARE _UxGT("準備") //"Prepare"
#define MSG_TUNE _UxGT("調整") //"Tune"
#define MSG_PAUSE_PRINT _UxGT("暫停列印") //"Pause print"
#define MSG_RESUME_PRINT _UxGT("恢複列印") //"Resume print"
#define MSG_STOP_PRINT _UxGT("停止列印") //"Stop print"
#define MSG_CARD_MENU _UxGT("從記憶卡上列印") //"Print from SD"
#define MSG_NO_CARD _UxGT("無記憶卡") //"No SD card"
#define MSG_DWELL _UxGT("休眠 ...") //"Sleep..."
#define MSG_USERWAIT _UxGT("等待用戶 ...") //"Wait for user..."
#define MSG_RESUMING _UxGT("恢複列印中") //"Resuming print"
#define MSG_PRINT_ABORTED _UxGT("列印已取消") //"Print aborted"
#define MSG_NO_MOVE _UxGT("無移動") //"No move."
#define MSG_KILLED _UxGT("已殺掉") //"KILLED. "
#define MSG_STOPPED _UxGT("已停止") //"STOPPED. "
#define MSG_CONTROL_RETRACT _UxGT("回抽長度mm") //"Retract mm" retract_length, retract length (positive mm)
#define MSG_CONTROL_RETRACT_SWAP _UxGT("換手回抽長度mm") //"Swap Re.mm" retract_length_swap, swap retract length (positive mm), for extruder change
#define MSG_CONTROL_RETRACTF _UxGT("回抽速率mm/s") //"Retract V" retract_feedrate_mm_s, feedrate for retracting (mm/s)
#define MSG_CONTROL_RETRACT_ZLIFT _UxGT("Hop mm") //"Hop mm" retract_zlift, retract Z-lift
#define MSG_CONTROL_RETRACT_RECOVER _UxGT("回抽恢複長度mm") //"UnRet +mm" retract_recover_length, additional recover length (mm, added to retract length when recovering)
#define MSG_CONTROL_RETRACT_RECOVER_SWAP _UxGT("換手回抽恢複長度mm") //"S UnRet+mm" retract_recover_length_swap, additional swap recover length (mm, added to retract length when recovering from extruder change)
#define MSG_CONTROL_RETRACT_RECOVERF _UxGT("回抽恢複後進料速率mm/s") //"UnRet V" retract_recover_feedrate_mm_s, feedrate for recovering from retraction (mm/s)
#define MSG_AUTORETRACT _UxGT("自動抽回") //"AutoRetr." autoretract_enabled,
#define MSG_FILAMENTCHANGE _UxGT("更換絲料") //"Change filament"
#define MSG_INIT_SDCARD _UxGT("初始化記憶卡") //"Init. SD card"
#define MSG_CNG_SDCARD _UxGT("更換記憶卡") //"Change SD card"
#define MSG_ZPROBE_OUT _UxGT("Z探針在熱床之外") //"Z probe out. bed" Z probe is not within the physical limits
#define MSG_HOME _UxGT("歸位") //"Home" // Used as MSG_HOME " " MSG_X MSG_Y MSG_Z " " MSG_FIRST
#define MSG_FIRST _UxGT("先") //"first"
#define MSG_ZPROBE_ZOFFSET _UxGT("Z偏移") //"Z Offset"
#define MSG_BABYSTEP_X _UxGT("微量調整X軸") //"Babystep X" lcd_babystep_x, Babystepping enables the user to control the axis in tiny amounts
#define MSG_BABYSTEP_Y _UxGT("微量調整Y軸") //"Babystep Y"
#define MSG_BABYSTEP_Z _UxGT("微量調整Z軸") //"Babystep Z"
#define MSG_ENDSTOP_ABORT _UxGT("擋塊終止") //"Endstop abort"
#define MSG_HEATING_FAILED_LCD _UxGT("加熱失敗") //"Heating failed"
#define MSG_ERR_REDUNDANT_TEMP _UxGT("錯誤REDUNDANT TEMP") //"Err: REDUNDANT TEMP"
#define MSG_THERMAL_RUNAWAY _UxGT("溫控失控") //"THERMAL RUNAWAY"
#define MSG_ERR_MAXTEMP _UxGT("錯誤:最高溫度") //"Err: MAXTEMP"
#define MSG_ERR_MINTEMP _UxGT("錯誤:最低溫度") //"Err: MINTEMP"
#define MSG_ERR_MAXTEMP_BED _UxGT("錯誤:最高熱床溫度") //"Err: MAXTEMP BED"
#define MSG_ERR_MINTEMP_BED _UxGT("錯誤:最低熱床溫度") //"Err: MINTEMP BED"
#define MSG_HALTED _UxGT("印表機停機") //"PRINTER HALTED"
#define MSG_PLEASE_RESET _UxGT("請重置") //"Please reset"
#define MSG_SHORT_DAY _UxGT("天") //"d" // One character only
#define MSG_SHORT_HOUR _UxGT("時") //"h" // One character only
#define MSG_SHORT_MINUTE _UxGT("分") //"m" // One character only
#define MSG_HEATING _UxGT("加熱中 ...") //"Heating..."
#define MSG_HEATING_COMPLETE _UxGT("完成加熱") //"Heating done."
#define MSG_BED_HEATING _UxGT("加熱熱床中") //"Bed Heating."
#define MSG_BED_DONE _UxGT("完成加熱熱床") //"Bed done."
#define MSG_DELTA_CALIBRATE _UxGT("⊿校準") //"Delta Calibration"
#define MSG_DELTA_CALIBRATE_X _UxGT("校準X") //"Calibrate X"
#define MSG_DELTA_CALIBRATE_Y _UxGT("校準Y") //"Calibrate Y"
#define MSG_DELTA_CALIBRATE_Z _UxGT("校準Z") //"Calibrate Z"
#define MSG_DELTA_CALIBRATE_CENTER _UxGT("校準中心") //"Calibrate Center"
#define MSG_INFO_MENU _UxGT("關於印表機") //"About Printer"
#define MSG_INFO_PRINTER_MENU _UxGT("印表機信息") //"Printer Info"
#define MSG_INFO_STATS_MENU _UxGT("印表機統計") //"Printer Stats"
#define MSG_INFO_BOARD_MENU _UxGT("主板信息") //"Board Info"
#define MSG_INFO_THERMISTOR_MENU _UxGT("溫度計") //"Thermistors"
#define MSG_INFO_EXTRUDERS _UxGT("擠出機") //"Extruders"
#define MSG_INFO_BAUDRATE _UxGT("波特率") //"Baud"
#define MSG_INFO_PROTOCOL _UxGT("協議") //"Protocol"
#if LCD_WIDTH > 19
#define MSG_INFO_PRINT_COUNT _UxGT("列印計數") //"Print Count"
#define MSG_INFO_COMPLETED_PRINTS _UxGT("完成了") //"Completed"
#define MSG_INFO_PRINT_TIME _UxGT("總列印時間") //"Total print time"
#define MSG_INFO_PRINT_LONGEST _UxGT("最長工作時間") //"Longest job time"
#define MSG_INFO_PRINT_FILAMENT _UxGT("總計擠出") //"Extruded total"
#else
#define MSG_INFO_PRINT_COUNT _UxGT("列印數") //"Prints"
#define MSG_INFO_COMPLETED_PRINTS _UxGT("完成") //"Completed"
#define MSG_INFO_PRINT_TIME _UxGT("總共") //"Total"
#define MSG_INFO_PRINT_LONGEST _UxGT("最長") //"Longest"
#define MSG_INFO_PRINT_FILAMENT _UxGT("已擠出") //"Extruded"
#endif
#define MSG_INFO_MIN_TEMP _UxGT("最低溫度") //"Min Temp"
#define MSG_INFO_MAX_TEMP _UxGT("最高溫度") //"Max Temp"
#define MSG_INFO_PSU _UxGT("電源供應") //"Power Supply"
#define MSG_FILAMENT_CHANGE_HEADER _UxGT("PRINT PAUSED")
#define MSG_FILAMENT_CHANGE_OPTION_HEADER _UxGT("RESUME OPTIONS:")
#define MSG_FILAMENT_CHANGE_OPTION_EXTRUDE _UxGT("擠出更多") //"Extrude more"
#define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("恢複列印") //"Resume print"
#if LCD_HEIGHT >= 4
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("等待開始") //"Wait for start"
#define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("絲料") //"of the filament"
#define MSG_FILAMENT_CHANGE_INIT_3 _UxGT("變更") //"change"
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("等待") //"Wait for"
#define MSG_FILAMENT_CHANGE_UNLOAD_2 _UxGT("卸下絲料") //"filament unload"
#define MSG_FILAMENT_CHANGE_UNLOAD_3 _UxGT("") //""
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("插入絲料") //"Insert filament"
#define MSG_FILAMENT_CHANGE_INSERT_2 _UxGT("並按鍵") //"and press button"
#define MSG_FILAMENT_CHANGE_INSERT_3 _UxGT("來繼續 ...") //"to continue..."
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("等待") //"Wait for"
#define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("進料") //"filament load"
#define MSG_FILAMENT_CHANGE_LOAD_3 _UxGT("") //""
#define MSG_FILAMENT_CHANGE_EXTRUDE_1 _UxGT("等待") //"Wait for"
#define MSG_FILAMENT_CHANGE_EXTRUDE_2 _UxGT("絲料擠出") //"filament extrude"
#define MSG_FILAMENT_CHANGE_EXTRUDE_3 _UxGT("") //""
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("等待列印") //"Wait for print"
#define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("恢複") //"to resume"
#define MSG_FILAMENT_CHANGE_RESUME_3 _UxGT("") //""
#else // LCD_HEIGHT < 4
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("請等待 ...") //"Please wait..."
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("退出中 ...") //"Ejecting..."
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("插入並單擊") //"Insert and Click"
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("裝載中 ...") //"Loading..."
#define MSG_FILAMENT_CHANGE_EXTRUDE_1 _UxGT("擠出中 ...") //"Extruding..."
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("恢複中 ...") //"Resuming..."
#endif // LCD_HEIGHT < 4
#endif // LANGUAGE_ZH_TW_H

36
Marlin/lib/readme.txt Normal file
View File

@@ -0,0 +1,36 @@
This directory is intended for the project specific (private) libraries.
PlatformIO will compile them to static libraries and link to executable file.
The source code of each library should be placed in separate directory, like
"lib/private_lib/[here are source files]".
For example, see how can be organized `Foo` and `Bar` libraries:
|--lib
| |--Bar
| | |--docs
| | |--examples
| | |--src
| | |- Bar.c
| | |- Bar.h
| |--Foo
| | |- Foo.c
| | |- Foo.h
| |- readme.txt --> THIS FILE
|- platformio.ini
|--src
|- main.c
Then in `src/main.c` you should use:
#include <Foo.h>
#include <Bar.h>
// rest H/C/CPP code
PlatformIO will find your libraries automatically, configure preprocessor's
include paths and build them.
More information about PlatformIO Library Dependency Finder
- http://docs.platformio.org/page/librarymanager/ldf.html

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/>.
*
*/
#ifndef MACROS_H
#define MACROS_H
#define NUM_AXIS 4
#define XYZE 4
#define ABC 3
#define XYZ 3
#define FORCE_INLINE __attribute__((always_inline)) inline
#define _UNUSED __attribute__((unused))
#define _O0 __attribute__((optimize("O0")))
#define _Os __attribute__((optimize("Os")))
#define _O1 __attribute__((optimize("O1")))
#define _O2 __attribute__((optimize("O2")))
#define _O3 __attribute__((optimize("O3")))
// Bracket code that shouldn't be interrupted
#ifndef CRITICAL_SECTION_START
#define CRITICAL_SECTION_START unsigned char _sreg = SREG; cli();
#define CRITICAL_SECTION_END SREG = _sreg;
#endif
// Clock speed factors
#define CYCLES_PER_MICROSECOND (F_CPU / 1000000L) // 16 or 20
#define INT0_PRESCALER 8
// Highly granular delays for step pulses, etc.
#define DELAY_0_NOP NOOP
#define DELAY_1_NOP __asm__("nop\n\t")
#define DELAY_2_NOP DELAY_1_NOP; DELAY_1_NOP
#define DELAY_3_NOP DELAY_1_NOP; DELAY_2_NOP
#define DELAY_4_NOP DELAY_1_NOP; DELAY_3_NOP
#define DELAY_5_NOP DELAY_1_NOP; DELAY_4_NOP
#define DELAY_NOPS(X) \
switch (X) { \
case 20: DELAY_1_NOP; case 19: DELAY_1_NOP; \
case 18: DELAY_1_NOP; case 17: DELAY_1_NOP; \
case 16: DELAY_1_NOP; case 15: DELAY_1_NOP; \
case 14: DELAY_1_NOP; case 13: DELAY_1_NOP; \
case 12: DELAY_1_NOP; case 11: DELAY_1_NOP; \
case 10: DELAY_1_NOP; case 9: DELAY_1_NOP; \
case 8: DELAY_1_NOP; case 7: DELAY_1_NOP; \
case 6: DELAY_1_NOP; case 5: DELAY_1_NOP; \
case 4: DELAY_1_NOP; case 3: DELAY_1_NOP; \
case 2: DELAY_1_NOP; case 1: DELAY_1_NOP; \
}
#define DELAY_10_NOP DELAY_5_NOP; DELAY_5_NOP
#define DELAY_20_NOP DELAY_10_NOP; DELAY_10_NOP
#if CYCLES_PER_MICROSECOND == 16
#define DELAY_1US DELAY_10_NOP; DELAY_5_NOP; DELAY_1_NOP
#else
#define DELAY_1US DELAY_20_NOP
#endif
#define DELAY_2US DELAY_1US; DELAY_1US
#define DELAY_3US DELAY_1US; DELAY_2US
#define DELAY_4US DELAY_1US; DELAY_3US
#define DELAY_5US DELAY_1US; DELAY_4US
#define DELAY_6US DELAY_1US; DELAY_5US
#define DELAY_7US DELAY_1US; DELAY_6US
#define DELAY_8US DELAY_1US; DELAY_7US
#define DELAY_9US DELAY_1US; DELAY_8US
#define DELAY_10US DELAY_1US; DELAY_9US
// Remove compiler warning on an unused variable
#define UNUSED(x) (void) (x)
// Macros to make a string from a macro
#define STRINGIFY_(M) #M
#define STRINGIFY(M) STRINGIFY_(M)
// Macros for bit masks
#define TEST(n,b) (((n)&_BV(b))!=0)
#define SBI(n,b) (n |= _BV(b))
#define CBI(n,b) (n &= ~_BV(b))
#define SET_BIT(n,b,value) (n) ^= ((-value)^(n)) & (_BV(b))
// Macros for maths shortcuts
#ifndef M_PI
#define M_PI 3.14159265358979323846
#endif
#define RADIANS(d) ((d)*M_PI/180.0)
#define DEGREES(r) ((r)*180.0/M_PI)
#define HYPOT2(x,y) (sq(x)+sq(y))
#define HYPOT(x,y) sqrt(HYPOT2(x,y))
// Macros to contrain values
#define NOLESS(v,n) do{ if (v < n) v = n; }while(0)
#define NOMORE(v,n) do{ if (v > n) v = n; }while(0)
// Macros to support option testing
#define _CAT(a, ...) a ## __VA_ARGS__
#define SWITCH_ENABLED_false 0
#define SWITCH_ENABLED_true 1
#define SWITCH_ENABLED_0 0
#define SWITCH_ENABLED_1 1
#define SWITCH_ENABLED_ 1
#define ENABLED(b) _CAT(SWITCH_ENABLED_, b)
#define DISABLED(b) (!_CAT(SWITCH_ENABLED_, b))
#define WITHIN(V,L,H) ((V) >= (L) && (V) <= (H))
#define NUMERIC(a) WITHIN(a, '0', '9')
#define DECIMAL(a) (NUMERIC(a) || a == '.')
#define NUMERIC_SIGNED(a) (NUMERIC(a) || (a) == '-' || (a) == '+')
#define DECIMAL_SIGNED(a) (DECIMAL(a) || (a) == '-' || (a) == '+')
#define PRINTABLE(C) (((C) & 0xC0u) != 0x80u)
#define COUNT(a) (sizeof(a)/sizeof(*a))
#define ZERO(a) memset(a,0,sizeof(a))
#define COPY(a,b) memcpy(a,b,min(sizeof(a),sizeof(b)))
// Macros for initializing arrays
#define ARRAY_6(v1, v2, v3, v4, v5, v6, ...) { v1, v2, v3, v4, v5, v6 }
#define ARRAY_5(v1, v2, v3, v4, v5, ...) { v1, v2, v3, v4, v5 }
#define ARRAY_4(v1, v2, v3, v4, ...) { v1, v2, v3, v4 }
#define ARRAY_3(v1, v2, v3, ...) { v1, v2, v3 }
#define ARRAY_2(v1, v2, ...) { v1, v2 }
#define ARRAY_1(v1, ...) { v1 }
#define _ARRAY_N(N, ...) ARRAY_ ##N(__VA_ARGS__)
#define ARRAY_N(N, ...) _ARRAY_N(N, __VA_ARGS__)
// Macros for adding
#define INC_0 1
#define INC_1 2
#define INC_2 3
#define INC_3 4
#define INC_4 5
#define INC_5 6
#define INC_6 7
#define INC_7 8
#define INC_8 9
#define INCREMENT_(n) INC_ ##n
#define INCREMENT(n) INCREMENT_(n)
// Macros for subtracting
#define DEC_1 0
#define DEC_2 1
#define DEC_3 2
#define DEC_4 3
#define DEC_5 4
#define DEC_6 5
#define DEC_7 6
#define DEC_8 7
#define DEC_9 8
#define DECREMENT_(n) DEC_ ##n
#define DECREMENT(n) DECREMENT_(n)
#define PIN_EXISTS(PN) (defined(PN ##_PIN) && PN ##_PIN >= 0)
#define PENDING(NOW,SOON) ((long)(NOW-(SOON))<0)
#define ELAPSED(NOW,SOON) (!PENDING(NOW,SOON))
#define NOOP do{} while(0)
#define CEILING(x,y) (((x) + (y) - 1) / (y))
#define MIN3(a, b, c) min(min(a, b), c)
#define MIN4(a, b, c, d) min(MIN3(a, b, c), d)
#define MIN5(a, b, c, d, e) min(MIN4(a, b, c, d), e)
#define MAX3(a, b, c) max(max(a, b), c)
#define MAX4(a, b, c, d) max(MAX3(a, b, c), d)
#define MAX5(a, b, c, d, e) max(MAX4(a, b, c, d), e)
#define UNEAR_ZERO(x) ((x) < 0.000001)
#define NEAR_ZERO(x) WITHIN(x, -0.000001, 0.000001)
#define NEAR(x,y) NEAR_ZERO((x)-(y))
#define RECIPROCAL(x) (NEAR_ZERO(x) ? 0.0 : 1.0 / (x))
#define FIXFLOAT(f) (f + 0.00001)
#endif // __MACROS_H

View File

@@ -1,122 +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 "Marlin.h"
#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
};
#define MESH_X_DIST ((MESH_MAX_X - (MESH_MIN_X)) / (GRID_MAX_POINTS_X - 1))
#define MESH_Y_DIST ((MESH_MAX_Y - (MESH_MIN_Y)) / (GRID_MAX_POINTS_Y - 1))
class mesh_bed_leveling {
public:
static uint8_t status; // Has Mesh and Is Active bits
static float z_offset,
z_values[GRID_MAX_POINTS_X][GRID_MAX_POINTS_Y],
index_to_xpos[GRID_MAX_POINTS_X],
index_to_ypos[GRID_MAX_POINTS_Y];
mesh_bed_leveling();
static void reset();
static void set_z(const int8_t px, const int8_t py, const float &z) { z_values[px][py] = z; }
static bool active() { return TEST(status, MBL_STATUS_ACTIVE_BIT); }
static void set_active(const bool onOff) { onOff ? SBI(status, MBL_STATUS_ACTIVE_BIT) : CBI(status, MBL_STATUS_ACTIVE_BIT); }
static bool has_mesh() { return TEST(status, MBL_STATUS_HAS_MESH_BIT); }
static void set_has_mesh(const bool onOff) { onOff ? SBI(status, MBL_STATUS_HAS_MESH_BIT) : CBI(status, MBL_STATUS_HAS_MESH_BIT); }
static inline void zigzag(const int8_t index, int8_t &px, int8_t &py) {
px = index % (GRID_MAX_POINTS_X);
py = index / (GRID_MAX_POINTS_X);
if (py & 1) px = (GRID_MAX_POINTS_X - 1) - px; // Zig zag
}
static void set_zigzag_z(const int8_t index, const float &z) {
int8_t px, py;
zigzag(index, px, py);
set_z(px, py, z);
}
static int8_t cell_index_x(const float &x) {
int8_t cx = (x - (MESH_MIN_X)) * (1.0 / (MESH_X_DIST));
return constrain(cx, 0, (GRID_MAX_POINTS_X) - 2);
}
static int8_t cell_index_y(const float &y) {
int8_t cy = (y - (MESH_MIN_Y)) * (1.0 / (MESH_Y_DIST));
return constrain(cy, 0, (GRID_MAX_POINTS_Y) - 2);
}
static int8_t probe_index_x(const float &x) {
int8_t px = (x - (MESH_MIN_X) + 0.5 * (MESH_X_DIST)) * (1.0 / (MESH_X_DIST));
return WITHIN(px, 0, GRID_MAX_POINTS_X - 1) ? px : -1;
}
static int8_t probe_index_y(const float &y) {
int8_t py = (y - (MESH_MIN_Y) + 0.5 * (MESH_Y_DIST)) * (1.0 / (MESH_Y_DIST));
return WITHIN(py, 0, GRID_MAX_POINTS_Y - 1) ? py : -1;
}
static float calc_z0(const float &a0, const float &a1, const float &z1, const float &a2, const float &z2) {
const float delta_z = (z2 - z1) / (a2 - a1);
const float delta_a = a0 - a1;
return z1 + delta_a * delta_z;
}
static float get_z(const float &x0, const float &y0
#if ENABLED(ENABLE_LEVELING_FADE_HEIGHT)
, const float &factor
#endif
) {
const int8_t cx = cell_index_x(x0), cy = cell_index_y(y0);
const float z1 = calc_z0(x0, index_to_xpos[cx], z_values[cx][cy], index_to_xpos[cx + 1], z_values[cx + 1][cy]),
z2 = calc_z0(x0, index_to_xpos[cx], z_values[cx][cy + 1], index_to_xpos[cx + 1], z_values[cx + 1][cy + 1]),
z0 = calc_z0(y0, index_to_ypos[cy], z1, index_to_ypos[cy + 1], z2);
return z_offset + z0
#if ENABLED(ENABLE_LEVELING_FADE_HEIGHT)
* factor
#endif
;
}
};
extern mesh_bed_leveling mbl;
#endif // MESH_BED_LEVELING

View File

@@ -1,236 +0,0 @@
#include "nozzle.h"
#include "Marlin.h"
#include "point_t.h"
/**
* @brief Stroke clean pattern
* @details Wipes the nozzle back and forth in a linear movement
*
* @param start point_t defining the starting point
* @param end point_t defining the ending point
* @param strokes number of strokes to execute
*/
void Nozzle::stroke(
_UNUSED point_t const &start,
_UNUSED point_t const &end,
_UNUSED uint8_t const &strokes
) {
#if ENABLED(NOZZLE_CLEAN_FEATURE)
#if ENABLED(NOZZLE_CLEAN_GOBACK)
// Store the current coords
point_t const initial = {
current_position[X_AXIS],
current_position[Y_AXIS],
current_position[Z_AXIS],
current_position[E_AXIS]
};
#endif // NOZZLE_CLEAN_GOBACK
// Move to the starting point
do_blocking_move_to_xy(start.x, start.y);
do_blocking_move_to_z(start.z);
// Start the stroke pattern
for (uint8_t i = 0; i < (strokes >>1); i++) {
do_blocking_move_to_xy(end.x, end.y);
do_blocking_move_to_xy(start.x, start.y);
}
#if ENABLED(NOZZLE_CLEAN_GOBACK)
// Move the nozzle to the initial point
do_blocking_move_to(initial.x, initial.y, initial.z);
#endif // NOZZLE_CLEAN_GOBACK
#endif // NOZZLE_CLEAN_FEATURE
}
/**
* @brief Zig-zag clean pattern
* @details Apply a zig-zag cleanning pattern
*
* @param start point_t defining the starting point
* @param end point_t defining the ending point
* @param strokes number of strokes to execute
* @param objects number of objects to create
*/
void Nozzle::zigzag(
_UNUSED point_t const &start,
_UNUSED point_t const &end,
_UNUSED uint8_t const &strokes,
_UNUSED uint8_t const &objects
) {
#if ENABLED(NOZZLE_CLEAN_FEATURE)
const float A = nozzle_clean_horizontal ? nozzle_clean_height : nozzle_clean_length, // [twice the] Amplitude
P = (nozzle_clean_horizontal ? nozzle_clean_length : nozzle_clean_height) / (objects << 1); // Period
// Don't allow impossible triangles
if (A <= 0.0f || P <= 0.0f ) return;
#if ENABLED(NOZZLE_CLEAN_GOBACK)
// Store the current coords
point_t const initial = {
current_position[X_AXIS],
current_position[Y_AXIS],
current_position[Z_AXIS],
current_position[E_AXIS]
};
#endif // NOZZLE_CLEAN_GOBACK
for (uint8_t j = 0; j < strokes; j++) {
for (uint8_t i = 0; i < (objects << 1); i++) {
float const x = start.x + ( nozzle_clean_horizontal ? i * P : (A/P) * (P - fabs(fmod((i*P), (2*P)) - P)) );
float const y = start.y + (!nozzle_clean_horizontal ? i * P : (A/P) * (P - fabs(fmod((i*P), (2*P)) - P)) );
do_blocking_move_to_xy(x, y);
if (i == 0) do_blocking_move_to_z(start.z);
}
for (int i = (objects << 1); i > -1; i--) {
float const x = start.x + ( nozzle_clean_horizontal ? i * P : (A/P) * (P - fabs(fmod((i*P), (2*P)) - P)) );
float const y = start.y + (!nozzle_clean_horizontal ? i * P : (A/P) * (P - fabs(fmod((i*P), (2*P)) - P)) );
do_blocking_move_to_xy(x, y);
}
}
#if ENABLED(NOZZLE_CLEAN_GOBACK)
// Move the nozzle to the initial point
do_blocking_move_to_z(initial.z);
do_blocking_move_to_xy(initial.x, initial.y);
#endif // NOZZLE_CLEAN_GOBACK
#endif // NOZZLE_CLEAN_FEATURE
}
/**
* @brief Circular clean pattern
* @details Apply a circular cleaning pattern
*
* @param start point_t defining the middle of circle
* @param strokes number of strokes to execute
* @param radius radius of circle
*/
void Nozzle::circle(
_UNUSED point_t const &start,
_UNUSED point_t const &middle,
_UNUSED uint8_t const &strokes,
_UNUSED float const &radius
) {
#if ENABLED(NOZZLE_CLEAN_FEATURE)
if (strokes == 0) return;
#if ENABLED(NOZZLE_CLEAN_GOBACK)
// Store the current coords
point_t const initial = {
current_position[X_AXIS],
current_position[Y_AXIS],
current_position[Z_AXIS],
current_position[E_AXIS]
};
#endif // NOZZLE_CLEAN_GOBACK
if (start.z <= current_position[Z_AXIS]) {
// Order of movement is pretty darn important here
do_blocking_move_to_xy(start.x, start.y);
do_blocking_move_to_z(start.z);
} else {
do_blocking_move_to_z(start.z);
do_blocking_move_to_xy(start.x, start.y);
}
float x, y;
for (uint8_t s = 0; s < strokes; s++) {
for (uint8_t i = 0; i < NOZZLE_CLEAN_CIRCLE_FN; i++) {
x = middle.x + sin((M_2_PI / NOZZLE_CLEAN_CIRCLE_FN) * i) * radius;
y = middle.y + cos((M_2_PI / NOZZLE_CLEAN_CIRCLE_FN) * i) * radius;
do_blocking_move_to_xy(x, y);
}
}
// Let's be safe
do_blocking_move_to_xy(start.x, start.y);
#if ENABLED(NOZZLE_CLEAN_GOBACK)
// Move the nozzle to the initial point
if (start.z <= initial.z) {
// As above order is important
do_blocking_move_to_z(initial.z);
do_blocking_move_to_xy(initial.x, initial.y);
} else {
do_blocking_move_to_xy(initial.x, initial.y);
do_blocking_move_to_z(initial.z);
}
#endif // NOZZLE_CLEAN_GOBACK
#endif // NOZZLE_CLEAN_FEATURE
}
/**
* @brief Clean the nozzle
* @details Starts the selected clean procedure pattern
*
* @param pattern one of the available patterns
* @param argument depends on the cleaning pattern
*/
void Nozzle::clean(
_UNUSED uint8_t const &pattern,
_UNUSED uint8_t const &strokes,
_UNUSED float const &radius,
_UNUSED uint8_t const &objects
) {
#if ENABLED(NOZZLE_CLEAN_FEATURE)
#if ENABLED(DELTA)
if (current_position[Z_AXIS] > delta_clip_start_height)
do_blocking_move_to_z(delta_clip_start_height);
#endif
switch (pattern) {
case 1:
Nozzle::zigzag(
NOZZLE_CLEAN_START_POINT,
NOZZLE_CLEAN_END_POINT, strokes, objects);
break;
case 2:
Nozzle::circle(
NOZZLE_CLEAN_START_POINT,
NOZZLE_CLEAN_CIRCLE_MIDDLE, strokes, radius);
break;
default:
Nozzle::stroke(
NOZZLE_CLEAN_START_POINT,
NOZZLE_CLEAN_END_POINT, strokes);
}
#endif // NOZZLE_CLEAN_FEATURE
}
void Nozzle::park(
_UNUSED uint8_t const &z_action
) {
#if ENABLED(NOZZLE_PARK_FEATURE)
float const z = current_position[Z_AXIS];
point_t const park = NOZZLE_PARK_POINT;
switch(z_action) {
case 1: // force Z-park height
do_blocking_move_to_z(park.z);
break;
case 2: // Raise by Z-park height
do_blocking_move_to_z(
(z + park.z > Z_MAX_POS) ? Z_MAX_POS : z + park.z);
break;
default: // Raise to Z-park height if lower
if (current_position[Z_AXIS] < park.z)
do_blocking_move_to_z(park.z);
}
do_blocking_move_to_xy(park.x, park.y);
#endif // NOZZLE_PARK_FEATURE
}

View File

@@ -1,571 +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 PINS_H
#define PINS_H
#if MB(GEN7_CUSTOM)
#include "pins_GEN7_CUSTOM.h"
#elif MB(GEN7_12)
#include "pins_GEN7_12.h"
#elif MB(GEN7_13)
#include "pins_GEN7_13.h"
#elif MB(GEN7_14)
#include "pins_GEN7_14.h"
#elif MB(CNCONTROLS_11)
#include "pins_CNCONTROLS_11.h"
#elif MB(CNCONTROLS_12)
#include "pins_CNCONTROLS_12.h"
#elif MB(CHEAPTRONIC)
#include "pins_CHEAPTRONIC.h"
#elif MB(CHEAPTRONIC_V2)
#include "pins_CHEAPTRONICv2.h"
#elif MB(SETHI)
#include "pins_SETHI.h"
#elif MB(MIGHTYBOARD_REVE)
#include "pins_MIGHTYBOARD_REVE.h"
#elif MB(RAMPS_OLD)
#include "pins_RAMPS_OLD.h"
#elif MB(RAMPS_13_EFB)
#define IS_RAMPS_EFB
#include "pins_RAMPS_13.h"
#elif MB(RAMPS_13_EEB)
#define IS_RAMPS_EEB
#include "pins_RAMPS_13.h"
#elif MB(RAMPS_13_EFF)
#define IS_RAMPS_EFF
#include "pins_RAMPS_13.h"
#elif MB(RAMPS_13_EEF)
#define IS_RAMPS_EEF
#include "pins_RAMPS_13.h"
#elif MB(RAMPS_13_SF)
#define IS_RAMPS_SF
#include "pins_RAMPS_13.h"
#elif MB(RAMPS_14_EFB)
#define IS_RAMPS_EFB
#include "pins_RAMPS.h"
#elif MB(RAMPS_14_EEB)
#define IS_RAMPS_EEB
#include "pins_RAMPS.h"
#elif MB(RAMPS_14_EFF)
#define IS_RAMPS_EFF
#include "pins_RAMPS.h"
#elif MB(RAMPS_14_EEF)
#define IS_RAMPS_EEF
#include "pins_RAMPS.h"
#elif MB(RAMPS_14_SF)
#define IS_RAMPS_SF
#include "pins_RAMPS.h"
#elif MB(GEN6)
#include "pins_GEN6.h"
#elif MB(GEN6_DELUXE)
#include "pins_GEN6_DELUXE.h"
#elif MB(SANGUINOLOLU_11)
#include "pins_SANGUINOLOLU_11.h"
#elif MB(SANGUINOLOLU_12)
#include "pins_SANGUINOLOLU_12.h"
#elif MB(MELZI)
#include "pins_MELZI.h"
#elif MB(STB_11)
#include "pins_STB_11.h"
#elif MB(AZTEEG_X1)
#include "pins_AZTEEG_X1.h"
#elif MB(MELZI_MAKR3D)
#include "pins_MELZI_MAKR3D.h"
#elif MB(AZTEEG_X3)
#include "pins_AZTEEG_X3.h"
#elif MB(AZTEEG_X3_PRO)
#include "pins_AZTEEG_X3_PRO.h"
#elif MB(ULTIMAKER)
#include "pins_ULTIMAKER.h"
#elif MB(ULTIMAKER_OLD)
#include "pins_ULTIMAKER_OLD.h"
#elif MB(ULTIMAIN_2)
#include "pins_ULTIMAIN_2.h"
#elif MB(3DRAG)
#include "pins_3DRAG.h"
#elif MB(K8200)
#include "pins_K8200.h"
#elif MB(K8400)
#include "pins_K8400.h"
#elif MB(TEENSYLU)
#include "pins_TEENSYLU.h"
#elif MB(RUMBA)
#include "pins_RUMBA.h"
#elif MB(PRINTRBOARD)
#include "pins_PRINTRBOARD.h"
#elif MB(PRINTRBOARD_REVF)
#include "pins_PRINTRBOARD_REVF.h"
#elif MB(BRAINWAVE)
#include "pins_BRAINWAVE.h"
#elif MB(BRAINWAVE_PRO)
#include "pins_BRAINWAVE_PRO.h"
#elif MB(SAV_MKI)
#include "pins_SAV_MKI.h"
#elif MB(TEENSY2)
#include "pins_TEENSY2.h"
#elif MB(GEN3_PLUS)
#include "pins_GEN3_PLUS.h"
#elif MB(GEN3_MONOLITHIC)
#include "pins_GEN3_MONOLITHIC.h"
#elif MB(MEGATRONICS)
#include "pins_MEGATRONICS.h"
#elif MB(MINITRONICS)
#include "pins_MINITRONICS.h"
#elif MB(MEGATRONICS_2)
#include "pins_MEGATRONICS_2.h"
#elif MB(MEGATRONICS_3)
#include "pins_MEGATRONICS_3.h"
#elif MB(MEGATRONICS_31)
#define MEGATRONICS_31
#include "pins_MEGATRONICS_3.h"
#elif MB(OMCA_A)
#include "pins_OMCA_A.h"
#elif MB(OMCA)
#include "pins_OMCA.h"
#elif MB(RAMBO)
#include "pins_RAMBO.h"
#elif MB(MINIRAMBO)
#include "pins_MINIRAMBO.h"
#elif MB(ELEFU_3)
#include "pins_ELEFU_3.h"
#elif MB(5DPRINT)
#include "pins_5DPRINT.h"
#elif MB(LEAPFROG)
#include "pins_LEAPFROG.h"
#elif MB(BAM_DICE)
#include "pins_RAMPS.h"
#elif MB(BAM_DICE_DUE)
#include "pins_BAM_DICE_DUE.h"
#elif MB(FELIX2)
#include "pins_FELIX2.h"
#elif MB(MKS_BASE)
#include "pins_MKS_BASE.h"
#elif MB(RIGIDBOARD)
#include "pins_RIGIDBOARD.h"
#elif MB(RIGIDBOARD_V2)
#include "pins_RIGIDBOARD_V2.h"
#elif MB(MEGACONTROLLER)
#include "pins_MEGACONTROLLER.h"
#elif MB(BQ_ZUM_MEGA_3D)
#include "pins_BQ_ZUM_MEGA_3D.h"
#elif MB(SCOOVO_X9H)
#include "pins_SCOOVO_X9H.h"
#elif MB(MKS_13)
#include "pins_MKS_13.h"
#elif MB(SAINSMART_2IN1)
#include "pins_SAINSMART_2IN1.h"
#else
#error "Unknown MOTHERBOARD value set in Configuration.h"
#endif
// Define certain undefined pins
#ifndef X_MS1_PIN
#define X_MS1_PIN -1
#endif
#ifndef X_MS2_PIN
#define X_MS2_PIN -1
#endif
#ifndef Y_MS1_PIN
#define Y_MS1_PIN -1
#endif
#ifndef Y_MS2_PIN
#define Y_MS2_PIN -1
#endif
#ifndef Z_MS1_PIN
#define Z_MS1_PIN -1
#endif
#ifndef Z_MS2_PIN
#define Z_MS2_PIN -1
#endif
#ifndef E0_MS1_PIN
#define E0_MS1_PIN -1
#endif
#ifndef E0_MS2_PIN
#define E0_MS2_PIN -1
#endif
#ifndef E1_MS1_PIN
#define E1_MS1_PIN -1
#endif
#ifndef E1_MS2_PIN
#define E1_MS2_PIN -1
#endif
#ifndef FAN_PIN
#define FAN_PIN -1
#endif
#ifndef FAN1_PIN
#define FAN1_PIN -1
#endif
#ifndef FAN2_PIN
#define FAN2_PIN -1
#endif
#ifndef CONTROLLER_FAN_PIN
#define CONTROLLER_FAN_PIN -1
#endif
#ifndef HEATER_0_PIN
#define HEATER_0_PIN -1
#endif
#ifndef HEATER_1_PIN
#define HEATER_1_PIN -1
#endif
#ifndef HEATER_2_PIN
#define HEATER_2_PIN -1
#endif
#ifndef HEATER_3_PIN
#define HEATER_3_PIN -1
#endif
#ifndef HEATER_4_PIN
#define HEATER_4_PIN -1
#endif
#ifndef HEATER_BED_PIN
#define HEATER_BED_PIN -1
#endif
#ifndef TEMP_0_PIN
#define TEMP_0_PIN -1
#endif
#ifndef TEMP_1_PIN
#define TEMP_1_PIN -1
#endif
#ifndef TEMP_2_PIN
#define TEMP_2_PIN -1
#endif
#ifndef TEMP_3_PIN
#define TEMP_3_PIN -1
#endif
#ifndef TEMP_4_PIN
#define TEMP_4_PIN -1
#endif
#ifndef TEMP_BED_PIN
#define TEMP_BED_PIN -1
#endif
#ifndef SD_DETECT_PIN
#define SD_DETECT_PIN -1
#endif
#ifndef SDPOWER
#define SDPOWER -1
#endif
#ifndef SDSS
#define SDSS -1
#endif
#ifndef LED_PIN
#define LED_PIN -1
#endif
#ifndef PS_ON_PIN
#define PS_ON_PIN -1
#endif
#ifndef KILL_PIN
#define KILL_PIN -1
#endif
#ifndef SUICIDE_PIN
#define SUICIDE_PIN -1
#endif
#ifndef MAX_EXTRUDERS
#define MAX_EXTRUDERS 5
#endif
// Marlin needs to account for pins that equal -1
#define marlinAnalogInputToDigitalPin(p) ((p) == -1 ? -1 : analogInputToDigitalPin(p))
//
// Assign auto fan pins if needed
//
#if !defined(E0_AUTO_FAN_PIN) && defined(ORIG_E0_AUTO_FAN_PIN)
#define E0_AUTO_FAN_PIN ORIG_E0_AUTO_FAN_PIN
#endif
#if !defined(E1_AUTO_FAN_PIN) && defined(ORIG_E1_AUTO_FAN_PIN)
#define E1_AUTO_FAN_PIN ORIG_E1_AUTO_FAN_PIN
#endif
#if !defined(E2_AUTO_FAN_PIN) && defined(ORIG_E2_AUTO_FAN_PIN)
#define E2_AUTO_FAN_PIN ORIG_E2_AUTO_FAN_PIN
#endif
#if !defined(E3_AUTO_FAN_PIN) && defined(ORIG_E3_AUTO_FAN_PIN)
#define E3_AUTO_FAN_PIN ORIG_E3_AUTO_FAN_PIN
#endif
#if !defined(E4_AUTO_FAN_PIN) && defined(ORIG_E4_AUTO_FAN_PIN)
#define E4_AUTO_FAN_PIN ORIG_E4_AUTO_FAN_PIN
#endif
// List of pins which to ignore when asked to change by gcode, 0 and 1 are RX and TX, do not mess with those!
#define _E0_PINS E0_STEP_PIN, E0_DIR_PIN, E0_ENABLE_PIN, E0_MS1_PIN, E0_MS2_PIN,
#define _E1_PINS
#define _E2_PINS
#define _E3_PINS
#define _E4_PINS
#if EXTRUDERS > 1
#undef _E1_PINS
#define _E1_PINS E1_STEP_PIN, E1_DIR_PIN, E1_ENABLE_PIN, E1_MS1_PIN, E1_MS2_PIN,
#if EXTRUDERS > 2
#undef _E2_PINS
#define _E2_PINS E2_STEP_PIN, E2_DIR_PIN, E2_ENABLE_PIN,
#if EXTRUDERS > 3
#undef _E3_PINS
#define _E3_PINS E3_STEP_PIN, E3_DIR_PIN, E3_ENABLE_PIN,
#if EXTRUDERS > 4
#undef _E4_PINS
#define _E4_PINS E4_STEP_PIN, E4_DIR_PIN, E4_ENABLE_PIN,
#endif // EXTRUDERS > 4
#endif // EXTRUDERS > 3
#endif // EXTRUDERS > 2
#endif // EXTRUDERS > 1
#define _H0_PINS HEATER_0_PIN, E0_AUTO_FAN_PIN, marlinAnalogInputToDigitalPin(TEMP_0_PIN),
#define _H1_PINS
#define _H2_PINS
#define _H3_PINS
#define _H4_PINS
#if HOTENDS > 1
#undef _H1_PINS
#define _H1_PINS HEATER_1_PIN, E1_AUTO_FAN_PIN, marlinAnalogInputToDigitalPin(TEMP_1_PIN),
#if HOTENDS > 2
#undef _H2_PINS
#define _H2_PINS HEATER_2_PIN, E2_AUTO_FAN_PIN, marlinAnalogInputToDigitalPin(TEMP_2_PIN),
#if HOTENDS > 3
#undef _H3_PINS
#define _H3_PINS HEATER_3_PIN, E3_AUTO_FAN_PIN, marlinAnalogInputToDigitalPin(TEMP_3_PIN),
#if HOTENDS > 4
#undef _H4_PINS
#define _H4_PINS HEATER_4_PIN, marlinAnalogInputToDigitalPin(TEMP_4_PIN),
#endif // HOTENDS > 4
#endif // HOTENDS > 3
#endif // HOTENDS > 2
#elif ENABLED(MIXING_EXTRUDER)
#undef _E1_PINS
#define _E1_PINS E1_STEP_PIN, E1_DIR_PIN, E1_ENABLE_PIN,
#if MIXING_STEPPERS > 2
#undef _E2_PINS
#define _E2_PINS E2_STEP_PIN, E2_DIR_PIN, E2_ENABLE_PIN,
#if MIXING_STEPPERS > 3
#undef _E3_PINS
#define _E3_PINS E3_STEP_PIN, E3_DIR_PIN, E3_ENABLE_PIN,
#if MIXING_STEPPERS > 4
#undef _E4_PINS
#define _E4_PINS E4_STEP_PIN, E4_DIR_PIN, E4_ENABLE_PIN,
#endif // MIXING_STEPPERS > 4
#endif // MIXING_STEPPERS > 3
#endif // MIXING_STEPPERS > 2
#endif // MIXING_STEPPERS > 1
#define BED_PINS HEATER_BED_PIN, marlinAnalogInputToDigitalPin(TEMP_BED_PIN),
//
// Assign endstop pins for boards with only 3 connectors
//
#ifdef X_STOP_PIN
#if X_HOME_DIR < 0
#define X_MIN_PIN X_STOP_PIN
#define X_MAX_PIN -1
#else
#define X_MIN_PIN -1
#define X_MAX_PIN X_STOP_PIN
#endif
#endif
#ifdef Y_STOP_PIN
#if Y_HOME_DIR < 0
#define Y_MIN_PIN Y_STOP_PIN
#define Y_MAX_PIN -1
#else
#define Y_MIN_PIN -1
#define Y_MAX_PIN Y_STOP_PIN
#endif
#endif
#ifdef Z_STOP_PIN
#if Z_HOME_DIR < 0
#define Z_MIN_PIN Z_STOP_PIN
#define Z_MAX_PIN -1
#else
#define Z_MIN_PIN -1
#define Z_MAX_PIN Z_STOP_PIN
#endif
#endif
//
// Disable unused endstop / probe pins
//
#if DISABLED(Z_MIN_PROBE_ENDSTOP)
#undef Z_MIN_PROBE_PIN
#define Z_MIN_PROBE_PIN -1
#endif
#if DISABLED(USE_XMAX_PLUG)
#undef X_MAX_PIN
#define X_MAX_PIN -1
#endif
#if DISABLED(USE_YMAX_PLUG)
#undef Y_MAX_PIN
#define Y_MAX_PIN -1
#endif
#if DISABLED(USE_ZMAX_PLUG)
#undef Z_MAX_PIN
#define Z_MAX_PIN -1
#endif
#if DISABLED(USE_XMIN_PLUG)
#undef X_MIN_PIN
#define X_MIN_PIN -1
#endif
#if DISABLED(USE_YMIN_PLUG)
#undef Y_MIN_PIN
#define Y_MIN_PIN -1
#endif
#if DISABLED(USE_ZMIN_PLUG)
#undef Z_MIN_PIN
#define Z_MIN_PIN -1
#endif
//
// Dual X-carriage, Dual Y, Dual Z support
//
#define _X2_PINS
#define _Y2_PINS
#define _Z2_PINS
#define __EPIN(p,q) E##p##_##q##_PIN
#define _EPIN(p,q) __EPIN(p,q)
// The X2 axis, if any, should be the next open extruder port
#if ENABLED(DUAL_X_CARRIAGE) || ENABLED(X_DUAL_STEPPER_DRIVERS)
#ifndef X2_STEP_PIN
#define X2_STEP_PIN _EPIN(E_STEPPERS, STEP)
#define X2_DIR_PIN _EPIN(E_STEPPERS, DIR)
#define X2_ENABLE_PIN _EPIN(E_STEPPERS, ENABLE)
#if X2_ENABLE_PIN == 0
#error "No E stepper plug left for X2!"
#endif
#endif
#undef _X2_PINS
#define _X2_PINS X2_STEP_PIN, X2_DIR_PIN, X2_ENABLE_PIN,
#define Y2_E_INDEX INCREMENT(E_STEPPERS)
#else
#define Y2_E_INDEX E_STEPPERS
#endif
// The Y2 axis, if any, should be the next open extruder port
#if ENABLED(Y_DUAL_STEPPER_DRIVERS)
#ifndef Y2_STEP_PIN
#define Y2_STEP_PIN _EPIN(Y2_E_INDEX, STEP)
#define Y2_DIR_PIN _EPIN(Y2_E_INDEX, DIR)
#define Y2_ENABLE_PIN _EPIN(Y2_E_INDEX, ENABLE)
#if Y2_ENABLE_PIN == 0
#error "No E stepper plug left for Y2!"
#endif
#endif
#undef _Y2_PINS
#define _Y2_PINS Y2_STEP_PIN, Y2_DIR_PIN, Y2_ENABLE_PIN,
#define Z2_E_INDEX INCREMENT(Y2_E_INDEX)
#else
#define Z2_E_INDEX Y2_E_INDEX
#endif
// The Z2 axis, if any, should be the next open extruder port
#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
#ifndef Z2_STEP_PIN
#define Z2_STEP_PIN _EPIN(Z2_E_INDEX, STEP)
#define Z2_DIR_PIN _EPIN(Z2_E_INDEX, DIR)
#define Z2_ENABLE_PIN _EPIN(Z2_E_INDEX, ENABLE)
#if Z2_ENABLE_PIN == 0
#error "No E stepper plug left for Z2!"
#endif
#endif
#undef _Z2_PINS
#define _Z2_PINS Z2_STEP_PIN, Z2_DIR_PIN, Z2_ENABLE_PIN,
#endif
#define SENSITIVE_PINS { 0, 1, \
X_STEP_PIN, X_DIR_PIN, X_ENABLE_PIN, X_MIN_PIN, X_MAX_PIN, \
Y_STEP_PIN, Y_DIR_PIN, Y_ENABLE_PIN, Y_MIN_PIN, Y_MAX_PIN, \
Z_STEP_PIN, Z_DIR_PIN, Z_ENABLE_PIN, Z_MIN_PIN, Z_MAX_PIN, Z_MIN_PROBE_PIN, \
PS_ON_PIN, HEATER_BED_PIN, FAN_PIN, FAN1_PIN, FAN2_PIN, CONTROLLER_FAN_PIN, \
_E0_PINS _E1_PINS _E2_PINS _E3_PINS _E4_PINS BED_PINS \
_H0_PINS _H1_PINS _H2_PINS _H3_PINS _H4_PINS \
_X2_PINS _Y2_PINS _Z2_PINS \
X_MS1_PIN, X_MS2_PIN, Y_MS1_PIN, Y_MS2_PIN, Z_MS1_PIN, Z_MS2_PIN \
}
#define HAS_DIGIPOTSS (PIN_EXISTS(DIGIPOTSS))
/**
* Define SPI Pins: SCK, MISO, MOSI, SS
*/
#if defined(__AVR_ATmega168__) || defined(__AVR_ATmega328__) || defined(__AVR_ATmega328P__)
#define AVR_SCK_PIN 13
#define AVR_MISO_PIN 12
#define AVR_MOSI_PIN 11
#define AVR_SS_PIN 10
#elif defined(__AVR_ATmega644__) || defined(__AVR_ATmega644P__) || defined(__AVR_ATmega644PA__) || defined(__AVR_ATmega1284P__)
#define AVR_SCK_PIN 7
#define AVR_MISO_PIN 6
#define AVR_MOSI_PIN 5
#define AVR_SS_PIN 4
#elif defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
#define AVR_SCK_PIN 52
#define AVR_MISO_PIN 50
#define AVR_MOSI_PIN 51
#define AVR_SS_PIN 53
#elif defined(__AVR_AT90USB1287__) || defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB647__)
#if ENABLED(AT90USBxx_TEENSYPP_ASSIGNMENTS)
// Teensy pin assignments
#define AVR_SCK_PIN 21
#define AVR_MISO_PIN 23
#define AVR_MOSI_PIN 22
#define AVR_SS_PIN 20
#else
// Traditional pin assignments
#define AVR_SCK_PIN 9
#define AVR_MISO_PIN 11
#define AVR_MOSI_PIN 10
#define AVR_SS_PIN 8
#endif
#elif defined(__AVR_ATmega1281__) || defined(__AVR_ATmega2561__)
#define AVR_SCK_PIN 10
#define AVR_MISO_PIN 12
#define AVR_MOSI_PIN 11
#define AVR_SS_PIN 16
#endif
#ifndef SCK_PIN
#define SCK_PIN AVR_SCK_PIN
#endif
#ifndef MISO_PIN
#define MISO_PIN AVR_MISO_PIN
#endif
#ifndef MOSI_PIN
#define MOSI_PIN AVR_MOSI_PIN
#endif
#ifndef SS_PIN
#define SS_PIN AVR_SS_PIN
#endif
#endif // __PINS_H

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/>.
*
*/
bool endstop_monitor_flag = false;
#define NAME_FORMAT "%-28s" // one place to specify the format of all the sources of names
// "-" left justify, "28" minimum width of name, pad with blanks
#define IS_ANALOG(P) ((P) >= analogInputToDigitalPin(0) && ((P) <= analogInputToDigitalPin(15) || (P) <= analogInputToDigitalPin(7)))
#define AVR_ATmega2560_FAMILY (defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) || defined(__AVR_ATmega1281__) || defined(__AVR_ATmega2561__) || defined(__AVR_ATmega1281__) || defined(__AVR_ATmega2561__))
#define AVR_AT90USB1286_FAMILY (defined(__AVR_AT90USB1287__) || defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB1286P__) || defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB646P__) || defined(__AVR_AT90USB647__))
#define AVR_ATmega1284_FAMILY (defined(__AVR_ATmega644__) || defined(__AVR_ATmega644P__) || defined(__AVR_ATmega644PA__) || defined(__AVR_ATmega1284P__))
/**
* This routine minimizes RAM usage by creating a FLASH resident array to
* store the pin names, pin numbers and analog/digital flag.
*
* Creating the array in FLASH is a two pass process. The first pass puts the
* name strings into FLASH. The second pass actually creates the array.
*
* Both passes use the same pin list. The list contains two macro names. The
* actual macro definitions are changed depending on which pass is being done.
*
*/
// first pass - put the name strings into FLASH
#define _ADD_PIN_2(PIN_NAME, ENTRY_NAME) static const unsigned char ENTRY_NAME[] PROGMEM = { PIN_NAME };
#define _ADD_PIN(PIN_NAME, COUNTER) _ADD_PIN_2(PIN_NAME, entry_NAME_##COUNTER)
#define REPORT_NAME_DIGITAL(NAME, COUNTER) _ADD_PIN(#NAME, COUNTER)
#define REPORT_NAME_ANALOG(NAME, COUNTER) _ADD_PIN(#NAME, COUNTER)
#include "pinsDebug_list.h"
#line 56
// manually add pins that have names that are macros which don't play well with these macros
#if SERIAL_PORT == 0 && (AVR_ATmega2560_FAMILY || AVR_ATmega1284_FAMILY)
static const char RXD_NAME[] PROGMEM = { "RXD" };
static const char TXD_NAME[] PROGMEM = { "TXD" };
#endif
/////////////////////////////////////////////////////////////////////////////
// second pass - create the array
#undef _ADD_PIN_2
#undef _ADD_PIN
#undef REPORT_NAME_DIGITAL
#undef REPORT_NAME_ANALOG
#define _ADD_PIN_2(ENTRY_NAME, NAME, IS_DIGITAL) { (const char*)ENTRY_NAME, (const char*)NAME, (const char*)IS_DIGITAL },
#define _ADD_PIN(NAME, COUNTER, IS_DIGITAL) _ADD_PIN_2(entry_NAME_##COUNTER, NAME, IS_DIGITAL)
#define REPORT_NAME_DIGITAL(NAME, COUNTER) _ADD_PIN(NAME, COUNTER, (uint8_t)1)
#define REPORT_NAME_ANALOG(NAME, COUNTER) _ADD_PIN(analogInputToDigitalPin(NAME), COUNTER, 0)
const char* const pin_array[][3] PROGMEM = {
/**
* [pin name] [pin number] [is digital or analog] 1 = digital, 0 = analog
* Each entry takes up 6 bytes in FLASH:
* 2 byte pointer to location of the name string
* 2 bytes containing the pin number
* analog pin numbers were convereted to digital when the array was created
* 2 bytes containing the digital/analog bool flag
*/
// manually add pins ...
#if SERIAL_PORT == 0
#if AVR_ATmega2560_FAMILY
{ RXD_NAME, "0", "1" },
{ TXD_NAME, "1", "1" },
#elif AVR_ATmega1284_FAMILY
{ RXD_NAME, "8", "1" },
{ TXD_NAME, "9", "1" },
#endif
#endif
#include "pinsDebug_list.h"
#line 101
};
#define n_array (sizeof(pin_array) / sizeof(char*)) / 3
#ifndef TIMER1B
// working with Teensyduino extension so need to re-define some things
#include "pinsDebug_Teensyduino.h"
#endif
#define PWM_PRINT(V) do{ sprintf(buffer, "PWM: %4d", V); SERIAL_ECHO(buffer); }while(0)
#define PWM_CASE(N,Z) \
case TIMER##N##Z: \
if (TCCR##N##A & (_BV(COM##N##Z##1) | _BV(COM##N##Z##0))) { \
PWM_PRINT(OCR##N##Z); \
return true; \
} else return false
/**
* Print a pin's PWM status.
* Return true if it's currently a PWM pin.
*/
static bool pwm_status(uint8_t pin) {
char buffer[20]; // for the sprintf statements
switch (digitalPinToTimer(pin)) {
#if defined(TCCR0A) && defined(COM0A1)
#ifdef TIMER0A
PWM_CASE(0, A);
#endif
PWM_CASE(0, B);
#endif
#if defined(TCCR1A) && defined(COM1A1)
PWM_CASE(1, A);
PWM_CASE(1, B);
#if defined(COM1C1) && defined(TIMER1C)
PWM_CASE(1, C);
#endif
#endif
#if defined(TCCR2A) && defined(COM2A1)
PWM_CASE(2, A);
PWM_CASE(2, B);
#endif
#if defined(TCCR3A) && defined(COM3A1)
PWM_CASE(3, A);
PWM_CASE(3, B);
#ifdef COM3C1
PWM_CASE(3, C);
#endif
#endif
#ifdef TCCR4A
PWM_CASE(4, A);
PWM_CASE(4, B);
PWM_CASE(4, C);
#endif
#if defined(TCCR5A) && defined(COM5A1)
PWM_CASE(5, A);
PWM_CASE(5, B);
PWM_CASE(5, C);
#endif
case NOT_ON_TIMER:
default:
return false;
}
SERIAL_PROTOCOL_SP(2);
} // pwm_status
const volatile uint8_t* const PWM_other[][3] PROGMEM = {
{ &TCCR0A, &TCCR0B, &TIMSK0 },
{ &TCCR1A, &TCCR1B, &TIMSK1 },
#if defined(TCCR2A) && defined(COM2A1)
{ &TCCR2A, &TCCR2B, &TIMSK2 },
#endif
#if defined(TCCR3A) && defined(COM3A1)
{ &TCCR3A, &TCCR3B, &TIMSK3 },
#endif
#ifdef TCCR4A
{ &TCCR4A, &TCCR4B, &TIMSK4 },
#endif
#if defined(TCCR5A) && defined(COM5A1)
{ &TCCR5A, &TCCR5B, &TIMSK5 },
#endif
};
const volatile uint8_t* const PWM_OCR[][3] PROGMEM = {
#ifdef TIMER0A
{ &OCR0A, &OCR0B, 0 },
#else
{ 0, &OCR0B, 0 },
#endif
#if defined(COM1C1) && defined(TIMER1C)
{ (const uint8_t*)&OCR1A, (const uint8_t*)&OCR1B, (const uint8_t*)&OCR1C },
#else
{ (const uint8_t*)&OCR1A, (const uint8_t*)&OCR1B, 0 },
#endif
#if defined(TCCR2A) && defined(COM2A1)
{ &OCR2A, &OCR2B, 0 },
#endif
#if defined(TCCR3A) && defined(COM3A1)
#ifdef COM3C1
{ (const uint8_t*)&OCR3A, (const uint8_t*)&OCR3B, (const uint8_t*)&OCR3C },
#else
{ (const uint8_t*)&OCR3A, (const uint8_t*)&OCR3B, 0 },
#endif
#endif
#ifdef TCCR4A
{ (const uint8_t*)&OCR4A, (const uint8_t*)&OCR4B, (const uint8_t*)&OCR4C },
#endif
#if defined(TCCR5A) && defined(COM5A1)
{ (const uint8_t*)&OCR5A, (const uint8_t*)&OCR5B, (const uint8_t*)&OCR5C },
#endif
};
#define TCCR_A(T) pgm_read_word(&PWM_other[T][0])
#define TCCR_B(T) pgm_read_word(&PWM_other[T][1])
#define TIMSK(T) pgm_read_word(&PWM_other[T][2])
#define CS_0 0
#define CS_1 1
#define CS_2 2
#define WGM_0 0
#define WGM_1 1
#define WGM_2 3
#define WGM_3 4
#define TOIE 0
#define OCR_VAL(T, L) pgm_read_word(&PWM_OCR[T][L])
static void err_is_counter() { SERIAL_PROTOCOLPGM(" non-standard PWM mode"); }
static void err_is_interrupt() { SERIAL_PROTOCOLPGM(" compare interrupt enabled"); }
static void err_prob_interrupt() { SERIAL_PROTOCOLPGM(" overflow interrupt enabled"); }
void com_print(uint8_t N, uint8_t Z) {
uint8_t *TCCRA = (uint8_t*)TCCR_A(N);
SERIAL_PROTOCOLPGM(" COM");
SERIAL_PROTOCOLCHAR(N + '0');
switch (Z) {
case 'A':
SERIAL_PROTOCOLPAIR("A: ", ((*TCCRA & (_BV(7) | _BV(6))) >> 6));
break;
case 'B':
SERIAL_PROTOCOLPAIR("B: ", ((*TCCRA & (_BV(5) | _BV(4))) >> 4));
break;
case 'C':
SERIAL_PROTOCOLPAIR("C: ", ((*TCCRA & (_BV(3) | _BV(2))) >> 2));
break;
}
}
void timer_prefix(uint8_t T, char L, uint8_t N) { // T - timer L - pwm N - WGM bit layout
char buffer[20]; // for the sprintf statements
uint8_t *TCCRB = (uint8_t*)TCCR_B(T);
uint8_t *TCCRA = (uint8_t*)TCCR_A(T);
uint8_t WGM = (((*TCCRB & _BV(WGM_2)) >> 1) | (*TCCRA & (_BV(WGM_0) | _BV(WGM_1))));
if (N == 4) WGM |= ((*TCCRB & _BV(WGM_3)) >> 1);
SERIAL_PROTOCOLPGM(" TIMER");
SERIAL_PROTOCOLCHAR(T + '0');
SERIAL_PROTOCOLCHAR(L);
SERIAL_PROTOCOL_SP(3);
if (N == 3) {
uint8_t *OCRVAL8 = (uint8_t*)OCR_VAL(T, L - 'A');
PWM_PRINT(*OCRVAL8);
}
else {
uint16_t *OCRVAL16 = (uint16_t*)OCR_VAL(T, L - 'A');
PWM_PRINT(*OCRVAL16);
}
SERIAL_PROTOCOLPAIR(" WGM: ", WGM);
com_print(T,L);
SERIAL_PROTOCOLPAIR(" CS: ", (*TCCRB & (_BV(CS_0) | _BV(CS_1) | _BV(CS_2)) ));
SERIAL_PROTOCOLPGM(" TCCR");
SERIAL_PROTOCOLCHAR(T + '0');
SERIAL_PROTOCOLPAIR("A: ", *TCCRA);
SERIAL_PROTOCOLPGM(" TCCR");
SERIAL_PROTOCOLCHAR(T + '0');
SERIAL_PROTOCOLPAIR("B: ", *TCCRB);
uint8_t *TMSK = (uint8_t*)TIMSK(T);
SERIAL_PROTOCOLPGM(" TIMSK");
SERIAL_PROTOCOLCHAR(T + '0');
SERIAL_PROTOCOLPAIR(": ", *TMSK);
uint8_t OCIE = L - 'A' + 1;
if (N == 3) { if (WGM == 0 || WGM == 2 || WGM == 4 || WGM == 6) err_is_counter(); }
else { if (WGM == 0 || WGM == 4 || WGM == 12 || WGM == 13) err_is_counter(); }
if (TEST(*TMSK, OCIE)) err_is_interrupt();
if (TEST(*TMSK, TOIE)) err_prob_interrupt();
}
static void pwm_details(uint8_t pin) {
switch (digitalPinToTimer(pin)) {
#if defined(TCCR0A) && defined(COM0A1)
#ifdef TIMER0A
case TIMER0A: timer_prefix(0, 'A', 3); break;
#endif
case TIMER0B: timer_prefix(0, 'B', 3); break;
#endif
#if defined(TCCR1A) && defined(COM1A1)
case TIMER1A: timer_prefix(1, 'A', 4); break;
case TIMER1B: timer_prefix(1, 'B', 4); break;
#if defined(COM1C1) && defined(TIMER1C)
case TIMER1C: timer_prefix(1, 'C', 4); break;
#endif
#endif
#if defined(TCCR2A) && defined(COM2A1)
case TIMER2A: timer_prefix(2, 'A', 3); break;
case TIMER2B: timer_prefix(2, 'B', 3); break;
#endif
#if defined(TCCR3A) && defined(COM3A1)
case TIMER3A: timer_prefix(3, 'A', 4); break;
case TIMER3B: timer_prefix(3, 'B', 4); break;
#ifdef COM3C1
case TIMER3C: timer_prefix(3, 'C', 4); break;
#endif
#endif
#ifdef TCCR4A
case TIMER4A: timer_prefix(4, 'A', 4); break;
case TIMER4B: timer_prefix(4, 'B', 4); break;
case TIMER4C: timer_prefix(4, 'C', 4); break;
#endif
#if defined(TCCR5A) && defined(COM5A1)
case TIMER5A: timer_prefix(5, 'A', 4); break;
case TIMER5B: timer_prefix(5, 'B', 4); break;
case TIMER5C: timer_prefix(5, 'C', 4); break;
#endif
case NOT_ON_TIMER: break;
}
SERIAL_PROTOCOLPGM(" ");
// on pins that have two PWMs, print info on second PWM
#if AVR_ATmega2560_FAMILY || AVR_AT90USB1286_FAMILY
// looking for port B7 - PWMs 0A and 1C
if (digitalPinToPort(pin) == 2 && digitalPinToBitMask(pin) == 0x80) {
#ifndef TEENSYDUINO_IDE
SERIAL_PROTOCOLPGM("\n .");
SERIAL_PROTOCOL_SP(18);
SERIAL_PROTOCOLPGM("TIMER1C is also tied to this pin");
SERIAL_PROTOCOL_SP(13);
timer_prefix(1, 'C', 4);
#else
SERIAL_PROTOCOLPGM("\n .");
SERIAL_PROTOCOL_SP(18);
SERIAL_PROTOCOLPGM("TIMER0A is also tied to this pin");
SERIAL_PROTOCOL_SP(13);
timer_prefix(0, 'A', 3);
#endif
}
#endif
} // pwm_details
bool get_pinMode(int8_t pin) { return *portModeRegister(digitalPinToPort(pin)) & digitalPinToBitMask(pin); }
#ifndef digitalRead_mod // use Teensyduino's version of digitalRead - it doesn't disable the PWMs
int digitalRead_mod(int8_t pin) { // same as digitalRead except the PWM stop section has been removed
uint8_t port = digitalPinToPort(pin);
return (port != NOT_A_PIN) && (*portInputRegister(port) & digitalPinToBitMask(pin)) ? HIGH : LOW;
}
#endif
void print_port(int8_t pin) { // print port number
#ifdef digitalPinToPort
SERIAL_PROTOCOLPGM(" Port: ");
uint8_t x = digitalPinToPort(pin) + 64;
SERIAL_CHAR(x);
uint8_t temp = digitalPinToBitMask(pin);
for (x = '0'; x < '9' && temp != 1; x++) temp >>= 1;
SERIAL_CHAR(x);
#else
SERIAL_PROTOCOL_SP(10);
#endif
}
// pretty report with PWM info
inline void report_pin_state_extended(int8_t pin, bool ignore, bool extended = true) {
uint8_t temp_char;
char *name_mem_pointer;
char buffer[30]; // for the sprintf statements
bool found = false,
multi_name_pin = false;
for (uint8_t x = 0; x < n_array; x++) { // scan entire array and report all instances of this pin
if (pgm_read_byte(&pin_array[x][1]) == pin) {
if (found) multi_name_pin = true;
found = true;
if (!multi_name_pin) { // report digitial and analog pin number only on the first time through
sprintf(buffer, "PIN: %3d ", pin); // digital pin number
SERIAL_ECHO(buffer);
print_port(pin);
if (IS_ANALOG(pin)) {
sprintf(buffer, " (A%2d) ", int(pin - analogInputToDigitalPin(0))); // analog pin number
SERIAL_ECHO(buffer);
}
else SERIAL_ECHO_SP(8); // add padding if not an analog pin
}
else {
SERIAL_CHAR('.');
SERIAL_ECHO_SP(25); // add padding if not the first instance found
}
name_mem_pointer = (char*)pgm_read_word(&pin_array[x][0]);
for (uint8_t y = 0; y < 28; y++) { // always print pin name
temp_char = pgm_read_byte(name_mem_pointer + y);
if (temp_char != 0) MYSERIAL.write(temp_char);
else {
for (uint8_t i = 0; i < 28 - y; i++) MYSERIAL.write(' ');
break;
}
}
if (pin_is_protected(pin) && !ignore)
SERIAL_ECHOPGM("protected ");
else {
if (!(pgm_read_byte(&pin_array[x][2]))) {
sprintf(buffer, "Analog in = %5d", analogRead(pin - analogInputToDigitalPin(0)));
SERIAL_ECHO(buffer);
}
else {
if (!get_pinMode(pin)) {
//pinMode(pin, INPUT_PULLUP); // make sure input isn't floating - stopped doing this
// because this could interfere with inductive/capacitive
// sensors (high impedance voltage divider) and with PT100 amplifier
SERIAL_PROTOCOLPAIR("Input = ", digitalRead_mod(pin));
}
else if (pwm_status(pin)) {
// do nothing
}
else SERIAL_PROTOCOLPAIR("Output = ", digitalRead_mod(pin));
}
if (!multi_name_pin && extended) pwm_details(pin); // report PWM capabilities only on the first pass & only if doing an extended report
}
SERIAL_EOL;
} // end of IF
} // end of for loop
if (!found) {
sprintf(buffer, "PIN: %3d ", pin);
SERIAL_ECHO(buffer);
print_port(pin);
if (IS_ANALOG(pin)) {
sprintf(buffer, " (A%2d) ", int(pin - analogInputToDigitalPin(0))); // analog pin number
SERIAL_ECHO(buffer);
}
else
SERIAL_ECHO_SP(8); // add padding if not an analog pin
SERIAL_ECHOPGM("<unused/unknown>");
if (get_pinMode(pin)) {
SERIAL_PROTOCOL_SP(12);
SERIAL_PROTOCOLPAIR("Output = ", digitalRead_mod(pin));
}
else {
if (IS_ANALOG(pin)) {
sprintf(buffer, " Analog in = %5d", analogRead(pin - analogInputToDigitalPin(0)));
SERIAL_ECHO(buffer);
}
else
SERIAL_ECHO_SP(9); // add padding if not an analog pin
SERIAL_PROTOCOLPAIR(" Input = ", digitalRead_mod(pin));
}
//if (!pwm_status(pin)) SERIAL_CHAR(' '); // add padding if it's not a PWM pin
if (extended) pwm_details(pin); // report PWM capabilities only if doing an extended report
SERIAL_EOL;
}
}
inline void report_pin_state(int8_t pin) {
report_pin_state_extended(pin, false, false);
}

View File

@@ -1,751 +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/>.
*
*/
// Please update this list when adding new pins to Marlin.
// The order doesn't matter.
// Following this pattern is a must.
// If the new pin name is over 28 characters long then pinsDebug.h will need to be modified.
// Pin list updated from 18 FEB 2017 RCBugfix branch - max length of pin name is 24
#line 0 // set __LINE__ to a known value for both passes
#if defined(__FD) && __FD >= 0
REPORT_NAME_DIGITAL(__FD, __LINE__ )
#endif
#if defined(__FS) && __FS >= 0
REPORT_NAME_DIGITAL(__FS, __LINE__ )
#endif
#if defined(__GD) && __GD >= 0
REPORT_NAME_DIGITAL(__GD, __LINE__ )
#endif
#if defined(__GS) && __GS >= 0
REPORT_NAME_DIGITAL(__GS, __LINE__ )
#endif
#if PIN_EXISTS(AVR_MISO)
REPORT_NAME_DIGITAL(AVR_MISO_PIN, __LINE__ )
#endif
#if PIN_EXISTS(AVR_MOSI)
REPORT_NAME_DIGITAL(AVR_MOSI_PIN, __LINE__ )
#endif
#if PIN_EXISTS(AVR_SCK)
REPORT_NAME_DIGITAL(AVR_SCK_PIN, __LINE__ )
#endif
#if PIN_EXISTS(AVR_SS)
REPORT_NAME_DIGITAL(AVR_SS_PIN, __LINE__ )
#endif
#if PIN_EXISTS(BEEPER)
REPORT_NAME_DIGITAL(BEEPER_PIN, __LINE__ )
#endif
#if defined(BTN_CENTER) && BTN_CENTER >= 0
REPORT_NAME_DIGITAL(BTN_CENTER, __LINE__ )
#endif
#if defined(BTN_DOWN) && BTN_DOWN >= 0
REPORT_NAME_DIGITAL(BTN_DOWN, __LINE__ )
#endif
#if defined(BTN_DWN) && BTN_DWN >= 0
REPORT_NAME_DIGITAL(BTN_DWN, __LINE__ )
#endif
#if defined(BTN_EN1) && BTN_EN1 >= 0
REPORT_NAME_DIGITAL(BTN_EN1, __LINE__ )
#endif
#if defined(BTN_EN2) && BTN_EN2 >= 0
REPORT_NAME_DIGITAL(BTN_EN2, __LINE__ )
#endif
#if defined(BTN_ENC) && BTN_ENC >= 0
REPORT_NAME_DIGITAL(BTN_ENC, __LINE__ )
#endif
#if defined(BTN_HOME) && BTN_HOME >= 0
REPORT_NAME_DIGITAL(BTN_HOME, __LINE__ )
#endif
#if defined(BTN_LEFT) && BTN_LEFT >= 0
REPORT_NAME_DIGITAL(BTN_LEFT, __LINE__ )
#endif
#if defined(BTN_LFT) && BTN_LFT >= 0
REPORT_NAME_DIGITAL(BTN_LFT, __LINE__ )
#endif
#if defined(BTN_RIGHT) && BTN_RIGHT >= 0
REPORT_NAME_DIGITAL(BTN_RIGHT, __LINE__ )
#endif
#if defined(BTN_RT) && BTN_RT >= 0
REPORT_NAME_DIGITAL(BTN_RT, __LINE__ )
#endif
#if defined(BTN_UP) && BTN_UP >= 0
REPORT_NAME_DIGITAL(BTN_UP, __LINE__ )
#endif
#if PIN_EXISTS(CASE_LIGHT)
REPORT_NAME_DIGITAL(CASE_LIGHT_PIN, __LINE__ )
#endif
#if PIN_EXISTS(CONTROLLER_FAN)
REPORT_NAME_DIGITAL(CONTROLLER_FAN_PIN, __LINE__ )
#endif
#if PIN_EXISTS(CUTOFF_RESET)
REPORT_NAME_DIGITAL(CUTOFF_RESET_PIN, __LINE__ )
#endif
#if PIN_EXISTS(CUTOFF_TEST)
REPORT_NAME_DIGITAL(CUTOFF_TEST_PIN, __LINE__ )
#endif
#if PIN_EXISTS(DAC_DISABLE)
REPORT_NAME_DIGITAL(DAC_DISABLE_PIN, __LINE__ )
#endif
#if defined(DAC_STEPPER_VREF) && DAC_STEPPER_VREF >= 0
REPORT_NAME_DIGITAL(DAC_STEPPER_VREF, __LINE__ )
#endif
#if PIN_EXISTS(DEBUG)
REPORT_NAME_DIGITAL(DEBUG_PIN, __LINE__ )
#endif
#if defined(DIGIPOTS_I2C_SCL) && DIGIPOTS_I2C_SCL >= 0
REPORT_NAME_DIGITAL(DIGIPOTS_I2C_SCL, __LINE__ )
#endif
#if defined(DIGIPOTS_I2C_SDA_E0) && DIGIPOTS_I2C_SDA_E0 >= 0
REPORT_NAME_DIGITAL(DIGIPOTS_I2C_SDA_E0, __LINE__ )
#endif
#if defined(DIGIPOTS_I2C_SDA_E1) && DIGIPOTS_I2C_SDA_E1 >= 0
REPORT_NAME_DIGITAL(DIGIPOTS_I2C_SDA_E1, __LINE__ )
#endif
#if defined(DIGIPOTS_I2C_SDA_X) && DIGIPOTS_I2C_SDA_X >= 0
REPORT_NAME_DIGITAL(DIGIPOTS_I2C_SDA_X, __LINE__ )
#endif
#if defined(DIGIPOTS_I2C_SDA_Y) && DIGIPOTS_I2C_SDA_Y >= 0
REPORT_NAME_DIGITAL(DIGIPOTS_I2C_SDA_Y, __LINE__ )
#endif
#if defined(DIGIPOTS_I2C_SDA_Z) && DIGIPOTS_I2C_SDA_Z >= 0
REPORT_NAME_DIGITAL(DIGIPOTS_I2C_SDA_Z, __LINE__ )
#endif
#if PIN_EXISTS(DIGIPOTSS)
REPORT_NAME_DIGITAL(DIGIPOTSS_PIN, __LINE__ )
#endif
#if defined(DOGLCD_A0) && DOGLCD_A0 >= 0
REPORT_NAME_DIGITAL(DOGLCD_A0, __LINE__ )
#endif
#if defined(DOGLCD_CS) && DOGLCD_CS >= 0
REPORT_NAME_DIGITAL(DOGLCD_CS, __LINE__ )
#endif
#if defined(DOGLCD_MOSI) && DOGLCD_MOSI >= 0
REPORT_NAME_DIGITAL(DOGLCD_MOSI, __LINE__ )
#endif
#if defined(DOGLCD_SCK) && DOGLCD_SCK >= 0
REPORT_NAME_DIGITAL(DOGLCD_SCK, __LINE__ )
#endif
#if PIN_EXISTS(E0_ATT)
REPORT_NAME_DIGITAL(E0_ATT_PIN, __LINE__ )
#endif
#if PIN_EXISTS(E0_AUTO_FAN)
REPORT_NAME_DIGITAL(E0_AUTO_FAN_PIN, __LINE__ )
#endif
#if PIN_EXISTS(E0_CS)
REPORT_NAME_DIGITAL(E0_CS_PIN, __LINE__ )
#endif
#if PIN_EXISTS(E0_DIR)
REPORT_NAME_DIGITAL(E0_DIR_PIN, __LINE__ )
#endif
#if PIN_EXISTS(E0_ENABLE)
REPORT_NAME_DIGITAL(E0_ENABLE_PIN, __LINE__ )
#endif
#if PIN_EXISTS(E0_MS1)
REPORT_NAME_DIGITAL(E0_MS1_PIN, __LINE__ )
#endif
#if PIN_EXISTS(E0_MS2)
REPORT_NAME_DIGITAL(E0_MS2_PIN, __LINE__ )
#endif
#if PIN_EXISTS(E0_STEP)
REPORT_NAME_DIGITAL(E0_STEP_PIN, __LINE__ )
#endif
#if PIN_EXISTS(E1_AUTO_FAN)
REPORT_NAME_DIGITAL(E1_AUTO_FAN_PIN, __LINE__ )
#endif
#if PIN_EXISTS(E1_CS)
REPORT_NAME_DIGITAL(E1_CS_PIN, __LINE__ )
#endif
#if PIN_EXISTS(E1_DIR)
REPORT_NAME_DIGITAL(E1_DIR_PIN, __LINE__ )
#endif
#if PIN_EXISTS(E1_ENABLE)
REPORT_NAME_DIGITAL(E1_ENABLE_PIN, __LINE__ )
#endif
#if PIN_EXISTS(E1_MS1)
REPORT_NAME_DIGITAL(E1_MS1_PIN, __LINE__ )
#endif
#if PIN_EXISTS(E1_MS2)
REPORT_NAME_DIGITAL(E1_MS2_PIN, __LINE__ )
#endif
#if PIN_EXISTS(E1_STEP)
REPORT_NAME_DIGITAL(E1_STEP_PIN, __LINE__ )
#endif
#if PIN_EXISTS(E2_AUTO_FAN)
REPORT_NAME_DIGITAL(E2_AUTO_FAN_PIN, __LINE__ )
#endif
#if PIN_EXISTS(E2_DIR)
REPORT_NAME_DIGITAL(E2_DIR_PIN, __LINE__ )
#endif
#if PIN_EXISTS(E2_ENABLE)
REPORT_NAME_DIGITAL(E2_ENABLE_PIN, __LINE__ )
#endif
#if PIN_EXISTS(E2_STEP)
REPORT_NAME_DIGITAL(E2_STEP_PIN, __LINE__ )
#endif
#if PIN_EXISTS(E3_AUTO_FAN)
REPORT_NAME_DIGITAL(E3_AUTO_FAN_PIN, __LINE__ )
#endif
#if PIN_EXISTS(E3_DIR)
REPORT_NAME_DIGITAL(E3_DIR_PIN, __LINE__ )
#endif
#if PIN_EXISTS(E3_ENABLE)
REPORT_NAME_DIGITAL(E3_ENABLE_PIN, __LINE__ )
#endif
#if PIN_EXISTS(E3_STEP)
REPORT_NAME_DIGITAL(E3_STEP_PIN, __LINE__ )
#endif
#if PIN_EXISTS(E4_AUTO_FAN)
REPORT_NAME_DIGITAL(E4_AUTO_FAN_PIN, __LINE__ )
#endif
#if PIN_EXISTS(E4_DIR)
REPORT_NAME_DIGITAL(E4_DIR_PIN, __LINE__ )
#endif
#if PIN_EXISTS(E4_ENABLE)
REPORT_NAME_DIGITAL(E4_ENABLE_PIN, __LINE__ )
#endif
#if PIN_EXISTS(E4_STEP)
REPORT_NAME_DIGITAL(E4_STEP_PIN, __LINE__ )
#endif
#if defined(EXT_AUX_A0) && EXT_AUX_A0 >= 0 && EXT_AUX_A0 < NUM_ANALOG_INPUTS
REPORT_NAME_ANALOG(EXT_AUX_A0, __LINE__ )
#endif
#if defined(EXT_AUX_A0) && EXT_AUX_A0 >= 0 && EXT_AUX_A0 >= NUM_ANALOG_INPUTS
REPORT_NAME_DIGITAL(EXT_AUX_A0, __LINE__ )
#endif
#if defined(EXT_AUX_A0_IO) && EXT_AUX_A0_IO >= 0
REPORT_NAME_DIGITAL(EXT_AUX_A0_IO, __LINE__ )
#endif
#if defined(EXT_AUX_A1) && EXT_AUX_A1 >= 0 && EXT_AUX_A1 < NUM_ANALOG_INPUTS
REPORT_NAME_ANALOG(EXT_AUX_A1, __LINE__ )
#endif
#if defined(EXT_AUX_A1) && EXT_AUX_A1 >= 0 && EXT_AUX_A1 >= NUM_ANALOG_INPUTS
REPORT_NAME_DIGITAL(EXT_AUX_A1, __LINE__ )
#endif
#if defined(EXT_AUX_A1_IO) && EXT_AUX_A1_IO >= 0
REPORT_NAME_DIGITAL(EXT_AUX_A1_IO, __LINE__ )
#endif
#if defined(EXT_AUX_A2) && EXT_AUX_A2 >= 0 && EXT_AUX_A2 < NUM_ANALOG_INPUTS
REPORT_NAME_ANALOG(EXT_AUX_A2, __LINE__ )
#endif
#if defined(EXT_AUX_A2) && EXT_AUX_A2 >= 0 && EXT_AUX_A2 >= NUM_ANALOG_INPUTS
REPORT_NAME_DIGITAL(EXT_AUX_A2, __LINE__ )
#endif
#if defined(EXT_AUX_A2_IO) && EXT_AUX_A2_IO >= 0
REPORT_NAME_DIGITAL(EXT_AUX_A2_IO, __LINE__ )
#endif
#if defined(EXT_AUX_A3) && EXT_AUX_A3 >= 0 && EXT_AUX_A3 < NUM_ANALOG_INPUTS
REPORT_NAME_ANALOG(EXT_AUX_A3, __LINE__ )
#endif
#if defined(EXT_AUX_A3) && EXT_AUX_A3 >= 0 && EXT_AUX_A3 >= NUM_ANALOG_INPUTS
REPORT_NAME_DIGITAL(EXT_AUX_A3, __LINE__ )
#endif
#if defined(EXT_AUX_A3_IO) && EXT_AUX_A3_IO >= 0
REPORT_NAME_DIGITAL(EXT_AUX_A3_IO, __LINE__ )
#endif
#if defined(EXT_AUX_A4) && EXT_AUX_A4 >= 0 && EXT_AUX_A4 < NUM_ANALOG_INPUTS
REPORT_NAME_ANALOG(EXT_AUX_A4, __LINE__ )
#endif
#if defined(EXT_AUX_A4) && EXT_AUX_A4 >= 0 && EXT_AUX_A4 >= NUM_ANALOG_INPUTS
REPORT_NAME_DIGITAL(EXT_AUX_A4, __LINE__ )
#endif
#if defined(EXT_AUX_A4_IO) && EXT_AUX_A4_IO >= 0
REPORT_NAME_DIGITAL(EXT_AUX_A4_IO, __LINE__ )
#endif
#if defined(EXT_AUX_PWM_D24) && EXT_AUX_PWM_D24 >= 0
REPORT_NAME_DIGITAL(EXT_AUX_PWM_D24, __LINE__ )
#endif
#if defined(EXT_AUX_RX1_D2) && EXT_AUX_RX1_D2 >= 0
REPORT_NAME_DIGITAL(EXT_AUX_RX1_D2, __LINE__ )
#endif
#if defined(EXT_AUX_SCL_D0) && EXT_AUX_SCL_D0 >= 0
REPORT_NAME_DIGITAL(EXT_AUX_SCL_D0, __LINE__ )
#endif
#if defined(EXT_AUX_SDA_D1) && EXT_AUX_SDA_D1 >= 0
REPORT_NAME_DIGITAL(EXT_AUX_SDA_D1, __LINE__ )
#endif
#if defined(EXT_AUX_TX1_D3) && EXT_AUX_TX1_D3 >= 0
REPORT_NAME_DIGITAL(EXT_AUX_TX1_D3, __LINE__ )
#endif
#if defined(EXTRUDER_0_AUTO_FAN) && EXTRUDER_0_AUTO_FAN >= 0
REPORT_NAME_DIGITAL(EXTRUDER_0_AUTO_FAN, __LINE__ )
#endif
#if defined(EXTRUDER_1_AUTO_FAN) && EXTRUDER_1_AUTO_FAN >= 0
REPORT_NAME_DIGITAL(EXTRUDER_1_AUTO_FAN, __LINE__ )
#endif
#if PIN_EXISTS(FAN)
REPORT_NAME_DIGITAL(FAN_PIN, __LINE__ )
#endif
#if PIN_EXISTS(FAN1)
REPORT_NAME_DIGITAL(FAN1_PIN, __LINE__ )
#endif
#if PIN_EXISTS(FAN2)
REPORT_NAME_DIGITAL(FAN2_PIN, __LINE__ )
#endif
#if PIN_EXISTS(FIL_RUNOUT)
REPORT_NAME_DIGITAL(FIL_RUNOUT_PIN, __LINE__ )
#endif
#if PIN_EXISTS(FILWIDTH) && FILWIDTH_PIN < NUM_ANALOG_INPUTS
REPORT_NAME_ANALOG(FILWIDTH_PIN, __LINE__ )
#endif
#if PIN_EXISTS(HEATER_0)
REPORT_NAME_DIGITAL(HEATER_0_PIN, __LINE__ )
#endif
#if PIN_EXISTS(HEATER_1)
REPORT_NAME_DIGITAL(HEATER_1_PIN, __LINE__ )
#endif
#if PIN_EXISTS(HEATER_2)
REPORT_NAME_DIGITAL(HEATER_2_PIN, __LINE__ )
#endif
#if PIN_EXISTS(HEATER_3)
REPORT_NAME_DIGITAL(HEATER_3_PIN, __LINE__ )
#endif
#if PIN_EXISTS(HEATER_4)
REPORT_NAME_DIGITAL(HEATER_4_PIN, __LINE__ )
#endif
#if PIN_EXISTS(HEATER_5)
REPORT_NAME_DIGITAL(HEATER_5_PIN, __LINE__ )
#endif
#if PIN_EXISTS(HEATER_6)
REPORT_NAME_DIGITAL(HEATER_6_PIN, __LINE__ )
#endif
#if PIN_EXISTS(HEATER_7)
REPORT_NAME_DIGITAL(HEATER_7_PIN, __LINE__ )
#endif
#if PIN_EXISTS(HEATER_BED)
REPORT_NAME_DIGITAL(HEATER_BED_PIN, __LINE__ )
#endif
#if PIN_EXISTS(HOME)
REPORT_NAME_DIGITAL(HOME_PIN, __LINE__ )
#endif
#if PIN_EXISTS(I2C_SCL)
REPORT_NAME_DIGITAL(I2C_SCL_PIN, __LINE__ )
#endif
#if PIN_EXISTS(I2C_SDA)
REPORT_NAME_DIGITAL(I2C_SDA_PIN, __LINE__ )
#endif
#if PIN_EXISTS(KILL)
REPORT_NAME_DIGITAL(KILL_PIN, __LINE__ )
#endif
#if PIN_EXISTS(LCD_BACKLIGHT)
REPORT_NAME_DIGITAL(LCD_BACKLIGHT_PIN, __LINE__ )
#endif
#if defined(LCD_CONTRAST) && LCD_CONTRAST >= 0
REPORT_NAME_DIGITAL(LCD_CONTRAST, __LINE__ )
#endif
#if PIN_EXISTS(LCD)
REPORT_NAME_DIGITAL(LCD_PINS_D4, __LINE__ )
#endif
#if PIN_EXISTS(LCD)
REPORT_NAME_DIGITAL(LCD_PINS_D5, __LINE__ )
#endif
#if PIN_EXISTS(LCD)
REPORT_NAME_DIGITAL(LCD_PINS_D6, __LINE__ )
#endif
#if PIN_EXISTS(LCD)
REPORT_NAME_DIGITAL(LCD_PINS_D7, __LINE__ )
#endif
#if PIN_EXISTS(LCD)
REPORT_NAME_DIGITAL(LCD_PINS_ENABLE, __LINE__ )
#endif
#if PIN_EXISTS(LCD)
REPORT_NAME_DIGITAL(LCD_PINS_RS, __LINE__ )
#endif
#if defined(LCD_SDSS) && LCD_SDSS >= 0
REPORT_NAME_DIGITAL(LCD_SDSS, __LINE__ )
#endif
#if PIN_EXISTS(LED)
REPORT_NAME_DIGITAL(LED_PIN, __LINE__ )
#endif
#if PIN_EXISTS(MAIN_VOLTAGE_MEASURE) && MAIN_VOLTAGE_MEASURE_PIN < NUM_ANALOG_INPUTS
REPORT_NAME_ANALOG(MAIN_VOLTAGE_MEASURE_PIN, __LINE__ )
#endif
#if defined(MAX6675_SS) && MAX6675_SS >= 0
REPORT_NAME_DIGITAL(MAX6675_SS, __LINE__ )
#endif
#if PIN_EXISTS(MISO)
REPORT_NAME_DIGITAL(MISO_PIN, __LINE__ )
#endif
#if PIN_EXISTS(MOSFET_A)
REPORT_NAME_DIGITAL(MOSFET_A_PIN, __LINE__ )
#endif
#if PIN_EXISTS(MOSFET_B)
REPORT_NAME_DIGITAL(MOSFET_B_PIN, __LINE__ )
#endif
#if PIN_EXISTS(MOSFET_C)
REPORT_NAME_DIGITAL(MOSFET_C_PIN, __LINE__ )
#endif
#if PIN_EXISTS(MOSFET_D)
REPORT_NAME_DIGITAL(MOSFET_D_PIN, __LINE__ )
#endif
#if PIN_EXISTS(MOSI)
REPORT_NAME_DIGITAL(MOSI_PIN, __LINE__ )
#endif
#if PIN_EXISTS(MOTOR_CURRENT_PWM_E)
REPORT_NAME_DIGITAL(MOTOR_CURRENT_PWM_E_PIN, __LINE__ )
#endif
#if PIN_EXISTS(MOTOR_CURRENT_PWM_XY)
REPORT_NAME_DIGITAL(MOTOR_CURRENT_PWM_XY_PIN, __LINE__ )
#endif
#if PIN_EXISTS(MOTOR_CURRENT_PWM_Z)
REPORT_NAME_DIGITAL(MOTOR_CURRENT_PWM_Z_PIN, __LINE__ )
#endif
#if PIN_EXISTS(ORIG_E0_AUTO_FAN)
REPORT_NAME_DIGITAL(ORIG_E0_AUTO_FAN_PIN, __LINE__ )
#endif
#if PIN_EXISTS(ORIG_E1_AUTO_FAN)
REPORT_NAME_DIGITAL(ORIG_E1_AUTO_FAN_PIN, __LINE__ )
#endif
#if PIN_EXISTS(ORIG_E2_AUTO_FAN)
REPORT_NAME_DIGITAL(ORIG_E2_AUTO_FAN_PIN, __LINE__ )
#endif
#if PIN_EXISTS(ORIG_E3_AUTO_FAN)
REPORT_NAME_DIGITAL(ORIG_E3_AUTO_FAN_PIN, __LINE__ )
#endif
#if PIN_EXISTS(ORIG_E4_AUTO_FAN)
REPORT_NAME_DIGITAL(ORIG_E4_AUTO_FAN_PIN, __LINE__ )
#endif
#if PIN_EXISTS(PHOTOGRAPH)
REPORT_NAME_DIGITAL(PHOTOGRAPH_PIN, __LINE__ )
#endif
#if PIN_EXISTS(PS_ON)
REPORT_NAME_DIGITAL(PS_ON_PIN, __LINE__ )
#endif
#if PIN_EXISTS(PWM_1)
REPORT_NAME_DIGITAL(PWM_1_PIN, __LINE__ )
#endif
#if PIN_EXISTS(PWM_2)
REPORT_NAME_DIGITAL(PWM_2_PIN, __LINE__ )
#endif
#if PIN_EXISTS(RAMPS_D10)
REPORT_NAME_DIGITAL(RAMPS_D10_PIN, __LINE__ )
#endif
#if PIN_EXISTS(RAMPS_D8)
REPORT_NAME_DIGITAL(RAMPS_D8_PIN, __LINE__ )
#endif
#if PIN_EXISTS(RAMPS_D9)
REPORT_NAME_DIGITAL(RAMPS_D9_PIN, __LINE__ )
#endif
#if PIN_EXISTS(RX_ENABLE)
REPORT_NAME_DIGITAL(RX_ENABLE_PIN, __LINE__ )
#endif
#if PIN_EXISTS(SAFETY_TRIGGERED)
REPORT_NAME_DIGITAL(SAFETY_TRIGGERED_PIN, __LINE__ )
#endif
#if PIN_EXISTS(SCK)
REPORT_NAME_DIGITAL(SCK_PIN, __LINE__ )
#endif
#if defined(SCL) && SCL >= 0
REPORT_NAME_DIGITAL(SCL, __LINE__ )
#endif
#if PIN_EXISTS(SD_DETECT)
REPORT_NAME_DIGITAL(SD_DETECT_PIN, __LINE__ )
#endif
#if defined(SDA) && SDA >= 0
REPORT_NAME_DIGITAL(SDA, __LINE__ )
#endif
#if defined(SDPOWER) && SDPOWER >= 0
REPORT_NAME_DIGITAL(SDPOWER, __LINE__ )
#endif
#if defined(SDSS) && SDSS >= 0
REPORT_NAME_DIGITAL(SDSS, __LINE__ )
#endif
#if PIN_EXISTS(SERVO0)
REPORT_NAME_DIGITAL(SERVO0_PIN, __LINE__ )
#endif
#if PIN_EXISTS(SERVO1)
REPORT_NAME_DIGITAL(SERVO1_PIN, __LINE__ )
#endif
#if PIN_EXISTS(SERVO2)
REPORT_NAME_DIGITAL(SERVO2_PIN, __LINE__ )
#endif
#if PIN_EXISTS(SERVO3)
REPORT_NAME_DIGITAL(SERVO3_PIN, __LINE__ )
#endif
#if defined(SHIFT_CLK) && SHIFT_CLK >= 0
REPORT_NAME_DIGITAL(SHIFT_CLK, __LINE__ )
#endif
#if defined(SHIFT_EN) && SHIFT_EN >= 0
REPORT_NAME_DIGITAL(SHIFT_EN, __LINE__ )
#endif
#if defined(SHIFT_LD) && SHIFT_LD >= 0
REPORT_NAME_DIGITAL(SHIFT_LD, __LINE__ )
#endif
#if defined(SHIFT_OUT) && SHIFT_OUT >= 0
REPORT_NAME_DIGITAL(SHIFT_OUT, __LINE__ )
#endif
#if PIN_EXISTS(SLED)
REPORT_NAME_DIGITAL(SLED_PIN, __LINE__ )
#endif
#if PIN_EXISTS(SLEEP_WAKE)
REPORT_NAME_DIGITAL(SLEEP_WAKE_PIN, __LINE__ )
#endif
#if PIN_EXISTS(SOL1)
REPORT_NAME_DIGITAL(SOL1_PIN, __LINE__ )
#endif
#if PIN_EXISTS(SOL2)
REPORT_NAME_DIGITAL(SOL2_PIN, __LINE__ )
#endif
#if defined(SPARE_IO) && SPARE_IO >= 0
REPORT_NAME_DIGITAL(SPARE_IO, __LINE__ )
#endif
#if PIN_EXISTS(SPINDLE_DIR)
REPORT_NAME_DIGITAL(SPINDLE_DIR_PIN, __LINE__ )
#endif
#if PIN_EXISTS(SPINDLE_LASER_ENABLE)
REPORT_NAME_DIGITAL(SPINDLE_LASER_ENABLE_PIN, __LINE__ )
#endif
#if PIN_EXISTS(SPINDLE_LASER_PWM)
REPORT_NAME_DIGITAL(SPINDLE_LASER_PWM_PIN, __LINE__ )
#endif
#if PIN_EXISTS(SR_CLK)
REPORT_NAME_DIGITAL(SR_CLK_PIN, __LINE__ )
#endif
#if PIN_EXISTS(SR_DATA)
REPORT_NAME_DIGITAL(SR_DATA_PIN, __LINE__ )
#endif
#if PIN_EXISTS(SR_STROBE)
REPORT_NAME_DIGITAL(SR_STROBE_PIN, __LINE__ )
#endif
#if PIN_EXISTS(SS)
REPORT_NAME_DIGITAL(SS_PIN, __LINE__ )
#endif
#if PIN_EXISTS(STAT_LED_BLUE)
REPORT_NAME_DIGITAL(STAT_LED_BLUE_PIN, __LINE__ )
#endif
#if PIN_EXISTS(STAT_LED_RED)
REPORT_NAME_DIGITAL(STAT_LED_RED_PIN, __LINE__ )
#endif
#if PIN_EXISTS(STEPPER_RESET)
REPORT_NAME_DIGITAL(STEPPER_RESET_PIN, __LINE__ )
#endif
#if PIN_EXISTS(SUICIDE)
REPORT_NAME_DIGITAL(SUICIDE_PIN, __LINE__ )
#endif
#if defined(TC1) && TC1 >= 0 && TC1 < NUM_ANALOG_INPUTS
REPORT_NAME_ANALOG(TC1, __LINE__ )
#endif
#if defined(TC2) && TC2 >= 0 && TC2 < NUM_ANALOG_INPUTS
REPORT_NAME_ANALOG(TC2, __LINE__ )
#endif
#if PIN_EXISTS(TEMP_0) && TEMP_0_PIN < NUM_ANALOG_INPUTS
REPORT_NAME_ANALOG(TEMP_0_PIN, __LINE__ )
#endif
#if PIN_EXISTS(TEMP_1) && TEMP_1_PIN < NUM_ANALOG_INPUTS
REPORT_NAME_ANALOG(TEMP_1_PIN, __LINE__ )
#endif
#if PIN_EXISTS(TEMP_2) && TEMP_2_PIN < NUM_ANALOG_INPUTS
REPORT_NAME_ANALOG(TEMP_2_PIN, __LINE__ )
#endif
#if PIN_EXISTS(TEMP_3) && TEMP_3_PIN < NUM_ANALOG_INPUTS
REPORT_NAME_ANALOG(TEMP_3_PIN, __LINE__ )
#endif
#if PIN_EXISTS(TEMP_4) && TEMP_4_PIN < NUM_ANALOG_INPUTS
REPORT_NAME_ANALOG(TEMP_4_PIN, __LINE__ )
#endif
#if PIN_EXISTS(TEMP_BED) && TEMP_BED_PIN < NUM_ANALOG_INPUTS
REPORT_NAME_ANALOG(TEMP_BED_PIN, __LINE__ )
#endif
#if PIN_EXISTS(TEMP_CHAMBER) && TEMP_CHAMBER_PIN < NUM_ANALOG_INPUTS
REPORT_NAME_ANALOG(TEMP_CHAMBER_PIN, __LINE__ )
#endif
#if PIN_EXISTS(TEMP_X) && TEMP_X_PIN < NUM_ANALOG_INPUTS
REPORT_NAME_ANALOG(TEMP_X_PIN, __LINE__ )
#endif
#if PIN_EXISTS(THERMO_DO)
REPORT_NAME_DIGITAL(THERMO_DO_PIN, __LINE__ )
#endif
#if PIN_EXISTS(THERMO_SCK)
REPORT_NAME_DIGITAL(THERMO_SCK_PIN, __LINE__ )
#endif
#if PIN_EXISTS(TLC_BLANK)
REPORT_NAME_DIGITAL(TLC_BLANK_PIN, __LINE__ )
#endif
#if PIN_EXISTS(TLC_CLOCK)
REPORT_NAME_DIGITAL(TLC_CLOCK_PIN, __LINE__ )
#endif
#if PIN_EXISTS(TLC_DATA)
REPORT_NAME_DIGITAL(TLC_DATA_PIN, __LINE__ )
#endif
#if PIN_EXISTS(TLC_XLAT)
REPORT_NAME_DIGITAL(TLC_XLAT_PIN, __LINE__ )
#endif
#if PIN_EXISTS(TOOL_0)
REPORT_NAME_DIGITAL(TOOL_0_PIN, __LINE__ )
#endif
#if PIN_EXISTS(TOOL_0_PWM)
REPORT_NAME_DIGITAL(TOOL_0_PWM_PIN, __LINE__ )
#endif
#if PIN_EXISTS(TOOL_1)
REPORT_NAME_DIGITAL(TOOL_1_PIN, __LINE__ )
#endif
#if PIN_EXISTS(TOOL_1_PWM)
REPORT_NAME_DIGITAL(TOOL_1_PWM_PIN, __LINE__ )
#endif
#if PIN_EXISTS(TOOL_2)
REPORT_NAME_DIGITAL(TOOL_2_PIN, __LINE__ )
#endif
#if PIN_EXISTS(TOOL_2_PWM)
REPORT_NAME_DIGITAL(TOOL_2_PWM_PIN, __LINE__ )
#endif
#if PIN_EXISTS(TOOL_3)
REPORT_NAME_DIGITAL(TOOL_3_PIN, __LINE__ )
#endif
#if PIN_EXISTS(TOOL_3_PWM)
REPORT_NAME_DIGITAL(TOOL_3_PWM_PIN, __LINE__ )
#endif
#if PIN_EXISTS(TOOL_PWM)
REPORT_NAME_DIGITAL(TOOL_PWM_PIN, __LINE__ )
#endif
#if PIN_EXISTS(TX_ENABLE)
REPORT_NAME_DIGITAL(TX_ENABLE_PIN, __LINE__ )
#endif
#if defined(UI1) && UI1 >= 0
REPORT_NAME_DIGITAL(UI1, __LINE__ )
#endif
#if defined(UI2) && UI2 >= 0
REPORT_NAME_DIGITAL(UI2, __LINE__ )
#endif
#if defined(UNUSED_PWM) && UNUSED_PWM >= 0
REPORT_NAME_DIGITAL(UNUSED_PWM, __LINE__ )
#endif
#if PIN_EXISTS(X_ATT)
REPORT_NAME_DIGITAL(X_ATT_PIN, __LINE__ )
#endif
#if PIN_EXISTS(X_CS)
REPORT_NAME_DIGITAL(X_CS_PIN, __LINE__ )
#endif
#if PIN_EXISTS(X_DIR)
REPORT_NAME_DIGITAL(X_DIR_PIN, __LINE__ )
#endif
#if PIN_EXISTS(X_ENABLE)
REPORT_NAME_DIGITAL(X_ENABLE_PIN, __LINE__ )
#endif
#if PIN_EXISTS(X_MAX)
REPORT_NAME_DIGITAL(X_MAX_PIN, __LINE__ )
#endif
#if PIN_EXISTS(X_MIN)
REPORT_NAME_DIGITAL(X_MIN_PIN, __LINE__ )
#endif
#if PIN_EXISTS(X_MS1)
REPORT_NAME_DIGITAL(X_MS1_PIN, __LINE__ )
#endif
#if PIN_EXISTS(X_MS2)
REPORT_NAME_DIGITAL(X_MS2_PIN, __LINE__ )
#endif
#if PIN_EXISTS(X_STEP)
REPORT_NAME_DIGITAL(X_STEP_PIN, __LINE__ )
#endif
#if PIN_EXISTS(X_STOP)
REPORT_NAME_DIGITAL(X_STOP_PIN, __LINE__ )
#endif
#if PIN_EXISTS(X2_DIR)
REPORT_NAME_DIGITAL(X2_DIR_PIN, __LINE__ )
#endif
#if PIN_EXISTS(X2_ENABLE)
REPORT_NAME_DIGITAL(X2_ENABLE_PIN, __LINE__ )
#endif
#if PIN_EXISTS(X2_STEP)
REPORT_NAME_DIGITAL(X2_STEP_PIN, __LINE__ )
#endif
#if PIN_EXISTS(Y_ATT)
REPORT_NAME_DIGITAL(Y_ATT_PIN, __LINE__ )
#endif
#if PIN_EXISTS(Y_CS)
REPORT_NAME_DIGITAL(Y_CS_PIN, __LINE__ )
#endif
#if PIN_EXISTS(Y_DIR)
REPORT_NAME_DIGITAL(Y_DIR_PIN, __LINE__ )
#endif
#if PIN_EXISTS(Y_ENABLE)
REPORT_NAME_DIGITAL(Y_ENABLE_PIN, __LINE__ )
#endif
#if PIN_EXISTS(Y_MAX)
REPORT_NAME_DIGITAL(Y_MAX_PIN, __LINE__ )
#endif
#if PIN_EXISTS(Y_MIN)
REPORT_NAME_DIGITAL(Y_MIN_PIN, __LINE__ )
#endif
#if PIN_EXISTS(Y_MS1)
REPORT_NAME_DIGITAL(Y_MS1_PIN, __LINE__ )
#endif
#if PIN_EXISTS(Y_MS2)
REPORT_NAME_DIGITAL(Y_MS2_PIN, __LINE__ )
#endif
#if PIN_EXISTS(Y_STEP)
REPORT_NAME_DIGITAL(Y_STEP_PIN, __LINE__ )
#endif
#if PIN_EXISTS(Y_STOP)
REPORT_NAME_DIGITAL(Y_STOP_PIN, __LINE__ )
#endif
#if PIN_EXISTS(Y2_DIR)
REPORT_NAME_DIGITAL(Y2_DIR_PIN, __LINE__ )
#endif
#if PIN_EXISTS(Y2_ENABLE)
REPORT_NAME_DIGITAL(Y2_ENABLE_PIN, __LINE__ )
#endif
#if PIN_EXISTS(Y2_STEP)
REPORT_NAME_DIGITAL(Y2_STEP_PIN, __LINE__ )
#endif
#if PIN_EXISTS(Z_ATT)
REPORT_NAME_DIGITAL(Z_ATT_PIN, __LINE__ )
#endif
#if PIN_EXISTS(Z_CS)
REPORT_NAME_DIGITAL(Z_CS_PIN, __LINE__ )
#endif
#if PIN_EXISTS(Z_DIR)
REPORT_NAME_DIGITAL(Z_DIR_PIN, __LINE__ )
#endif
#if PIN_EXISTS(Z_ENABLE)
REPORT_NAME_DIGITAL(Z_ENABLE_PIN, __LINE__ )
#endif
#if PIN_EXISTS(Z_MAX)
REPORT_NAME_DIGITAL(Z_MAX_PIN, __LINE__ )
#endif
#if PIN_EXISTS(Z_MIN)
REPORT_NAME_DIGITAL(Z_MIN_PIN, __LINE__ )
#endif
#if PIN_EXISTS(Z_MIN_PROBE)
REPORT_NAME_DIGITAL(Z_MIN_PROBE_PIN, __LINE__ )
#endif
#if PIN_EXISTS(Z_MS1)
REPORT_NAME_DIGITAL(Z_MS1_PIN, __LINE__ )
#endif
#if PIN_EXISTS(Z_MS2)
REPORT_NAME_DIGITAL(Z_MS2_PIN, __LINE__ )
#endif
#if PIN_EXISTS(Z_STEP)
REPORT_NAME_DIGITAL(Z_STEP_PIN, __LINE__ )
#endif
#if PIN_EXISTS(Z_STOP)
REPORT_NAME_DIGITAL(Z_STOP_PIN, __LINE__ )
#endif
#if PIN_EXISTS(Z2_DIR)
REPORT_NAME_DIGITAL(Z2_DIR_PIN, __LINE__ )
#endif
#if PIN_EXISTS(Z2_ENABLE)
REPORT_NAME_DIGITAL(Z2_ENABLE_PIN, __LINE__ )
#endif
#if PIN_EXISTS(Z2_STEP)
REPORT_NAME_DIGITAL(Z2_STEP_PIN, __LINE__ )
#endif

View File

@@ -1,94 +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/>.
*
*/
/**
* 5DPrint D8 Driver board pin assignments
*
* https://bitbucket.org/makible/5dprint-d8-controller-board
*/
#ifndef __AVR_AT90USB1286__
#error "Oops! Make sure you have 'Teensy++ 2.0' selected from the 'Tools -> Boards' menu."
#endif
#define DEFAULT_MACHINE_NAME "Makibox"
#define BOARD_NAME "5DPrint D8"
#define USBCON 1286 // Disable MarlinSerial etc.
#define LARGE_FLASH true
//
// Limit Switches
//
#define X_STOP_PIN 37
#define Y_STOP_PIN 36
#define Z_STOP_PIN 39
//
// Steppers
//
#define X_STEP_PIN 0
#define X_DIR_PIN 1
#define X_ENABLE_PIN 23
#define Y_STEP_PIN 2
#define Y_DIR_PIN 3
#define Y_ENABLE_PIN 19
#define Z_STEP_PIN 4
#define Z_DIR_PIN 5
#define Z_ENABLE_PIN 18
#define E0_STEP_PIN 6
#define E0_DIR_PIN 7
#define E0_ENABLE_PIN 17
// Microstepping pins - Mapping not from fastio.h (?)
#define X_MS1_PIN 25
#define X_MS2_PIN 26
#define Y_MS1_PIN 9
#define Y_MS2_PIN 8
#define Z_MS1_PIN 7
#define Z_MS2_PIN 6
#define E0_MS1_PIN 5
#define E0_MS2_PIN 4
//
// Temperature Sensors
//
#define TEMP_0_PIN 1 // Analog Input
#define TEMP_BED_PIN 0 // Analog Input
//
// Heaters / Fans
//
#define HEATER_0_PIN 21
#define HEATER_BED_PIN 20
// You may need to change FAN_PIN to 16 because Marlin isn't using fastio.h
// for the fan and Teensyduino uses a different pin mapping.
#define FAN_PIN 16
//
// Misc. Functions
//
#define SDSS 20

View File

@@ -1,153 +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/>.
*
*/
/**
* Brainwave Pro pin assignments (AT90USB1286)
*
* Requires hardware bundle for Arduino:
* https://github.com/unrepentantgeek/brainwave-arduino
*/
/**
* Rev B 16 JAN 2017
*
* Added pointers to currently available Arduino IDE extensions that will
* allow this board to use the latest Marlin software
*/
/**
* There are three Arduino IDE extensions that are compatible with this board
* and with the mainstream Marlin software. All have been used with Arduino 1.6.12
*
* Teensyduino - http://www.pjrc.com/teensy/teensyduino.html
* Select Teensy++ 2.0 in Arduino IDE from the 'Tools -> Boards' menu
*
* Installation instructions are at the above URL. Don't bother loading the
* libraries - they are not used with the Marlin software.
*
* Printrboard - https://github.com/scwimbush/Printrboard-HID-Arduino-IDE-Support
* This is basically Teensyduino but with a bootloader that can handle image sizes
* larger than 64K.
*
* Installation:
*
* 1. Go to the above URL, click on the "Clone or Download" button and then
* click on "Download ZIP" button.
* 2. Unzip the file, find the "printrboard" directory and then copy it to the
* hardware directory in Arduino. The Arduino hardware directory will probably
* be located in a path similar to this: C:\Program Files (x86)\Arduino\hardware.
* 3. Restart Arduino.
* 4. Select "Printrboard" from the 'Tools -> Boards' menu.
*
* Marlin_AT90USB - https://github.com/Bob-the-Kuhn/Marlin_AT90USB
* Uses the bootloader from Printerboard above.
*
* "Marlin_AT90USB" makes PWM0A available rather than the usual PWM1C. These PWMs share
* the same physical pin. Marlin uses TIMER1 to generate interrupts and sets it up such
* that PWM1A, PWM1B & PWM1C can't be used.
*
* Installation:
*
* 1. In the Arduino IDE, under Files -> Preferences paste the following URL
* https://rawgit.com/Bob-the-Kuhn/Marlin_AT90USB/master/package_MARLIN_AT90USB_index.json
* 2. Under Tools -> Board -> Boards manager, scroll to the bottom, click on MARLIN_AT90USB
* and then click on "Install"
* 3. Select "AT90USB1286_TEENSYPP" from the 'Tools -> Boards' menu.
*/
/**
* To burn the bootloader that comes with Printrboard and Marlin_AT90USB:
*
* 1. Connect your programmer to the board.
* 2. In the Arduino IDE select "Printrboard" or "AT90USB1286_TEENSYPP" and then select the programmer.
* 3. In the Arduino IDE click on "burn bootloader". Don't worry about the "verify failed at 1F000" error message.
* 4. The programmer is no longer needed. Remove it.
*/
#ifndef __AVR_AT90USB1286__
#error "Oops! Make sure you have 'Teensy++ 2.0', 'AT90USB1286_TEENSYPP', or 'Printrboard' selected from the 'Tools -> Boards' menu."
#endif
#include "fastio.h"
#if DISABLED(AT90USBxx_TEENSYPP_ASSIGNMENTS) // use Teensyduino Teensy++2.0 pin assignments instead of Marlin alphabetical.
#error "Uncomment '#define AT90USBxx_TEENSYPP_ASSIGNMENTS' in fastio.h for this config"
#endif
#define BOARD_NAME "Brainwave Pro"
#define USBCON 1286 // Disable MarlinSerial etc.
#define LARGE_FLASH true
//
// Limit Switches
//
#define X_STOP_PIN 47
#define Y_STOP_PIN 18
#define Z_MAX_PIN 36
//
// Z Probe (when not Z_MIN_PIN)
//
#ifndef Z_MIN_PROBE_PIN
#define Z_MIN_PROBE_PIN 17
#endif
//
// Steppers
//
#define X_STEP_PIN 33
#define X_DIR_PIN 32
#define X_ENABLE_PIN 11
#define Y_STEP_PIN 31
#define Y_DIR_PIN 30
#define Y_ENABLE_PIN 8
#define Z_STEP_PIN 29
#define Z_DIR_PIN 28
#define Z_ENABLE_PIN 37
#define E0_STEP_PIN 35
#define E0_DIR_PIN 34
#define E0_ENABLE_PIN 13
//
// Temperature Sensors
//
#define TEMP_0_PIN 2 // Analog Input
#define TEMP_1_PIN 1 // Analog Input
#define TEMP_BED_PIN 0 // Analog Input
//
// Heaters / Fans
//
#define HEATER_0_PIN 15
#define HEATER_BED_PIN 14 // Bed
#define FAN_PIN 16 // Fan, PWM
//
// Misc. Functions
//
#define SDSS 20
#define SD_DETECT_PIN 12
#define LED_PIN 19

View File

@@ -1,154 +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/>.
*
*/
/**
* Printrboard pin assignments (AT90USB1286)
* Requires the Teensyduino software with Teensy++ 2.0 selected in Arduino IDE!
* http://www.pjrc.com/teensy/teensyduino.html
* See http://reprap.org/wiki/Printrboard for more info
*/
#ifndef __AVR_AT90USB1286__
#error "Oops! Make sure you have 'Teensy++ 2.0' selected from the 'Tools -> Boards' menu."
#endif
#if ENABLED(AT90USBxx_TEENSYPP_ASSIGNMENTS) // use Teensyduino Teensy++2.0 pin assignments instead of Marlin traditional.
#error "These Printrboard assignments depend on traditional Marlin assignments, not AT90USBxx_TEENSYPP_ASSIGNMENTS in fastio.h"
#endif
#define BOARD_NAME "Printrboard"
#define USBCON 1286 // Disable MarlinSerial etc.
#define LARGE_FLASH true
// Disable JTAG pins so they can be used for the Extrudrboard
#define DISABLE_JTAG true
//
// Limit Switches
//
#define X_STOP_PIN 35
#if ENABLED(SDSUPPORT)
#define Y_STOP_PIN 37 // Move Ystop to Estop socket
#else
#define Y_STOP_PIN 8 // Ystop in Ystop socket
#endif
#define Z_STOP_PIN 36
//
// Steppers
//
#define X_STEP_PIN 0
#define X_DIR_PIN 1
#define X_ENABLE_PIN 39
#define Y_STEP_PIN 2
#define Y_DIR_PIN 3
#define Y_ENABLE_PIN 38
#define Z_STEP_PIN 4
#define Z_DIR_PIN 5
#define Z_ENABLE_PIN 23
#define E0_STEP_PIN 6
#define E0_DIR_PIN 7
#define E0_ENABLE_PIN 19
//
// Temperature Sensors
//
#define TEMP_0_PIN 1 // Analog Input
#define TEMP_BED_PIN 0 // Analog Input
//
// Heaters / Fans
//
#define HEATER_0_PIN 21 // Extruder
#define HEATER_1_PIN 46
#define HEATER_2_PIN 47
#define HEATER_BED_PIN 20
// If soft or fast PWM is off then use Teensyduino pin numbering, Marlin
// fastio pin numbering otherwise
#if ENABLED(FAN_SOFT_PWM) || ENABLED(FAST_PWM_FAN)
#define FAN_PIN 22
#else
#define FAN_PIN 16
#endif
//
// Misc. Functions
//
#define SDSS 26
#define FILWIDTH_PIN 2 // Analog Input
//
// LCD / Controller
//
#if ENABLED(ULTRA_LCD) && ENABLED(NEWPANEL)
// we have no buzzer installed
#define BEEPER_PIN -1
// LCD Pins
#if ENABLED(LCD_I2C_PANELOLU2)
#define BTN_EN1 27 // RX1 - fastio.h pin mapping 27
#define BTN_EN2 26 // TX1 - fastio.h pin mapping 26
#define BTN_ENC 43 // A3 - fastio.h pin mapping 43
#define SDSS 40 // use SD card on Panelolu2 (Teensyduino pin mapping)
#else
#define BTN_EN1 16
#define BTN_EN2 17
#define BTN_ENC 18 // the click
#endif // LCD_I2C_PANELOLU2
// not connected to a pin
#define SD_DETECT_PIN -1
#define LCD_PINS_RS 9
#define LCD_PINS_ENABLE 8
#define LCD_PINS_D4 7
#define LCD_PINS_D5 6
#define LCD_PINS_D6 5
#define LCD_PINS_D7 4
#endif // ULTRA_LCD && NEWPANEL
#if ENABLED(VIKI2) || ENABLED(miniVIKI)
// FastIO
#define BEEPER_PIN 32
// Pins for DOGM SPI LCD Support
#define DOGLCD_A0 42 // Non-FastIO
#define DOGLCD_CS 43 // Non-FastIO
#define LCD_SCREEN_ROT_180
// The encoder and click button (FastIO Pins)
#define BTN_EN1 26
#define BTN_EN2 27
#define BTN_ENC 47
#define SDSS 45
#define SD_DETECT_PIN -1 // FastIO (Manual says 72 I'm not certain cause I can't test)
#define STAT_LED_RED_PIN 12 // Non-FastIO
#define STAT_LED_BLUE_PIN 10 // Non-FastIO
#endif

View File

@@ -1,149 +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/>.
*
*/
/**
* Printrboard pin assignments (AT90USB1286)
* Requires the Teensyduino software with Teensy++ 2.0 selected in Arduino IDE!
* http://www.pjrc.com/teensy/teensyduino.html
* See http://reprap.org/wiki/Printrboard for more info
*/
#ifndef __AVR_AT90USB1286__
#error "Oops! Make sure you have 'Teensy++ 2.0' selected from the 'Tools -> Boards' menu."
#endif
#if ENABLED(AT90USBxx_TEENSYPP_ASSIGNMENTS) // use Teensyduino Teensy++2.0 pin assignments instead of Marlin traditional.
#error "These Printrboard assignments depend on traditional Marlin assignments, not AT90USBxx_TEENSYPP_ASSIGNMENTS in fastio.h"
#endif
#define BOARD_NAME "Printrboard Rev F"
#define LARGE_FLASH true
//
// Limit Switches
//
#define X_STOP_PIN 35
#define Y_STOP_PIN 12
#define Z_STOP_PIN 36
//
// Steppers
//
#define X_STEP_PIN 0
#define X_DIR_PIN 1
#define X_ENABLE_PIN 39
#define Y_STEP_PIN 2
#define Y_DIR_PIN 3
#define Y_ENABLE_PIN 38
#define Z_STEP_PIN 4
#define Z_DIR_PIN 5
#define Z_ENABLE_PIN 23
#define E0_STEP_PIN 6
#define E0_DIR_PIN 7
#define E0_ENABLE_PIN 19
// uncomment to enable an I2C based DAC like on the Printrboard REVF
#define DAC_STEPPER_CURRENT
// Number of channels available for DAC, For Printrboar REVF there are 4
#define DAC_STEPPER_ORDER { 3, 2, 1, 0 }
#define DAC_STEPPER_SENSE 0.11
#define DAC_STEPPER_ADDRESS 0
#define DAC_STEPPER_MAX 3520
#define DAC_STEPPER_VREF 1 // internal Vref, gain 1x = 2.048V
#define DAC_STEPPER_GAIN 0
#define DAC_OR_ADDRESS 0x00
//
// Temperature Sensors
//
#define TEMP_0_PIN 1 // Analog Input (Extruder)
#define TEMP_BED_PIN 0 // Analog Input (Bed)
//
// Heaters / Fans
//
#define HEATER_0_PIN 21 // Extruder
#define HEATER_1_PIN 46
#define HEATER_2_PIN 47
#define HEATER_BED_PIN 20
// If soft or fast PWM is off then use Teensyduino pin numbering, Marlin
// fastio pin numbering otherwise
#if ENABLED(FAN_SOFT_PWM) || ENABLED(FAST_PWM_FAN)
#define FAN_PIN 22
#else
#define FAN_PIN 16
#endif
//
// Misc. Functions
//
#define SDSS 20 // Teensylu pin mapping
#define FILWIDTH_PIN 2 // Analog Input
//
// LCD / Controller
//
#if ENABLED(ULTRA_LCD)
#define BEEPER_PIN -1
#define LCD_PINS_RS 9
#define LCD_PINS_ENABLE 8
#define LCD_PINS_D4 7
#define LCD_PINS_D5 6
#define LCD_PINS_D6 5
#define LCD_PINS_D7 4
#define BTN_EN1 16
#define BTN_EN2 17
#define BTN_ENC 18 // the click
#define SD_DETECT_PIN -1
// encoder rotation values
#define encrot0 0
#define encrot1 2
#define encrot2 3
#define encrot3 1
#endif
#if ENABLED(VIKI2) || ENABLED(miniVIKI)
#define BEEPER_PIN 32 // FastIO
#define DOGLCD_A0 42 // Non-FastIO
#define DOGLCD_CS 43 // Non-FastIO
#define LCD_SCREEN_ROT_180
// (FastIO Pins)
#define BTN_EN1 26
#define BTN_EN2 27
#define BTN_ENC 47
#define SDSS 45
#define SD_DETECT_PIN -1 // FastIO (Manual says 72)
#define STAT_LED_RED_PIN 12 // Non-FastIO
#define STAT_LED_BLUE_PIN 10 // Non-FastIO
#endif

View File

@@ -1,389 +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 Mega with RAMPS v1.4 (or v1.3) pin assignments
*
* Applies to the following boards:
*
* RAMPS_14_EFB (Hotend, Fan, Bed)
* RAMPS_14_EEB (Hotend0, Hotend1, Bed)
* RAMPS_14_EFF (Hotend, Fan0, Fan1)
* RAMPS_14_EEF (Hotend0, Hotend1, Fan)
* RAMPS_14_SF (Spindle, Controller Fan)
*
* RAMPS_13_EFB (Hotend, Fan, Bed)
* RAMPS_13_EEB (Hotend0, Hotend1, Bed)
* RAMPS_13_EFF (Hotend, Fan0, Fan1)
* RAMPS_13_EEF (Hotend0, Hotend1, Fan)
* RAMPS_13_SF (Spindle, Controller Fan)
*
* Other pins_MYBOARD.h files may override these defaults
*
* Differences between
* RAMPS_13 | RAMPS_14
* 7 | 11
*/
#if !defined(__AVR_ATmega1280__) && !defined(__AVR_ATmega2560__)
#error "Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu."
#endif
#ifndef BOARD_NAME
#define BOARD_NAME "RAMPS 1.4"
#endif
#define LARGE_FLASH true
//
// Servos
//
#ifdef IS_RAMPS_13
#define SERVO0_PIN 7 // RAMPS_13 // Will conflict with BTN_EN2 on LCD_I2C_VIKI
#else
#define SERVO0_PIN 11
#endif
#define SERVO1_PIN 6
#define SERVO2_PIN 5
#define SERVO3_PIN 4
//
// Limit Switches
//
#define X_MIN_PIN 3
#ifndef X_MAX_PIN
#define X_MAX_PIN 2
#endif
#define Y_MIN_PIN 14
#define Y_MAX_PIN 15
#define Z_MIN_PIN 18
#define Z_MAX_PIN 19
//
// Z Probe (when not Z_MIN_PIN)
//
#ifndef Z_MIN_PROBE_PIN
#define Z_MIN_PROBE_PIN 32
#endif
//
// Steppers
//
#define X_STEP_PIN 54
#define X_DIR_PIN 55
#define X_ENABLE_PIN 38
#define X_CS_PIN 53
#define Y_STEP_PIN 60
#define Y_DIR_PIN 61
#define Y_ENABLE_PIN 56
#define Y_CS_PIN 49
#define Z_STEP_PIN 46
#define Z_DIR_PIN 48
#define Z_ENABLE_PIN 62
#define Z_CS_PIN 40
#define E0_STEP_PIN 26
#define E0_DIR_PIN 28
#define E0_ENABLE_PIN 24
#define E0_CS_PIN 42
#define E1_STEP_PIN 36
#define E1_DIR_PIN 34
#define E1_ENABLE_PIN 30
#define E1_CS_PIN 44
//
// Temperature Sensors
//
#define TEMP_0_PIN 13 // Analog Input
#define TEMP_1_PIN 15 // Analog Input
#define TEMP_BED_PIN 14 // Analog Input
// SPI for Max6675 or Max31855 Thermocouple
#if DISABLED(SDSUPPORT)
#define MAX6675_SS 66 // Do not use pin 53 if there is even the remote possibility of using Display/SD card
#else
#define MAX6675_SS 66 // Do not use pin 49 as this is tied to the switch inside the SD card socket to detect if there is an SD card present
#endif
//
// Augmentation for auto-assigning RAMPS plugs
//
#if DISABLED(IS_RAMPS_EEB) && DISABLED(IS_RAMPS_EEF) && DISABLED(IS_RAMPS_EFB) && DISABLED(IS_RAMPS_EFF) && DISABLED(IS_RAMPS_SF) && !PIN_EXISTS(MOSFET_D)
#if HOTENDS > 1
#if TEMP_SENSOR_BED
#define IS_RAMPS_EEB
#else
#define IS_RAMPS_EEF
#endif
#elif TEMP_SENSOR_BED
#define IS_RAMPS_EFB
#else
#define IS_RAMPS_EFF
#endif
#endif
//
// Heaters / Fans
//
#ifndef MOSFET_D_PIN
#define MOSFET_D_PIN -1
#endif
#ifndef RAMPS_D8_PIN
#define RAMPS_D8_PIN 8
#endif
#ifndef RAMPS_D9_PIN
#define RAMPS_D9_PIN 9
#endif
#ifndef RAMPS_D10_PIN
#define RAMPS_D10_PIN 10
#endif
#define HEATER_0_PIN RAMPS_D10_PIN
#if ENABLED(IS_RAMPS_EFB) // Hotend, Fan, Bed
#define FAN_PIN RAMPS_D9_PIN
#define HEATER_BED_PIN RAMPS_D8_PIN
#elif ENABLED(IS_RAMPS_EEF) // Hotend, Hotend, Fan
#define HEATER_1_PIN RAMPS_D9_PIN
#define FAN_PIN RAMPS_D8_PIN
#elif ENABLED(IS_RAMPS_EEB) // Hotend, Hotend, Bed
#define HEATER_1_PIN RAMPS_D9_PIN
#define HEATER_BED_PIN RAMPS_D8_PIN
#elif ENABLED(IS_RAMPS_EFF) // Hotend, Fan, Fan
#define FAN_PIN RAMPS_D9_PIN
#define FAN1_PIN RAMPS_D8_PIN
#elif ENABLED(IS_RAMPS_SF) // Spindle, Fan
#define FAN_PIN RAMPS_D8_PIN
#else // Non-specific are "EFB" (i.e., "EFBF" or "EFBE")
#define FAN_PIN RAMPS_D9_PIN
#define HEATER_BED_PIN RAMPS_D8_PIN
#if HOTENDS == 1
#define FAN1_PIN MOSFET_D_PIN
#else
#define HEATER_1_PIN MOSFET_D_PIN
#endif
#endif
#ifndef FAN_PIN
#define FAN_PIN 4 // IO pin. Buffer needed
#endif
//
// Misc. Functions
//
#define SDSS 53
#define LED_PIN 13
// Use the RAMPS 1.4 Analog input 5 on the AUX2 connector
#define FILWIDTH_PIN 5 // Analog Input
// define digital pin 4 for the filament runout sensor. Use the RAMPS 1.4 digital input 4 on the servos connector
#define FIL_RUNOUT_PIN 4
#define PS_ON_PIN 12
#if !PIN_EXISTS(CASE_LIGHT) && !defined(SPINDLE_LASER_ENABLE_PIN)
#undef CASE_LIGHT_PIN
#if !defined(NUM_SERVOS) || NUM_SERVOS == 0 // try to use servo connector first
#define CASE_LIGHT_PIN 6 // MUST BE HARDWARE PWM
#elif !(ENABLED(ULTRA_LCD) && ENABLED(NEWPANEL) \
&& (ENABLED(PANEL_ONE) || ENABLED(VIKI2) || ENABLED(miniVIKI) || ENABLED(MINIPANEL) || ENABLED(REPRAPWORLD_KEYPAD))) // try to use AUX 2
#define CASE_LIGHT_PIN 44 // MUST BE HARDWARE PWM
#endif
#endif
//
// LCD / Controller
//
#if ENABLED(ULTRA_LCD)
#if ENABLED(REPRAPWORLD_GRAPHICAL_LCD)
#define LCD_PINS_RS 49 // CS chip select /SS chip slave select
#define LCD_PINS_ENABLE 51 // SID (MOSI)
#define LCD_PINS_D4 52 // SCK (CLK) clock
#elif ENABLED(NEWPANEL) && ENABLED(PANEL_ONE)
#define LCD_PINS_RS 40
#define LCD_PINS_ENABLE 42
#define LCD_PINS_D4 65
#define LCD_PINS_D5 66
#define LCD_PINS_D6 44
#define LCD_PINS_D7 64
#else
#define LCD_PINS_RS 16
#define LCD_PINS_ENABLE 17
#define LCD_PINS_D4 23
#define LCD_PINS_D5 25
#define LCD_PINS_D6 27
#define LCD_PINS_D7 29
#if DISABLED(NEWPANEL)
#define BEEPER_PIN 33
// Buttons are attached to a shift register
// Not wired yet
//#define SHIFT_CLK 38
//#define SHIFT_LD 42
//#define SHIFT_OUT 40
//#define SHIFT_EN 17
#endif
#endif
#if ENABLED(NEWPANEL)
#if ENABLED(REPRAP_DISCOUNT_SMART_CONTROLLER)
#define BEEPER_PIN 37
#define BTN_EN1 31
#define BTN_EN2 33
#define BTN_ENC 35
#define SD_DETECT_PIN 49
#define KILL_PIN 41
#if ENABLED(BQ_LCD_SMART_CONTROLLER)
#define LCD_BACKLIGHT_PIN 39
#endif
#elif ENABLED(REPRAPWORLD_GRAPHICAL_LCD)
#define BTN_EN1 64
#define BTN_EN2 59
#define BTN_ENC 63
#define SD_DETECT_PIN 42
#elif ENABLED(LCD_I2C_PANELOLU2)
#define BTN_EN1 47 // reverse if the encoder turns the wrong way.
#define BTN_EN2 43
#define BTN_ENC 32
#define LCD_SDSS 53
#define SD_DETECT_PIN -1
#define KILL_PIN 41
#elif ENABLED(LCD_I2C_VIKI)
#define BTN_EN1 22 // reverse if the encoder turns the wrong way.
#define BTN_EN2 7 // http://files.panucatt.com/datasheets/viki_wiring_diagram.pdf
// tells about 40/42.
// 22/7 are unused on RAMPS_14. 22 is unused and 7 the SERVO0_PIN on RAMPS_13.
#define BTN_ENC -1
#define LCD_SDSS 53
#define SD_DETECT_PIN 49
#elif ENABLED(VIKI2) || ENABLED(miniVIKI)
#define BEEPER_PIN 33
// Pins for DOGM SPI LCD Support
#define DOGLCD_A0 44
#define DOGLCD_CS 45
#define LCD_SCREEN_ROT_180
#define BTN_EN1 22
#define BTN_EN2 7
#define BTN_ENC 39
#define SDSS 53
#define SD_DETECT_PIN -1 // Pin 49 for display sd interface, 72 for easy adapter board
#define KILL_PIN 31
#define STAT_LED_RED_PIN 32
#define STAT_LED_BLUE_PIN 35
#elif ENABLED(ELB_FULL_GRAPHIC_CONTROLLER)
#define BTN_EN1 35 // reverse if the encoder turns the wrong way.
#define BTN_EN2 37
#define BTN_ENC 31
#define SD_DETECT_PIN 49
#define LCD_SDSS 53
#define KILL_PIN 41
#define BEEPER_PIN 23
#define DOGLCD_CS 29
#define DOGLCD_A0 27
#define LCD_BACKLIGHT_PIN 33
#elif ENABLED(MINIPANEL)
#define BEEPER_PIN 42
// Pins for DOGM SPI LCD Support
#define DOGLCD_A0 44
#define DOGLCD_CS 66
#define LCD_BACKLIGHT_PIN 65 // backlight LED on A11/D65
#define SDSS 53
#define KILL_PIN 64
// GLCD features
//#define LCD_CONTRAST 190
// Uncomment screen orientation
//#define LCD_SCREEN_ROT_90
//#define LCD_SCREEN_ROT_180
//#define LCD_SCREEN_ROT_270
// The encoder and click button
#define BTN_EN1 40
#define BTN_EN2 63
#define BTN_ENC 59
// not connected to a pin
#define SD_DETECT_PIN 49
#else
// Beeper on AUX-4
#define BEEPER_PIN 33
// buttons are directly attached using AUX-2
#if ENABLED(REPRAPWORLD_KEYPAD)
#define BTN_EN1 64 // encoder
#define BTN_EN2 59 // encoder
#define BTN_ENC 63 // enter button
#define SHIFT_OUT 40 // shift register
#define SHIFT_CLK 44 // shift register
#define SHIFT_LD 42 // shift register
#elif ENABLED(PANEL_ONE)
#define BTN_EN1 59 // AUX2 PIN 3
#define BTN_EN2 63 // AUX2 PIN 4
#define BTN_ENC 49 // AUX3 PIN 7
#else
#define BTN_EN1 37
#define BTN_EN2 35
#define BTN_ENC 31 // the click
#endif
#if ENABLED(G3D_PANEL)
#define SD_DETECT_PIN 49
#define KILL_PIN 41
#else
//#define SD_DETECT_PIN -1 // Ramps doesn't use this
#endif
#endif
#endif // NEWPANEL
#endif // ULTRA_LCD
//
// M3/M4/M5 - Spindle/Laser Control
//
#if ENABLED(SPINDLE_LASER_ENABLE) && !PIN_EXISTS(SPINDLE_LASER_ENABLE)
#if !defined(NUM_SERVOS) || NUM_SERVOS == 0 // try to use servo connector first
#define SPINDLE_LASER_ENABLE_PIN 4 // Pin should have a pullup/pulldown!
#define SPINDLE_LASER_PWM_PIN 6 // MUST BE HARDWARE PWM
#define SPINDLE_DIR_PIN 5
#elif !(ENABLED(ULTRA_LCD) && ENABLED(NEWPANEL) \
&& (ENABLED(PANEL_ONE) || ENABLED(VIKI2) || ENABLED(miniVIKI) || ENABLED(MINIPANEL) || ENABLED(REPRAPWORLD_KEYPAD))) // try to use AUX 2
#define SPINDLE_LASER_ENABLE_PIN 40 // Pin should have a pullup/pulldown!
#define SPINDLE_LASER_PWM_PIN 44 // MUST BE HARDWARE PWM
#define SPINDLE_DIR_PIN 65
#endif
#endif

View File

@@ -1,155 +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/>.
*
*/
/**
* SAV MkI pin assignments (AT90USB1286)
* Requires the Teensyduino software with Teensy++ 2.0 selected in Arduino IDE!
* http://www.pjrc.com/teensy/teensyduino.html
* RepRap Clone Wars project board.
*/
#ifndef __AVR_AT90USB1286__
#error "Oops! Make sure you have 'Teensy++ 2.0' selected from the 'Tools -> Boards' menu."
#endif
#define DEFAULT_MACHINE_NAME "SAV MkI"
#define DEFAULT_SOURCE_CODE_URL "https://github.com/fmalpartida/Marlin/tree/SAV-MkI-config"
#define BOARD_NAME "SAV MkI"
#define USBCON 1286 // Disable MarlinSerial etc.
#define LARGE_FLASH true
//
// Servos
//
#define SERVO0_PIN 41 // In teensy's pin definition for pinMode (in servo.cpp)
//
// Limit Switches
//
#define X_STOP_PIN 13
#define Y_STOP_PIN 14
//#define Z_STOP_PIN 15
#define Z_STOP_PIN 36 // For inductive sensor.
//
// Steppers
//
#define X_STEP_PIN 0
#define X_DIR_PIN 1
#define X_ENABLE_PIN 39
#define Y_STEP_PIN 2
#define Y_DIR_PIN 3
#define Y_ENABLE_PIN 38
#define Z_STEP_PIN 4
#define Z_DIR_PIN 5
#define Z_ENABLE_PIN 23
#define E0_STEP_PIN 6
#define E0_DIR_PIN 7
#define E0_ENABLE_PIN 19
//
// Temperature Sensors
//
#define TEMP_0_PIN 7 // Analog Input (Extruder)
#define TEMP_BED_PIN 6 // Analog Input (Bed)
//
// Heaters / Fans
//
#define HEATER_0_PIN 21 // Extruder
#define HEATER_BED_PIN 20 // Bed
#define FAN_PIN 16 // Fan -- from Teensyduino environment.
// For the fan and Teensyduino uses a different pin mapping.
//
// Misc. Functions
//
#define SDSS 20 // PB0 - 8 in marlin env.
// Extension header pin mapping
// ----------------------------
// SCL (I2C)-D0 A0 (An), IO
// SDA (I2C)-D1 A1 (An), IO
// RX1-D2 A2 (An), IO
// TX1-D3 A3 (An), IO
// PWM-D24 A4 (An), IO
// 5V GND
// 12V GND
#define EXT_AUX_SCL_D0 0 // 0 (teensy), 24 (marlin)
#define EXT_AUX_SDA_D1 1 // 1 (teensy), 25 (marlin)
#define EXT_AUX_RX1_D2 26 // 2 (teensy), 26 (marlin)
#define EXT_AUX_TX1_D3 27 // 3 (teensy), 27 (marlin)
#define EXT_AUX_PWM_D24 12 // 24 (teensy), 12 (marlin)
#define EXT_AUX_A0 0 // Analog
#define EXT_AUX_A0_IO 40 // Digital IO, 38 (teensy), 40 (marlin)
#define EXT_AUX_A1 1 // Analog
#define EXT_AUX_A1_IO 41 // Digital IO, 39 (teensy), 41 (marlin)
#define EXT_AUX_A2 2 // Analog
#define EXT_AUX_A2_IO 42 // Digital IO, 40 (teensy), 42 (marlin)
#define EXT_AUX_A3 3 // Analog
#define EXT_AUX_A3_IO 43 // Digital IO, 41 (teensy), 43 (marlin)
#define EXT_AUX_A4 4 // Analog
#define EXT_AUX_A4_IO 44 // Digital IO, 42 (teensy), 44 (marlin)
//
// LCD / Controller
//
#define BEEPER_PIN -1
#define LCD_PINS_RS -1
#define LCD_PINS_ENABLE -1
#define LCD_PINS_D4 -1
#define LCD_PINS_D5 -1
#define LCD_PINS_D6 -1
#define LCD_PINS_D7 -1
#if ENABLED(SAV_3DLCD)
// For LCD SHIFT register LCD
#define SR_DATA_PIN EXT_AUX_SDA_D1
#define SR_CLK_PIN EXT_AUX_SCL_D0
#endif // SAV_3DLCD
#if ENABLED(SAV_3DLCD) || ENABLED(SAV_3DGLCD)
#define BTN_EN1 EXT_AUX_A1_IO
#define BTN_EN2 EXT_AUX_A0_IO
#define BTN_ENC EXT_AUX_PWM_D24
#define KILL_PIN EXT_AUX_A2_IO
#define HOME_PIN EXT_AUX_A4_IO
#else // Try to use the expansion header for spindle control
//
// M3/M4/M5 - Spindle/Laser Control
//
#define SPINDLE_LASER_PWM_PIN 24 // 12 AT90USB… pin #
#define SPINDLE_LASER_ENABLE_PIN 39 // Pin should have a pullup! 41 AT90USB… pin #
#define SPINDLE_DIR_PIN 40 // 42 AT90USB… pin #
#define CASE_LIGHT_PIN 0 // 24 AT90USB… pin #
#endif

View File

@@ -1,149 +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/>.
*
*/
/**
* Teensy++ 2.0 Breadboard pin assignments (AT90USB1286)
* Requires the Teensyduino software with Teensy++ 2.0 selected in Arduino IDE!
* http://www.pjrc.com/teensy/teensyduino.html
* See http://reprap.org/wiki/Printrboard for more info
*
* CLI build: DEFINES=AT90USBxx_TEENSYPP_ASSIGNMENTS HARDWARE_MOTHERBOARD=84 make
*
* DaveX plan for Teensylu/printrboard-type pinouts for a TeensyBreadboard:
* (ref teensylu & sprinter)
*
* USB
* GND GND |-----#####-----| +5V ATX +5SB
* ATX PS_ON PWM 27 |b7 ##### b6| 26 PWM* Stepper Enable
* PWM 0 |d0 b5| 25 PWM*
* PWM 1 |d1 b4| 24 PWM
* X_MIN 2 |d2 b3| 23 MISO_PIN
* Y_MIN 3 |d3 b2| 22 MOSI_PIN
* Z_MIN 4 |d4 * * b1| 21 SCK_PIN
* 5 |d5 e e b0| 20 SDSS
* LED 6 |d6 5 4 e7| 19
* 7 |d7 e6| 18
* LCD RS 8 |e0 | GND
* LCD EN 9 |e1 a4 a0 R| AREF
* LCD D4 10 |c0 a5 a1 f0| 38 A0 ENC_1
* LCD D5 11 |c1 a6 a2 f1| 39 A1 ENC_2
* LCD D6 12 |c2 a7 a3 f2| 40 A2 ENC_CLK
* LCD D6 13 |c3 f3| 41 A3
* Bed Heat PWM 14 |c4 V G R f4| 42 A4
* Extruder Heat PWM 15 |c5 c n S f5| 43 A5
* Fan PWM 16 |c6 c d T f6| 44 A6 Bed TC
* 17 |c7 * * * f7| 45 A7 Extruder TC * 4.7k * +5
* -----------------
*
* Interior E4: 36, INT4
* Interior E5: 37, INT5
* Interior PA0-7: 28-35 -- Printrboard and Teensylu use these pins for step & direction:
* T++ PA Signal Marlin
*
* Z STEP 32 a4 a0 28 X STEP
* Z DIR 33 a5 a1 29 X DIR
* E STEP 34 a6 a2 30 Y STEP
* E DIR 35 a7 a3 31 Y DIR
*/
#ifndef __AVR_AT90USB1286__
#error "Oops! Make sure you have 'Teensy++ 2.0' selected from the 'Tools -> Boards' menu."
#endif
#if DISABLED(AT90USBxx_TEENSYPP_ASSIGNMENTS) // use Teensyduino Teensy++2.0 pin assignments instead of Marlin alphabetical.
#error "Uncomment #define AT90USBxx_TEENSYPP_ASSIGNMENTS in fastio.h for this config"
// (or build from command line)
#endif
#define BOARD_NAME "Teensy++2.0"
#define USBCON 1286 // Disable MarlinSerial etc.
#define LARGE_FLASH true
//
// Limit Switches
//
#define X_STOP_PIN 2
#define Y_STOP_PIN 3
#define Z_STOP_PIN 4
//
// Steppers
//
#define X_STEP_PIN 28 // 0 Marlin
#define X_DIR_PIN 29 // 1 Marlin
#define X_ENABLE_PIN 26
#define Y_STEP_PIN 30 // 2 Marlin
#define Y_DIR_PIN 31 // 3
#define Y_ENABLE_PIN 26 // Shared w/x
#define Z_STEP_PIN 32 // 4
#define Z_DIR_PIN 33 // 5
#define Z_ENABLE_PIN 26 // Shared w/x
#define E0_STEP_PIN 34 // 6
#define E0_DIR_PIN 35 // 7
#define E0_ENABLE_PIN 26 // Shared w/x
//
// Temperature Sensors
//
#define TEMP_0_PIN 7 // Analog Input (Extruder)
#define TEMP_BED_PIN 6 // Analog Input (Bed)
//
// Heaters / Fans
//
#define HEATER_0_PIN 15 // 21 // Extruder
#define HEATER_BED_PIN 14 // 20 // Bed
#define FAN_PIN 16 // 22 // Fan
//
// Misc. Functions
//
#define SDSS 20 // 8
#define LED_PIN 6
#define PS_ON_PIN 27
#define CASE_LIGHT_PIN 1 // MUST BE HARDWARE PWM
//
// LCD / Controller
//
#if ENABLED(ULTIPANEL)
#define LCD_PINS_RS 8
#define LCD_PINS_ENABLE 9
#define LCD_PINS_D4 10
#define LCD_PINS_D5 11
#define LCD_PINS_D6 12
#define LCD_PINS_D7 13
#define BTN_EN1 38
#define BTN_EN2 39
#define BTN_ENC 40
#endif
//
// M3/M4/M5 - Spindle/Laser Control
//
#define SPINDLE_LASER_ENABLE_PIN 5 // Pin should have a pullup!
#define SPINDLE_LASER_PWM_PIN 0 // MUST BE HARDWARE PWM
#define SPINDLE_DIR_PIN 7

View File

@@ -1,178 +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/>.
*
*/
/**
* rev B 30 DEC 2016
*
* The original version of this file did NOT result in a useful program because:
* 1. The pin numbers assumed that the "#define AT90USBxx_TEENSYPP_ASSIGNMENTS" line
* in FASTIO.h was commented out. There wasn't an Arduino IDE 1.6.x extension/package
* that supported this pin map so the latest Marlin wouldn't compile.
* 2. The silkscreen for the four end stops don't agree with the schematic. Activating
* the X endstop would tell the software that the Y endstop just went active.
* 3. The thermistor inputs also had heater names assigned to them. The result was
* thermistor inputs that were set to digital outputs.
*
* Rev B corrects the above problems by:
* 1. The "Marlin_AT90USB" extension/package was developed. This extension enables the
* latest Marlin software to compile using Arduino IDE 1.6.x and 1.80.
* 2. The endstop pin numbers in this file were changed to match the silkscreen. This
* makes it a little confusing when trying to correlate the schematic with the pin
* numbers used in this file.
* 3. The offending heater names were deleted.
*
* To create a useable image for Teensylu do the following:
* a) Install the Marlin_AT90USB extension with either of the following methods:
* Automatic - paste this URL into preferences and then use Boards manager
* https://rawgit.com/Bob-the-Kuhn/Marlin_AT90USB/master/package_MARLIN_AT90USB_index.json
* Manual:
* 1. Copy the following URL into Go to "https://github.com/Bob-the-Kuhn/Marlin_AT90USB",
* click on the "Clone or Download" button and then click on "Download ZIP" button.
* 2. Unzip the file, find the "Marlin_AT90USB" directory and then copy it to the
* hardware directory in Arduino. The Arduino hardware directory will probably be
* located in a path similar to this: C:\Program Files (x86)\Arduino\hardware
* b) Connect the USBtinyISP to the board.
* c) In the Arduino IDE select the "AT90USB1286_STANDARD" board in the of the "Marlin_AT90USB"
* section and select the "USBtinyISP" programmer.
* d) In the Arduino IDE click on "burn bootloader". Don't worry about the "verify
* failed at 1F000" error message.
* e) The USBtinyISP programmer is no longer needed. Remove it.
* f) In FASTIO.h comment out the "#define AT90USBxx_TEENSYPP_ASSIGNMENTS" line.
* g) To upload a sketch do the following:
* 1. remove the jumper
* 2. press reset
* 3. click on the "upload" button in the Arduino IDE
* 4. wait until the upload finishes (less than a minute)
* 5. put the jumper back on
* 6. press the reset button
*
*
* NOTE - the "Marlin_AT90USB" pin maps make PWM0A available rather than the usual PWM1C.
* These PWMs share the same physical pin. Marlin uses TIMER1 to generate
* interrupts and sets it up such that PWM1A, PWM1B & PWM1C can't be used.
*/
/**
* SILKSCREEN ERROR
*
* The silkscreen for the endstops do NOT match the schematic. The silkscreen SHOULD
* read (from left to right) X-STOP, Y-STOP, Z-STOP & E-STOP. The silkscreen actually
* reads E-STOP, X-STOP, Y-STOP & Z-STOP.
*
* The pin assignments in this file match the silkscreen.
*/
#if !defined(__AVR_AT90USB1286__) && !defined(__AVR_AT90USB1286P__)
#error "Oops! Make sure you have 'AT90USB1286_STANDARD' selected from the 'Tools -> Boards' menu."
#endif
#if ENABLED(AT90USBxx_TEENSYPP_ASSIGNMENTS)
#error "please disable (comment out) the AT90USBxx_TEENSYPP_ASSIGNMENTS flag in FASTIO.h "
#endif
#define BOARD_NAME "Teensylu"
#define USBCON 1286 // Disable MarlinSerial etc.
#define LARGE_FLASH true
//
// Limit Switche definitions that match the SCHEMATIC
//
//#define X_STOP_PIN 13
//#define Y_STOP_PIN 14
//#define Z_STOP_PIN 15
//#define E_STOP_PIN 36
//
// Limit Switch definitions that match the SILKSCREEN
//
#define X_STOP_PIN 14
#define Y_STOP_PIN 15
#define Z_STOP_PIN 36
//#define E_STOP_PIN 13
//
// Steppers
//
#define X_STEP_PIN 0
#define X_DIR_PIN 1
#define X_ENABLE_PIN 39
#define Y_STEP_PIN 2
#define Y_DIR_PIN 3
#define Y_ENABLE_PIN 38
#define Z_STEP_PIN 4
#define Z_DIR_PIN 5
#define Z_ENABLE_PIN 23
#define E0_STEP_PIN 6
#define E0_DIR_PIN 7
#define E0_ENABLE_PIN 19
// Temperature Sensors
#define TEMP_0_PIN 7 // Analog Input (Extruder)
#define TEMP_BED_PIN 6 // Analog Input (Bed)
//
// Heaters / Fans
//
#define HEATER_0_PIN 21 // Extruder
#define HEATER_BED_PIN 20
#define FAN_PIN 22
//
// Misc. Functions
//
#define SDSS 8
#define CASE_LIGHT_PIN 24
//
// LCD / Controller
//
#if ENABLED(ULTRA_LCD) && ENABLED(NEWPANEL)
#define BEEPER_PIN -1
#if ENABLED(LCD_I2C_PANELOLU2)
#define BTN_EN1 27
#define BTN_EN2 26
#define BTN_ENC 43
#define SDSS 40 // use SD card on Panelolu2
#endif // LCD_I2C_PANELOLU2
#define SD_DETECT_PIN -1
#endif // ULTRA_LCD && NEWPANEL
//
// M3/M4/M5 - Spindle/Laser Control
//
#define SPINDLE_LASER_PWM_PIN 12 // MUST BE HARDWARE PWM
#define SPINDLE_LASER_ENABLE_PIN 41 // Pin should have a pullup!
#define SPINDLE_DIR_PIN 42

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